41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
+
|
Class*classes[0x4000];
const char*messages[0x4000];
Uint16 functions[0x4000];
int max_animation=32;
Sint32 max_volume=10000;
Uint8 back_color=1;
char**stringpool;
AnimationSlot anim_slot[8];
#define HASH_SIZE 8888
#define LOCAL_HASH_SIZE 5555
typedef struct {
Uint16 id;
char*txt;
} Hash;
|
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
|
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n");
break;
case OP_ANIMATE:
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
if(tokenv<1 || tokenv>256) ParseError("Number of max animation steps out of range\n");
max_animation=tokenv;
nxttok();
if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n");
break;
case OP_SYNCHRONIZE:
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
i=tokenv;
if(i&~7) ParseError("Animation slot number out of range\n");
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
if(tokenv<1 || tokenv>255) ParseError("Length of synchronized animation too long\n");
anim_slot[i].length=tokenv;
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
if(tokenv<1 || tokenv>255) ParseError("Synchronized animation speed out of range\n");
anim_slot[i].speed=tokenv;
nxttok();
if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n");
break;
case OP_VOLUME:
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
max_volume=tokenv;
|