[Scummvm-cvs-logs] scummvm master -> f04ef8b7282477cda5121b6c8a6e838eb35a1760
bluegr
bluegr at gmail.com
Mon Feb 16 11:12:51 CET 2015
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
f04ef8b728 ZVISION: Fix script bug #6793 in Zork Nemesis
Commit: f04ef8b7282477cda5121b6c8a6e838eb35a1760
https://github.com/scummvm/scummvm/commit/f04ef8b7282477cda5121b6c8a6e838eb35a1760
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2015-02-16T12:11:50+02:00
Commit Message:
ZVISION: Fix script bug #6793 in Zork Nemesis
Changed paths:
engines/zvision/file/save_manager.cpp
diff --git a/engines/zvision/file/save_manager.cpp b/engines/zvision/file/save_manager.cpp
index 1e0c57e..63b5426 100644
--- a/engines/zvision/file/save_manager.cpp
+++ b/engines/zvision/file/save_manager.cpp
@@ -165,6 +165,27 @@ Common::Error SaveManager::loadGame(int slot) {
if (header.thumbnail)
delete header.thumbnail;
+ if (_engine->getGameId() == GID_NEMESIS && scriptManager->getCurrentLocation() == "tv2f") {
+ // WORKAROUND for script bug #6793: location tv2f (stairs) has two states:
+ // one at the top of the stairs, and one at the bottom. When the player
+ // goes to the bottom of the stairs, the screen changes, and hotspot
+ // 4652 (exit opposite the stairs) is enabled. However, the variable that
+ // controls the state (2408) is reset when the player goes down the stairs.
+ // Furthermore, the room's initialization script disables the stair exit
+ // control (4652). This leads to an impossible situation, where all the
+ // exit controls are disabled, and the player can't more anywhere. Thus,
+ // when loading a game in that room, we check for that impossible
+ // situation, which only occurs after the player has moved down the stairs,
+ // and fix it here by setting the correct background, and enabling the
+ // stair exit hotspot.
+ if ((scriptManager->getStateFlag(2411) & Puzzle::DISABLED) &&
+ (scriptManager->getStateFlag(2408) & Puzzle::DISABLED) &&
+ (scriptManager->getStateFlag(4652) & Puzzle::DISABLED)) {
+ _engine->getRenderManager()->setBackgroundImage("tv2fb21c.tga");
+ scriptManager->unsetStateFlag(4652, Puzzle::DISABLED);
+ }
+ }
+
return Common::kNoError;
}
More information about the Scummvm-git-logs
mailing list