2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
|
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
|
+
|
case OP_VISUALONLY: cl->oflags|=OF_VISUALONLY; break;
case OP_STEALTHY: cl->oflags|=OF_STEALTHY; break;
case OP_USERSTATE: cl->oflags|=OF_USERSTATE; break;
case OP_BIZARRO: cl->oflags|=OF_BIZARRO; break;
case OP_SHOVABLE: cl->shovable=0x55; break;
case OP_USERFLAG: class_user_flag(cl); break;
case OP_ABSTRACT: cl->cflags|=CF_GROUP; break;
case OP_CONNECTION: cl->oflags|=OF_CONNECTION; break;
case 0x4000 ... 0x7FFF: set_super_class(cl,ptr); ptr=2; break;
default: ParseError("Invalid directly inside of a class definition\n");
}
} else if(Tokenf(TF_CLOSE)) {
break;
} else {
ParseError("Invalid directly inside of a class definition\n");
|
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
|
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
|
+
+
+
+
+
+
+
+
+
+
+
|
case OP_CONTROL:
if(control_class) ParseError("Extra (Control) block\n");
strcpy(tokenstr,"(Control)");
control_class=look_class_name();
if(!(classes[control_class]->cflags&CF_NOCLASS1)) ParseError("Conflicting definition of (Control) class\n");
class_definition(control_class,vst);
break;
case OP_CONNECTION:
nxttok();
if(!(tokent&TF_NAME) || tokenv!=OP_STRING) ParseError("String literal expected\n");
for(i=0;tokenstr[i];i++) switch(tokenstr[i]) {
case 't': conn_option|=0x02; break;
case 'w': conn_option|=0x01; break;
default: ParseError("Unrecognized (Connection) option\n");
}
nxttok();
if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n");
break;
case OP_LEVELTABLE:
level_table_definition();
break;
default:
ParseError("Invalid top level definition: %s\n",tokenstr);
}
} else {
|