diff options
author | James Brown | 2003-07-31 15:32:57 +0000 |
---|---|---|
committer | James Brown | 2003-07-31 15:32:57 +0000 |
commit | 636b8458b330d52339efd3081dd4843a0976aa81 (patch) | |
tree | 219673f20ec81ba4ce98fe4efc9ff909b6b54ad4 | |
parent | b11c3a6c0bfd75a4716e1ac17b355d3edcb2f705 (diff) | |
download | scummvm-rg350-636b8458b330d52339efd3081dd4843a0976aa81.tar.gz scummvm-rg350-636b8458b330d52339efd3081dd4843a0976aa81.tar.bz2 scummvm-rg350-636b8458b330d52339efd3081dd4843a0976aa81.zip |
Forward-port ZakV2 hacks from 0.5.0 branch
svn-id: r9332
-rw-r--r-- | scumm/script_v5.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index 4c5c602194..6f1458c900 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -1303,6 +1303,14 @@ void Scumm_v5::o5_loadRoom() { // and others. OTOH, it seems to cause a problem in newer games. if (!(_features & GF_SMALL_HEADER) || room != _currentRoom) startScene(room, 0, 0); + + // FIXME: Incredibly nasty evil hack to fix bug #770699 (During meeting + // with Guru, script 42 changes between room 0 and room 19 to create + // 'some time later' effects. On switching back to room 19, the camera + // reverts to 0,0 - Added for 0.5.0, should be fixed properly + if (_gameId == GID_ZAK && (vm.slot[_currentScript].number == 42) && (room == 19)) + setCameraAt(480, 0); + _fullRedraw = 1; } @@ -2130,6 +2138,16 @@ void Scumm_v5::o5_stopScript() { int script; script = getVarOrDirectByte(0x80); + + if ((_gameId == GID_ZAK) && (_roomResource == 7) && (vm.slot[_currentScript].number == 10001)) { + // FIXME: Nasty hack for bug #771499 + // Don't let the exit script for room 7 stop the buy script (24), + // switching to the number selection keypad (script 15) + if ((script == 24) && isScriptRunning(15)) + return; + } + + if (!script) stopObjectCode(); else |