diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/hopkins/script.cpp | 117 |
1 files changed, 58 insertions, 59 deletions
diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp index 5bc289095d..ba7954ba5e 100644 --- a/engines/hopkins/script.cpp +++ b/engines/hopkins/script.cpp @@ -48,7 +48,6 @@ 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,70 +197,70 @@ int ScriptManager::handleOpcode(const byte *dataP) { opcodeType = 1; 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); - _vm->_objectsMan->_startSpriteIndex = dataP[5]; - if (_vm->_objectsMan->_changeHeadFl) { - if (_vm->_globals->_saveData->_data[svField354] == 1 - && _vm->_globals->_saveData->_cloneHopkins._pos.x && _vm->_globals->_saveData->_cloneHopkins._pos.y - && _vm->_globals->_saveData->_cloneHopkins._startSpriteIndex && _vm->_globals->_saveData->_cloneHopkins._location) { - - _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_cloneHopkins._pos; - _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_cloneHopkins._startSpriteIndex; - } - if (_vm->_globals->_saveData->_data[svField356] == 1 - && _vm->_globals->_saveData->_samantha._pos.x && _vm->_globals->_saveData->_samantha._pos.y - && _vm->_globals->_saveData->_samantha._startSpriteIndex && _vm->_globals->_saveData->_samantha._location) { - _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_samantha._pos; - _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_samantha._startSpriteIndex; - } - if (_vm->_globals->_saveData->_data[svField357] == 1 - && _vm->_globals->_saveData->_realHopkins._pos.x && _vm->_globals->_saveData->_realHopkins._pos.y - && _vm->_globals->_saveData->_realHopkins._startSpriteIndex && _vm->_globals->_saveData->_realHopkins._location) { - _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_realHopkins._pos; - _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_realHopkins._startSpriteIndex; - } + 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); + _vm->_objectsMan->_startSpriteIndex = dataP[5]; + if (_vm->_objectsMan->_changeHeadFl) { + if (_vm->_globals->_saveData->_data[svField354] == 1 + && _vm->_globals->_saveData->_cloneHopkins._pos.x && _vm->_globals->_saveData->_cloneHopkins._pos.y + && _vm->_globals->_saveData->_cloneHopkins._startSpriteIndex && _vm->_globals->_saveData->_cloneHopkins._location) { + + _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_cloneHopkins._pos; + _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_cloneHopkins._startSpriteIndex; } if (_vm->_globals->_saveData->_data[svField356] == 1 - && _vm->_globals->_saveData->_realHopkins._location == _vm->_globals->_screenId) { - _vm->_objectsMan->addStaticSprite( - _vm->_objectsMan->_headSprites, - _vm->_globals->_saveData->_realHopkins._pos, - 1, - 2, - _vm->_globals->_saveData->_realHopkins._zoomFactor, - false, - 34, - 190); - _vm->_objectsMan->animateSprite(1); - _vm->_objectsMan->_twoCharactersFl = true; + && _vm->_globals->_saveData->_samantha._pos.x && _vm->_globals->_saveData->_samantha._pos.y + && _vm->_globals->_saveData->_samantha._startSpriteIndex && _vm->_globals->_saveData->_samantha._location) { + _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_samantha._pos; + _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_samantha._startSpriteIndex; } if (_vm->_globals->_saveData->_data[svField357] == 1 - && _vm->_globals->_saveData->_data[svField355] == 1 - && _vm->_globals->_saveData->_samantha._location == _vm->_globals->_screenId) { - _vm->_objectsMan->addStaticSprite( - _vm->_objectsMan->_headSprites, - _vm->_globals->_saveData->_samantha._pos, - 1, - 3, - _vm->_globals->_saveData->_samantha._zoomFactor, - false, - 20, - 127); - _vm->_objectsMan->animateSprite(1); - _vm->_objectsMan->_twoCharactersFl = true; + && _vm->_globals->_saveData->_realHopkins._pos.x && _vm->_globals->_saveData->_realHopkins._pos.y + && _vm->_globals->_saveData->_realHopkins._startSpriteIndex && _vm->_globals->_saveData->_realHopkins._location) { + _vm->_objectsMan->_characterPos = _vm->_globals->_saveData->_realHopkins._pos; + _vm->_objectsMan->_startSpriteIndex = _vm->_globals->_saveData->_realHopkins._startSpriteIndex; } } - opcodeType = 1; - _vm->_objectsMan->_changeHeadFl = false; + if (_vm->_globals->_saveData->_data[svField356] == 1 + && _vm->_globals->_saveData->_realHopkins._location == _vm->_globals->_screenId) { + _vm->_objectsMan->addStaticSprite( + _vm->_objectsMan->_headSprites, + _vm->_globals->_saveData->_realHopkins._pos, + 1, + 2, + _vm->_globals->_saveData->_realHopkins._zoomFactor, + false, + 34, + 190); + _vm->_objectsMan->animateSprite(1); + _vm->_objectsMan->_twoCharactersFl = true; + } + if (_vm->_globals->_saveData->_data[svField357] == 1 + && _vm->_globals->_saveData->_data[svField355] == 1 + && _vm->_globals->_saveData->_samantha._location == _vm->_globals->_screenId) { + _vm->_objectsMan->addStaticSprite( + _vm->_objectsMan->_headSprites, + _vm->_globals->_saveData->_samantha._pos, + 1, + 3, + _vm->_globals->_saveData->_samantha._zoomFactor, + false, + 20, + 127); + _vm->_objectsMan->animateSprite(1); + _vm->_objectsMan->_twoCharactersFl = true; + } + } + opcodeType = 1; + _vm->_objectsMan->_changeHeadFl = false; break; case MKTAG24('S', 'T', 'E'): if (!_vm->_objectsMan->_disableFl) { |