diff options
author | Strangerke | 2013-05-01 15:38:07 +0200 |
---|---|---|
committer | Strangerke | 2013-05-01 15:38:59 +0200 |
commit | fad30af04566ac40c1b210100ed2a87a69c760c9 (patch) | |
tree | b4dde0b88f4547d1a71814fc46859597ec347062 | |
parent | da9e27361a845f78c7fcf3b15c7fb47a53c726bf (diff) | |
download | scummvm-rg350-fad30af04566ac40c1b210100ed2a87a69c760c9.tar.gz scummvm-rg350-fad30af04566ac40c1b210100ed2a87a69c760c9.tar.bz2 scummvm-rg350-fad30af04566ac40c1b210100ed2a87a69c760c9.zip |
HOPKINS: Fix bug#3612110 - Script bug in FBI lab
-rw-r--r-- | engines/hopkins/script.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp index 941f23442d..5bc289095d 100644 --- a/engines/hopkins/script.cpp +++ b/engines/hopkins/script.cpp @@ -48,6 +48,7 @@ int ScriptManager::handleOpcode(const byte *dataP) { int vbobFrameIndex = 0; uint32 signature24 = READ_BE_UINT24(&dataP[2]); + warning("%c%c%c", dataP[2], dataP[3], dataP[4]); switch (signature24) { case MKTAG24('T', 'X', 'T'): { vbobFrameIndex = dataP[6]; @@ -198,6 +199,12 @@ int ScriptManager::handleOpcode(const byte *dataP) { break; case MKTAG24('S', 'T', 'P'): if (!_vm->_objectsMan->_disableFl) { + // HACK: This piece of code is a replacement to the missing STE opcode when entering the FBI lab. + if (_vm->_globals->_curRoomNum == 10) { + _vm->_globals->_prevScreenId = _vm->_globals->_screenId; + _vm->_globals->_saveData->_data[svLastPrevScreenId] = _vm->_globals->_screenId; + _vm->_globals->_screenId = _vm->_globals->_saveData->_data[svLastScreenId] = 10; + } _vm->_objectsMan->_twoCharactersFl = false; _vm->_objectsMan->_characterPos.x = READ_LE_INT16(dataP + 6); _vm->_objectsMan->_characterPos.y = READ_LE_INT16(dataP + 8); |