aboutsummaryrefslogtreecommitdiff
path: root/engines/toltecs/script.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/toltecs/script.h')
-rw-r--r--engines/toltecs/script.h73
1 files changed, 70 insertions, 3 deletions
diff --git a/engines/toltecs/script.h b/engines/toltecs/script.h
index 8f4ae80818..c35a2e4184 100644
--- a/engines/toltecs/script.h
+++ b/engines/toltecs/script.h
@@ -34,6 +34,7 @@
#include "common/events.h"
#include "common/keyboard.h"
#include "common/array.h"
+#include "common/func.h"
#include "sound/audiostream.h"
#include "sound/mixer.h"
@@ -52,6 +53,8 @@ enum VarType {
vtWord
};
+typedef Common::Functor0<void> ScriptFunction;
+
class ScriptInterpreter {
public:
ScriptInterpreter(ToltecsEngine *vm);
@@ -90,6 +93,8 @@ protected:
};
ToltecsEngine *_vm;
+ Common::Array<const ScriptFunction*> _scriptFuncs;
+ Common::Array<const char *> _scriptFuncNames;
byte *_stack;
@@ -107,13 +112,13 @@ protected:
int16 readInt16();
void execOpcode(byte opcode);
- void execKernelOpcode(uint16 kernelOpcode);
+
+ void setupScriptFunctions();
+ void execScriptFunction(uint16 index);
byte arg8(int16 offset);
int16 arg16(int16 offset);
- void pushByte(byte value);
- byte popByte();
void pushInt16(int16 value);
int16 popInt16();
@@ -123,6 +128,68 @@ protected:
int16 localRead16(int16 offset);
byte *localPtr(int16 offset);
+ void sfNop();
+ void sfGetGameVar();
+ void sfSetGameVar();
+ void sfUpdateScreen();
+ void sfGetRandomNumber();
+ void sfDrawGuiTextMulti();
+ void sfUpdateVerbLine();
+ void sfSetFontColor();
+ void sfGetTalkTextDuration();
+ void sfTalk();
+ void sfFindPaletteFragment();
+ void sfClearPaletteFragments();
+ void sfAddPaletteFragment();
+ void sfSetDeltaAnimPalette();
+ void sfBuildColorTransTable();
+ void sfSetDeltaMainPalette();
+ void sfLoadScript();
+ void sfRegisterFont();
+ void sfLoadAddPalette();
+ void sfLoadScene();
+ void sfSetGuiHeight();
+ void sfFindMouseInRectIndex1();
+ void sfFindMouseInRectIndex2();
+ void sfDrawGuiImage();
+ void sfAddAnimatedSpriteNoLoop();
+ void sfAddAnimatedSprite();
+ void sfAddStaticSprite();
+ void sfAddAnimatedSpriteScaled();
+ void sfFindPath();
+ void sfWalk();
+ void sfScrollCameraUp();
+ void sfScrollCameraDown();
+ void sfScrollCameraLeft();
+ void sfScrollCameraRight();
+ void sfScrollCameraUpEx();
+ void sfScrollCameraDownEx();
+ void sfScrollCameraLeftEx();
+ void sfScrollCameraRightEx();
+ void sfSetCamera();
+ void sfGetRgbModifiertAtPoint();
+ void sfStartAnim();
+ void sfAnimNextFrame();
+ void sfGetAnimFrameNumber();
+ void sfGetAnimStatus();
+ void sfStartShakeScreen();
+ void sfStopShakeScreen();
+ void sfStartSequence();
+ void sfEndSequence();
+ void sfSequenceVolumeStuff();
+ void sfPlaySound1();
+ void sfPlaySound2();
+ void sfClearScreen();
+ void sfHandleInput();
+ void sfRunOptionsScreen();
+ void sfPrecacheSprites();
+ void sfPrecacheSounds1();
+ void sfDeleteAllPbfFilesByExternalArray();
+ void sfPrecacheSounds2();
+ void sfRestoreStackPtr();
+ void sfSaveStackPtr();
+ void sfPlayMovie();
+
};