diff options
Diffstat (limited to 'scumm/script_v5.cpp')
-rw-r--r-- | scumm/script_v5.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index 9fab799e60..c5f3c95fa6 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -1461,12 +1461,7 @@ void Scumm_v5::o5_putActorInRoom() { int room = getVarOrDirectByte(0x40); a = derefActor(act, "o5_putActorInRoom"); - - if (room == 0 && a->room != _currentRoom && a->room != room && _currentRoom != room) { - warning ("o5_putActorInRoom (%d [%d], %d) ignored", act, a->room, room); - return; - } - + if (a->visible && _currentRoom != room && VAR(VAR_TALK_ACTOR) == a->number) { clearMsgQueue(); } @@ -1529,10 +1524,16 @@ void Scumm_v5::o5_resourceRoutines() { ensureResourceLoaded(rtRoom, resid); break; + case 8: // nuke room + if (resid == _currentRoom) { + warning ("Nuking current room %d - exit script called early", resid); + runExitScript(); + _currentRoom = 0; + } + // Fall through case 5: // nuke script case 6: // nuke sound case 7: // nuke costume - case 8: // nuke room if (_gameId == GID_ZAK256) warning("o5_resourceRoutines %d should not occur in Zak256", op); else |