[Scummvm-git-logs] scummvm master -> 94d782c27c5d013c1aec481fbcb075a59c552286

antoniou79 noreply at scummvm.org
Thu Aug 8 20:11:08 UTC 2024


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:
94d782c27c BLADERUNNER: Maintain designers cut setting in New Game


Commit: 94d782c27c5d013c1aec481fbcb075a59c552286
    https://github.com/scummvm/scummvm/commit/94d782c27c5d013c1aec481fbcb075a59c552286
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2024-08-08T23:10:23+03:00

Commit Message:
BLADERUNNER: Maintain designers cut setting in New Game

Allow keeping the designers cut mode if the player sets it in KIA before starting a New Game

This is different from the original behavior, but the code for RC01 (a dialogue cue from the intro is intended to be skipped in designers cut mode) shows that is the intended behavior. Also, setting McCoy's mood in KIA before starting a New Game, maintains the setting, so this change is also consistent with that behavior.

Changed paths:
    engines/bladerunner/bladerunner.cpp


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 7ba1ed6b461..93151e39b3f 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -2826,6 +2826,18 @@ void BladeRunnerEngine::newGame(int difficulty) {
 		_suspectsDatabase->get(i)->reset();
 	}
 
+#if !BLADERUNNER_ORIGINAL_BUGS
+	// Fix for Designers Cut setting in a New Game
+	// The original game would always clear the setting for Designers Cut when starting a New Game,
+	// even if it was set beforehand from the KIA Menu. It would, however, maintain the KIA setting for McCoy's Mood.
+	// By not maintaining the value for Designers Cut when starting a New Game, it was impossible to skip a line
+	// of dialogue for McCoy which plays at the end of the intro of the game, before the player gains control,
+	// and which is actually marked for skipping in Designers Cut mode (see SceneScriptRC01::SceneLoaded())
+	//
+	// Part 1 of fix for Designers Cut setting
+	// Before clearing the _gameFlags check if kFlagDirectorsCut was already set
+	bool isDirectorsCut = _gameFlags->query(kFlagDirectorsCut);
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	_gameFlags->clear();
 
 	for (uint i = 0; i < _gameInfo->getGlobalVarCount(); ++i) {
@@ -2844,6 +2856,16 @@ void BladeRunnerEngine::newGame(int difficulty) {
 
 	InitScript initScript(this);
 	initScript.SCRIPT_Initialize_Game();
+
+#if !BLADERUNNER_ORIGINAL_BUGS
+	// Part 2 of fix for Designers Cut setting
+	// Maintain the flag (if it was set) for the New Game
+	// Note: This is done here, since SCRIPT_Initialize_Game() also clears the game flags
+	if (isDirectorsCut) {
+		_gameFlags->set(kFlagDirectorsCut);
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
 	_actorUpdateCounter = 0;
 	_actorUpdateTimeLast = 0;
 	initChapterAndScene();




More information about the Scummvm-git-logs mailing list