[Scummvm-git-logs] scummvm master -> c72cde3149514dddb8f76f9e717a0fb03dcb8332

antoniou79 antoniou at cti.gr
Sat Apr 27 23:39:59 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:
2858873db9 BLADERUNNER: DR01 restore cut content and randomize intro
083bfd1687 BLADERUNNER: BB01, DR01, NR01 reduce freq of intro scene
346361166c BLADERUNNER: Add cut monologue from DR01 first visit
c72cde3149 BLADERUNNER: Fix spinner transitions post Act 1


Commit: 2858873db92ea96c8c69bfbd1f3dc9ec703ab871
    https://github.com/scummvm/scummvm/commit/2858873db92ea96c8c69bfbd1f3dc9ec703ab871
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-04-28T00:21:15+03:00

Commit Message:
BLADERUNNER: DR01 restore cut content and randomize intro

Intro with bikes should not always play after first time in act2

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/scene/dr01.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index d0bae40..037f131 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1167,7 +1167,7 @@ enum Flags {
 	kFlagCT11DogWrapperAvailable = 725,
 	kFlagAR02Entered = 726,
 	kFlagPS04WeaponsOrderForm = 727,
-	// 728 is never used
+	kFlagDR01Visited = 728, // Re-purposed: Original: 728 is never used
 	kFlagNR08DektoraShow = 729
 };
 
diff --git a/engines/bladerunner/script/scene/dr01.cpp b/engines/bladerunner/script/scene/dr01.cpp
index e5d33eb..8a98fc9 100644
--- a/engines/bladerunner/script/scene/dr01.cpp
+++ b/engines/bladerunner/script/scene/dr01.cpp
@@ -25,15 +25,12 @@
 namespace BladeRunner {
 
 enum kDR01Loops {
-	kDR01LoopInshotWithCrowd   = 0,
-	kDR01LoopWithCrowd         = 1,
-	kDR01LoopDoorAnimWithCrowd = 3,
-	kDR01LoopOutshotWithCrowd  = 4,
-	kDR01LoopInshotNoCrowd     = 5,
-	kDR01LoopNoCrowd           = 6,
-	kDR01LoopDoorAnimNoCrowd   = 8,
-	kDR01LoopOutshotNoCrowd    = 9,
-	kDR01LoopNoCrowdNoSpinner  = 10
+	kDR01LoopBikerInshot          = 0,
+	kDR01LoopPanFromDR02          = 1,
+	kDR01LoopPanFromDR04Pre       = 2,
+	kDR01LoopPanFromDR04Post      = 3,
+	kDR01LoopMainLoop             = 4,
+	kDR01LoopMainLoopNoFirstFrame = 5,
 };
 
 void SceneScriptDR01::InitializeScene() {
@@ -58,7 +55,7 @@ void SceneScriptDR01::InitializeScene() {
 		Scene_Exit_Add_2D_Exit(3, 0, 45, 142, 201, 0);
 	}
 
-	Ambient_Sounds_Remove_All_Non_Looping_Sounds(0);
+	Ambient_Sounds_Remove_All_Non_Looping_Sounds(false);
 	Ambient_Sounds_Add_Looping_Sound(kSfxCTRAIN1, 50,  0, 1);
 	Ambient_Sounds_Add_Looping_Sound(kSfxHUMMER3, 12, 85, 1);
 	Ambient_Sounds_Add_Looping_Sound(kSfxBIGFAN2, 14, 85, 1);
@@ -75,21 +72,26 @@ void SceneScriptDR01::InitializeScene() {
 	if (Game_Flag_Query(kFlagDR05BombExploded)
 	 && Game_Flag_Query(kFlagDR04toDR01)
 	) {
-		Scene_Loop_Start_Special(0, 3, false);
-		Scene_Loop_Set_Default(4);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR01LoopPanFromDR04Post, false);
+		Scene_Loop_Set_Default(kDR01LoopMainLoop);
 	} else if (!Game_Flag_Query(kFlagDR05BombExploded)
 	        &&  Game_Flag_Query(kFlagDR04toDR01)
 	) {
-		Scene_Loop_Start_Special(0, 2, false);
-		Scene_Loop_Set_Default(4);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR01LoopPanFromDR04Pre, false);
+		Scene_Loop_Set_Default(kDR01LoopMainLoop);
 	} else if (Game_Flag_Query(kFlagDR02toDR01)) {
-		Scene_Loop_Start_Special(0, 1, false);
-		Scene_Loop_Set_Default(4);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR01LoopPanFromDR02, false);
+		Scene_Loop_Set_Default(kDR01LoopMainLoop);
 	} else if (Game_Flag_Query(kFlagCT11toDR01)) {
-		Scene_Loop_Set_Default(4);
+		Scene_Loop_Set_Default(kDR01LoopMainLoop);
 	} else {
-		Scene_Loop_Start_Special(0, 0, false);
-		Scene_Loop_Set_Default(4);
+		if ((!Game_Flag_Query(kFlagDR01Visited) && Global_Variable_Query(kVariableChapter) == 2)
+		     || Random_Query(1, 5) == 1)
+		{ 	// enhancement: don't always play the bikers after first visit
+			// But first visit in 2nd chapter should always show it.
+			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR01LoopBikerInshot, false);
+		}
+		Scene_Loop_Set_Default(kDR01LoopMainLoop);
 	}
 }
 
@@ -266,6 +268,26 @@ void SceneScriptDR01::PlayerWalkedIn() {
 	) {
 		Player_Loses_Control();
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -447.39f, 0.16f, -92.38f, 0, false, false, 0);
+#if BLADERUNNER_RESTORED_CUT_CONTENT
+		if (!Game_Flag_Query(kFlagDR01Visited)) {
+			Game_Flag_Set(kFlagDR01Visited);
+			// Make use of the kFlagDirectorsCut like in CT01 case
+			// extra flags and chapter check are for compatibility / sane behavior
+			// in imported original save games (or "exported" save games for the original)
+			if (
+				Global_Variable_Query(kVariableChapter) == 2
+				&& !Game_Flag_Query(kFlagDR03ChewTalk1)
+				&& !Game_Flag_Query(kFlagDR05MorajiTalk)
+				&& !Game_Flag_Query(kFlagDirectorsCut)) {
+				Actor_Voice_Over(600, kActorVoiceOver);
+				Actor_Voice_Over(610, kActorVoiceOver);
+				Actor_Voice_Over(620, kActorVoiceOver);
+				Actor_Voice_Over(630, kActorVoiceOver);
+				Actor_Voice_Over(640, kActorVoiceOver);
+				Actor_Voice_Over(650, kActorVoiceOver);
+			}
+		}
+#endif // BLADERUNNER_RESTORED_CUT_CONTENT
 		Player_Gains_Control();
 	}
 	Game_Flag_Reset(kFlagDR02toDR01);


Commit: 083bfd16873f738bce64da472d95f42e2cc97cb1
    https://github.com/scummvm/scummvm/commit/083bfd16873f738bce64da472d95f42e2cc97cb1
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-04-28T00:21:16+03:00

Commit Message:
BLADERUNNER: BB01, DR01, NR01 reduce freq of intro scene

They'll play the first time, but have 33% probability to play on subsequent visits

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/scene/ar01.cpp
    engines/bladerunner/script/scene/bb01.cpp
    engines/bladerunner/script/scene/ct01.cpp
    engines/bladerunner/script/scene/ct02.cpp
    engines/bladerunner/script/scene/ct04.cpp
    engines/bladerunner/script/scene/ct11.cpp
    engines/bladerunner/script/scene/dr01.cpp
    engines/bladerunner/script/scene/dr05.cpp
    engines/bladerunner/script/scene/hc03.cpp
    engines/bladerunner/script/scene/hf01.cpp
    engines/bladerunner/script/scene/hf04.cpp
    engines/bladerunner/script/scene/ma01.cpp
    engines/bladerunner/script/scene/ma04.cpp
    engines/bladerunner/script/scene/ma05.cpp
    engines/bladerunner/script/scene/ma06.cpp
    engines/bladerunner/script/scene/nr01.cpp
    engines/bladerunner/script/scene/ps01.cpp
    engines/bladerunner/script/scene/rc03.cpp
    engines/bladerunner/script/scene/rc51.cpp
    engines/bladerunner/script/scene/tb07.cpp
    engines/bladerunner/script/scene/ug04.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 037f131..c944db8 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1134,12 +1134,12 @@ enum Flags {
 	kFlagPS05TV4 = 692,
 	kFlagUG03DeadHomeless = 693,
 	kFlagUG14DeadHomeless = 694,
-	// 695 is never used
+	kFlagNR01VisitedFirstTimeWithSpinner = 695, // Re-purposed. Original: 695 is never used
 	kFlagKP07ReplicantsAttackMcCoy = 696,
 	kFlagKP07McCoyPulledGun = 697,
 	kFlagUG15LanceLuthorTrade = 698,
 	kFlagTalkToZuben = 699,
-	// 700 is never used
+	kFlagBB01VisitedFirstTimeWithSpinner = 700, // Re-purposed. Original: 700 is never used
 	kFlagMcCoyAttackedLucy = 701,
 	kFlagBulletBobDead = 702,
 	kFlagUG18BriefcaseTaken = 703,
@@ -1167,7 +1167,7 @@ enum Flags {
 	kFlagCT11DogWrapperAvailable = 725,
 	kFlagAR02Entered = 726,
 	kFlagPS04WeaponsOrderForm = 727,
-	kFlagDR01Visited = 728, // Re-purposed: Original: 728 is never used
+	kFlagDR01Visited = 728,                     // Re-purposed. Original: 728 is never used
 	kFlagNR08DektoraShow = 729
 };
 
diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp
index cce057a..d658cc4 100644
--- a/engines/bladerunner/script/scene/ar01.cpp
+++ b/engines/bladerunner/script/scene/ar01.cpp
@@ -26,10 +26,10 @@ namespace BladeRunner {
 
 enum kAR01Loops {
 	kAR01LoopFromAR02WithSpinner = 0,
-	kAR01LoopInshoot             = 1,
+	kAR01LoopInshot              = 1,
 	kAR01LoopMainLoop            = 2,
 	kAR01LoopDoorAnim            = 4,
-	kAR01LoopOutshoot            = 5,
+	kAR01LoopOutshot             = 5,
 	kAR01LoopFromAR02NoSpinner   = 6,
 	kAR01LoopMainLoopNoSpinner   = 7
 };
@@ -89,7 +89,7 @@ void SceneScriptAR01::InitializeScene() {
 	) {
 		Actor_Set_Invisible(kActorMcCoy, true);
 		Game_Flag_Set(kFlagArrivedFromSpinner2);
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kAR01LoopInshoot, false);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kAR01LoopInshot, false);
 		Scene_Loop_Set_Default(kAR01LoopMainLoop);
 	} else if (Game_Flag_Query(kFlagSpinnerAtAR01)
 	        && Game_Flag_Query(kFlagAR02toAR01)
@@ -272,63 +272,63 @@ bool SceneScriptAR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
 				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
 				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationChinatown:
 				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
 				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationDNARow:
 				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
 				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
 				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
 				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtAR01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kAR01LoopOutshot, true);
 				break;
 			default:
 				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
diff --git a/engines/bladerunner/script/scene/bb01.cpp b/engines/bladerunner/script/scene/bb01.cpp
index b64434b..76fe189 100644
--- a/engines/bladerunner/script/scene/bb01.cpp
+++ b/engines/bladerunner/script/scene/bb01.cpp
@@ -28,7 +28,7 @@ enum kBB01Loops {
 	kBB01LoopInshot            = 0,
 	kBB01LoopMainLoop          = 1,
 	kBB01LoopDoorAnim          = 3,
-	kBB01LoopOutshoot          = 4,
+	kBB01LoopOutshot           = 4,
 	kBB01LoopMainLoopNoSpinner = 5
 };
 
@@ -66,7 +66,12 @@ void SceneScriptBB01::InitializeScene() {
 	 && !Game_Flag_Query(kFlagDR02toBB01)
 	 && !Game_Flag_Query(kFlagBB02toBB01)
 	) {
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kBB01LoopInshot, false);
+		if (!Game_Flag_Query(kFlagBB01VisitedFirstTimeWithSpinner)
+		    || Random_Query(1, 3) == 1
+		) {
+			// enhancement: don't always play after first visit
+			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kBB01LoopInshot, false);
+		}
 		Scene_Loop_Set_Default(kBB01LoopMainLoop);
 	} else if (Game_Flag_Query(kFlagSpinnerAtBB01)
 	        && Game_Flag_Query(kFlagDR02toBB01)
@@ -135,63 +140,63 @@ bool SceneScriptBB01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
 				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
 				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationChinatown:
 				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
 				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
 				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationDNARow:
 				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
 				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
 				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtBB01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kBB01LoopOutshot, true);
 				break;
 			default:
 				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
@@ -244,6 +249,9 @@ void SceneScriptBB01::PlayerWalkedIn() {
 	} else if (Game_Flag_Query(kFlagBB02toBB01)) {
 		Game_Flag_Reset(kFlagBB02toBB01);
 	} else {
+		if (!Game_Flag_Query(kFlagBB01VisitedFirstTimeWithSpinner) && Game_Flag_Query(kFlagSpinnerAtBB01)) {
+			Game_Flag_Set(kFlagBB01VisitedFirstTimeWithSpinner);
+		}
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 43.0f, 0.0f, 954.0f, 0, false, false, 0);
 	}
 }
diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp
index f227986..d3312f7 100644
--- a/engines/bladerunner/script/scene/ct01.cpp
+++ b/engines/bladerunner/script/scene/ct01.cpp
@@ -27,7 +27,7 @@ namespace BladeRunner {
 enum kCT01Loops {
 	kCT01LoopInshotFromCT12WithSpinner = 0, //   0 -  14
 	kCT01LoopInshot                    = 1, //  15 - 194
-	kCT01LoopMain                      = 2, // 195 - 255
+	kCT01LoopMainLoop                  = 2, // 195 - 255
 	kCT01LoopDoorAnim                  = 4, // 256 - 315
 	kCT01LoopOutshot                   = 5, // 316 - 435
 	kCT01LoopInshotFromCT12NoSpinner   = 6, // 436 - 450
@@ -71,9 +71,10 @@ void SceneScriptCT01::InitializeScene() {
 			// Note 2: Gordo sitting at the diner overlaps with the counter bar in front of him
 			//         so the loop will be prevented from playing when he is there.
 			if ( Global_Variable_Query(kVariableChapter) < 4
-				&& Actor_Query_Which_Set_In(kActorGordo) != kSetCT01_CT12
-					&& Random_Query(1, 3) == 1
+			    && Actor_Query_Which_Set_In(kActorGordo) != kSetCT01_CT12
+			    && Random_Query(1, 3) == 1
 			){
+				// enhancement: don't always play
 				Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kCT01LoopInshot, false);
 			}
 			// Pause generic walkers outside special loop
@@ -115,7 +116,7 @@ void SceneScriptCT01::InitializeScene() {
 	Ambient_Sounds_Add_Sound(kSfxTHNDER4, 20, 40, 33, 50, -100, 100, -101, -101, 0, 0);
 
 	if (Game_Flag_Query(kFlagSpinnerAtCT01)) {
-		Scene_Loop_Set_Default(kCT01LoopMain);
+		Scene_Loop_Set_Default(kCT01LoopMainLoop);
 	} else {
 		Scene_Loop_Set_Default(kCT01LoopMainLoopNoSpinner);
 	}
diff --git a/engines/bladerunner/script/scene/ct02.cpp b/engines/bladerunner/script/scene/ct02.cpp
index b091afd..7e9de7a 100644
--- a/engines/bladerunner/script/scene/ct02.cpp
+++ b/engines/bladerunner/script/scene/ct02.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 enum kCT02Loops {
-	kCT02LoopMain          = 0,
+	kCT02LoopMainLoop      = 0,
 	kCT02LoopTippingPot    = 2,
 	kCT02LoopMainPotTipped = 3
 };
@@ -64,7 +64,7 @@ void SceneScriptCT02::InitializeScene() {
 	if (Game_Flag_Query(kFlagCT02PotTipped)) {
 		Scene_Loop_Set_Default(kCT02LoopMainPotTipped);
 	} else {
-		Scene_Loop_Set_Default(kCT02LoopMain);
+		Scene_Loop_Set_Default(kCT02LoopMainLoop);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ct04.cpp b/engines/bladerunner/script/scene/ct04.cpp
index d86a992..94c585d 100644
--- a/engines/bladerunner/script/scene/ct04.cpp
+++ b/engines/bladerunner/script/scene/ct04.cpp
@@ -24,18 +24,18 @@
 
 namespace BladeRunner {
 
-enum kCT03Loops {
-	kCT03LoopInshoot = 0,
-	kCT03LoopMain    = 1
+enum kCT04Loops {
+	kCT04LoopInshot   = 0,
+	kCT04LoopMainLoop = 1
 };
 
 void SceneScriptCT04::InitializeScene() {
 	if (Game_Flag_Query(kFlagCT03toCT04)) {
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kCT03LoopInshoot, false);
-		Scene_Loop_Set_Default(kCT03LoopMain);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kCT04LoopInshot, false);
+		Scene_Loop_Set_Default(kCT04LoopMainLoop);
 		Setup_Scene_Information(-150.0f, -621.3f, 357.0f, 533);
 	} else {
-		Scene_Loop_Set_Default(kCT03LoopMain);
+		Scene_Loop_Set_Default(kCT04LoopMainLoop);
 		Setup_Scene_Information(-82.86f, -621.3f, 769.03f, 1020);
 	}
 
diff --git a/engines/bladerunner/script/scene/ct11.cpp b/engines/bladerunner/script/scene/ct11.cpp
index 71b90b8..0d52c77 100644
--- a/engines/bladerunner/script/scene/ct11.cpp
+++ b/engines/bladerunner/script/scene/ct11.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 enum kCT11Loops {
-	kCT11LoopMain = 0,
+	kCT11LoopMainLoop  = 0,
 	kCT11LoopMainNoCar = 2
 };
 
@@ -52,7 +52,7 @@ void SceneScriptCT11::InitializeScene() {
 	if (Global_Variable_Query(kVariableChapter) > 3) {
 		Scene_Loop_Set_Default(kCT11LoopMainNoCar);
 	} else {
-		Scene_Loop_Set_Default(kCT11LoopMain);
+		Scene_Loop_Set_Default(kCT11LoopMainLoop);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/dr01.cpp b/engines/bladerunner/script/scene/dr01.cpp
index 8a98fc9..4606358 100644
--- a/engines/bladerunner/script/scene/dr01.cpp
+++ b/engines/bladerunner/script/scene/dr01.cpp
@@ -29,8 +29,7 @@ enum kDR01Loops {
 	kDR01LoopPanFromDR02          = 1,
 	kDR01LoopPanFromDR04Pre       = 2,
 	kDR01LoopPanFromDR04Post      = 3,
-	kDR01LoopMainLoop             = 4,
-	kDR01LoopMainLoopNoFirstFrame = 5,
+	kDR01LoopMainLoop             = 4
 };
 
 void SceneScriptDR01::InitializeScene() {
@@ -86,8 +85,9 @@ void SceneScriptDR01::InitializeScene() {
 		Scene_Loop_Set_Default(kDR01LoopMainLoop);
 	} else {
 		if ((!Game_Flag_Query(kFlagDR01Visited) && Global_Variable_Query(kVariableChapter) == 2)
-		     || Random_Query(1, 5) == 1)
-		{ 	// enhancement: don't always play the bikers after first visit
+		     || Random_Query(1, 3) == 1)
+		{
+			// enhancement: don't always play after first visit
 			// But first visit in 2nd chapter should always show it.
 			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kDR01LoopBikerInshot, false);
 		}
@@ -268,26 +268,9 @@ void SceneScriptDR01::PlayerWalkedIn() {
 	) {
 		Player_Loses_Control();
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -447.39f, 0.16f, -92.38f, 0, false, false, 0);
-#if BLADERUNNER_RESTORED_CUT_CONTENT
 		if (!Game_Flag_Query(kFlagDR01Visited)) {
 			Game_Flag_Set(kFlagDR01Visited);
-			// Make use of the kFlagDirectorsCut like in CT01 case
-			// extra flags and chapter check are for compatibility / sane behavior
-			// in imported original save games (or "exported" save games for the original)
-			if (
-				Global_Variable_Query(kVariableChapter) == 2
-				&& !Game_Flag_Query(kFlagDR03ChewTalk1)
-				&& !Game_Flag_Query(kFlagDR05MorajiTalk)
-				&& !Game_Flag_Query(kFlagDirectorsCut)) {
-				Actor_Voice_Over(600, kActorVoiceOver);
-				Actor_Voice_Over(610, kActorVoiceOver);
-				Actor_Voice_Over(620, kActorVoiceOver);
-				Actor_Voice_Over(630, kActorVoiceOver);
-				Actor_Voice_Over(640, kActorVoiceOver);
-				Actor_Voice_Over(650, kActorVoiceOver);
-			}
 		}
-#endif // BLADERUNNER_RESTORED_CUT_CONTENT
 		Player_Gains_Control();
 	}
 	Game_Flag_Reset(kFlagDR02toDR01);
diff --git a/engines/bladerunner/script/scene/dr05.cpp b/engines/bladerunner/script/scene/dr05.cpp
index b433a00..f2ee260 100644
--- a/engines/bladerunner/script/scene/dr05.cpp
+++ b/engines/bladerunner/script/scene/dr05.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 enum kDR05Loops {
-	kDR05LoopMain          = 0,
+	kDR05LoopMainLoop      = 0,
 	kDR05LoopMainDestroyed = 2
 };
 
@@ -44,7 +44,7 @@ void SceneScriptDR05::InitializeScene() {
 	if (Game_Flag_Query(kFlagDR05BombExploded)) {
 		Scene_Loop_Set_Default(kDR05LoopMainDestroyed);
 	} else {
-		Scene_Loop_Set_Default(kDR05LoopMain);
+		Scene_Loop_Set_Default(kDR05LoopMainLoop);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/hc03.cpp b/engines/bladerunner/script/scene/hc03.cpp
index 06a8c3b..4c7b8ff 100644
--- a/engines/bladerunner/script/scene/hc03.cpp
+++ b/engines/bladerunner/script/scene/hc03.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 enum kHC03Loops {
-	kHC03LoopMain                     = 0,
+	kHC03LoopMainLoop                 = 0,
 	kHC03LoopCageDoorOpening          = 2,
 	kHC03LoopMainCageOpen             = 3,
 	kHC03LoopTrapDoorOpening          = 5,
@@ -85,7 +85,7 @@ void SceneScriptHC03::InitializeScene() {
 	) {
 		Scene_Loop_Set_Default(kHC03LoopMainCageOpen);
 	} else {
-		Scene_Loop_Set_Default(kHC03LoopMain);
+		Scene_Loop_Set_Default(kHC03LoopMainLoop);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/hf01.cpp b/engines/bladerunner/script/scene/hf01.cpp
index 41468b0..f7567bc 100644
--- a/engines/bladerunner/script/scene/hf01.cpp
+++ b/engines/bladerunner/script/scene/hf01.cpp
@@ -28,7 +28,7 @@ enum kHF01Loops {
 	kHF01LoopInshot            = 0,
 	kHF01LoopMainLoopSpinner   = 1,
 	kHF01LoopDoorAnim          = 3,
-	kHF01LoopOutshoot          = 4,
+	kHF01LoopOutshot           = 4,
 	kHF01LoopMainLoopNoSpinner = 5
 };
 
@@ -225,63 +225,63 @@ bool SceneScriptHF01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
 				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
 				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationChinatown:
 				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
 				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
 				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationDNARow:
 				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
 				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
 				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtHF01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kHF01LoopOutshot, true);
 				break;
 			default:
 				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
diff --git a/engines/bladerunner/script/scene/hf04.cpp b/engines/bladerunner/script/scene/hf04.cpp
index 5a8cfab..dea5053 100644
--- a/engines/bladerunner/script/scene/hf04.cpp
+++ b/engines/bladerunner/script/scene/hf04.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 enum kHF04Loops {
-	kHF04LoopMain            = 0,
+	kHF04LoopMainLoop        = 0,
 	kHF04LoopDoorsClosing    = 2,
 	kHF04LoopMainDoorsClosed = 3,
 	kHF04LoopDoorsOpening    = 5
@@ -49,7 +49,7 @@ void SceneScriptHF04::InitializeScene() {
 	if (Game_Flag_Query(kFlagHF04DoorsClosed)) {
 		Scene_Loop_Set_Default(kHF04LoopMainDoorsClosed);
 	} else {
-		Scene_Loop_Set_Default(kHF04LoopMain);
+		Scene_Loop_Set_Default(kHF04LoopMainLoop);
 	}
 }
 
@@ -133,7 +133,7 @@ void SceneScriptHF04::SceneFrameAdvanced(int frame) {
 
 	if (Game_Flag_Query(kFlagHF04OpenDoors)) {
 		Game_Flag_Reset(kFlagHF04OpenDoors);
-		Scene_Loop_Set_Default(kHF04LoopMain);
+		Scene_Loop_Set_Default(kHF04LoopMainLoop);
 		Scene_Loop_Start_Special(kSceneLoopModeOnce, kHF04LoopDoorsOpening, true);
 		return; // true;
 	}
diff --git a/engines/bladerunner/script/scene/ma01.cpp b/engines/bladerunner/script/scene/ma01.cpp
index 898b5f8..7de96d7 100644
--- a/engines/bladerunner/script/scene/ma01.cpp
+++ b/engines/bladerunner/script/scene/ma01.cpp
@@ -25,10 +25,10 @@
 namespace BladeRunner {
 
 enum kMA01Loops {
-	kMA01LoopInshotRoof  = 0,
-	kMA01LoopMain        = 1,
-	kMA01LoopOutDoorAnim = 3,
-	kMA01LoopOutshotRoof = 4
+	kMA01LoopInshotRoof   = 0,
+	kMA01LoopMainLoop = 1,
+	kMA01LoopOutDoorAnim  = 3,
+	kMA01LoopOutshotRoof  = 4
 };
 
 enum kMA01Exits {
@@ -60,13 +60,13 @@ void SceneScriptMA01::InitializeScene() {
 	Ambient_Sounds_Add_Sound(kSfxTHNDER4, 10,  70, 50, 100, 0, 0, -101, -101, 0, 0);
 
 	if (Game_Flag_Query(kFlagMA06toMA01)) {
-		Scene_Loop_Set_Default(kMA01LoopMain);
+		Scene_Loop_Set_Default(kMA01LoopMainLoop);
 		Game_Flag_Reset(kFlagMA06toMA01);
 	} else {
 		Actor_Set_Invisible(kActorMcCoy, true);
 		Game_Flag_Set(kFlagArrivedFromSpinner2);
 		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kMA01LoopInshotRoof, false);
-		Scene_Loop_Set_Default(kMA01LoopMain);
+		Scene_Loop_Set_Default(kMA01LoopMainLoop);
 	}
 
 	if (Game_Flag_Query(kFlagMA01GaffApproachMcCoy)) {
diff --git a/engines/bladerunner/script/scene/ma04.cpp b/engines/bladerunner/script/scene/ma04.cpp
index 80dade2..7448f72 100644
--- a/engines/bladerunner/script/scene/ma04.cpp
+++ b/engines/bladerunner/script/scene/ma04.cpp
@@ -25,16 +25,16 @@
 namespace BladeRunner {
 
 enum kMA04Loops {
-	kMA04LoopInshot = 0,
-	kMA04LoopMain   = 1,
-	kMA04LoopSleep  = 3,
-	kMA04LoopWakeup = 4
+	kMA04LoopInshot   = 0,
+	kMA04LoopMainLoop = 1,
+	kMA04LoopSleep    = 3,
+	kMA04LoopWakeup   = 4
 };
 
 enum kMA04Exits {
-	kMA04ExitMA02    = 0,
-	kMA04ExitMA05    = 1,
-	kMA04ExitKitchen = 2
+	kMA04ExitMA02     = 0,
+	kMA04ExitMA05     = 1,
+	kMA04ExitKitchen  = 2
 };
 
 enum kMA04Regions {
@@ -75,7 +75,7 @@ void SceneScriptMA04::InitializeScene() {
 	if (isPhoneRinging()) {
 		Ambient_Sounds_Add_Sound(kSfxVIDFONE1, 3, 3, 100, 100, 0, 0, 0, 0, 99, 0);
 	}
-	Scene_Loop_Set_Default(kMA04LoopMain);
+	Scene_Loop_Set_Default(kMA04LoopMainLoop);
 }
 
 void SceneScriptMA04::SceneLoaded() {
diff --git a/engines/bladerunner/script/scene/ma05.cpp b/engines/bladerunner/script/scene/ma05.cpp
index 6c2622d..9eca4ba 100644
--- a/engines/bladerunner/script/scene/ma05.cpp
+++ b/engines/bladerunner/script/scene/ma05.cpp
@@ -25,9 +25,9 @@
 namespace BladeRunner {
 
 enum kMA05Loops {
-	kMA05LoopInshot  = 0, //  0 -  29 // Frame 29 (in Acts 1 and 2 this ties in with Frame 30 of the Loop Main, in Act 5 it ties with frame 60?!)
-	kMA05LoopMain    = 1, // 30 -  90
-	kMA05LoopSpinner = 3  // 91 - 150 // Frame 150 ties in with Frame 30 of Loop Main
+	kMA05LoopInshot   = 0, //  0 -  29 // Frame 29 (in Acts 1 and 2 this ties in with Frame 30 of the Loop Main, in Act 5 it ties with frame 60?!)
+	kMA05LoopMainLoop = 1, // 30 -  90
+	kMA05LoopSpinner  = 3  // 91 - 150 // Frame 150 ties in with Frame 30 of Loop Main
 };
 
 enum kMA05Exits {
@@ -63,7 +63,7 @@ void SceneScriptMA05::InitializeScene() {
 	if (Global_Variable_Query(kVariableChapter) != 2 && Global_Variable_Query(kVariableChapter) != 3) {
 		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kMA05LoopInshot, false);
 	}
-	Scene_Loop_Set_Default(kMA05LoopMain);
+	Scene_Loop_Set_Default(kMA05LoopMainLoop);
 }
 
 void SceneScriptMA05::SceneLoaded() {
@@ -120,7 +120,7 @@ void SceneScriptMA05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 void SceneScriptMA05::PlayerWalkedIn() {
 	Music_Play(kMusicBRBlues, 52, 0, 2, -1, 0, 0);
 	if ((Random_Query(0, 4) == 1 || (Game_Flag_Query(kFlagChapter1Ending) && !Game_Flag_Query(kFlagChapter1Ended))) && Global_Variable_Query(kVariableChapter) == 1) {
-		Scene_Loop_Set_Default(kMA05LoopMain);
+		Scene_Loop_Set_Default(kMA05LoopMainLoop);
 		Scene_Loop_Start_Special(kSceneLoopModeOnce, kMA05LoopSpinner, true);
 		Sound_Play(kSfxSPIN3A, 100, 0, 0, 50);
 	}
diff --git a/engines/bladerunner/script/scene/ma06.cpp b/engines/bladerunner/script/scene/ma06.cpp
index 219cda5..3779f94 100644
--- a/engines/bladerunner/script/scene/ma06.cpp
+++ b/engines/bladerunner/script/scene/ma06.cpp
@@ -27,7 +27,7 @@ namespace BladeRunner {
 // Appears that names for "open" and "close" are switched
 enum kMA06Loops {
 	kMA06LoopDoorOpen  = 0,
-	kMA06LoopMain      = 1,
+	kMA06LoopMainLoop  = 1,
 	kMA06LoopDoorClose = 3
 };
 
@@ -38,7 +38,7 @@ void SceneScriptMA06::InitializeScene() {
 	Ambient_Sounds_Add_Looping_Sound(kSfxAPRTFAN1, 33, 0, 1);
 
 	Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kMA06LoopDoorOpen, false);
-	Scene_Loop_Set_Default(kMA06LoopMain);
+	Scene_Loop_Set_Default(kMA06LoopMainLoop);
 
 	Sound_Play(kSfxELDOORC1, 100, 50, 50, 100);
 }
@@ -142,7 +142,7 @@ void SceneScriptMA06::activateElevator() {
 		int floor = Elevator_Activate(kElevatorMA);
 		Player_Loses_Control();
 
-		Scene_Loop_Start_Special(kSceneLoopModeOnce, kMA06LoopMain, true);
+		Scene_Loop_Start_Special(kSceneLoopModeOnce, kMA06LoopMainLoop, true);
 
 		if (floor > 1) {
 			Game_Flag_Set(kFlagMA06toMA07);
diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp
index 14b74f9..41a571c 100644
--- a/engines/bladerunner/script/scene/nr01.cpp
+++ b/engines/bladerunner/script/scene/nr01.cpp
@@ -27,7 +27,7 @@ namespace BladeRunner {
 enum kNR01Loops {
 	kNR01LoopInshot            = 0,
 	kNR01LoopMainLoop          = 1,
-	kNR01LoopOutshoot          = 3,
+	kNR01LoopOutshot           = 3,
 	kNR01LoopMainLoopNoSpinner = 4
 };
 
@@ -87,7 +87,12 @@ void SceneScriptNR01::InitializeScene() {
 	if ( Game_Flag_Query(kFlagSpinnerAtNR01)
 	 && !Game_Flag_Query(kFlagArrivedFromSpinner1)
 	) {
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kNR01LoopInshot, false);
+		if ((!Game_Flag_Query(kFlagNR01VisitedFirstTimeWithSpinner) && Global_Variable_Query(kVariableChapter) == 3)
+		     || Random_Query(1, 3) == 1)
+		{
+			// enhancement: don't always play after first visit
+			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kNR01LoopInshot, false);
+		}
 		Scene_Loop_Set_Default(kNR01LoopMainLoop);
 		Game_Flag_Set(kFlagArrivedFromSpinner1);
 	} else if (Game_Flag_Query(kFlagSpinnerAtNR01)
@@ -178,7 +183,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtPS01);
 				Set_Enter(kSetPS01, kScenePS01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationMcCoysApartment:
 				Game_Flag_Set(kFlagMcCoyInMcCoyApartment);
@@ -186,7 +191,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
 				Game_Flag_Set(kFlagMcCoyInRunciters);
@@ -194,7 +199,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationChinatown:
 				Game_Flag_Set(kFlagMcCoyInChinaTown);
@@ -202,7 +207,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
 				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
@@ -210,7 +215,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
 				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
@@ -218,7 +223,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationDNARow:
 				Game_Flag_Set(kFlagMcCoyInDNARow);
@@ -226,7 +231,7 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
 				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
@@ -234,14 +239,14 @@ bool SceneScriptNR01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagArrivedFromSpinner1);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
 				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtNR01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR01LoopOutshot, true);
 				break;
 			default:
 				Player_Loses_Control();
@@ -423,6 +428,9 @@ void SceneScriptNR01::PlayerWalkedIn() {
 		Actor_Set_Goal_Number(kActorHanoi, 204);
 		Player_Gains_Control();
 	} else {
+		if (!Game_Flag_Query(kFlagNR01VisitedFirstTimeWithSpinner) && Game_Flag_Query(kFlagArrivedFromSpinner1)) {
+			Game_Flag_Set(kFlagNR01VisitedFirstTimeWithSpinner);
+		}
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 48.0f, 23.88f, -189.0f, 0, false, false, 0);
 	}
 
diff --git a/engines/bladerunner/script/scene/ps01.cpp b/engines/bladerunner/script/scene/ps01.cpp
index a30fd4c..4ab8f24 100644
--- a/engines/bladerunner/script/scene/ps01.cpp
+++ b/engines/bladerunner/script/scene/ps01.cpp
@@ -25,10 +25,10 @@
 namespace BladeRunner {
 
 enum kPS01Loops {
-	kPS01LoopInshoot   = 0,
+	kPS01LoopInshot   = 0,
 	kPS01LoopMainLoop  = 1,
 	kPS01LoopDoorAnim  = 3,
-	kPS01LoopOutshoot  = 4,
+	kPS01LoopOutshot  = 4,
 	kPS01LoopNoSpinner = 5
 };
 
@@ -54,7 +54,7 @@ void SceneScriptPS01::InitializeScene() {
 	} else {
 		Actor_Set_Invisible(kActorMcCoy, true);
 		Game_Flag_Set(kFlagArrivedFromSpinner2);
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kPS01LoopInshoot, false);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kPS01LoopInshot, false);
 		Scene_Loop_Set_Default(kPS01LoopMainLoop);
 		Player_Loses_Control();
 	}
@@ -112,63 +112,63 @@ bool SceneScriptPS01::ClickedOnExit(int exitId) {
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtMA01);
 				Set_Enter(kSetMA01, kSceneMA01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationRuncitersAnimals:
 				Game_Flag_Set(kFlagMcCoyInRunciters);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtRC01);
 				Set_Enter(kSetRC01, kSceneRC01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationChinatown:
 				Game_Flag_Set(kFlagMcCoyInChinaTown);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtCT01);
 				Set_Enter(kSetCT01_CT12, kSceneCT01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationAnimoidRow:
 				Game_Flag_Set(kFlagMcCoyInAnimoidRow);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtAR01);
 				Set_Enter(kSetAR01_AR02, kSceneAR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationTyrellBuilding:
 				Game_Flag_Set(kFlagMcCoyInTyrellBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationDNARow:
 				Game_Flag_Set(kFlagMcCoyInDNARow);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtDR01);
 				Set_Enter(kSetDR01_DR02_DR04, kSceneDR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationBradburyBuilding:
 				Game_Flag_Set(kFlagMcCoyInBradburyBuilding);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtBB01);
 				Set_Enter(kSetBB01, kSceneBB01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationNightclubRow:
 				Game_Flag_Set(kFlagMcCoyInNightclubRow);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtNR01);
 				Set_Enter(kSetNR01, kSceneNR01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			case kSpinnerDestinationHysteriaHall:
 				Game_Flag_Set(kFlagMcCoyInHysteriaHall);
 				Game_Flag_Reset(kFlagSpinnerAtPS01);
 				Game_Flag_Set(kFlagSpinnerAtHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshoot, true);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kPS01LoopOutshot, true);
 				break;
 			default:
 				Actor_Face_Heading(kActorMcCoy, 870, false);
diff --git a/engines/bladerunner/script/scene/rc03.cpp b/engines/bladerunner/script/scene/rc03.cpp
index 2929296..9f00c5f 100644
--- a/engines/bladerunner/script/scene/rc03.cpp
+++ b/engines/bladerunner/script/scene/rc03.cpp
@@ -24,6 +24,11 @@
 
 namespace BladeRunner {
 
+enum kRC03Loops {
+	kRC03LoopInshot   = 0,
+	kRC03LoopMainLoop = 1
+};
+
 void SceneScriptRC03::InitializeScene() {
 	if (Game_Flag_Query(kFlagRC01toRC03)) {
 		Setup_Scene_Information(298.0f, -4.0f, 405.0f, 800);
@@ -82,11 +87,12 @@ void SceneScriptRC03::InitializeScene() {
 	if (Game_Flag_Query(kFlagHC04toRC03)
 	 && Actor_Query_Goal_Number(kActorIzo) != kGoalIzoWaitingAtRC03
 	) {
-		if (Random_Query(1, 3) == 1) { // enhancement: don't always play this scene when exiting Hawker's Circle
-			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
+		if (Random_Query(1, 3) == 1) {
+			// enhancement: don't always play this scene when exiting Hawker's Circle
+			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kRC03LoopInshot, false);
 		}
 	}
-	Scene_Loop_Set_Default(1);
+	Scene_Loop_Set_Default(kRC03LoopMainLoop);
 }
 
 void SceneScriptRC03::SceneLoaded() {
diff --git a/engines/bladerunner/script/scene/rc51.cpp b/engines/bladerunner/script/scene/rc51.cpp
index 85182b8..ed5642d 100644
--- a/engines/bladerunner/script/scene/rc51.cpp
+++ b/engines/bladerunner/script/scene/rc51.cpp
@@ -26,7 +26,7 @@ namespace BladeRunner {
 
 enum kRC51Loops {
 	kRC51LoopInshotFromRC02 = 0,
-	kRC51LoopMain           = 1
+	kRC51LoopMainLoop       = 1
 };
 
 enum kRC51Exits {
@@ -37,7 +37,7 @@ void SceneScriptRC51::InitializeScene() {
 	Setup_Scene_Information(-8.87f, -1238.89f, 108164.27f, 66);
 	Scene_Exit_Add_2D_Exit(kRC51ExitRC02, 0, 460, 639, 479, 2);
 	Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kRC51LoopInshotFromRC02, false);
-	Scene_Loop_Set_Default(kRC51LoopMain);
+	Scene_Loop_Set_Default(kRC51LoopMainLoop);
 }
 
 void SceneScriptRC51::SceneLoaded() {
diff --git a/engines/bladerunner/script/scene/tb07.cpp b/engines/bladerunner/script/scene/tb07.cpp
index 0faa58d..9e5578a 100644
--- a/engines/bladerunner/script/scene/tb07.cpp
+++ b/engines/bladerunner/script/scene/tb07.cpp
@@ -25,7 +25,7 @@
 namespace BladeRunner {
 
 enum kTB07Loops {
-	kTB07LoopMain          = 0,
+	kTB07LoopMainLoop      = 0,
 	kTB07LoopShadeDrop     = 2,
 	kTB07LoopMainShadeDown = 3
 };
@@ -54,7 +54,7 @@ void SceneScriptTB07::InitializeScene() {
 	if (Game_Flag_Query(kFlagTB07ShadeDown)) {
 		Scene_Loop_Set_Default(kTB07LoopMainShadeDown);
 	} else {
-		Scene_Loop_Set_Default(kTB07LoopMain);
+		Scene_Loop_Set_Default(kTB07LoopMainLoop);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/ug04.cpp b/engines/bladerunner/script/scene/ug04.cpp
index 357332a..d80c67a 100644
--- a/engines/bladerunner/script/scene/ug04.cpp
+++ b/engines/bladerunner/script/scene/ug04.cpp
@@ -24,6 +24,11 @@
 
 namespace BladeRunner {
 
+enum kUG04Loops {
+	kUG04LoopTrainLoop = 0,
+	kUG04LoopMainLoop  = 1
+};
+
 void SceneScriptUG04::InitializeScene() {
 	if (Game_Flag_Query(kFlagUG05toUG04)) {
 		Setup_Scene_Information(   0.0f, -1.74f, -2400.0f, 496);
@@ -61,10 +66,11 @@ void SceneScriptUG04::InitializeScene() {
 
 	if ((Global_Variable_Query(kVariableChapter) == 3)
 		|| (Global_Variable_Query(kVariableChapter) > 3 && Random_Query(1, 5) == 1)
-	){ // enhancement: don't always play the passing train after chapter 3
-		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);
+	){
+		// enhancement: don't always play the bikers after chapter 3
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kUG04LoopTrainLoop, false);
 	}
-	Scene_Loop_Set_Default(1);
+	Scene_Loop_Set_Default(kUG04LoopMainLoop);
 }
 
 void SceneScriptUG04::SceneLoaded() {


Commit: 346361166cd95bb6c2fb56c1526f8f44be27a32f
    https://github.com/scummvm/scummvm/commit/346361166cd95bb6c2fb56c1526f8f44be27a32f
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-04-28T00:21:16+03:00

Commit Message:
BLADERUNNER: Add cut monologue from DR01 first visit

Changed paths:
    engines/bladerunner/script/scene/dr01.cpp


diff --git a/engines/bladerunner/script/scene/dr01.cpp b/engines/bladerunner/script/scene/dr01.cpp
index 4606358..334c0e4 100644
--- a/engines/bladerunner/script/scene/dr01.cpp
+++ b/engines/bladerunner/script/scene/dr01.cpp
@@ -270,6 +270,23 @@ void SceneScriptDR01::PlayerWalkedIn() {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -447.39f, 0.16f, -92.38f, 0, false, false, 0);
 		if (!Game_Flag_Query(kFlagDR01Visited)) {
 			Game_Flag_Set(kFlagDR01Visited);
+			// Make use of the kFlagDirectorsCut like in CT01 case
+			// extra flags and chapter check are for compatibility / sane behavior
+			// in imported original save games (or "exported" save games for the original)
+			if (_vm->_cutContent) {
+				if (
+					Global_Variable_Query(kVariableChapter) == 2
+					&& !Game_Flag_Query(kFlagDR03ChewTalk1)
+					&& !Game_Flag_Query(kFlagDR05MorajiTalk)
+					&& !Game_Flag_Query(kFlagDirectorsCut)) {
+					Actor_Voice_Over(600, kActorVoiceOver);
+					Actor_Voice_Over(610, kActorVoiceOver);
+					Actor_Voice_Over(620, kActorVoiceOver);
+					Actor_Voice_Over(630, kActorVoiceOver);
+					Actor_Voice_Over(640, kActorVoiceOver);
+					Actor_Voice_Over(650, kActorVoiceOver);
+				}
+			}
 		}
 		Player_Gains_Control();
 	}


Commit: c72cde3149514dddb8f76f9e717a0fb03dcb8332
    https://github.com/scummvm/scummvm/commit/c72cde3149514dddb8f76f9e717a0fb03dcb8332
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-04-28T00:21:16+03:00

Commit Message:
BLADERUNNER: Fix spinner transitions post Act 1

Also restored ascenting outtake when leaving RC01 in Act 1

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/scene/ar01.cpp
    engines/bladerunner/script/scene/bb01.cpp
    engines/bladerunner/script/scene/ct01.cpp
    engines/bladerunner/script/scene/dr01.cpp
    engines/bladerunner/script/scene/hf01.cpp
    engines/bladerunner/script/scene/ma01.cpp
    engines/bladerunner/script/scene/nr01.cpp
    engines/bladerunner/script/scene/ps01.cpp
    engines/bladerunner/script/scene/rc01.cpp
    engines/bladerunner/script/scene/tb02.cpp
    engines/bladerunner/script/scene/tb07.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index c944db8..44acb5c 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1245,16 +1245,16 @@ enum Outtakes {
 	kOuttakeEnd7 = 26,
 	kOuttakeTyrellBuildingFly = 27,
 	kOuttakeWestwood = 28,
-	kOuttakeFlyThrough = 29,
-	kOuttakeAway1 = 30,
-	kOuttakeAway2 = 31,
-	kOuttakeAscent = 32,
-	kOuttakeDescent = 33,
-	kOuttakeInside1 = 34,
-	kOuttakeInside2 = 35,
-	kOuttakeTowards1 = 36,
-	kOuttakeTowards2 = 37,
-	kOuttakeTowards3 = 38,
+	kOuttakeFlyThrough = 29,        // Act 1
+	kOuttakeAway1 = 30,             // Act 2, 3
+	kOuttakeAway2 = 31,             // Act 1
+	kOuttakeAscent = 32,            // Act 1, 4, 5 - Original: unused
+	kOuttakeDescent = 33,           // Act 1, 4, 5
+	kOuttakeInside1 = 34,           // Act 1
+	kOuttakeInside2 = 35,           // Act 1, 2, 3
+	kOuttakeTowards1 = 36,          // Act 1
+	kOuttakeTowards2 = 37,          // Act 1
+	kOuttakeTowards3 = 38,          // Act 1, 2, 3
 	kOuttakeRachel = 39,
 	kOuttakeDektora = 40,
 	kOuttakeBladeRunner = 41
diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp
index d658cc4..0397435 100644
--- a/engines/bladerunner/script/scene/ar01.cpp
+++ b/engines/bladerunner/script/scene/ar01.cpp
@@ -399,9 +399,14 @@ void SceneScriptAR01::PlayerWalkedOut() {
 	if (!Game_Flag_Query(kFlagAR01toHC01)
 	 && !Game_Flag_Query(kFlagAR01toAR02)
 	) {
-		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
-		Ambient_Sounds_Remove_All_Looping_Sounds(1);
+#if BLADERUNNER_ORIGINAL_BUGS
 		Outtake_Play(kOuttakeTowards3, true, -1);
+#else
+		if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+			// don't play an extra outtake when going to Tyrell Building
+			Outtake_Play(kOuttakeTowards3, true, -1); // Act 1, 2, 3
+		}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/bb01.cpp b/engines/bladerunner/script/scene/bb01.cpp
index 76fe189..4275bb9 100644
--- a/engines/bladerunner/script/scene/bb01.cpp
+++ b/engines/bladerunner/script/scene/bb01.cpp
@@ -259,6 +259,16 @@ void SceneScriptBB01::PlayerWalkedIn() {
 void SceneScriptBB01::PlayerWalkedOut() {
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	if (!Game_Flag_Query(kFlagBB01toBB02)
+	    && !Game_Flag_Query(kFlagBB01toDR02)) {
+		// Acts 2, 3 - should still use a spinner fly-through transition
+		if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+			Outtake_Play(kOuttakeTowards3, true, -1); // available in Acts 1, 2, 3
+		}
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 void SceneScriptBB01::DialogueQueueFlushed(int a1) {
diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp
index d3312f7..43805d0 100644
--- a/engines/bladerunner/script/scene/ct01.cpp
+++ b/engines/bladerunner/script/scene/ct01.cpp
@@ -487,11 +487,23 @@ void SceneScriptCT01::PlayerWalkedOut() {
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 	}
 	Music_Stop(5);
+#if BLADERUNNER_ORIGINAL_BUGS
 	if (!Game_Flag_Query(kFlagMcCoyInChinaTown) && Global_Variable_Query(kVariableChapter) == 1) {
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 		Outtake_Play(kOuttakeTowards3, true, -1);
 	}
+#else
+	// Acts 2, 3 - should still use a spinner fly-through transition
+	// also removed the redundant Ambient_Sounds_Remove_All_Non_Looping_Sounds
+	if (!Game_Flag_Query(kFlagMcCoyInChinaTown)) {
+		Ambient_Sounds_Remove_All_Looping_Sounds(1);
+		if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+			// don't play this outtake when going to Tyrell Building
+			Outtake_Play(kOuttakeTowards3, true, -1);   // available in Acts 1, 2, 3
+		}
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 void SceneScriptCT01::DialogueQueueFlushed(int a1) {
diff --git a/engines/bladerunner/script/scene/dr01.cpp b/engines/bladerunner/script/scene/dr01.cpp
index 334c0e4..2467d84 100644
--- a/engines/bladerunner/script/scene/dr01.cpp
+++ b/engines/bladerunner/script/scene/dr01.cpp
@@ -303,6 +303,14 @@ void SceneScriptDR01::PlayerWalkedOut() {
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
 		Outtake_Play(kOuttakeInside2, true, -1);
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+		// add another transition to make it less abrupt
+		if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+			// but don't play this extra outtake when going to Tyrell Building
+			Outtake_Play(kOuttakeAway1,   true, -1);
+		}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/hf01.cpp b/engines/bladerunner/script/scene/hf01.cpp
index f7567bc..e98cd93 100644
--- a/engines/bladerunner/script/scene/hf01.cpp
+++ b/engines/bladerunner/script/scene/hf01.cpp
@@ -411,10 +411,16 @@ void SceneScriptHF01::PlayerWalkedOut() {
 	 && !Game_Flag_Query(kFlagHF01toHF03)
 	 && !Game_Flag_Query(kFlagChapter4Starting)
 	) {
-		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
-		Ambient_Sounds_Remove_All_Looping_Sounds(1);
-		Outtake_Play(kOuttakeInside2, true, -1);
+#if BLADERUNNER_ORIGINAL_BUGS
+		Outtake_Play(kOuttakeInside2,  true, -1);
 		Outtake_Play(kOuttakeTowards3, true, -1);
+#else
+		if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+			// don't play an extra outtake when going to Tyrell Building
+			Outtake_Play(kOuttakeInside2,  true, -1);
+			Outtake_Play(kOuttakeTowards3, true, -1);
+		}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	}
 	Game_Flag_Reset(kFlagChapter4Starting);
 
diff --git a/engines/bladerunner/script/scene/ma01.cpp b/engines/bladerunner/script/scene/ma01.cpp
index 7de96d7..9a4bf24 100644
--- a/engines/bladerunner/script/scene/ma01.cpp
+++ b/engines/bladerunner/script/scene/ma01.cpp
@@ -275,14 +275,22 @@ void SceneScriptMA01::PlayerWalkedOut() {
 	Actor_Set_Invisible(kActorMcCoy, false);
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
-	if (!Game_Flag_Query(kFlagMA01toMA06)
-	 &&  Global_Variable_Query(kVariableChapter) == 1
-	) {
-		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
-		Ambient_Sounds_Remove_All_Looping_Sounds(1);
-		Outtake_Play(kOuttakeTowards2, true, -1);
-		Outtake_Play(kOuttakeInside1, true, -1);
-		Outtake_Play(kOuttakeTowards1, true, -1);
+	if (!Game_Flag_Query(kFlagMA01toMA06)) {
+		if (Global_Variable_Query(kVariableChapter) == 1) {
+			Outtake_Play(kOuttakeTowards2, true, -1);
+			Outtake_Play(kOuttakeInside1,  true, -1);
+			Outtake_Play(kOuttakeTowards1, true, -1);
+		}
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+		else {
+			// Acts 2, 3 - should still use a spinner fly-through transition
+			if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+				// don't play an extra outtake when going to Tyrell Building
+				Outtake_Play(kOuttakeAway1,    true, -1); // available in Acts 2, 3
+			}
+		}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp
index 41a571c..3429870 100644
--- a/engines/bladerunner/script/scene/nr01.cpp
+++ b/engines/bladerunner/script/scene/nr01.cpp
@@ -462,10 +462,17 @@ void SceneScriptNR01::PlayerWalkedOut() {
 	 && !Game_Flag_Query(kFlagNR01DektoraFall)
 	 && !Game_Flag_Query(kFlagChapter4Starting)
 	) {
-		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
-		Ambient_Sounds_Remove_All_Looping_Sounds(1);
-		Outtake_Play(kOuttakeAway1, true, -1);
+#if BLADERUNNER_ORIGINAL_BUGS
+		Outtake_Play(kOuttakeAway1,   true, -1);
 		Outtake_Play(kOuttakeInside2, true, -1);
+#else
+		if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+			// don't play an extra outtake when going to Tyrell Building
+			// also switch order so inside2 outtake is not last
+			Outtake_Play(kOuttakeInside2, true, -1);
+			Outtake_Play(kOuttakeAway1,   true, -1);
+		}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	}
 	Game_Flag_Reset(kFlagChapter4Starting);
 }
diff --git a/engines/bladerunner/script/scene/ps01.cpp b/engines/bladerunner/script/scene/ps01.cpp
index 4ab8f24..56b9f72 100644
--- a/engines/bladerunner/script/scene/ps01.cpp
+++ b/engines/bladerunner/script/scene/ps01.cpp
@@ -288,12 +288,21 @@ void SceneScriptPS01::PlayerWalkedOut() {
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
 
-	if (!Game_Flag_Query(kflagPS01toPS02)
-	 &&  Global_Variable_Query(kVariableChapter) == 1
-	) {
-		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
-		Ambient_Sounds_Remove_All_Looping_Sounds(1);
-		Outtake_Play(kOuttakeTowards3, true, -1);
+	if (!Game_Flag_Query(kflagPS01toPS02)) {
+		if (Global_Variable_Query(kVariableChapter) == 1) {
+			Outtake_Play(kOuttakeTowards3, true, -1);
+		}
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+		else {
+			// Acts 2, 3 - should still use a spinner fly-through transition
+			if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+				// don't play an extra outtake when going to Tyrell Building
+				Outtake_Play(kOuttakeInside2,  true, -1); // available in Acts 1, 2, 3
+				Outtake_Play(kOuttakeTowards3, true, -1); // available in Acts 1, 2, 3
+			}
+		}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp
index a6fb2db..ee7fe5f 100644
--- a/engines/bladerunner/script/scene/rc01.cpp
+++ b/engines/bladerunner/script/scene/rc01.cpp
@@ -698,11 +698,23 @@ void SceneScriptRC01::PlayerWalkedOut() {
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
 	if (!Game_Flag_Query(kFlagRC01toRC02)
 	 && !Game_Flag_Query(kFlagRC01toRC03)
-	 &&  Global_Variable_Query(kVariableChapter) == 1
 	) {
-		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
-		Ambient_Sounds_Remove_All_Looping_Sounds(1);
-		Outtake_Play(kOuttakeAway2, true, -1);
+		if(Global_Variable_Query(kVariableChapter) == 1) {
+			if (_vm->_cutContent) {
+				Outtake_Play(kOuttakeAscent, true, -1);
+			}
+			Outtake_Play(kOuttakeAway2, true, -1);
+		}
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+		else {
+			// Acts 2, 3 - should still use a spinner fly-through transition
+			if (!Game_Flag_Query(kFlagMcCoyInTyrellBuilding)) {
+				// don't play this extra outtake when going to Tyrell Building
+				Outtake_Play(kOuttakeAway1, true, -1);    // available in Acts 2, 3
+			}
+		}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 	}
 	//	return 1;
 }
diff --git a/engines/bladerunner/script/scene/tb02.cpp b/engines/bladerunner/script/scene/tb02.cpp
index bffea7b..56cf556 100644
--- a/engines/bladerunner/script/scene/tb02.cpp
+++ b/engines/bladerunner/script/scene/tb02.cpp
@@ -383,6 +383,15 @@ void SceneScriptTB02::PlayerWalkedIn() {
 void SceneScriptTB02::PlayerWalkedOut() {
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	if (Global_Variable_Query(kVariableChapter) < 4
+	    && !Game_Flag_Query(kFlagMcCoyInTyrellBuilding)
+	) {
+		// Acts 2, 3 - use a spinner fly-through transition
+		Outtake_Play(kOuttakeTowards3, true, -1);  // available in Acts 1, 2, 3
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
 }
 
 void SceneScriptTB02::DialogueQueueFlushed(int a1) {
diff --git a/engines/bladerunner/script/scene/tb07.cpp b/engines/bladerunner/script/scene/tb07.cpp
index 9e5578a..781e53e 100644
--- a/engines/bladerunner/script/scene/tb07.cpp
+++ b/engines/bladerunner/script/scene/tb07.cpp
@@ -90,8 +90,10 @@ bool SceneScriptTB07::ClickedOnItem(int itemId, bool a2) {
 bool SceneScriptTB07::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 68.0f, 12.0f, 288.0f, 0, true, false, 0)) {
+#if BLADERUNNER_ORIGINAL_BUGS
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
+#endif // BLADERUNNER_ORIGINAL_BUGS
 			if (Global_Variable_Query(kVariableChapter) == 4) {
 				Game_Flag_Set(kFlagTB07toTB02);
 				Set_Enter(kSetTB02_TB03, kSceneTB02);
@@ -199,6 +201,18 @@ void SceneScriptTB07::PlayerWalkedIn() {
 }
 
 void SceneScriptTB07::PlayerWalkedOut() {
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
+	Ambient_Sounds_Remove_All_Looping_Sounds(1);
+	if (Global_Variable_Query(kVariableChapter) < 4
+	    && !Game_Flag_Query(kFlagMcCoyInTyrellBuilding)
+	) {
+		// Acts 2, 3 - use a spinner fly-through transition
+		Outtake_Play(kOuttakeAway1,    true, -1);  // available in Acts 2, 3
+	}
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
 }
 
 void SceneScriptTB07::DialogueQueueFlushed(int a1) {





More information about the Scummvm-git-logs mailing list