aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/script.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/prince/script.h')
-rw-r--r--engines/prince/script.h360
1 files changed, 182 insertions, 178 deletions
diff --git a/engines/prince/script.h b/engines/prince/script.h
index e801529187..dc050daeea 100644
--- a/engines/prince/script.h
+++ b/engines/prince/script.h
@@ -26,7 +26,7 @@
#include "common/random.h"
namespace Common {
- class SeekableReadStream;
+ class SeekableReadStream;
}
namespace Prince {
@@ -35,189 +35,193 @@ class PrinceEngine;
class Script {
public:
- Script(PrinceEngine *vm);
- virtual ~Script();
+ Script(PrinceEngine *vm);
+ virtual ~Script();
- bool loadFromStream(Common::SeekableReadStream &stream);
+ bool loadFromStream(Common::SeekableReadStream &stream);
- void step();
+ void step();
private:
- PrinceEngine *_vm;
-
- byte *_code;
- uint32 _codeSize;
- uint32 _currentInstruction;
- uint16 _lastOpcode;
- uint32 _lastInstruction;
- byte _result;
- int16 _flags[2000];
- bool _opcodeNF;
-
- // Stack
- static const uint32 _STACK_SIZE = 500;
- uint16 _stack[_STACK_SIZE];
- uint8 _stacktop;
- uint8 _savedStacktop;
-
- // Helper functions
- void checkPC(uint32 address);
- uint8 getCodeByte(uint32 address);
- uint8 readScript8bits();
- uint16 readScript16bits();
- uint32 readScript32bits();
- uint16 readScript8or16bits();
- void debugScript(const char *s, ...);
-
- typedef void (Script::*OpcodeFunc)();
- static OpcodeFunc _opcodes[];
-
- void O_WAITFOREVER();
- void O_BLACKPALETTE();
- void O_SETUPPALETTE();
- void O_INITROOM();
- void O_SETSAMPLE();
- void O_FREESAMPLE();
- void O_PLAYSAMPLE();
- void O_PUTOBJECT();
- void O_REMOBJECT();
- void O_SHOWANIM();
- void O_CHECKANIMEND();
- void O_FREEANIM();
- void O_CHECKANIMFRAME();
- void O_PUTBACKANIM();
- void O_REMBACKANIM();
- void O_CHECKBACKANIMFRAME();
- void O_FREEALLSAMPLES();
- void O_SETMUSIC();
- void O_STOPMUSIC();
- void O__WAIT();
- void O_UPDATEOFF();
- void O_UPDATEON();
- void O_UPDATE ();
- void O_CLS();
- void O__CALL();
- void O_RETURN();
- void O_GO();
- void O_BACKANIMUPDATEOFF();
- void O_BACKANIMUPDATEON();
- void O_CHANGECURSOR();
- void O_CHANGEANIMTYPE();
- void O__SETFLAG();
- void O_COMPARE();
- void O_JUMPZ();
- void O_JUMPNZ();
- void O_EXIT();
- void O_ADDFLAG();
- void O_TALKANIM();
- void O_SUBFLAG();
- void O_SETSTRING();
- void O_ANDFLAG();
- void O_GETMOBDATA();
- void O_ORFLAG();
- void O_SETMOBDATA();
- void O_XORFLAG();
- void O_GETMOBTEXT();
- void O_MOVEHERO();
- void O_WALKHERO();
- void O_SETHERO();
- void O_HEROOFF();
- void O_HEROON();
- void O_CLSTEXT();
- void O_CALLTABLE();
- void O_CHANGEMOB();
- void O_ADDINV();
- void O_REMINV();
- void O_REPINV();
- void O_OBSOLETE_GETACTION();
- void O_ADDWALKAREA();
- void O_REMWALKAREA();
- void O_RESTOREWALKAREA();
- void O_WAITFRAME();
- void O_SETFRAME();
- void O_RUNACTION();
- void O_COMPAREHI();
- void O_COMPARELO();
- void O_PRELOADSET();
- void O_FREEPRELOAD();
- void O_CHECKINV();
- void O_TALKHERO();
- void O_WAITTEXT();
- void O_SETHEROANIM();
- void O_WAITHEROANIM();
- void O_GETHERODATA();
- void O_GETMOUSEBUTTON();
- void O_CHANGEFRAMES();
- void O_CHANGEBACKFRAMES();
- void O_GETBACKANIMDATA();
- void O_GETANIMDATA();
- void O_SETBGCODE();
- void O_SETBACKFRAME();
- void O_GETRND();
- void O_TALKBACKANIM();
- void O_LOADPATH();
- void O_GETCHAR();
- void O_SETDFLAG();
- void O_CALLDFLAG();
- void O_PRINTAT();
- void O_ZOOMIN();
- void O_ZOOMOUT();
- void O_SETSTRINGOFFSET();
- void O_GETOBJDATA();
- void O_SETOBJDATA();
- void O_SWAPOBJECTS();
- void O_CHANGEHEROSET();
- void O_ADDSTRING();
- void O_SUBSTRING();
- void O_INITDIALOG();
- void O_ENABLEDIALOGOPT();
- void O_DISABLEDIALOGOPT();
- void O_SHOWDIALOGBOX();
- void O_STOPSAMPLE();
- void O_BACKANIMRANGE();
- void O_CLEARPATH();
- void O_SETPATH();
- void O_GETHEROX();
- void O_GETHEROY();
- void O_GETHEROD();
- void O_PUSHSTRING();
- void O_POPSTRING();
- void O_SETFGCODE();
- void O_STOPHERO();
- void O_ANIMUPDATEOFF();
- void O_ANIMUPDATEON();
- void O_FREECURSOR();
- void O_ADDINVQUIET();
- void O_RUNHERO();
- void O_SETBACKANIMDATA();
- void O_VIEWFLC();
- void O_CHECKFLCFRAME();
- void O_CHECKFLCEND();
- void O_FREEFLC();
- void O_TALKHEROSTOP();
- void O_HEROCOLOR();
- void O_GRABMAPA();
- void O_ENABLENAK();
- void O_DISABLENAK();
- void O_GETMOBNAME();
- void O_SWAPINVENTORY();
- void O_CLEARINVENTORY();
- void O_SKIPTEXT();
- void O_SETVOICEH();
- void O_SETVOICEA();
- void O_SETVOICEB();
- void O_SETVOICEC();
- void O_VIEWFLCLOOP();
- void O_FLCSPEED();
- void O_OPENINVENTORY();
- void O_KRZYWA();
- void O_GETKRZYWA();
- void O_GETMOB();
- void O_INPUTLINE();
- void O_SETVOICED();
- void O_BREAK_POINT();
+ PrinceEngine *_vm;
+
+ byte *_code;
+ uint32 _codeSize;
+ uint32 _currentInstruction;
+ uint16 _lastOpcode;
+ uint32 _lastInstruction;
+ byte _result;
+ int16 _flags[2000];
+ bool _opcodeNF;
+
+ // Stack
+ static const uint32 _STACK_SIZE = 500;
+ uint32 _stack[_STACK_SIZE];
+ uint8 _stacktop;
+ uint8 _savedStacktop;
+
+ const byte * _string;
+
+ // Helper functions
+ void checkPC(uint32 address);
+ uint8 getCodeByte(uint32 address);
+ uint8 readScript8bits();
+ uint16 readScript16bits();
+ uint32 readScript32bits();
+ uint16 readScript8or16bits();
+ void debugScript(const char *s, ...);
+
+ typedef void (Script::*OpcodeFunc)();
+ static OpcodeFunc _opcodes[];
+
+ void O_WAITFOREVER();
+ void O_BLACKPALETTE();
+ void O_SETUPPALETTE();
+ void O_INITROOM();
+ void O_SETSAMPLE();
+ void O_FREESAMPLE();
+ void O_PLAYSAMPLE();
+ void O_PUTOBJECT();
+ void O_REMOBJECT();
+ void O_SHOWANIM();
+ void O_CHECKANIMEND();
+ void O_FREEANIM();
+ void O_CHECKANIMFRAME();
+ void O_PUTBACKANIM();
+ void O_REMBACKANIM();
+ void O_CHECKBACKANIMFRAME();
+ void O_FREEALLSAMPLES();
+ void O_SETMUSIC();
+ void O_STOPMUSIC();
+ void O__WAIT();
+ void O_UPDATEOFF();
+ void O_UPDATEON();
+ void O_UPDATE ();
+ void O_CLS();
+ void O__CALL();
+ void O_RETURN();
+ void O_GO();
+ void O_BACKANIMUPDATEOFF();
+ void O_BACKANIMUPDATEON();
+ void O_CHANGECURSOR();
+ void O_CHANGEANIMTYPE();
+ void O__SETFLAG();
+ void O_COMPARE();
+ void O_JUMPZ();
+ void O_JUMPNZ();
+ void O_EXIT();
+ void O_ADDFLAG();
+ void O_TALKANIM();
+ void O_SUBFLAG();
+ void O_SETSTRING();
+ void O_ANDFLAG();
+ void O_GETMOBDATA();
+ void O_ORFLAG();
+ void O_SETMOBDATA();
+ void O_XORFLAG();
+ void O_GETMOBTEXT();
+ void O_MOVEHERO();
+ void O_WALKHERO();
+ void O_SETHERO();
+ void O_HEROOFF();
+ void O_HEROON();
+ void O_CLSTEXT();
+ void O_CALLTABLE();
+ void O_CHANGEMOB();
+ void O_ADDINV();
+ void O_REMINV();
+ void O_REPINV();
+ void O_OBSOLETE_GETACTION();
+ void O_ADDWALKAREA();
+ void O_REMWALKAREA();
+ void O_RESTOREWALKAREA();
+ void O_WAITFRAME();
+ void O_SETFRAME();
+ void O_RUNACTION();
+ void O_COMPAREHI();
+ void O_COMPARELO();
+ void O_PRELOADSET();
+ void O_FREEPRELOAD();
+ void O_CHECKINV();
+ void O_TALKHERO();
+ void O_WAITTEXT();
+ void O_SETHEROANIM();
+ void O_WAITHEROANIM();
+ void O_GETHERODATA();
+ void O_GETMOUSEBUTTON();
+ void O_CHANGEFRAMES();
+ void O_CHANGEBACKFRAMES();
+ void O_GETBACKANIMDATA();
+ void O_GETANIMDATA();
+ void O_SETBGCODE();
+ void O_SETBACKFRAME();
+ void O_GETRND();
+ void O_TALKBACKANIM();
+ void O_LOADPATH();
+ void O_GETCHAR();
+ void O_SETDFLAG();
+ void O_CALLDFLAG();
+ void O_PRINTAT();
+ void O_ZOOMIN();
+ void O_ZOOMOUT();
+ void O_SETSTRINGOFFSET();
+ void O_GETOBJDATA();
+ void O_SETOBJDATA();
+ void O_SWAPOBJECTS();
+ void O_CHANGEHEROSET();
+ void O_ADDSTRING();
+ void O_SUBSTRING();
+ void O_INITDIALOG();
+ void O_ENABLEDIALOGOPT();
+ void O_DISABLEDIALOGOPT();
+ void O_SHOWDIALOGBOX();
+ void O_STOPSAMPLE();
+ void O_BACKANIMRANGE();
+ void O_CLEARPATH();
+ void O_SETPATH();
+ void O_GETHEROX();
+ void O_GETHEROY();
+ void O_GETHEROD();
+ void O_PUSHSTRING();
+ void O_POPSTRING();
+ void O_SETFGCODE();
+ void O_STOPHERO();
+ void O_ANIMUPDATEOFF();
+ void O_ANIMUPDATEON();
+ void O_FREECURSOR();
+ void O_ADDINVQUIET();
+ void O_RUNHERO();
+ void O_SETBACKANIMDATA();
+ void O_VIEWFLC();
+ void O_CHECKFLCFRAME();
+ void O_CHECKFLCEND();
+ void O_FREEFLC();
+ void O_TALKHEROSTOP();
+ void O_HEROCOLOR();
+ void O_GRABMAPA();
+ void O_ENABLENAK();
+ void O_DISABLENAK();
+ void O_GETMOBNAME();
+ void O_SWAPINVENTORY();
+ void O_CLEARINVENTORY();
+ void O_SKIPTEXT();
+ void O_SETVOICEH();
+ void O_SETVOICEA();
+ void O_SETVOICEB();
+ void O_SETVOICEC();
+ void O_VIEWFLCLOOP();
+ void O_FLCSPEED();
+ void O_OPENINVENTORY();
+ void O_KRZYWA();
+ void O_GETKRZYWA();
+ void O_GETMOB();
+ void O_INPUTLINE();
+ void O_SETVOICED();
+ void O_BREAK_POINT();
};
}
#endif
+
+/* vim: set tabstop=4 noexpandtab: */