1 /* ResidualVM - A 3D game interpreter
2  *
3  * ResidualVM 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
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (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, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #ifndef GRIM_LUA_V1
24 #define GRIM_LUA_V1
25 
26 #include "engines/grim/lua.h"
27 
28 // Windows.h badness: Remove #defines to the following Win32 API MultiByte/Unicode functions.
29 #ifdef GetDiskFreeSpace
30 #undef GetDiskFreeSpace
31 #endif
32 
33 #ifdef PlaySound
34 #undef PlaySound
35 #endif
36 
37 namespace Grim {
38 
39 class Lua_V1 : public LuaBase {
40 public:
41 	typedef Lua_V1 LuaClass;
42 	void registerOpcodes() override;
43 	void boot() override;
44 	void postRestoreHandle() override;
45 
46 protected:
47 	// Opcodes
48 	DECLARE_LUA_OPCODE(new_dofile);
49 	DECLARE_LUA_OPCODE(PrintDebug);
50 	DECLARE_LUA_OPCODE(PrintError);
51 	DECLARE_LUA_OPCODE(PrintWarning);
52 	DECLARE_LUA_OPCODE(FunctionName);
53 	DECLARE_LUA_OPCODE(CheckForFile);
54 	DECLARE_LUA_OPCODE(MakeColor);
55 	DECLARE_LUA_OPCODE(GetColorComponents);
56 	DECLARE_LUA_OPCODE(ReadRegistryValue);
57 	DECLARE_LUA_OPCODE(WriteRegistryValue);
58 	DECLARE_LUA_OPCODE(LoadActor);
59 	DECLARE_LUA_OPCODE(GetActorTimeScale);
60 	DECLARE_LUA_OPCODE(SetSelectedActor);
61 	DECLARE_LUA_OPCODE(GetCameraActor);
62 	DECLARE_LUA_OPCODE(SetSayLineDefaults);
63 	DECLARE_LUA_OPCODE(SetActorTalkColor);
64 	DECLARE_LUA_OPCODE(GetActorTalkColor);
65 	DECLARE_LUA_OPCODE(SetActorRestChore);
66 	DECLARE_LUA_OPCODE(SetActorWalkChore);
67 	DECLARE_LUA_OPCODE(SetActorTurnChores);
68 	DECLARE_LUA_OPCODE(SetActorTalkChore);
69 	DECLARE_LUA_OPCODE(SetActorMumblechore);
70 	DECLARE_LUA_OPCODE(SetActorVisibility);
71 	DECLARE_LUA_OPCODE(SetActorScale);
72 	DECLARE_LUA_OPCODE(SetActorTimeScale);
73 	DECLARE_LUA_OPCODE(SetActorCollisionMode);
74 	DECLARE_LUA_OPCODE(SetActorCollisionScale);
75 	DECLARE_LUA_OPCODE(PutActorAt);
76 	DECLARE_LUA_OPCODE(GetActorPos);
77 	DECLARE_LUA_OPCODE(SetActorRot);
78 	DECLARE_LUA_OPCODE(GetActorRot);
79 	DECLARE_LUA_OPCODE(IsActorTurning);
80 	DECLARE_LUA_OPCODE(GetAngleBetweenActors);
81 	DECLARE_LUA_OPCODE(GetAngleBetweenVectors);
82 	DECLARE_LUA_OPCODE(GetActorYawToPoint);
83 	DECLARE_LUA_OPCODE(PutActorInSet);
84 	DECLARE_LUA_OPCODE(SetActorWalkRate);
85 	DECLARE_LUA_OPCODE(GetActorWalkRate);
86 	DECLARE_LUA_OPCODE(SetActorTurnRate);
87 	DECLARE_LUA_OPCODE(WalkActorForward);
88 	DECLARE_LUA_OPCODE(SetActorReflection);
89 	DECLARE_LUA_OPCODE(GetActorPuckVector);
90 	DECLARE_LUA_OPCODE(ActorPuckOrient);
91 	DECLARE_LUA_OPCODE(WalkActorTo);
92 	DECLARE_LUA_OPCODE(ActorToClean);
93 	DECLARE_LUA_OPCODE(IsActorMoving);
94 	DECLARE_LUA_OPCODE(Is3DHardwareEnabled);
95 	DECLARE_LUA_OPCODE(SetHardwareState);
96 	DECLARE_LUA_OPCODE(SetVideoDevices);
97 	DECLARE_LUA_OPCODE(GetVideoDevices);
98 	DECLARE_LUA_OPCODE(EnumerateVideoDevices);
99 	DECLARE_LUA_OPCODE(Enumerate3DDevices);
100 	DECLARE_LUA_OPCODE(IsActorResting);
101 	DECLARE_LUA_OPCODE(GetActorNodeLocation);
102 	DECLARE_LUA_OPCODE(SetActorWalkDominate);
103 	DECLARE_LUA_OPCODE(SetActorColormap);
104 	DECLARE_LUA_OPCODE(TurnActor);
105 	DECLARE_LUA_OPCODE(PushActorCostume);
106 	DECLARE_LUA_OPCODE(SetActorCostume);
107 	DECLARE_LUA_OPCODE(GetActorCostume);
108 	DECLARE_LUA_OPCODE(PopActorCostume);
109 	DECLARE_LUA_OPCODE(GetActorCostumeDepth);
110 	DECLARE_LUA_OPCODE(PrintActorCostumes);
111 	DECLARE_LUA_OPCODE(LoadCostume);
112 	DECLARE_LUA_OPCODE(PlayActorChore);
113 	DECLARE_LUA_OPCODE(CompleteActorChore);
114 	DECLARE_LUA_OPCODE(PlayActorChoreLooping);
115 	DECLARE_LUA_OPCODE(SetActorChoreLooping);
116 	DECLARE_LUA_OPCODE(StopActorChore);
117 	DECLARE_LUA_OPCODE(FadeOutChore);
118 	DECLARE_LUA_OPCODE(FadeInChore);
119 	DECLARE_LUA_OPCODE(IsActorChoring);
120 	DECLARE_LUA_OPCODE(ActorLookAt);
121 	DECLARE_LUA_OPCODE(TurnActorTo);
122 	DECLARE_LUA_OPCODE(PointActorAt);
123 	DECLARE_LUA_OPCODE(WalkActorVector);
124 	DECLARE_LUA_OPCODE(RotateVector);
125 	DECLARE_LUA_OPCODE(SetActorPitch);
126 	DECLARE_LUA_OPCODE(SetActorLookRate);
127 	DECLARE_LUA_OPCODE(GetActorLookRate);
128 	DECLARE_LUA_OPCODE(SetActorHead);
129 	DECLARE_LUA_OPCODE(PutActorAtInterest);
130 	DECLARE_LUA_OPCODE(SetActorFollowBoxes);
131 	DECLARE_LUA_OPCODE(SetActorConstrain);
132 	DECLARE_LUA_OPCODE(GetVisibleThings);
133 	DECLARE_LUA_OPCODE(SetShadowColor);
134 	DECLARE_LUA_OPCODE(KillActorShadows);
135 	DECLARE_LUA_OPCODE(SetActiveShadow);
136 	DECLARE_LUA_OPCODE(SetActorShadowPoint);
137 	DECLARE_LUA_OPCODE(SetActorShadowPlane);
138 	DECLARE_LUA_OPCODE(AddShadowPlane);
139 	DECLARE_LUA_OPCODE(ActivateActorShadow);
140 	DECLARE_LUA_OPCODE(SetActorShadowValid);
141 	DECLARE_LUA_OPCODE(TextFileGetLine);
142 	DECLARE_LUA_OPCODE(TextFileGetLineCount);
143 	DECLARE_LUA_OPCODE(LocalizeString);
144 	DECLARE_LUA_OPCODE(SayLine);
145 	DECLARE_LUA_OPCODE(PrintLine);
146 	DECLARE_LUA_OPCODE(InputDialog);
147 	DECLARE_LUA_OPCODE(IsMessageGoing);
148 	DECLARE_LUA_OPCODE(ShutUpActor);
149 	DECLARE_LUA_OPCODE(GetPointSector);
150 	DECLARE_LUA_OPCODE(GetActorSector);
151 	DECLARE_LUA_OPCODE(IsActorInSector);
152 	DECLARE_LUA_OPCODE(IsPointInSector);
153 	DECLARE_LUA_OPCODE(MakeSectorActive);
154 	DECLARE_LUA_OPCODE(LockSet);
155 	DECLARE_LUA_OPCODE(UnLockSet);
156 	DECLARE_LUA_OPCODE(MakeCurrentSet);
157 	DECLARE_LUA_OPCODE(MakeCurrentSetup);
158 	DECLARE_LUA_OPCODE(GetCurrentSetup);
159 	DECLARE_LUA_OPCODE(ShrinkBoxes);
160 	DECLARE_LUA_OPCODE(UnShrinkBoxes);
161 	DECLARE_LUA_OPCODE(GetShrinkPos);
162 	DECLARE_LUA_OPCODE(ImStartSound);
163 	DECLARE_LUA_OPCODE(ImStopSound);
164 	DECLARE_LUA_OPCODE(ImStopAllSounds);
165 	DECLARE_LUA_OPCODE(ImPause);
166 	DECLARE_LUA_OPCODE(ImResume);
167 	DECLARE_LUA_OPCODE(ImSetVoiceEffect);
168 	DECLARE_LUA_OPCODE(ImSetMusicVol);
169 	DECLARE_LUA_OPCODE(ImGetMusicVol);
170 	DECLARE_LUA_OPCODE(ImSetVoiceVol);
171 	DECLARE_LUA_OPCODE(ImGetVoiceVol);
172 	DECLARE_LUA_OPCODE(ImSetSfxVol);
173 	DECLARE_LUA_OPCODE(ImGetSfxVol);
174 	DECLARE_LUA_OPCODE(ImSetParam);
175 	DECLARE_LUA_OPCODE(ImGetParam);
176 	DECLARE_LUA_OPCODE(ImFadeParam);
177 	DECLARE_LUA_OPCODE(ImSetState);
178 	DECLARE_LUA_OPCODE(ImSetSequence);
179 	DECLARE_LUA_OPCODE(SaveIMuse);
180 	DECLARE_LUA_OPCODE(RestoreIMuse);
181 	DECLARE_LUA_OPCODE(SetSoundPosition);
182 	DECLARE_LUA_OPCODE(IsSoundPlaying);
183 	DECLARE_LUA_OPCODE(PlaySoundAt);
184 	DECLARE_LUA_OPCODE(FileFindDispose);
185 	DECLARE_LUA_OPCODE(FileFindNext);
186 	DECLARE_LUA_OPCODE(FileFindFirst);
187 	DECLARE_LUA_OPCODE(PerSecond);
188 	DECLARE_LUA_OPCODE(EnableControl);
189 	DECLARE_LUA_OPCODE(DisableControl);
190 	DECLARE_LUA_OPCODE(GetControlState);
191 	DECLARE_LUA_OPCODE(GetImage);
192 	DECLARE_LUA_OPCODE(FreeImage);
193 	DECLARE_LUA_OPCODE(BlastImage);
194 	DECLARE_LUA_OPCODE(CleanBuffer);
195 	DECLARE_LUA_OPCODE(Exit);
196 	DECLARE_LUA_OPCODE(KillTextObject);
197 	DECLARE_LUA_OPCODE(ChangeTextObject);
198 	DECLARE_LUA_OPCODE(GetTextSpeed);
199 	DECLARE_LUA_OPCODE(SetTextSpeed);
200 	DECLARE_LUA_OPCODE(MakeTextObject);
201 	DECLARE_LUA_OPCODE(GetTextObjectDimensions);
202 	DECLARE_LUA_OPCODE(ExpireText);
203 	DECLARE_LUA_OPCODE(GetTextCharPosition);
204 	DECLARE_LUA_OPCODE(BlastText);
205 	DECLARE_LUA_OPCODE(SetOffscreenTextPos);
206 	DECLARE_LUA_OPCODE(SetSpeechMode);
207 	DECLARE_LUA_OPCODE(GetSpeechMode);
208 	DECLARE_LUA_OPCODE(StartFullscreenMovie);
209 	DECLARE_LUA_OPCODE(StartMovie);
210 	DECLARE_LUA_OPCODE(IsFullscreenMoviePlaying);
211 	DECLARE_LUA_OPCODE(IsMoviePlaying);
212 	DECLARE_LUA_OPCODE(StopMovie);
213 	DECLARE_LUA_OPCODE(PauseMovie);
214 	DECLARE_LUA_OPCODE(PurgePrimitiveQueue);
215 	DECLARE_LUA_OPCODE(DrawPolygon);
216 	DECLARE_LUA_OPCODE(DrawLine);
217 	DECLARE_LUA_OPCODE(ChangePrimitive);
218 	DECLARE_LUA_OPCODE(DrawRectangle);
219 	DECLARE_LUA_OPCODE(BlastRect);
220 	DECLARE_LUA_OPCODE(KillPrimitive);
221 	DECLARE_LUA_OPCODE(DimScreen);
222 	DECLARE_LUA_OPCODE(DimRegion);
223 	DECLARE_LUA_OPCODE(GetDiskFreeSpace);
224 	DECLARE_LUA_OPCODE(NewObjectState);
225 	DECLARE_LUA_OPCODE(FreeObjectState);
226 	DECLARE_LUA_OPCODE(SendObjectToBack);
227 	DECLARE_LUA_OPCODE(SendObjectToFront);
228 	DECLARE_LUA_OPCODE(SetObjectType);
229 	DECLARE_LUA_OPCODE(GetCurrentScript);
230 	DECLARE_LUA_OPCODE(ScreenShot);
231 	DECLARE_LUA_OPCODE(GetSaveGameImage);
232 	DECLARE_LUA_OPCODE(SubmitSaveGameData);
233 	DECLARE_LUA_OPCODE(GetSaveGameData);
234 	DECLARE_LUA_OPCODE(Load);
235 	DECLARE_LUA_OPCODE(Save);
236 	DECLARE_LUA_OPCODE(Remove);
237 	DECLARE_LUA_OPCODE(LockFont);
238 	DECLARE_LUA_OPCODE(EnableDebugKeys);
239 	DECLARE_LUA_OPCODE(LightMgrSetChange);
240 	DECLARE_LUA_OPCODE(SetAmbientLight);
241 	DECLARE_LUA_OPCODE(SetLightIntensity);
242 	DECLARE_LUA_OPCODE(SetLightPosition);
243 	DECLARE_LUA_OPCODE(TurnLightOn);
244 	DECLARE_LUA_OPCODE(RenderModeUser);
245 	DECLARE_LUA_OPCODE(PreRender);
246 	DECLARE_LUA_OPCODE(IrisUp);
247 	DECLARE_LUA_OPCODE(IrisDown);
248 	DECLARE_LUA_OPCODE(SetGamma);
249 	DECLARE_LUA_OPCODE(Display);
250 	DECLARE_LUA_OPCODE(EngineDisplay);
251 	DECLARE_LUA_OPCODE(ForceRefresh);
252 	DECLARE_LUA_OPCODE(JustLoaded);
253 	DECLARE_LUA_OPCODE(PlaySound);
254 	DECLARE_LUA_OPCODE(SetEmergencyFont);
255 	DECLARE_LUA_OPCODE(LoadBundle);
256 	DECLARE_LUA_OPCODE(LightMgrStartup);
257 	DECLARE_LUA_OPCODE(GetSectorOppositeEdge);
258 	DECLARE_LUA_OPCODE(SetActorInvClipNode);
259 	DECLARE_LUA_OPCODE(NukeResources);
260 	DECLARE_LUA_OPCODE(ResetTextures);
261 	DECLARE_LUA_OPCODE(AttachToResources);
262 	DECLARE_LUA_OPCODE(DetachFromResources);
263 	DECLARE_LUA_OPCODE(SetActorClipPlane);
264 	DECLARE_LUA_OPCODE(SetActorClipActive);
265 	DECLARE_LUA_OPCODE(FlushControls);
266 	DECLARE_LUA_OPCODE(GetCameraLookVector);
267 	DECLARE_LUA_OPCODE(SetCameraRoll);
268 	DECLARE_LUA_OPCODE(SetCameraInterest);
269 	DECLARE_LUA_OPCODE(GetCameraPosition);
270 	DECLARE_LUA_OPCODE(SpewStartup);
271 	DECLARE_LUA_OPCODE(PreviousSetup);
272 	DECLARE_LUA_OPCODE(NextSetup);
273 	DECLARE_LUA_OPCODE(WorldToScreen);
274 	DECLARE_LUA_OPCODE(SetActorRoll);
275 	DECLARE_LUA_OPCODE(SetActorFrustrumCull);
276 	DECLARE_LUA_OPCODE(DriveActorTo);
277 	DECLARE_LUA_OPCODE(GetActorRect);
278 	DECLARE_LUA_OPCODE(GetTranslationMode);
279 	DECLARE_LUA_OPCODE(SetTranslationMode);
280 	DECLARE_LUA_OPCODE(WalkActorToAvoiding);
281 	DECLARE_LUA_OPCODE(GetActorChores);
282 	DECLARE_LUA_OPCODE(SetCameraPosition);
283 	DECLARE_LUA_OPCODE(GetCameraFOV);
284 	DECLARE_LUA_OPCODE(SetCameraFOV);
285 	DECLARE_LUA_OPCODE(GetCameraRoll);
286 	DECLARE_LUA_OPCODE(GetMemoryUsage);
287 	DECLARE_LUA_OPCODE(GetFontDimensions);
288 	DECLARE_LUA_OPCODE(PurgeText);
289 };
290 
291 }
292 
293 #endif
294