diff options
author | Strangerke | 2014-08-10 17:49:44 +0200 |
---|---|---|
committer | Strangerke | 2014-08-10 17:50:28 +0200 |
commit | 00f7a3404db0598429f6c733a15d766675624b36 (patch) | |
tree | 2fe32a21097350a4a998c431eaf89d2ea1cfa29a /engines/access | |
parent | cce0c2ff97878b2b0b8a87e25395c3ef98bc584e (diff) | |
download | scummvm-rg350-00f7a3404db0598429f6c733a15d766675624b36.tar.gz scummvm-rg350-00f7a3404db0598429f6c733a15d766675624b36.tar.bz2 scummvm-rg350-00f7a3404db0598429f6c733a15d766675624b36.zip |
ACCESS: Implement 3 more opcodes
Diffstat (limited to 'engines/access')
-rw-r--r-- | engines/access/access.cpp | 1 | ||||
-rw-r--r-- | engines/access/access.h | 1 | ||||
-rw-r--r-- | engines/access/scripts.cpp | 29 | ||||
-rw-r--r-- | engines/access/scripts.h | 6 |
4 files changed, 29 insertions, 8 deletions
diff --git a/engines/access/access.cpp b/engines/access/access.cpp index d0bc1a8846..dc9bf527eb 100644 --- a/engines/access/access.cpp +++ b/engines/access/access.cpp @@ -44,6 +44,7 @@ AccessEngine::AccessEngine(OSystem *syst, const AccessGameDescription *gameDesc) _sound = nullptr; _destIn = nullptr; + _current = nullptr; clearCellTable(); _pCount = 0; _selectCommand = 0; diff --git a/engines/access/access.h b/engines/access/access.h index c93a1b32e5..0733ab4bef 100644 --- a/engines/access/access.h +++ b/engines/access/access.h @@ -115,6 +115,7 @@ public: SoundManager *_sound; ASurface *_destIn; + ASurface *_current; ASurface _buffer1; ASurface _buffer2; byte *_objectsTable[100]; diff --git a/engines/access/scripts.cpp b/engines/access/scripts.cpp index fe53c675c2..2a825212fd 100644 --- a/engines/access/scripts.cpp +++ b/engines/access/scripts.cpp @@ -90,11 +90,11 @@ void Scripts::executeCommand(int commandIndex) { &Scripts::cmdSetInventory, &Scripts::cmdSetInventory, &Scripts::cmdCheckInventory, &Scripts::CMDSETTEX, &Scripts::CMDNEWROOM, &Scripts::CMDCONVERSE, &Scripts::CMDCHECKFRAME, &Scripts::cmdCheckAnim, &Scripts::CMDSND, - &Scripts::CMDRETNEG, &Scripts::cmdRetPos, &Scripts::cmdCheckLoc, + &Scripts::cmdRetNeg, &Scripts::cmdRetPos, &Scripts::cmdCheckLoc, &Scripts::cmdSetAnim, &Scripts::CMDDISPINV, &Scripts::CMDSETTIMER, &Scripts::CMDSETTIMER, &Scripts::CMDCHECKTIMER, &Scripts::CMDSETTRAVEL, &Scripts::CMDSETTRAVEL, &Scripts::CMDSETVID, &Scripts::CMDPLAYVID, - &Scripts::CMDPLOTIMAGE, &Scripts::CMDSETDISPLAY, &Scripts::CMDSETBUFFER, + &Scripts::cmdPlotImage, &Scripts::cmdSetDisplay, &Scripts::CMDSETBUFFER, &Scripts::CMDSETSCROLL, &Scripts::CMDSAVERECT, &Scripts::CMDSAVERECT, &Scripts::CMDSETBUFVID, &Scripts::CMDPLAYBUFVID, &Scripts::cmeRemoveLast, &Scripts::CMDSPECIAL, &Scripts::CMDSPECIAL, &Scripts::CMDSPECIAL, @@ -233,7 +233,11 @@ void Scripts::cmdCheckAnim() { } void Scripts::CMDSND() { } -void Scripts::CMDRETNEG() { } + +void Scripts::cmdRetNeg() { + _endFlag = true; + _returnCode = -1; +} void Scripts::cmdCheckLoc() { int minX = _data->readUint16LE(); @@ -262,8 +266,23 @@ void Scripts::CMDCHECKTIMER() { } void Scripts::CMDSETTRAVEL() { } void Scripts::CMDSETVID() { } void Scripts::CMDPLAYVID() { } -void Scripts::CMDPLOTIMAGE() { } -void Scripts::CMDSETDISPLAY() { } + +void Scripts::cmdPlotImage() { + _vm->_destIn = _vm->_current; + + int destX = _data->readUint16LE(); + int destY = _data->readUint16LE(); + int objId = _data->readUint16LE(); + int imgId = _data->readUint16LE(); + + _vm->_screen->plotImage(_vm->_objectsTable[objId], imgId, Common::Point(destX, destY)); +} + +void Scripts::cmdSetDisplay() { + _vm->_screen->setDisplayScan(); + _vm->_current = _vm->_screen; +} + void Scripts::CMDSETBUFFER() { } void Scripts::CMDSETSCROLL() { } void Scripts::CMDSAVERECT() { } diff --git a/engines/access/scripts.h b/engines/access/scripts.h index 79ae478cc9..0bdc746d78 100644 --- a/engines/access/scripts.h +++ b/engines/access/scripts.h @@ -69,7 +69,7 @@ protected: void CMDCHECKFRAME(); void cmdCheckAnim(); void CMDSND(); - void CMDRETNEG(); + void cmdRetNeg(); void cmdCheckLoc(); void cmdSetAnim(); void CMDDISPINV(); @@ -78,8 +78,8 @@ protected: void CMDSETTRAVEL(); void CMDSETVID(); void CMDPLAYVID(); - void CMDPLOTIMAGE(); - void CMDSETDISPLAY(); + void cmdPlotImage(); + void cmdSetDisplay(); void CMDSETBUFFER(); void CMDSETSCROLL(); void CMDSAVERECT(); |