ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
enums.h
1 /*
2  * This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at https://mozilla.org/MPL/2.0/.
5  */
6 
7 #ifndef LINGODEC_ENUMS_H
8 #define LINGODEC_ENUMS_H
9 
10 namespace LingoDec {
11 
12 enum OpCode {
13  // single-byte
14  kOpRet = 0x01,
15  kOpRetFactory = 0x02,
16  kOpPushZero = 0x03,
17  kOpMul = 0x04,
18  kOpAdd = 0x05,
19  kOpSub = 0x06,
20  kOpDiv = 0x07,
21  kOpMod = 0x08,
22  kOpInv = 0x09,
23  kOpJoinStr = 0x0a,
24  kOpJoinPadStr = 0x0b,
25  kOpLt = 0x0c,
26  kOpLtEq = 0x0d,
27  kOpNtEq = 0x0e,
28  kOpEq = 0x0f,
29  kOpGt = 0x10,
30  kOpGtEq = 0x11,
31  kOpAnd = 0x12,
32  kOpOr = 0x13,
33  kOpNot = 0x14,
34  kOpContainsStr = 0x15,
35  kOpContains0Str = 0x16,
36  kOpGetChunk = 0x17,
37  kOpHiliteChunk = 0x18,
38  kOpOntoSpr = 0x19,
39  kOpIntoSpr = 0x1a,
40  kOpGetField = 0x1b,
41  kOpStartTell = 0x1c,
42  kOpEndTell = 0x1d,
43  kOpPushList = 0x1e,
44  kOpPushPropList = 0x1f,
45  kOpSwap = 0x21,
46 
47  // multi-byte
48  kOpPushInt8 = 0x41,
49  kOpPushArgListNoRet = 0x42,
50  kOpPushArgList = 0x43,
51  kOpPushCons = 0x44,
52  kOpPushSymb = 0x45,
53  kOpPushVarRef = 0x46,
54  kOpGetGlobal2 = 0x48,
55  kOpGetGlobal = 0x49,
56  kOpGetProp = 0x4a,
57  kOpGetParam = 0x4b,
58  kOpGetLocal = 0x4c,
59  kOpSetGlobal2 = 0x4e,
60  kOpSetGlobal = 0x4f,
61  kOpSetProp = 0x50,
62  kOpSetParam = 0x51,
63  kOpSetLocal = 0x52,
64  kOpJmp = 0x53,
65  kOpEndRepeat = 0x54,
66  kOpJmpIfZ = 0x55,
67  kOpLocalCall = 0x56,
68  kOpExtCall = 0x57,
69  kOpObjCallV4 = 0x58,
70  kOpPut = 0x59,
71  kOpPutChunk = 0x5a,
72  kOpDeleteChunk = 0x5b,
73  kOpGet = 0x5c,
74  kOpSet = 0x5d,
75  kOpGetMovieProp = 0x5f,
76  kOpSetMovieProp = 0x60,
77  kOpGetObjProp = 0x61,
78  kOpSetObjProp = 0x62,
79  kOpTellCall = 0x63,
80  kOpPeek = 0x64,
81  kOpPop = 0x65,
82  kOpTheBuiltin = 0x66,
83  kOpObjCall = 0x67,
84  kOpPushChunkVarRef = 0x6d,
85  kOpPushInt16 = 0x6e,
86  kOpPushInt32 = 0x6f,
87  kOpGetChainedProp = 0x70,
88  kOpPushFloat32 = 0x71,
89  kOpGetTopLevelProp = 0x72,
90  kOpNewObj = 0x73
91 };
92 
93 enum DatumType {
94  kDatumVoid,
95  kDatumSymbol,
96  kDatumVarRef,
97  kDatumString,
98  kDatumInt,
99  kDatumFloat,
100  kDatumList,
101  kDatumArgList,
102  kDatumArgListNoRet,
103  kDatumPropList
104 };
105 
106 enum ChunkExprType {
107  kChunkChar = 0x01,
108  kChunkWord = 0x02,
109  kChunkItem = 0x03,
110  kChunkLine = 0x04
111 };
112 
113 enum PutType {
114  kPutInto = 0x01,
115  kPutAfter = 0x02,
116  kPutBefore = 0x03
117 };
118 
119 enum NodeType {
120  kNoneNode,
121  kErrorNode,
122  kTempNode,
123  kCommentNode,
124  kLiteralNode,
125  kBlockNode,
126  kHandlerNode,
127  kExitStmtNode,
128  kInverseOpNode,
129  kNotOpNode,
130  kBinaryOpNode,
131  kChunkExprNode,
132  kChunkHiliteStmtNode,
133  kChunkDeleteStmtNode,
134  kSpriteIntersectsExprNode,
135  kSpriteWithinExprNode,
136  kMemberExprNode,
137  kVarNode,
138  kAssignmentStmtNode,
139  kIfStmtNode,
140  kRepeatWhileStmtNode,
141  kRepeatWithInStmtNode,
142  kRepeatWithToStmtNode,
143  kCaseStmtNode,
144  kCaseLabelNode,
145  kOtherwiseNode,
146  kEndCaseNode,
147  kTellStmtNode,
148  kSoundCmdStmtNode,
149  kPlayCmdStmtNode,
150  kCallNode,
151  kObjCallNode,
152  kObjCallV4Node,
153  kTheExprNode,
154  kLastStringChunkExprNode,
155  kStringChunkCountExprNode,
156  kMenuPropExprNode,
157  kMenuItemPropExprNode,
158  kSoundPropExprNode,
159  kSpritePropExprNode,
160  kThePropExprNode,
161  kObjPropExprNode,
162  kObjBracketExprNode,
163  kObjPropIndexExprNode,
164  kExitRepeatStmtNode,
165  kNextRepeatStmtNode,
166  kPutStmtNode,
167  kWhenStmtNode,
168  kNewObjNode
169 };
170 
171 enum BytecodeTag {
172  kTagNone,
173  kTagSkip,
174  kTagRepeatWhile,
175  kTagRepeatWithIn,
176  kTagRepeatWithTo,
177  kTagRepeatWithDownTo,
178  kTagNextRepeatTarget,
179  kTagEndCase
180 };
181 
182 enum CaseExpect {
183  kCaseExpectEnd,
184  kCaseExpectOr,
185  kCaseExpectNext,
186  kCaseExpectOtherwise
187 };
188 
189 enum ScriptFlag {
190  kScriptFlagUnused = (1 << 0x0),
191  kScriptFlagFuncsGlobal = (1 << 0x1),
192  kScriptFlagVarsGlobal = (1 << 0x2), // Occurs in event scripts (which have no local vars). Correlated with use of alternate global var opcodes.
193  kScriptFlagUnk3 = (1 << 0x3),
194  kScriptFlagFactoryDef = (1 << 0x4),
195  kScriptFlagUnk5 = (1 << 0x5),
196  kScriptFlagUnk6 = (1 << 0x6),
197  kScriptFlagUnk7 = (1 << 0x7),
198  kScriptFlagHasFactory = (1 << 0x8),
199  kScriptFlagEventScript = (1 << 0x9),
200  kScriptFlagEventScript2 = (1 << 0xa),
201  kScriptFlagUnkB = (1 << 0xb),
202  kScriptFlagUnkC = (1 << 0xc),
203  kScriptFlagUnkD = (1 << 0xd),
204  kScriptFlagUnkE = (1 << 0xe),
205  kScriptFlagUnkF = (1 << 0xf)
206 };
207 
208 enum LiteralType {
209  kLiteralString = 1,
210  kLiteralInt = 4,
211  kLiteralFloat = 9
212 };
213 
214 }
215 
216 #endif // LINGODEC_ENUMS_H
Definition: cast.h:33