ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
lingo-code.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 #ifndef DIRECTOR_LINGO_LINGO_CODE_H
23 #define DIRECTOR_LINGO_LINGO_CODE_H
24 
25 namespace Director {
26 
27 namespace LC {
28 
29 void c_xpop();
30 
31 Datum mapBinaryOp(Datum (*func)(Datum &, Datum &), Datum &d1, Datum &d2);
32 Datum addData(Datum &d1, Datum &d2);
33 void c_add();
34 Datum subData(Datum &d1, Datum &d2);
35 void c_sub();
36 Datum mulData(Datum &d1, Datum &d2);
37 void c_mul();
38 Datum divData(Datum &d1, Datum &d2);
39 void c_div();
40 Datum modData(Datum &d1, Datum &d2);
41 void c_mod();
42 Datum negateData(Datum &d1);
43 void c_negate();
44 
45 void c_and();
46 void c_or();
47 void c_not();
48 
49 void c_ampersand();
50 void c_putafter();
51 void c_putbefore();
52 void c_concat();
53 void c_contains();
54 void c_starts();
55 
56 void c_intersects();
57 void c_within();
58 Datum chunkRef(ChunkType type, int startChunk, int endChunk, const Datum &src);
59 Datum lastChunk(ChunkType type, const Datum &src);
60 Datum readChunkRef(const Datum &src);
61 void c_of();
62 void c_charToOfRef();
63 void c_charToOf();
64 void c_itemToOfRef();
65 void c_itemToOf();
66 void c_lineToOfRef();
67 void c_lineToOf();
68 void c_wordToOfRef();
69 void c_wordToOf();
70 
71 void c_constpush();
72 void c_intpush();
73 void c_voidpush();
74 void c_floatpush();
75 void c_stringpush();
76 void c_symbolpush();
77 void c_namepush();
78 void c_varrefpush();
79 void c_globalrefpush();
80 void c_localrefpush();
81 void c_proprefpush();
82 void c_varpush();
83 void c_globalinit();
84 void c_globalpush();
85 void c_localpush();
86 void c_proppush();
87 void c_argcpush();
88 void c_argcnoretpush();
89 void c_arraypush();
90 void c_proparraypush();
91 void c_stackpeek();
92 void c_stackdrop();
93 void c_assign();
94 bool verify(const Symbol &s);
95 
96 void c_swap();
97 
98 void c_theentitypush();
99 void c_themenuentitypush();
100 void c_theentityassign();
101 void c_objectproppush();
102 void c_objectpropassign();
103 
104 void c_whencode();
105 void c_tell();
106 void c_telldone();
107 Datum compareArrays(Datum (*compareFunc)(Datum, Datum), Datum d1, Datum d2, bool location = false, bool value = false);
108 Datum eqData(Datum d1, Datum d2);
109 Datum eqDataStrict(Datum d1, Datum d2);
110 void c_eq();
111 Datum neqData(Datum d1, Datum d2);
112 void c_neq();
113 Datum gtData(Datum d1, Datum d2);
114 void c_gt();
115 Datum ltData(Datum d1, Datum d2);
116 void c_lt();
117 Datum geData(Datum d1, Datum d2);
118 void c_ge();
119 Datum leData(Datum d1, Datum d2);
120 void c_le();
121 void c_jump();
122 void c_jumpifz();
123 void c_callcmd();
124 void c_callfunc();
125 
126 void call(const Symbol &targetSym, int nargs, bool allowRetVal);
127 void call(const Common::String &name, int nargs, bool allowRetVal);
128 
129 void c_procret();
130 void procret();
131 
132 void c_mci();
133 void c_mciwait();
134 
135 void c_open();
136 void c_delete();
137 void c_hilite();
138 void c_field();
139 void c_fieldref();
140 
141 // custom instructions for testing
142 void c_asserterror();
143 void c_asserterrordone();
144 
145 // stubs for unknown instructions
146 void cb_unk();
147 void cb_unk1();
148 void cb_unk2();
149 
150 // bytecode-related instructions
151 void cb_call();
152 void cb_delete();
153 void cb_hilite();
154 void cb_globalassign();
155 void cb_globalpush();
156 void cb_list();
157 void cb_localcall();
158 void cb_objectcall();
159 void cb_objectfieldassign();
160 void cb_objectfieldpush();
161 void cb_varrefpush();
162 void cb_theassign();
163 void cb_theassign2();
164 void cb_thepush();
165 void cb_thepush2();
166 void cb_proplist();
167 void cb_varassign();
168 void cb_varpush();
169 void cb_v4assign();
170 void cb_v4assign2();
171 void cb_v4theentitypush();
172 void cb_v4theentitynamepush();
173 void cb_v4theentityassign();
174 void cb_zeropush();
175 
176 } // End of namespace LC
177 
178 } // End of namespace Director
179 
180 #endif
Definition: str.h:59
Definition: archive.h:35