diff options
Diffstat (limited to 'engines/agi/cycle.cpp')
-rw-r--r-- | engines/agi/cycle.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp index 4148306de2..d09a9501d6 100644 --- a/engines/agi/cycle.cpp +++ b/engines/agi/cycle.cpp @@ -377,19 +377,22 @@ int AgiEngine::playGame() { // Now check, if we got a time delay overwrite entry for current room if (appleIIgsDelayOverwrite->roomTable) { byte curRoom = getVar(VM_VAR_CURRENT_ROOM); + int16 curPictureNr = _picture->getResourceNr(); appleIIgsDelayRoomOverwrite = appleIIgsDelayOverwrite->roomTable; while (appleIIgsDelayRoomOverwrite->fromRoom >= 0) { if ((appleIIgsDelayRoomOverwrite->fromRoom <= curRoom) && (appleIIgsDelayRoomOverwrite->toRoom >= curRoom)) { - if (appleIIgsDelayRoomOverwrite->onlyWhenPlayerNotInControl) { - if (_game.playerControl) { - // Player is actually currently in control? -> then skip this entry - appleIIgsDelayRoomOverwrite++; - continue; + if ((appleIIgsDelayRoomOverwrite->activePictureNr == curPictureNr) || (appleIIgsDelayRoomOverwrite->activePictureNr == -1)) { + if (appleIIgsDelayRoomOverwrite->onlyWhenPlayerNotInControl) { + if (_game.playerControl) { + // Player is actually currently in control? -> then skip this entry + appleIIgsDelayRoomOverwrite++; + continue; + } } + timeDelayOverwrite = appleIIgsDelayRoomOverwrite->timeDelayOverwrite; + break; } - timeDelayOverwrite = appleIIgsDelayRoomOverwrite->timeDelayOverwrite; - break; } appleIIgsDelayRoomOverwrite++; } |