[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