aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2013-05-01 15:38:07 +0200
committerStrangerke2013-05-01 15:38:59 +0200
commitfad30af04566ac40c1b210100ed2a87a69c760c9 (patch)
treeb4dde0b88f4547d1a71814fc46859597ec347062
parentda9e27361a845f78c7fcf3b15c7fb47a53c726bf (diff)
downloadscummvm-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.cpp7
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);