ScummVM API documentation
token.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 // Based on Phantasma code by Thomas Harte (2013),
23 // available at https://github.com/TomHarte/Phantasma/ (MIT)
24 
25 #ifndef FREESCAPE_TOKEN_H
26 #define FREESCAPE_TOKEN_H
27 
28 namespace Freescape {
29 
30 struct Token {
31 public:
32  enum Type {
33  ADDVAR,
34  AGAIN,
35  AND,
36  ANDV,
37  CONDITIONAL,
38  DELAY,
39  DESTROY,
40  DESTROYEDQ,
41  ELSE,
42  END,
43  ENDGAME,
44  ENDIF,
45  EXECUTE,
46  GOTO,
47  IF,
48  INVIS,
49  INVISQ,
50  INCLUDE,
51  LOOP,
52  MODE,
53  MOVE,
54  MOVETO,
55  NOTV,
56  NOP,
57  OR,
58  ORV,
59  GETXPOS,
60  GETYPOS,
61  GETZPOS,
62  PRINT,
63  RESTART,
64  REDRAW,
65  REMOVE,
66  SCREEN,
67  SOUND,
68  SETVAR,
69  SETFLAGS,
70  START,
71  STARTANIM,
72  STOPANIM,
73  SPFX,
74  SUBVAR,
75  SYNCSND,
76  THEN,
77  TOGVIS,
78  TRIGANIM,
79  UPDATEI,
80  VAREQ,
81  VARGT,
82  VARLT,
83  IFGTEQ,
84  IFLTEQ,
85  VISQ,
86  VIS,
87  WAIT,
88  WAITTRIG,
89  COMMA,
90  OPENBRACKET,
91  CLOSEBRACKET,
92  CONSTANT,
93  VARIABLE,
94  STRINGLITERAL,
95  UNKNOWN,
96  ENDOFFILE,
97  SETBIT,
98  CLEARBIT,
99  TOGGLEBIT,
100  SWAPJET,
101  BITNOTEQ,
102  VARNOTEQ,
103  ADCV,
104  SBCV,
105  XORV,
106  TESTV,
107  CMPV,
108  IFEQ,
109  IFGT,
110  IFLT,
111  CROSS,
112  COLOUR,
113  TEXTCOL,
114  TIMER
115  };
116 
117  Type getType();
118 
119  Token() {
120  _type = UNKNOWN;
121  _value = 0;
122  }
123  Token(Type type_) {
124  _type = type_;
125  _value = 0;
126  }
127 
128 private:
129  Type _type;
130  int32 _value;
131 };
132 
133 } // End of namespace Freescape
134 
135 #endif // FREESCAPE_TOKEN_H
Definition: area.h:36
Definition: token.h:30