[Scummvm-git-logs] scummvm master -> 2982792eb1498962db855f7213bc2306d24e73cb
sev-
sev at scummvm.org
Sun Jul 29 09:48:22 CEST 2018
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:
2982792eb1 ZVISION: Add workaround for bug #10604
Commit: 2982792eb1498962db855f7213bc2306d24e73cb
https://github.com/scummvm/scummvm/commit/2982792eb1498962db855f7213bc2306d24e73cb
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2018-07-29T09:48:19+02:00
Commit Message:
ZVISION: Add workaround for bug #10604
It was possible to render the game unplayable simply by looking at
Jack's cigar box while waiting for him to return to examine the
lamp. Note that this bug is only present in the DVD version. For
whatever reason, it adds a dummy location for playing the cutscene.
Applying the bugfix in the CD version actually breaks the game.
Changed paths:
engines/zvision/detection_tables.h
engines/zvision/scripting/scr_file_handling.cpp
engines/zvision/zvision.h
diff --git a/engines/zvision/detection_tables.h b/engines/zvision/detection_tables.h
index cb813e6..32c5104 100644
--- a/engines/zvision/detection_tables.h
+++ b/engines/zvision/detection_tables.h
@@ -246,7 +246,7 @@ static const ZVisionGameDescription gameDescriptions[] = {
AD_ENTRY1s("SCRIPTS.ZFS", "03157a3399513bfaaf8dc6d5ab798b36", 8433326),
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ GF_DVD,
GUIO4(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_DOUBLE_FPS, GAMEOPTION_DISABLE_ANIM_WHILE_TURNING, GAMEOPTION_USE_HIRES_MPEG_MOVIES)
},
GID_GRANDINQUISITOR
diff --git a/engines/zvision/scripting/scr_file_handling.cpp b/engines/zvision/scripting/scr_file_handling.cpp
index c8952cd..cc84542 100644
--- a/engines/zvision/scripting/scr_file_handling.cpp
+++ b/engines/zvision/scripting/scr_file_handling.cpp
@@ -95,6 +95,23 @@ void ScriptManager::parsePuzzle(Puzzle *puzzle, Common::SeekableReadStream &stre
// Fixes bug #6803.
if (_engine->getGameId() == GID_NEMESIS && puzzle->key == 19398)
puzzle->resultActions.push_back(new ActionAssign(_engine, 11, "19397, 0"));
+
+ // WORKAROUND for bug #10604. If the player is looking at the
+ // cigar box when Antharia Jack returns to examine the lamp,
+ // pp1f_video_flag remains 1. Later, when the player returns
+ // to pick up the lantern, the game will try to play the
+ // cutscene again, but since that script has already been
+ // run the player gets stuck in a dark room instead. We have
+ // to add the assignment action to the front, or it won't be
+ // reached because changing the location terminates the script.
+ //
+ // Fixing it this way only keeps the bug from happening. It
+ // will not repair old savegames.
+ //
+ // Note that the bug only affects the DVD version. The CD
+ // version doesn't have a separate room for the cutscene.
+ else if (_engine->getGameId() == GID_GRANDINQUISITOR && (_engine->getFeatures() & GF_DVD) && puzzle->key == 10836)
+ puzzle->resultActions.push_front(new ActionAssign(_engine, 11, "10803, 0"));
} else if (line.matchString("flags {", true)) {
setStateFlag(puzzle->key, parseFlags(stream));
}
diff --git a/engines/zvision/zvision.h b/engines/zvision/zvision.h
index 5df8e82..2ada66c 100644
--- a/engines/zvision/zvision.h
+++ b/engines/zvision/zvision.h
@@ -92,6 +92,10 @@ enum ZVisionGameId {
GID_GRANDINQUISITOR = 2
};
+enum ZVisionFeatures {
+ GF_DVD = (1 << 0) // ZGI DVD version
+};
+
class ZVision : public Engine {
public:
ZVision(OSystem *syst, const ZVisionGameDescription *gameDesc);
More information about the Scummvm-git-logs
mailing list