[Scummvm-git-logs] scummvm master -> 084dc1ffd6e3c4bcdaa3206088a763594b1dcb4c

antoniou79 antoniou at cti.gr
Sun Jul 28 21:57:44 CEST 2019


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8f9927608b BLADERUNNER: prevent seg fault when opening KIA
45e58abe36 BLADERUNNER: Clean up KIA at endgame and playerDied
4ba487a064 BLADERUNNER: Close MODE.MIX if ScummVM is closed during ESPER
084dc1ffd6 BLADERUNNER: Prevent McCoy from running to BB10 before Sadik


Commit: 8f9927608b1041dc66c056f0e388cb559164a70e
    https://github.com/scummvm/scummvm/commit/8f9927608b1041dc66c056f0e388cb559164a70e
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-07-28T22:52:18+03:00

Commit Message:
BLADERUNNER: prevent seg fault when opening KIA

Only if a restored content save was loaded in original game mode

Changed paths:
    engines/bladerunner/ui/kia.cpp


diff --git a/engines/bladerunner/ui/kia.cpp b/engines/bladerunner/ui/kia.cpp
index b312a03..6980544 100644
--- a/engines/bladerunner/ui/kia.cpp
+++ b/engines/bladerunner/ui/kia.cpp
@@ -91,11 +91,10 @@ KIA::KIA(BladeRunnerEngine *vm) {
 
 	_pogoPos = 0;
 
-	if (_vm->_cutContent) {
-		_buttons = new UIImagePicker(_vm, 23); // add description box for objects
-	} else {
-		_buttons = new UIImagePicker(_vm, 22);
-	}
+	// original imageCount was 22. We add +1 to have a description box for objects in cut content
+	// We don't have separated cases here, for _vm->_cutContent since that causes assertion fault if
+	// loading a "restoed content" save game in a "original game" version
+	_buttons = new UIImagePicker(_vm, 23);
 
 	_crimesSection     = new KIASectionCrimes(_vm, _vm->_playerActor->_clues);
 	_suspectsSection   = new KIASectionSuspects(_vm, _vm->_playerActor->_clues);


Commit: 45e58abe3616d850d008e6550c158fcb92deb85d
    https://github.com/scummvm/scummvm/commit/45e58abe3616d850d008e6550c158fcb92deb85d
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-07-28T22:52:18+03:00

Commit Message:
BLADERUNNER: Clean up KIA at endgame and playerDied

Changed paths:
    engines/bladerunner/bladerunner.cpp


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 93ffbe0..4a2bf09 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -343,6 +343,11 @@ Common::Error BladeRunnerEngine::run() {
 		// additional code for gracefully handling end-game after _endCredits->show()
 		_gameOver = false;
 		_gameIsRunning = true;
+		// reset ammo amounts
+		_settings->reset();
+		// need to clear kFlagKIAPrivacyAddon to remove Bob's Privacy Addon for KIA
+		// so it won't appear here after end credits
+		_gameFlags->reset(kFlagKIAPrivacyAddon);
 		if (!playerHasControl()) {
 			// force a player gains control
 			playerGainsControl(true);
@@ -1959,6 +1964,12 @@ void BladeRunnerEngine::playerDied() {
 
 #if BLADERUNNER_ORIGINAL_BUGS
 #else
+	// reset ammo amounts
+	_settings->reset();
+	// need to clear kFlagKIAPrivacyAddon to remove Bob's Privacy Addon for KIA
+	// so it won't appear here after end credits
+	_gameFlags->reset(kFlagKIAPrivacyAddon);
+
 	_ambientSounds->removeAllNonLoopingSounds(true);
 	_ambientSounds->removeAllLoopingSounds(4);
 	_music->stop(4);


Commit: 4ba487a064834a8fa1cca335981b24b4c96b5b12
    https://github.com/scummvm/scummvm/commit/4ba487a064834a8fa1cca335981b24b4c96b5b12
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-07-28T22:52:18+03:00

Commit Message:
BLADERUNNER: Close MODE.MIX if ScummVM is closed during ESPER

Changed paths:
    engines/bladerunner/bladerunner.cpp


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 4a2bf09..f451db1 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -821,6 +821,11 @@ void BladeRunnerEngine::shutdown() {
 		closeArchive("MUSIC.MIX");
 	}
 
+	// in case player closes the ScummVM window when in ESPER mode or similar
+	if (isArchiveOpen("MODE.MIX")) {
+		closeArchive("MODE.MIX");
+	}
+
 	if (_chapters) {
 		if (_chapters->hasOpenResources())
 			_chapters->closeResources();


Commit: 084dc1ffd6e3c4bcdaa3206088a763594b1dcb4c
    https://github.com/scummvm/scummvm/commit/084dc1ffd6e3c4bcdaa3206088a763594b1dcb4c
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-07-28T22:52:18+03:00

Commit Message:
BLADERUNNER: Prevent McCoy from running to BB10 before Sadik

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/sadik.cpp
    engines/bladerunner/script/scene/bb09.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 39d4c8b..18697a9 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -2286,7 +2286,7 @@ enum GoalIzo {
 };
 
 enum GoalSadik {
-	kGoalSadikDefaut = 100,
+	kGoalSadikDefault = 100,
 	kGoalSadikRunFromBB09 = 101,
 	kGoalSadikBB11Wait = 102,
 	kGoalSadikBB11ThrowMcCoy = 103,
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index a6de93a..db6de36 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -46,7 +46,7 @@ void AIScriptSadik::Initialize() {
 
 	Actor_Put_In_Set(kActorSadik, kSetFreeSlotA);
 	Actor_Set_At_Waypoint(kActorSadik, 33, 0);
-	Actor_Set_Goal_Number(kActorSadik, kGoalSadikDefaut);
+	Actor_Set_Goal_Number(kActorSadik, kGoalSadikDefault);
 }
 
 bool AIScriptSadik::Update() {
@@ -264,7 +264,7 @@ int AIScriptSadik::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueI
 
 bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	switch (newGoalNumber) {
-	case kGoalSadikDefaut:
+	case kGoalSadikDefault:
 		AI_Movement_Track_Flush(kActorSadik);
 		AI_Movement_Track_Append(kActorSadik, 33, 0);
 		AI_Movement_Track_Repeat(kActorSadik);
diff --git a/engines/bladerunner/script/scene/bb09.cpp b/engines/bladerunner/script/scene/bb09.cpp
index a39e898..7e74fca 100644
--- a/engines/bladerunner/script/scene/bb09.cpp
+++ b/engines/bladerunner/script/scene/bb09.cpp
@@ -34,7 +34,21 @@ void SceneScriptBB09::InitializeScene() {
 		Setup_Scene_Information(107.45f, -9.14f, 166.0f, 244);
 	}
 
+#if BLADERUNNER_ORIGINAL_BUGS
 	Scene_Exit_Add_2D_Exit(0, 224, 213, 286, 353, 1);
+#else
+	// in the original McCoy could run ahead of Sadik to the next room
+	// if the player clicked quickly enough
+	// kFlagBB11SadikFight is set after Sadik exits this room in Chapter 2
+	// (and his goal is set to kGoalSadikBB11Wait)
+	// this flag will be reset before Act 3, when McCoy is ambushed at the BB roof
+	if ((Global_Variable_Query(kVariableChapter) == 2
+	       && Game_Flag_Query(kFlagBB11SadikFight))
+	    || (Global_Variable_Query(kVariableChapter) > 2)
+	) {
+		Scene_Exit_Add_2D_Exit(0, 224, 213, 286, 353, 1);
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	Scene_Exit_Add_2D_Exit(1,  75, 450, 480, 479, 2);
 
 	Ambient_Sounds_Add_Looping_Sound(kSfxCTRAIN1,  20, 100, 1);
@@ -56,7 +70,10 @@ void SceneScriptBB09::InitializeScene() {
 	Ambient_Sounds_Add_Sound(kSfxHAUNT1,   5,  50, 17, 27, -100,  100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(kSfxHAUNT2,   5,  50, 17, 27, -100,  100, -101, -101, 0, 0);
 
-	Actor_Set_Targetable(kActorSadik, true); // Don't kill Sadik yet, game cannot continue. This is an original bug - fixed in ScummVM in Sadik's AI script (method ShotAtAndHit() )
+	// Original: // Don't kill Sadik yet, game cannot continue.
+	// This is an original bug - fixed in ScummVM in Sadik's AI script (method ShotAtAndHit() )
+	// Also Sadik is also set as targetable (redundant) in his AI script (method Update() )
+	Actor_Set_Targetable(kActorSadik, true);
 }
 
 void SceneScriptBB09::SceneLoaded() {
@@ -114,6 +131,14 @@ void SceneScriptBB09::SceneFrameAdvanced(int frame) {
 }
 
 void SceneScriptBB09::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) {
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	// in the original McCoy could run ahead of Sadik to the next room
+	// if the player clicked quickly enough
+	if (actorId == kActorSadik && newGoal == kGoalSadikBB11Wait) {
+		Scene_Exit_Add_2D_Exit(0, 224, 213, 286, 353, 1);
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 void SceneScriptBB09::PlayerWalkedIn() {





More information about the Scummvm-git-logs mailing list