diff options
author | Kamil Zbróg | 2013-10-14 02:31:26 +0100 |
---|---|---|
committer | Kamil Zbróg | 2013-10-14 02:31:26 +0100 |
commit | e63b902def40e38e9b5163894adad9017e4fe3cf (patch) | |
tree | de6dda5faf0a1751926195f9766114919ef74685 | |
parent | 30ad6df5fccbfcd1097d498e8dc01965e4e5cb2f (diff) | |
download | scummvm-rg350-e63b902def40e38e9b5163894adad9017e4fe3cf.tar.gz scummvm-rg350-e63b902def40e38e9b5163894adad9017e4fe3cf.tar.bz2 scummvm-rg350-e63b902def40e38e9b5163894adad9017e4fe3cf.zip |
PRINCE: some opcodes in script added
-rw-r--r-- | engines/prince/font.cpp | 2 | ||||
-rw-r--r-- | engines/prince/font.h | 2 | ||||
-rw-r--r-- | engines/prince/mhwanh.cpp | 7 | ||||
-rw-r--r-- | engines/prince/prince.cpp | 31 | ||||
-rw-r--r-- | engines/prince/prince.h | 2 | ||||
-rw-r--r-- | engines/prince/script.cpp | 366 | ||||
-rw-r--r-- | engines/prince/script.h | 336 |
7 files changed, 712 insertions, 34 deletions
diff --git a/engines/prince/font.cpp b/engines/prince/font.cpp index 8d812c4d15..e72d73e61a 100644 --- a/engines/prince/font.cpp +++ b/engines/prince/font.cpp @@ -35,7 +35,7 @@ Font::Font() { } Font::~Font() { - delete _fontData; + delete [] _fontData; } bool Font::load(Common::SeekableReadStream &stream) { diff --git a/engines/prince/font.h b/engines/prince/font.h index 0bffcf601b..ceae67df85 100644 --- a/engines/prince/font.h +++ b/engines/prince/font.h @@ -25,7 +25,7 @@ #include "graphics/font.h" namespace Graphics { - class Surface; + struct Surface; } namespace Common { diff --git a/engines/prince/mhwanh.cpp b/engines/prince/mhwanh.cpp index 0847220a70..4240ed4097 100644 --- a/engines/prince/mhwanh.cpp +++ b/engines/prince/mhwanh.cpp @@ -29,7 +29,7 @@ namespace Prince { MhwanhDecoder::MhwanhDecoder() - : _surface(0), _palette(0), _paletteColorCount(0) { + : _surface(NULL), _palette(0), _paletteColorCount(0) { } MhwanhDecoder::~MhwanhDecoder() { @@ -39,7 +39,7 @@ MhwanhDecoder::~MhwanhDecoder() { void MhwanhDecoder::destroy() { if (_surface) { _surface->free(); - _surface = 0; + delete _surface; _surface = 0; } delete [] _palette; _palette = 0; @@ -47,6 +47,7 @@ void MhwanhDecoder::destroy() { } bool MhwanhDecoder::loadStream(Common::SeekableReadStream &stream) { + destroy(); _paletteColorCount = 256; stream.seek(0); stream.skip(0x20); @@ -61,7 +62,7 @@ bool MhwanhDecoder::loadStream(Common::SeekableReadStream &stream) { _surface = new Graphics::Surface(); _surface->create(640, 480, Graphics::PixelFormat::createFormatCLUT8()); for (int h = 0; h < 480; ++h) { - stream.read(_surface->getBasePtr(0, h - 1), 640); + stream.read(_surface->getBasePtr(0, h), 640); } return true; diff --git a/engines/prince/prince.cpp b/engines/prince/prince.cpp index 9cd7056a41..c82dfd6723 100644 --- a/engines/prince/prince.cpp +++ b/engines/prince/prince.cpp @@ -47,10 +47,12 @@ #include "prince/font.h"
#include "prince/mhwanh.h"
#include "prince/graphics.h"
+#include "prince/script.h"
namespace Prince {
-PrinceEngine::PrinceEngine(OSystem *syst, const PrinceGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) {
+PrinceEngine::PrinceEngine(OSystem *syst, const PrinceGameDescription *gameDesc) :
+ Engine(syst), _gameDescription(gameDesc), _graph(NULL), _script(NULL) {
_rnd = new Common::RandomSource("prince");
}
@@ -96,22 +98,33 @@ Common::Error PrinceEngine::run() { _system->getPaletteManager()->setPalette(roomBmp.getPalette(), 0, 256);
//font1.drawString(_frontScreen, "Hello World", 10, 10, 640, 1);
-
- MhwanhDecoder walizkaBmp;
+ //
+ _graph->_roomBackground = roomBmp.getSurface();
+#if 1
+ MhwanhDecoder *walizkaBmp = new MhwanhDecoder();
if (walizka) {
debug("Loading walizka");
- if (walizkaBmp.loadStream(*walizka)) {
- _graph->_roomBackground = walizkaBmp.getSurface();
- _graph->setPalette(walizkaBmp.getPalette());
+ if (walizkaBmp->loadStream(*walizka)) {
+ _graph->_roomBackground = walizkaBmp->getSurface();
+ _graph->setPalette(walizkaBmp->getPalette());
}
}
-
+#endif
_graph->change();
+
+ Common::SeekableReadStream * skryptStream = SearchMan.createReadStreamForMember("skrypt.dat");
+ if (!skryptStream)
+ return Common::kPathNotFile;
+ _script = new Script(this);
+ _script->loadFromStream(*skryptStream);
+
+ delete skryptStream;
mainLoop();
+ delete room;
+ delete walizkaBmp;
}
- delete room;
return Common::kNoError;
}
@@ -145,6 +158,8 @@ void PrinceEngine::mainLoop() { if (shouldQuit())
return;
+ _script->step();
+
_graph->update();
_system->delayMillis(40);
diff --git a/engines/prince/prince.h b/engines/prince/prince.h index 0c79d36ca4..966cee982e 100644 --- a/engines/prince/prince.h +++ b/engines/prince/prince.h @@ -41,6 +41,7 @@ struct PrinceGameDescription; class PrinceEngine;
class GraphicsMan;
+class Script;
class PrinceEngine : public Engine {
protected:
@@ -62,6 +63,7 @@ public: private:
Common::RandomSource *_rnd;
GraphicsMan *_graph;
+ Script *_script;
void mainLoop();
diff --git a/engines/prince/script.cpp b/engines/prince/script.cpp index da1dd4cf28..611b75152f 100644 --- a/engines/prince/script.cpp +++ b/engines/prince/script.cpp @@ -1,15 +1,19 @@ #include "prince/script.h" +#include "common/debug.h" #include "common/debug-channels.h" #include "common/stream.h" namespace Prince { +static const uint16 NUM_OPCODES = 144; + Script::Script(PrinceEngine *vm) : _code(NULL), _stacktop(0), _vm(vm), _random("GroovieScripts") { } Script::~Script() { + delete[] _code; } bool Script::loadFromStream(Common::SeekableReadStream &stream) { @@ -21,12 +25,43 @@ bool Script::loadFromStream(Common::SeekableReadStream &stream) { stream.read(_code, _codeSize); // Initialize the script - _currentInstruction = 0; + _currentInstruction = READ_LE_UINT32(_code + 4); return true; } +void Script::debugScript(const char *s, ...) { + char buf[STRINGBUFLEN]; + va_list va; + + va_start(va, s); + vsnprintf(buf, STRINGBUFLEN, s, va); + va_end(va); + + Common::String str = Common::String::format("@0x%04X: ", _lastInstruction); + str += Common::String::format("op 0x%02X: ", _lastOpcode); + debug("%s %s", str.c_str(), buf); +} + void Script::step() { + _lastInstruction = _currentInstruction; + // Prepare the base debug string + Common::String dstr = Common::String::format("@0x%04X: ", _currentInstruction); + + // Get the current opcode + _lastOpcode = readScript16bits(); + + dstr += Common::String::format("op 0x%02X: ", _lastOpcode); + + if (_lastOpcode > NUM_OPCODES) + error("Trying to execute unknown opcode %s", dstr.c_str()); + + + //debug("%s", _debugString.c_str()); + + // Execute the current opcode + OpcodeFunc op = _opcodes[_lastOpcode]; + (this->*op)(); } uint8 Script::getCodeByte(uint16 address) { @@ -54,5 +89,334 @@ uint32 Script::readScript32bits() { return lower | (upper << 16); } +void Script::O_WAITFOREVER() { + debugScript("O_WAITFOREVER"); +} +void Script::O_BLACKPALETTE() { + debugScript("O_BLACKPALETTE"); +} +void Script::O_SETUPPALETTE() { + debugScript("O_SETUPPALETTE"); +} +void Script::O_INITROOM() { + uint16 roomId = readScript16bits(); + debugScript("O_INITROOM %d", roomId); +} +void Script::O_SETSAMPLE() {} +void Script::O_FREESAMPLE() {} +void Script::O_PLAYSAMPLE() {} +void Script::O_PUTOBJECT() {} +void Script::O_REMOBJECT() {} +void Script::O_SHOWANIM() {} +void Script::O_CHECKANIMEND() {} +void Script::O_FREEANIM() {} +void Script::O_CHECKANIMFRAME() {} +void Script::O_PUTBACKANIM() {} +void Script::O_REMBACKANIM() {} +void Script::O_CHECKBACKANIMFRAME() {} +void Script::O_FREEALLSAMPLES() {} +void Script::O_SETMUSIC() {} +void Script::O_STOPMUSIC() {} +void Script::O__WAIT() {} +void Script::O_UPDATEOFF() {} +void Script::O_UPDATEON() {} +void Script::O_UPDATE () {} +void Script::O_CLS() {} +void Script::O__CALL() { + int32 address = readScript32bits(); + _stack[_stacktop] = _currentInstruction; + _stacktop++; + _currentInstruction += address - 4; + debugScript("O__CALL 0x%04X", _currentInstruction); +} +void Script::O_RETURN() { + // Get the return address + if (_stacktop > 0) { + _stacktop--; + _currentInstruction = _stack[_stacktop]; + } else { + error("Return: Stack is empty"); + } +} +void Script::O_GO() { + uint32 opPC = readScript32bits(); + debugScript("O_GO 0x%04X", opPC); + _currentInstruction += opPC - 4; +} +void Script::O_BACKANIMUPDATEOFF() {} +void Script::O_BACKANIMUPDATEON() {} +void Script::O_CHANGECURSOR() { + uint16 cursorId = readScript16bits(); + debugScript("O_CHANGECURSOR %x", cursorId); +} +void Script::O_CHANGEANIMTYPE() {} +void Script::O__SETFLAG() { + uint16 flagId = readScript16bits(); + uint16 value = readScript16bits(); + debugScript("O__SETFLAG 0x%04X %d", flagId, value); +} +void Script::O_COMPARE() {} +void Script::O_JUMPZ() {} +void Script::O_JUMPNZ() {} +void Script::O_EXIT() {} +void Script::O_ADDFLAG() {} +void Script::O_TALKANIM() {} +void Script::O_SUBFLAG() {} +void Script::O_SETSTRING() {} +void Script::O_ANDFLAG() {} +void Script::O_GETMOBDATA() {} +void Script::O_ORFLAG() {} +void Script::O_SETMOBDATA() {} +void Script::O_XORFLAG() {} +void Script::O_GETMOBTEXT() {} +void Script::O_MOVEHERO() {} +void Script::O_WALKHERO() {} +void Script::O_SETHERO() {} +void Script::O_HEROOFF() { + uint16 heroId = readScript16bits(); + debugScript("O_HEROOFF %d", heroId); +} +void Script::O_HEROON() {} +void Script::O_CLSTEXT() {} +void Script::O_CALLTABLE() {} +void Script::O_CHANGEMOB() {} +void Script::O_ADDINV() {} +void Script::O_REMINV() {} +void Script::O_REPINV() {} +void Script::O_OBSOLETE_GETACTION() {} +void Script::O_ADDWALKAREA() {} +void Script::O_REMWALKAREA() {} +void Script::O_RESTOREWALKAREA() {} +void Script::O_WAITFRAME() {} +void Script::O_SETFRAME() {} +void Script::O_RUNACTION() {} +void Script::O_COMPAREHI() {} +void Script::O_COMPARELO() {} +void Script::O_PRELOADSET() {} +void Script::O_FREEPRELOAD() {} +void Script::O_CHECKINV() {} +void Script::O_TALKHERO() {} +void Script::O_WAITTEXT() {} +void Script::O_SETHEROANIM() {} +void Script::O_WAITHEROANIM() {} +void Script::O_GETHERODATA() {} +void Script::O_GETMOUSEBUTTON() {} +void Script::O_CHANGEFRAMES() {} +void Script::O_CHANGEBACKFRAMES() {} +void Script::O_GETBACKANIMDATA() {} +void Script::O_GETANIMDATA() {} +void Script::O_SETBGCODE() {} +void Script::O_SETBACKFRAME() {} +void Script::O_GETRND() {} +void Script::O_TALKBACKANIM() {} +void Script::O_LOADPATH() {} +void Script::O_GETCHAR() {} +void Script::O_SETDFLAG() {} +void Script::O_CALLDFLAG() {} +void Script::O_PRINTAT() {} +void Script::O_ZOOMIN() {} +void Script::O_ZOOMOUT() {} +void Script::O_SETSTRINGOFFSET() {} +void Script::O_GETOBJDATA() {} +void Script::O_SETOBJDATA() {} +void Script::O_SWAPOBJECTS() {} +void Script::O_CHANGEHEROSET() {} +void Script::O_ADDSTRING() {} +void Script::O_SUBSTRING() {} +void Script::O_INITDIALOG() {} +void Script::O_ENABLEDIALOGOPT() {} +void Script::O_DISABLEDIALOGOPT() {} +void Script::O_SHOWDIALOGBOX() {} +void Script::O_STOPSAMPLE() {} +void Script::O_BACKANIMRANGE() {} +void Script::O_CLEARPATH() {} +void Script::O_SETPATH() {} +void Script::O_GETHEROX() {} +void Script::O_GETHEROY() {} +void Script::O_GETHEROD() {} +void Script::O_PUSHSTRING() {} +void Script::O_POPSTRING() {} +void Script::O_SETFGCODE() {} +void Script::O_STOPHERO() {} +void Script::O_ANIMUPDATEOFF() {} +void Script::O_ANIMUPDATEON() {} +void Script::O_FREECURSOR() {} +void Script::O_ADDINVQUIET() {} +void Script::O_RUNHERO() {} +void Script::O_SETBACKANIMDATA() {} +void Script::O_VIEWFLC() {} +void Script::O_CHECKFLCFRAME() {} +void Script::O_CHECKFLCEND() {} +void Script::O_FREEFLC() {} +void Script::O_TALKHEROSTOP() {} +void Script::O_HEROCOLOR() {} +void Script::O_GRABMAPA() {} +void Script::O_ENABLENAK() {} +void Script::O_DISABLENAK() {} +void Script::O_GETMOBNAME() {} +void Script::O_SWAPINVENTORY() {} +void Script::O_CLEARINVENTORY() {} +void Script::O_SKIPTEXT() {} +void Script::O_SETVOICEH() {} +void Script::O_SETVOICEA() {} +void Script::O_SETVOICEB() {} +void Script::O_SETVOICEC() {} +void Script::O_VIEWFLCLOOP() {} +void Script::O_FLCSPEED() {} +void Script::O_OPENINVENTORY() {} +void Script::O_KRZYWA() {} +void Script::O_GETKRZYWA() {} +void Script::O_GETMOB() {} +void Script::O_INPUTLINE() {} +void Script::O_SETVOICED() {} +void Script::O_BREAK_POINT() {} + +Script::OpcodeFunc Script::_opcodes[NUM_OPCODES] = { + &Script::O_WAITFOREVER, + &Script::O_BLACKPALETTE, + &Script::O_SETUPPALETTE, + &Script::O_INITROOM, + &Script::O_SETSAMPLE, + &Script::O_FREESAMPLE, + &Script::O_PLAYSAMPLE, + &Script::O_PUTOBJECT, + &Script::O_REMOBJECT, + &Script::O_SHOWANIM, + &Script::O_CHECKANIMEND, + &Script::O_FREEANIM, + &Script::O_CHECKANIMFRAME, + &Script::O_PUTBACKANIM, + &Script::O_REMBACKANIM, + &Script::O_CHECKBACKANIMFRAME, + &Script::O_FREEALLSAMPLES, + &Script::O_SETMUSIC, + &Script::O_STOPMUSIC, + &Script::O__WAIT, + &Script::O_UPDATEOFF, + &Script::O_UPDATEON, + &Script::O_UPDATE , + &Script::O_CLS, + &Script::O__CALL, + &Script::O_RETURN, + &Script::O_GO, + &Script::O_BACKANIMUPDATEOFF, + &Script::O_BACKANIMUPDATEON, + &Script::O_CHANGECURSOR, + &Script::O_CHANGEANIMTYPE, + &Script::O__SETFLAG, + &Script::O_COMPARE, + &Script::O_JUMPZ, + &Script::O_JUMPNZ, + &Script::O_EXIT, + &Script::O_ADDFLAG, + &Script::O_TALKANIM, + &Script::O_SUBFLAG, + &Script::O_SETSTRING, + &Script::O_ANDFLAG, + &Script::O_GETMOBDATA, + &Script::O_ORFLAG, + &Script::O_SETMOBDATA, + &Script::O_XORFLAG, + &Script::O_GETMOBTEXT, + &Script::O_MOVEHERO, + &Script::O_WALKHERO, + &Script::O_SETHERO, + &Script::O_HEROOFF, + &Script::O_HEROON, + &Script::O_CLSTEXT, + &Script::O_CALLTABLE, + &Script::O_CHANGEMOB, + &Script::O_ADDINV, + &Script::O_REMINV, + &Script::O_REPINV, + &Script::O_OBSOLETE_GETACTION, + &Script::O_ADDWALKAREA, + &Script::O_REMWALKAREA, + &Script::O_RESTOREWALKAREA, + &Script::O_WAITFRAME, + &Script::O_SETFRAME, + &Script::O_RUNACTION, + &Script::O_COMPAREHI, + &Script::O_COMPARELO, + &Script::O_PRELOADSET, + &Script::O_FREEPRELOAD, + &Script::O_CHECKINV, + &Script::O_TALKHERO, + &Script::O_WAITTEXT, + &Script::O_SETHEROANIM, + &Script::O_WAITHEROANIM, + &Script::O_GETHERODATA, + &Script::O_GETMOUSEBUTTON, + &Script::O_CHANGEFRAMES, + &Script::O_CHANGEBACKFRAMES, + &Script::O_GETBACKANIMDATA, + &Script::O_GETANIMDATA, + &Script::O_SETBGCODE, + &Script::O_SETBACKFRAME, + &Script::O_GETRND, + &Script::O_TALKBACKANIM, + &Script::O_LOADPATH, + &Script::O_GETCHAR, + &Script::O_SETDFLAG, + &Script::O_CALLDFLAG, + &Script::O_PRINTAT, + &Script::O_ZOOMIN, + &Script::O_ZOOMOUT, + &Script::O_SETSTRINGOFFSET, + &Script::O_GETOBJDATA, + &Script::O_SETOBJDATA, + &Script::O_SWAPOBJECTS, + &Script::O_CHANGEHEROSET, + &Script::O_ADDSTRING, + &Script::O_SUBSTRING, + &Script::O_INITDIALOG, + &Script::O_ENABLEDIALOGOPT, + &Script::O_DISABLEDIALOGOPT, + &Script::O_SHOWDIALOGBOX, + &Script::O_STOPSAMPLE, + &Script::O_BACKANIMRANGE, + &Script::O_CLEARPATH, + &Script::O_SETPATH, + &Script::O_GETHEROX, + &Script::O_GETHEROY, + &Script::O_GETHEROD, + &Script::O_PUSHSTRING, + &Script::O_POPSTRING, + &Script::O_SETFGCODE, + &Script::O_STOPHERO, + &Script::O_ANIMUPDATEOFF, + &Script::O_ANIMUPDATEON, + &Script::O_FREECURSOR, + &Script::O_ADDINVQUIET, + &Script::O_RUNHERO, + &Script::O_SETBACKANIMDATA, + &Script::O_VIEWFLC, + &Script::O_CHECKFLCFRAME, + &Script::O_CHECKFLCEND, + &Script::O_FREEFLC, + &Script::O_TALKHEROSTOP, + &Script::O_HEROCOLOR, + &Script::O_GRABMAPA, + &Script::O_ENABLENAK, + &Script::O_DISABLENAK, + &Script::O_GETMOBNAME, + &Script::O_SWAPINVENTORY, + &Script::O_CLEARINVENTORY, + &Script::O_SKIPTEXT, + &Script::O_SETVOICEH, + &Script::O_SETVOICEA, + &Script::O_SETVOICEB, + &Script::O_SETVOICEC, + &Script::O_VIEWFLCLOOP, + &Script::O_FLCSPEED, + &Script::O_OPENINVENTORY, + &Script::O_KRZYWA, + &Script::O_GETKRZYWA, + &Script::O_GETMOB, + &Script::O_INPUTLINE, + &Script::O_SETVOICED, + &Script::O_BREAK_POINT, +}; + } diff --git a/engines/prince/script.h b/engines/prince/script.h index 1365fb7ec5..93bac06433 100644 --- a/engines/prince/script.h +++ b/engines/prince/script.h @@ -46,26 +46,322 @@ public: private: PrinceEngine *_vm; - Common::RandomSource _random; - - byte *_code; - uint16 _codeSize; - uint16 _currentInstruction; - - // Stack - uint16 _stack[0x20]; - uint8 _stacktop; - uint8 _savedStacktop; - - // Helper functions - uint8 getCodeByte(uint16 address); - uint8 readScript8bits(); - uint16 readScript16bits(); - uint32 readScript32bits(); - uint16 readScript8or16bits(); - - typedef void (Script::*OpcodeFunc)(); - static OpcodeFunc _opcodes[]; + Common::RandomSource _random; + + byte *_code; + uint16 _codeSize; + uint32 _currentInstruction; + uint16 _lastOpcode; + uint32 _lastInstruction; + + // Stack + uint16 _stack[500]; + uint8 _stacktop; + uint8 _savedStacktop; + + // Helper functions + uint8 getCodeByte(uint16 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(); + + +#if 0 + O_WAITFOREVER ;00 + O_BLACKPALETTE ;01 + O_SETUPPALETTE ;02 + O_INITROOM ;03 + O_SETSAMPLE ;04 + O_FREESAMPLE ;05 + O_PLAYSAMPLE ;06 + O_PUTOBJECT ;07 + O_REMOBJECT ;08 + O_SHOWANIM ;09 + O_CHECKANIMEND ;10 + O_FREEANIM ;11 + O_CHECKANIMFRAME ;12 + O_PUTBACKANIM ;13 + O_REMBACKANIM ;14 + O_CHECKBACKANIMFRAME ;15 + O_FREEALLSAMPLES ;16 + O_SETMUSIC ;17 + O_STOPMUSIC ;18 + O__WAIT ;19 + O_UPDATEOFF ;20 + O_UPDATEON ;21 + O_UPDATE ;22 + O_CLS ;23 + O__CALL ;24 + O_RETURN ;25 + O_GO ;26 + O_BACKANIMUPDATEOFF ;27 + O_BACKANIMUPDATEON ;28 + O_CHANGECURSOR ;29 + O_CHANGEANIMTYPE ;30 + O__SETFLAG ;31 + O_COMPARE ;32 + O_JUMPZ ;33 + O_JUMPNZ ;34 + O_EXIT ;35 + O_ADDFLAG ;36 + O_TALKANIM ;37 + O_SUBFLAG ;38 + O_SETSTRING ;39 + O_ANDFLAG ;40 + O_GETMOBDATA ;41 + O_ORFLAG ;42 + O_SETMOBDATA ;43 + O_XORFLAG ;44 + O_GETMOBTEXT ;45 + O_MOVEHERO ;46 + O_WALKHERO ;47 + O_SETHERO ;48 + O_HEROOFF ;49 + O_HEROON ;50 + O_CLSTEXT ;51 + O_CALLTABLE ;52 + O_CHANGEMOB ;53 + O_ADDINV ;54 + O_REMINV ;55 + O_REPINV ;56 + O_OBSOLETE_GETACTION ;57 + O_ADDWALKAREA ;58 + O_REMWALKAREA ;59 + O_RESTOREWALKAREA ;60 + O_WAITFRAME ;61 + O_SETFRAME ;62 + O_RUNACTION ;63 + O_COMPAREHI ;64 + O_COMPARELO ;65 + O_PRELOADSET ;66 + O_FREEPRELOAD ;67 + O_CHECKINV ;68 + O_TALKHERO ;69 + O_WAITTEXT ;70 + O_SETHEROANIM ;71 + O_WAITHEROANIM ;72 + O_GETHERODATA ;73 + O_GETMOUSEBUTTON ;74 + O_CHANGEFRAMES ;75 + O_CHANGEBACKFRAMES ;76 + O_GETBACKANIMDATA ;77 + O_GETANIMDATA ;78 + O_SETBGCODE ;79 + O_SETBACKFRAME ;80 + O_GETRND ;81 + O_TALKBACKANIM ;82 + O_LOADPATH ;83 + O_GETCHAR ;84 + O_SETDFLAG ;85 + O_CALLDFLAG ;86 + O_PRINTAT ;87 + O_ZOOMIN ;88 + O_ZOOMOUT ;89 + O_SETSTRINGOFFSET ;90 + O_GETOBJDATA ;91 + O_SETOBJDATA ;92 + O_SWAPOBJECTS ;93 + O_CHANGEHEROSET ;94 + O_ADDSTRING ;95 + O_SUBSTRING ;96 + O_INITDIALOG ;97 + O_ENABLEDIALOGOPT ;98 + O_DISABLEDIALOGOPT ;99 + O_SHOWDIALOGBOX ;100 + O_STOPSAMPLE ;101 + O_BACKANIMRANGE ;102 + O_CLEARPATH ;103 + O_SETPATH ;104 + O_GETHEROX ;105 + O_GETHEROY ;106 + O_GETHEROD ;107 + O_PUSHSTRING ;108 + O_POPSTRING ;109 + O_SETFGCODE ;110 + O_STOPHERO ;111 + O_ANIMUPDATEOFF ;112 + O_ANIMUPDATEON ;113 + O_FREECURSOR ;114 + O_ADDINVQUIET ;115 + O_RUNHERO ;116 + O_SETBACKANIMDATA ;117 + O_VIEWFLC ;118 + O_CHECKFLCFRAME ;119 + O_CHECKFLCEND ;120 + O_FREEFLC ;121 + O_TALKHEROSTOP ;122 + O_HEROCOLOR ;123 + O_GRABMAPA ;124 + O_ENABLENAK ;125 + O_DISABLENAK ;126 + O_GETMOBNAME ;127 + O_SWAPINVENTORY ;128 + O_CLEARINVENTORY ;129 + O_SKIPTEXT ;130 + O_SETVOICEH ;131 + O_SETVOICEA ;132 + O_SETVOICEB ;133 + O_SETVOICEC ;134 + O_VIEWFLCLOOP ;135 + O_FLCSPEED ;136 + O_OPENINVENTORY ;137 + O_KRZYWA ;138 + O_GETKRZYWA ;139 + O_GETMOB ;140 + O_INPUTLINE ;141 + O_SETVOICED ;142 + O_BREAK_POINT ;143 +#endif }; } |