aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-code.h
blob: 05bfbfb82cf331307362f88573f6273f0b5525d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/* ScummVM - Graphic Adventure Engine
 *
 * ScummVM is the legal property of its developers, whose names
 * are too numerous to list here. Please refer to the COPYRIGHT
 * file distributed with this source distribution.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 */

#ifndef DIRECTOR_LINGO_LINGO_CODE_H
#define DIRECTOR_LINGO_LINGO_CODE_H

namespace Director {

namespace LC {
	void c_xpop();
	void c_printtop();

	void c_add();
	void c_sub();
	void c_mul();
	void c_div();
	void c_mod();
	void c_negate();

	void c_and();
	void c_or();
	void c_not();

	void c_ampersand();
	void c_after();
	void c_before();
	void c_concat();
	void c_contains();
	void c_starts();

	void c_intersects();
	void c_within();
	void c_of();
	void c_charOf();
	void c_charToOf();
	void c_itemOf();
	void c_itemToOf();
	void c_lineOf();
	void c_lineToOf();
	void c_wordOf();
	void c_wordToOf();

	void c_intpush();
	void c_voidpush();
	void c_floatpush();
	void c_stringpush();
	void c_symbolpush();
	void c_namepush();
	void c_varpush();
	void c_argcpush();
	void c_argcnoretpush();
	void c_arraypush();
	void c_assign();
	bool verify(Symbol *s);
	void c_eval();
	void c_setImmediate();

	void c_swap();

	void c_theentitypush();
	void c_theentityassign();
	void c_objectfieldpush();
	void c_objectfieldassign();

	void c_repeatwhilecode();
	void c_repeatwithcode();
	void c_ifcode();
	void c_whencode();
	void c_tellcode();
	void c_tell();
	void c_telldone();
	void c_exitRepeat();
	void c_eq();
	void c_neq();
	void c_gt();
	void c_lt();
	void c_ge();
	void c_le();
	void c_jump();
	void c_jumpifz();
	void c_call();

	void call(Common::String name, int nargs);

	void c_procret();

	void c_mci();
	void c_mciwait();
	void c_goto();
	void c_gotoloop();
	void c_gotonext();
	void c_gotoprevious();
	void c_global();
	void c_instance();
	void c_factory();
	void c_property();

	void c_play();
	void c_playdone();

	void c_open();
	void c_hilite();

	// stubs for unknown instructions
	void c_unk();
	void c_unk1();
	void c_unk2();

	// bytecode-related instructions
	void cb_localcall();
	void cb_call();
	void cb_field();
	void cb_v4putvalue();
	void cb_v4theentitypush();
	void cb_v4theentitynamepush();
	void cb_v4theentityassign();

} // End of namespace LC

} // End of namespace Director

#endif