[Scummvm-git-logs] scummvm master -> 7061f7cb173871e84d26010b9742fcec8a0ece1a

peterkohaut peterkohaut at users.noreply.github.com
Thu Feb 7 23:49:18 CET 2019


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

Summary:
c99d3ea132 BLADERUNNER: Cleanup of Clovis scripts for chapter 5
b3b6f6eaa3 BLADERUNNER: Cleanup of Mutants scripts
7061f7cb17 BLADERUNNER: Cleanup for drive away endings scripts


Commit: c99d3ea132f9ac451d4b69b56b66061f3e337ce5
    https://github.com/scummvm/scummvm/commit/c99d3ea132f9ac451d4b69b56b66061f3e337ce5
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-07T23:45:19+01:00

Commit Message:
BLADERUNNER: Cleanup of Clovis scripts for chapter 5

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/clovis.cpp
    engines/bladerunner/script/ai/maggie.cpp
    engines/bladerunner/script/ai/mutant1.cpp
    engines/bladerunner/script/ai/sadik.cpp
    engines/bladerunner/script/ai/steele.cpp
    engines/bladerunner/script/scene/kp01.cpp
    engines/bladerunner/script/scene/kp05.cpp
    engines/bladerunner/script/scene/kp06.cpp
    engines/bladerunner/script/scene/kp07.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 06c6ae9..7248cca 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -960,7 +960,7 @@ enum Flags {
 	kFlagTB06DogCollarTaken = 519,
 	kFlagTB06KitchenBoxTaken = 520,
 	kFlagHC03TrapDoorOpened = 521,
-
+	kFlagMutantsActive = 523,
 	kFlagUG06Chapter4Started = 524,
 	kFlagCT10Entered = 525,
 	// 526 is never used
@@ -1019,6 +1019,7 @@ enum Flags {
 	kFlagKP07toKP06 = 579,
 	// 580 is never used
 	// 581 is never used
+	kFlagKP07BusActive = 582, // is never set
 	// 583 is never used
 	kFlagHF04DoorsClosed = 584,
 	kFlagHF04CloseDoors = 585,
@@ -1093,7 +1094,8 @@ enum Flags {
 	kFlagMA02Chapter5Started = 654,
 	kFlagMA02RajifTalk = 655,
 	kFlagUG02RagiationGooglesTaken = 656,
-
+	kFlagNotUsed657 = 657, // is never set
+	kFlagKP07Entered = 658,
 	kFlagNR11BreakWindow = 659,
 	kFlagDNARowAvailableTalk = 660,
 	kFlagTB07ShadeDown = 661, // is never set
@@ -1116,7 +1118,7 @@ enum Flags {
 	kFlagChapter4Intro = 680,
 	// 681 is never used
 	kFlagUG15BridgeBroken = 682,
-
+	kFlagClovisLyingDown = 685,
 	kFlagNotUsed686 = 686,
 	// 687 is never used
 	kFlagPS05TV0 = 688,
@@ -1127,7 +1129,8 @@ enum Flags {
 	kFlagUG03DeadHomeless = 693,
 	kFlagUG14DeadHomeless = 694,
 	// 695 is never used
-
+	kFlagKP07ReplicantsAttackMcCoy = 696,
+	kFlagKP07McCoyPulledGun = 697,
 	kFlagUG15LanceLuthorTrade = 698,
 
 	// 700 is never used
@@ -1144,7 +1147,7 @@ enum Flags {
 	kFlagMA04WatchedTV = 711,
 	kFlagMcCoyShotAtZuben = 712,
 	kFlagDR04McCoyShotMoraji = 713,
-
+	kFlagMcCoyAttackedReplicants = 714,
 	kFlagDR06UnlockedToUG16 = 715,
 
 	kFlagRC04BobTalk3 = 717,
@@ -1629,7 +1632,7 @@ enum GameItems {
 	kItemDogWrapper = 115,
 	// 116 is never used
 	// 117 is never used
-
+	kItemPowerSource = 118,
 	kItemTyrellSalesPamphlet = 119,
 	kItemMoonbusPhoto = 120,
 	kItemGreenPawnLock = 121,
@@ -1945,14 +1948,28 @@ enum GoalClovis {
 	kGoalClovisBB11TalkWithSadik = 103,
 	kGoalClovisBB11PrepareTalkToMcCoy = 104, // bug? this is not triggered when player skips dialogue too fast
 	kGoalClovisBB11TalkToMcCoy = 105, // ends Chapter 2
+	// chapter 4
 	kGoalClovisUG18Wait = 300,
 	kGoalClovisUG18SadikWillShootGuzza = 301,
 	kGoalClovisUG18SadikIsShootingGuzza = 302,
 	kGoalClovisUG18GuzzaDied = 303,
 	kGoalClovisUG18Leave = 310,
+	kGoalClovisStartChapter3 = 350,
 	kGoalClovisStartChapter4 = 400,
 	kGoalClovisUG07ChaseMcCoy = 401,
-	kGoalClovisUG07KillMcCoy = 402
+	kGoalClovisUG07KillMcCoy = 402,
+	// chapter 5
+	kGoalClovisStartChapter5 = 500,
+	kGoalClovisDecide = 510,
+	kGoalClovisKP06Wait = 511, // this immediately reset to kGoalClovisKP07Wait by Sadik at start of chapter 5
+	kGoalClovisKP06TalkToMcCoy = 512, // never triggered
+	kGoalClovisKP07Wait = 513,
+	kGoalClovisKP07TalkToMcCoy = 514,
+	kGoalClovisKP07SayFinalWords = 515,
+	kGoalClovisKP07FlyAway = 516, // and game over
+	kGoalClovisKP07ReplicantsAttackMcCoy = 517,
+	kGoalClovisKP07LayDown = 518,
+	kGoalClovisGone = 599
 };
 
 enum GoalLucy {
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 1ab80ab..a991781 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -56,9 +56,9 @@ bool AIScriptClovis::Update() {
 	}
 
 	if (Global_Variable_Query(kVariableChapter) == 3
-	 && Actor_Query_Goal_Number(kActorClovis) < 350
+	 && Actor_Query_Goal_Number(kActorClovis) < kGoalClovisStartChapter3
 	) {
-		Actor_Set_Goal_Number(kActorClovis, 350);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisStartChapter3);
 		return true;
 	}
 
@@ -71,23 +71,23 @@ bool AIScriptClovis::Update() {
 	}
 
 	if (Global_Variable_Query(kVariableChapter) == 5
-	 && Actor_Query_Goal_Number(kActorClovis) < 500
+	 && Actor_Query_Goal_Number(kActorClovis) < kGoalClovisStartChapter5
 	) {
-		Actor_Set_Goal_Number(kActorClovis, 500);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisStartChapter5);
 	}
 
-	if (Actor_Query_Goal_Number(kActorClovis) == 511
-	 && Game_Flag_Query(657)
+	if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP06Wait
+	 && Game_Flag_Query(kFlagNotUsed657)
 	) {
-		Actor_Set_Goal_Number(kActorClovis, 512);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP06TalkToMcCoy);
 	}
 
 	if ( Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
-	 && !Game_Flag_Query(696)
-	 &&  Game_Flag_Query(697)
+	 && !Game_Flag_Query(kFlagKP07ReplicantsAttackMcCoy)
+	 &&  Game_Flag_Query(kFlagKP07McCoyPulledGun)
 	) {
-		Actor_Set_Goal_Number(kActorClovis, 517);
-		Game_Flag_Set(696);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07ReplicantsAttackMcCoy);
+		Game_Flag_Set(kFlagKP07ReplicantsAttackMcCoy);
 		return true;
 	}
 	return false;
@@ -130,7 +130,7 @@ void AIScriptClovis::ReceivedClue(int clueId, int fromActorId) {
 }
 
 void AIScriptClovis::ClickedByPlayer() {
-	if (Actor_Query_Goal_Number(kActorClovis) == 599) {
+	if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisGone) {
 		Actor_Face_Actor(kActorMcCoy, kActorClovis, true);
 		Actor_Says(kActorMcCoy, 8630, 16);
 	}
@@ -152,8 +152,8 @@ void AIScriptClovis::OtherAgentEnteredCombatMode(int otherActorId, int combatMod
 	if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
 	 && Actor_Query_In_Set(kActorMcCoy, kSetKP07)
 	) {
-		Game_Flag_Set(697);
-		Game_Flag_Set(714);
+		Game_Flag_Set(kFlagKP07McCoyPulledGun);
+		Game_Flag_Set(kFlagMcCoyAttackedReplicants);
 		// return true;
 	}
 	// return false;
@@ -164,17 +164,19 @@ void AIScriptClovis::ShotAtAndMissed() {
 }
 
 bool AIScriptClovis::ShotAtAndHit() {
-	if (!Game_Flag_Query(697)) {
-		if (Actor_Query_Goal_Number(kActorClovis) == 515) {
+	if (!Game_Flag_Query(kFlagKP07McCoyPulledGun)) {
+		if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07SayFinalWords) {
 			ADQ_Flush();
-			Actor_Set_Goal_Number(kActorClovis, 599);
+			Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
 			shotAnim();
 			Actor_Set_Targetable(kActorClovis, false);
 			ADQ_Add(kActorMcCoy, 2340, -1);
 			Music_Stop(3);
-		} else if (Actor_Query_Goal_Number(kActorClovis) == 513 || Actor_Query_Goal_Number(kActorClovis) == 518) {
+		} else if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07Wait
+		        || Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07LayDown
+		) {
 			ADQ_Flush();
-			Actor_Set_Goal_Number(kActorClovis, 599);
+			Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
 			shotAnim();
 			Actor_Set_Targetable(kActorClovis, false);
 			Music_Stop(3);
@@ -187,7 +189,7 @@ void AIScriptClovis::Retired(int byActorId) {
 	if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
 		if (Actor_Query_In_Set(kActorClovis, kSetKP07)) {
 			Global_Variable_Decrement(kVariableReplicants, 1);
-			Actor_Set_Goal_Number(kActorClovis, 599);
+			Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
 
 			if (Global_Variable_Query(kVariableReplicants) == 0) {
 				Player_Loses_Control();
@@ -319,7 +321,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	case kGoalClovisUG18Leave:
 		return true;
 
-	case 350:
+	case kGoalClovisStartChapter3:
 		Actor_Put_In_Set(kActorClovis, kSetFreeSlotA);
 		Actor_Set_At_Waypoint(kActorClovis, 33, 0);
 		return true;
@@ -353,25 +355,25 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Retired_Here(kActorMcCoy, 12, 48, true, kActorClovis);
 		return true;
 
-	case 500:
-		Actor_Set_Goal_Number(kActorClovis, 510);
+	case kGoalClovisStartChapter5:
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisDecide);
 		return true;
 
-	case 510:
+	case kGoalClovisDecide:
 		if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
-			Actor_Set_Goal_Number(kActorClovis, 513);
+			Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07Wait);
 		} else {
-			Actor_Set_Goal_Number(kActorClovis, 511);
-			Game_Flag_Set(685);
+			Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP06Wait);
+			Game_Flag_Set(kFlagClovisLyingDown);
 		}
 		return true;
 
-	case 511:
+	case kGoalClovisKP06Wait:
 		Actor_Put_In_Set(kActorClovis, kSetKP05_KP06);
 		Actor_Set_At_XYZ(kActorClovis, -1072.0f, 8.26f, -708.0f, 530);
 		return true;
 
-	case 512:
+	case kGoalClovisKP06TalkToMcCoy:
 		Actor_Says(kActorClovis, 110, kAnimationModeTalk);
 		Actor_Says(kActorMcCoy, 2255, kAnimationModeTalk);
 		Actor_Says(kActorClovis, 120, kAnimationModeTalk);
@@ -379,10 +381,10 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorClovis, 140, kAnimationModeTalk);
 		Actor_Says(kActorMcCoy, 2260, kAnimationModeTalk);
 		Actor_Says(kActorClovis, 150, kAnimationModeTalk);
-		Actor_Set_Goal_Number(kActorClovis, 513);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07Wait);
 		return true;
 
-	case 513:
+	case kGoalClovisKP07Wait:
 		Actor_Put_In_Set(kActorClovis, kSetKP07);
 		Actor_Set_Targetable(kActorClovis, true);
 		if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
@@ -396,12 +398,12 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		someAnim();
 		return true;
 
-	case 514:
+	case kGoalClovisKP07TalkToMcCoy:
 		Actor_Says(kActorMcCoy, 2345, 16);
 		Actor_Says(kActorClovis, 170, -1);
 		Actor_Says(kActorClovis, 180, kAnimationModeTalk);
 		Actor_Says(kActorMcCoy, 2350, 17);
-		if (!Game_Flag_Query(714)) {
+		if (!Game_Flag_Query(kFlagMcCoyAttackedReplicants)) {
 			Actor_Says(kActorMcCoy, 2355, 11);
 		}
 		Actor_Says(kActorClovis, 190, -1);
@@ -409,10 +411,10 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorMcCoy, 2360, 18);
 		Actor_Says(kActorClovis, 210, kAnimationModeTalk);
 		Actor_Says(kActorClovis, 220, -1);
-		Actor_Set_Goal_Number(kActorClovis, 515);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07SayFinalWords);
 		return true;
 
-	case 515:
+	case kGoalClovisKP07SayFinalWords:
 		ADQ_Add(kActorClovis, 240, -1);
 		ADQ_Add(kActorClovis, 250, -1);
 		ADQ_Add(kActorClovis, 260, -1);
@@ -423,7 +425,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		ADQ_Add(kActorClovis, 300, -1);
 		return true;
 
-	case 516:
+	case kGoalClovisKP07FlyAway:
 		Actor_Says(kActorMcCoy, 8501, kAnimationModeTalk);
 		Actor_Says(kActorClovis, 1260, kAnimationModeTalk);
 		Actor_Says(kActorMcCoy, 8502, kAnimationModeTalk);
@@ -449,31 +451,54 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Game_Over();
 		return true;
 
-	case 517:
-		if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLucy, kSetKP07)) {
+	case kGoalClovisKP07ReplicantsAttackMcCoy:
+		if (Global_Variable_Query(kVariableChapter) == 5
+		 && Actor_Query_In_Set(kActorLucy, kSetKP07)
+		) {
 			Actor_Set_Goal_Number(kActorLucy, kGoalLucyGone);
 			Global_Variable_Decrement(kVariableReplicants, 1);
 		}
-		if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorLuther, kSetKP07)) {
+
+		if (Global_Variable_Query(kVariableChapter) == 5
+		 && Actor_Query_In_Set(kActorLuther, kSetKP07)
+		) {
 			Actor_Set_Goal_Number(kActorLuther, kGoalLutherGone);
 			Global_Variable_Decrement(kVariableReplicants, 1);
 		}
-		if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorDektora, kSetKP07)) {
+
+		if (Global_Variable_Query(kVariableChapter) == 5
+		 && Actor_Query_In_Set(kActorDektora, kSetKP07)
+		) {
 			Non_Player_Actor_Combat_Mode_On(kActorDektora, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
 		}
-		if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorZuben, kSetKP07)) {
+
+		if (Global_Variable_Query(kVariableChapter) == 5
+		 && Actor_Query_In_Set(kActorZuben, kSetKP07)
+		) {
 			Non_Player_Actor_Combat_Mode_On(kActorZuben, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
 		}
-		if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorSadik, kSetKP07)) {
+
+		if (Global_Variable_Query(kVariableChapter) == 5
+		 && Actor_Query_In_Set(kActorSadik, kSetKP07)
+		) {
 			Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
 		}
-		if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorIzo, kSetKP07)) {
+
+		if (Global_Variable_Query(kVariableChapter) == 5
+		 && Actor_Query_In_Set(kActorIzo, kSetKP07)
+		) {
 			Non_Player_Actor_Combat_Mode_On(kActorIzo, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
 		}
-		if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorGordo, kSetKP07)) {
+
+		if (Global_Variable_Query(kVariableChapter) == 5
+		 && Actor_Query_In_Set(kActorGordo, kSetKP07)
+		) {
 			Non_Player_Actor_Combat_Mode_On(kActorGordo, kActorCombatStateIdle, true, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
 		}
-		if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_In_Set(kActorClovis, kSetKP07)) {
+
+		if (Global_Variable_Query(kVariableChapter) == 5
+		 && Actor_Query_In_Set(kActorClovis, kSetKP07)
+		) {
 			Non_Player_Actor_Combat_Mode_On(kActorClovis, kActorCombatStateIdle, false, kActorMcCoy, 19, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
 		}
 		return true;
@@ -482,7 +507,7 @@ bool AIScriptClovis::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_At_XYZ(kActorClovis, 84.85f, -50.56f, -68.87f, 800);
 		Actor_Face_Heading(kActorClovis, 1022, false);
 		Actor_Set_Targetable(kActorClovis, true);
-		Game_Flag_Set(685);
+		Game_Flag_Set(kFlagClovisLyingDown);
 		someAnim();
 		return true;
 
@@ -1073,7 +1098,9 @@ bool AIScriptClovis::UpdateAnimation(int *animation, int *frame) {
 
 	case 33:
 		*animation = 244;
-		if (!_animationFrame && _flag) {
+		if (_animationFrame == 0
+		 && _flag
+		) {
 			_animationState = 32;
 			_animationFrame = 0;
 			Actor_Change_Animation_Mode(kActorClovis, 54);
@@ -1183,39 +1210,40 @@ bool AIScriptClovis::UpdateAnimation(int *animation, int *frame) {
 bool AIScriptClovis::ChangeAnimationMode(int mode) {
 	switch (mode) {
 	case kAnimationModeIdle:
-		if (!Game_Flag_Query(685)) {
-			switch (_animationState) {
-			case 2:
-				Actor_Change_Animation_Mode(kActorClovis, kAnimationModeSit);
-				break;
-			case 4:
-				break;
-			case 5:
-			case 6:
-			case 7:
-			case 8:
-			case 9:
-			case 10:
-			case 11:
-				_flag = 1;
-				break;
-			case 12:
-				_flag = 1;
-				break;
-			case 13:
-				_animationState = 15;
-				_animationFrame = 0;
-				break;
-			default:
-				_animationState = 0;
-				_animationFrame = 0;
-				_var1 = 0;
-				break;
-			}
+		if (Game_Flag_Query(kFlagClovisLyingDown)) {
+			_animationState = 32;
+			_animationFrame = 0;
+			break;
+		}
+
+		switch (_animationState) {
+		case 2:
+			Actor_Change_Animation_Mode(kActorClovis, kAnimationModeSit);
+			break;
+		case 4:
+			break;
+		case 5:
+		case 6:
+		case 7:
+		case 8:
+		case 9:
+		case 10:
+		case 11:
+			_flag = 1;
+			break;
+		case 12:
+			_flag = 1;
+			break;
+		case 13:
+			_animationState = 15;
+			_animationFrame = 0;
+			break;
+		default:
+			_animationState = 0;
+			_animationFrame = 0;
+			_var1 = 0;
 			break;
 		}
-		_animationState = 32;
-		_animationFrame = 0;
 		break;
 
 	case kAnimationModeWalk:
@@ -1230,7 +1258,7 @@ bool AIScriptClovis::ChangeAnimationMode(int mode) {
 
 	case kAnimationModeTalk:
 	case 9:
-		if (Game_Flag_Query(685)) {
+		if (Game_Flag_Query(kFlagClovisLyingDown)) {
 			_animationFrame = 0;
 			_animationState = 34;
 		} else {
@@ -1465,7 +1493,7 @@ void AIScriptClovis::shotAnim() {
 }
 
 void AIScriptClovis::someAnim() {
-	if (Game_Flag_Query(685)) {
+	if (Game_Flag_Query(kFlagClovisLyingDown)) {
 		_animationState = 32;
 		_animationFrame = 0;
 		return;
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
index 9928835..c1ff0e2 100644
--- a/engines/bladerunner/script/ai/maggie.cpp
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -373,8 +373,8 @@ bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Says(kActorMcCoy, 2390, 13);
 			if (Actor_Query_Goal_Number(kActorSadik) == 411) {
 				Actor_Set_Goal_Number(kActorSadik, 412);
-			} else {
-				Actor_Set_Goal_Number(kActorClovis, 512);
+			} else { // there is no way how Maggie can explode and Sadik's goal is not 411
+				Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP06TalkToMcCoy);
 			}
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/mutant1.cpp b/engines/bladerunner/script/ai/mutant1.cpp
index 3849cfc..1ae338f 100644
--- a/engines/bladerunner/script/ai/mutant1.cpp
+++ b/engines/bladerunner/script/ai/mutant1.cpp
@@ -56,21 +56,25 @@ bool AIScriptMutant1::Update() {
 
 	switch (Actor_Query_Goal_Number(kActorMutant1)) {
 	case 400:
-		if (!Game_Flag_Query(523) && Game_Flag_Query(524) == 1) {
+		if (!Game_Flag_Query(kFlagMutantsActive)
+		 &&  Game_Flag_Query(kFlagUG06Chapter4Started)
+		) {
 			Actor_Set_Goal_Number(kActorMutant1, 401);
 			Actor_Set_Goal_Number(kActorMutant2, 401);
 			Actor_Set_Goal_Number(kActorMutant3, 401);
 			Actor_Set_Targetable(kActorMutant1, 1);
 			Actor_Set_Targetable(kActorMutant2, 1);
 			Actor_Set_Targetable(kActorMutant3, 1);
-			Game_Flag_Set(523);
+			Game_Flag_Set(kFlagMutantsActive);
 		}
 		break;
 
 	case 401:
 		if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set()
-				&& (Actor_Query_Friendliness_To_Other(kActorMutant1, kActorMcCoy) < 30
-				|| Actor_Query_Combat_Aggressiveness(70) >= 60)) {
+		 && (Actor_Query_Friendliness_To_Other(kActorMutant1, kActorMcCoy) < 30
+		  || Actor_Query_Combat_Aggressiveness(kActorMutant1) >= 60
+		 )
+		) {
 			Actor_Set_Goal_Number(kActorMutant1, 410);
 		}
 		break;
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index 0d6e40b..7a86c1d 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -79,7 +79,7 @@ bool AIScriptSadik::Update() {
 	}
 
 	if (Actor_Query_Goal_Number(kActorSadik) == 411) {
-		if (Game_Flag_Query(657)) {
+		if (Game_Flag_Query(kFlagNotUsed657)) {
 			Actor_Set_Goal_Number(kActorSadik, 412);
 		}
 	}
@@ -163,7 +163,7 @@ void AIScriptSadik::ShotAtAndMissed() {
 	if (Actor_Query_Goal_Number(kActorSadik) == 414
 	 || Actor_Query_Goal_Number(kActorSadik) == 416
 	) {
-		Game_Flag_Set(714);
+		Game_Flag_Set(kFlagMcCoyAttackedReplicants);
 		if (Actor_Query_Which_Set_In(kActorSadik) != kSetKP07) {
 			Actor_Set_Goal_Number(kActorSadik, 418);
 			Scene_Exits_Disable();
@@ -184,7 +184,7 @@ bool AIScriptSadik::ShotAtAndHit() {
 	if (Actor_Query_Goal_Number(kActorSadik) == 414
 	 || Actor_Query_Goal_Number(kActorSadik) == 416
 	) {
-		Game_Flag_Set(714);
+		Game_Flag_Set(kFlagMcCoyAttackedReplicants);
 		if (Actor_Query_Which_Set_In(kActorSadik) != kSetKP07) {
 			Actor_Set_Goal_Number(kActorSadik, 418);
 			Scene_Exits_Disable();
@@ -357,7 +357,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	case 411:
 		Actor_Put_In_Set(kActorSadik, kSetKP05_KP06);
 		Actor_Set_At_XYZ(kActorSadik, -1134.0f, 0.0f, 73.45f, 398);
-		Actor_Set_Goal_Number(kActorClovis, 513);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07Wait);
 		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05Wait);
 		return true;
 
@@ -431,7 +431,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 
 	case 418:
 		Game_Flag_Reset(kFlagMcCoyIsHelpingReplicants);
-		Actor_Set_Goal_Number(kActorClovis, 518);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07LayDown);
 		Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false);
 		return true;
 
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index 9435195..1715f6d 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -1279,7 +1279,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Global_Variable_Set(kVariableChapter, 4);
 		Scene_Exits_Enable();
 		Actor_Set_Health(kActorMcCoy, 50, 50);
-		Game_Flag_Set(523);
+		Game_Flag_Set(kFlagMutantsActive);
 		Game_Flag_Set(kFlagNR01toUG06);
 		Game_Flag_Set(kFlagChapter4Intro);
 		Chapter_Enter(4, kSetUG06, kSceneUG06);
@@ -1289,7 +1289,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Game_Flag_Set(kFlagChapter4Starting);
 		Global_Variable_Set(kVariableChapter, 4);
 		Scene_Exits_Enable();
-		Game_Flag_Set(523);
+		Game_Flag_Set(kFlagMutantsActive);
 		Game_Flag_Set(kFlagChapter4Intro);
 		Chapter_Enter(4, kSetUG06, kSceneUG06);
 		return true;
diff --git a/engines/bladerunner/script/scene/kp01.cpp b/engines/bladerunner/script/scene/kp01.cpp
index 52f7bfb..ab432a3 100644
--- a/engines/bladerunner/script/scene/kp01.cpp
+++ b/engines/bladerunner/script/scene/kp01.cpp
@@ -164,7 +164,7 @@ void SceneScriptKP01::PlayerWalkedIn() {
 
 	Loop_Actor_Walk_To_XYZ(kActorMcCoy, 211.0f, -12.2f, -146.0f, 0, false, false, 0);
 	if (!Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
-	 && !Game_Flag_Query(714)
+	 && !Game_Flag_Query(kFlagMcCoyAttackedReplicants)
 	 &&  Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP01Wait
 	 &&  Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleGone
 	) {
diff --git a/engines/bladerunner/script/scene/kp05.cpp b/engines/bladerunner/script/scene/kp05.cpp
index 69de280..91cfa07 100644
--- a/engines/bladerunner/script/scene/kp05.cpp
+++ b/engines/bladerunner/script/scene/kp05.cpp
@@ -59,7 +59,7 @@ void SceneScriptKP05::SceneLoaded() {
 	if (!Actor_Clue_Query(kActorMcCoy, kCluePowerSource)
 	 &&  Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
 	) {
-		Item_Add_To_World(118, 960, 9, -1095.0f, 0.0f, 770.0f, 256, 24, 24, false, true, false, true);
+		Item_Add_To_World(kItemPowerSource, 960, kSetKP05_KP06, -1095.0f, 0.0f, 770.0f, 256, 24, 24, false, true, false, true);
 	}
 }
 
@@ -76,11 +76,11 @@ bool SceneScriptKP05::ClickedOnActor(int actorId) {
 }
 
 bool SceneScriptKP05::ClickedOnItem(int itemId, bool a2) {
-	if (itemId == 118) {
+	if (itemId == kItemPowerSource) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1058.0f, 0.0f, 852.0f, 0, true, false, 0)) {
-			Actor_Face_Item(kActorMcCoy, 118, true);
+			Actor_Face_Item(kActorMcCoy, kItemPowerSource, true);
 			Actor_Clue_Acquire(kActorMcCoy, kCluePowerSource, true, -1);
-			Item_Remove_From_World(118);
+			Item_Remove_From_World(kItemPowerSource);
 			Item_Pickup_Spin_Effect(960, 58, 321);
 		}
 	}
diff --git a/engines/bladerunner/script/scene/kp06.cpp b/engines/bladerunner/script/scene/kp06.cpp
index 5087e33..466b957 100644
--- a/engines/bladerunner/script/scene/kp06.cpp
+++ b/engines/bladerunner/script/scene/kp06.cpp
@@ -76,7 +76,7 @@ bool SceneScriptKP06::ClickedOn3DObject(const char *objectName, bool a2) {
 
 bool SceneScriptKP06::ClickedOnActor(int actorId) {
 	if ( actorId == kActorSadik
-	 && !Game_Flag_Query(714)
+	 && !Game_Flag_Query(kFlagMcCoyAttackedReplicants)
 	) {
 		if (Actor_Clue_Query(kActorSadik, kCluePowerSource)) {
 			Actor_Face_Actor(kActorMcCoy, kActorSadik, true);
@@ -115,9 +115,9 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
 		if (Actor_Clue_Query(kActorSadik, kCluePowerSource)
 		 || Actor_Query_Goal_Number(kActorSadik) != 416
 		) {
-			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 1, false, 0)) {
+			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, true, false, 0)) {
 				if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
-					if (!Game_Flag_Query(714)) {
+					if (!Game_Flag_Query(kFlagMcCoyAttackedReplicants)) {
 						Player_Set_Combat_Mode(false);
 					}
 				} else if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP06Leave) {
@@ -130,11 +130,11 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
 				Game_Flag_Set(kFlagKP06toKP07);
 				Set_Enter(kSetKP07, kSceneKP07);
 			}
-		} else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource) ) {
-			Actor_Says(kActorSadik, 280, 3);
-			Actor_Says(kActorSadik, 290, 3);
+		} else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource)) {
+			Actor_Says(kActorSadik, 280, kAnimationModeTalk);
+			Actor_Says(kActorSadik, 290, kAnimationModeTalk);
 			Actor_Clue_Acquire(kActorSadik, kCluePowerSource, true, kActorMcCoy);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 0, true, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, false, true, 0);
 			Player_Set_Combat_Mode(false);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -196,7 +196,7 @@ void SceneScriptKP06::PlayerWalkedIn() {
 			Actor_Face_Actor(kActorMcCoy, kActorGaff, true);
 			Actor_Says(kActorMcCoy, 6245, 11);
 			Actor_Says(kActorGaff, 230, 14);
-			if (Game_Flag_Query(714)) {
+			if (Game_Flag_Query(kFlagMcCoyAttackedReplicants)) {
 				Actor_Says(kActorMcCoy, 6250, 15);
 				Actor_Says(kActorGaff, 240, 13);
 				Delay(1000);
diff --git a/engines/bladerunner/script/scene/kp07.cpp b/engines/bladerunner/script/scene/kp07.cpp
index 4574252..c087e4f 100644
--- a/engines/bladerunner/script/scene/kp07.cpp
+++ b/engines/bladerunner/script/scene/kp07.cpp
@@ -85,7 +85,7 @@ void SceneScriptKP07::InitializeScene() {
 	Ambient_Sounds_Add_Looping_Sound(586, 52, 1, 1);
 	Ambient_Sounds_Add_Looping_Sound(109, 38, 1, 1);
 
-	if (Game_Flag_Query(582)) {
+	if (Game_Flag_Query(kFlagKP07BusActive)) {
 		Scene_Loop_Set_Default(2);
 	} else {
 		Scene_Loop_Set_Default(0);
@@ -114,20 +114,25 @@ bool SceneScriptKP07::ClickedOn3DObject(const char *objectName, bool a2) {
 
 bool SceneScriptKP07::ClickedOnActor(int actorId) {
 	if (actorId == kActorClovis) {
-		if (Game_Flag_Query(697) || actorId != kActorClovis || Actor_Query_Goal_Number(kActorClovis) == 599 || Actor_Query_Goal_Number(kActorClovis) == 515) {
-			return false;
-		}
-		if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
-			Actor_Set_Goal_Number(kActorClovis, 516);
-		} else {
-			Music_Play(20, 31, 0, 0, -1, 1, 0);
-			Actor_Set_Goal_Number(kActorClovis, 514);
+		if (!Game_Flag_Query(kFlagKP07McCoyPulledGun)
+		 &&  Actor_Query_Goal_Number(kActorClovis) != kGoalClovisGone
+		 &&  Actor_Query_Goal_Number(kActorClovis) != kGoalClovisKP07SayFinalWords
+		) {
+			if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
+				Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07FlyAway);
+			} else {
+				Music_Play(20, 31, 0, 0, -1, 1, 0);
+				Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07TalkToMcCoy);
+			}
+			return true;
 		}
 	} else {
 		Actor_Face_Actor(kActorMcCoy, actorId, true);
 		Actor_Says(kActorMcCoy, 8590, 14);
+		return true;
 	}
-	return true;
+
+	return false;
 }
 
 bool SceneScriptKP07::ClickedOnItem(int itemId, bool a2) {
@@ -159,7 +164,7 @@ void SceneScriptKP07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 
 void SceneScriptKP07::PlayerWalkedIn() {
 	Loop_Actor_Walk_To_XYZ(kActorMcCoy, 9.0f, -41.88f, -81.0f, 0, 0, false, 0);
-	if (!Game_Flag_Query(658)) {
+	if (!Game_Flag_Query(kFlagKP07Entered)) {
 		if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
 			Actor_Face_Actor(kActorMcCoy, kActorClovis, true);
 			Actor_Says(kActorClovis, 1240, 3);
@@ -176,7 +181,7 @@ void SceneScriptKP07::PlayerWalkedIn() {
 			Actor_Says(kActorClovis, 160, 3);
 			Actor_Retired_Here(kActorClovis, 72, 60, 0, -1);
 		}
-		Game_Flag_Set(658);
+		Game_Flag_Set(kFlagKP07Entered);
 	}
 }
 
@@ -185,11 +190,11 @@ void SceneScriptKP07::PlayerWalkedOut() {
 }
 
 void SceneScriptKP07::DialogueQueueFlushed(int a1) {
-	if (Actor_Query_Goal_Number(kActorClovis) == 515) {
+	if (Actor_Query_Goal_Number(kActorClovis) == kGoalClovisKP07SayFinalWords) {
 		Actor_Set_Targetable(kActorClovis, false);
-		Actor_Change_Animation_Mode(kActorClovis, 21);
-		Actor_Retired_Here(kActorClovis, 12, 48, 1, -1);
-		Actor_Set_Goal_Number(kActorClovis, 599);
+		Actor_Change_Animation_Mode(kActorClovis, kAnimationModeHit);
+		Actor_Retired_Here(kActorClovis, 12, 48, true, -1);
+		Actor_Set_Goal_Number(kActorClovis, kGoalClovisGone);
 	}
 }
 


Commit: b3b6f6eaa36ef8651d3a7192f07223699b7055a9
    https://github.com/scummvm/scummvm/commit/b3b6f6eaa36ef8651d3a7192f07223699b7055a9
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-07T23:45:19+01:00

Commit Message:
BLADERUNNER: Cleanup of Mutants scripts

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/mutant1.cpp
    engines/bladerunner/script/ai/mutant2.cpp
    engines/bladerunner/script/ai/mutant3.cpp
    engines/bladerunner/script/ai/officer_grayford.cpp
    engines/bladerunner/script/ai/officer_leary.cpp
    engines/bladerunner/script/scene/ct12.cpp
    engines/bladerunner/script/scene/ug09.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 7248cca..2686993 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1066,8 +1066,8 @@ enum Flags {
 	// 626 is never used
 	kFlagNR01McCoyIsDrugged = 627,
 	// 628 is never used
-	kFlagUnpaseGenWalkers = 629,
-
+	kFlagUnpauseGenWalkers = 629,
+	kFlagMutantsPaused = 630,
 	kFlagRatWalkingAround = 631,
 	kFlagNR01DektoraFall = 632,
 	kFlagNR11DektoraBurning = 633,
diff --git a/engines/bladerunner/script/ai/mutant1.cpp b/engines/bladerunner/script/ai/mutant1.cpp
index 1ae338f..bdd2548 100644
--- a/engines/bladerunner/script/ai/mutant1.cpp
+++ b/engines/bladerunner/script/ai/mutant1.cpp
@@ -42,65 +42,63 @@ void AIScriptMutant1::Initialize() {
 }
 
 bool AIScriptMutant1::Update() {
-	if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorMutant1) != 590) {
-		if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
-			Actor_Set_Goal_Number(kActorMutant1, 590);
-		}
-
-		return false;
-	}
+	if (Global_Variable_Query(kVariableChapter) == 4) {
+		switch (Actor_Query_Goal_Number(kActorMutant1)) {
+		case 400:
+			if (!Game_Flag_Query(kFlagMutantsActive)
+			&&  Game_Flag_Query(kFlagUG06Chapter4Started)
+			) {
+				Actor_Set_Goal_Number(kActorMutant1, 401);
+				Actor_Set_Goal_Number(kActorMutant2, 401);
+				Actor_Set_Goal_Number(kActorMutant3, 401);
+				Actor_Set_Targetable(kActorMutant1, true);
+				Actor_Set_Targetable(kActorMutant2, true);
+				Actor_Set_Targetable(kActorMutant3, true);
+				Game_Flag_Set(kFlagMutantsActive);
+			}
+			break;
 
-	if (Global_Variable_Query(kVariableChapter) != 4) {
-		return false;
-	}
+		case 401:
+			if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set()
+			 && (Actor_Query_Friendliness_To_Other(kActorMutant1, kActorMcCoy) < 30
+			  || Actor_Query_Combat_Aggressiveness(kActorMutant1) >= 60
+			 )
+			) {
+				Actor_Set_Goal_Number(kActorMutant1, 410);
+			}
+			break;
 
-	switch (Actor_Query_Goal_Number(kActorMutant1)) {
-	case 400:
-		if (!Game_Flag_Query(kFlagMutantsActive)
-		 &&  Game_Flag_Query(kFlagUG06Chapter4Started)
-		) {
-			Actor_Set_Goal_Number(kActorMutant1, 401);
-			Actor_Set_Goal_Number(kActorMutant2, 401);
-			Actor_Set_Goal_Number(kActorMutant3, 401);
-			Actor_Set_Targetable(kActorMutant1, 1);
-			Actor_Set_Targetable(kActorMutant2, 1);
-			Actor_Set_Targetable(kActorMutant3, 1);
-			Game_Flag_Set(kFlagMutantsActive);
-		}
-		break;
+		case 404:
+			if (!Game_Flag_Query(kFlagMutantsPaused)) {
+				Actor_Set_Goal_Number(kActorMutant1, 403);
+			}
+			break;
 
-	case 401:
-		if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set()
-		 && (Actor_Query_Friendliness_To_Other(kActorMutant1, kActorMcCoy) < 30
-		  || Actor_Query_Combat_Aggressiveness(kActorMutant1) >= 60
-		 )
-		) {
-			Actor_Set_Goal_Number(kActorMutant1, 410);
-		}
-		break;
+		case 410:
+			if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
+				Non_Player_Actor_Combat_Mode_Off(kActorMutant1);
+				Actor_Set_Goal_Number(kActorMutant1, 403);
+			}
+			break;
 
-	case 404:
-		if (!Game_Flag_Query(630)) {
-			Actor_Set_Goal_Number(kActorMutant1, 403);
+		case 599:
+			if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
+				Actor_Set_Goal_Number(kActorMutant1, 411);
+			}
+			break;
 		}
-		break;
 
-	case 410:
-		if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
-			Non_Player_Actor_Combat_Mode_Off(kActorMutant1);
-			Actor_Set_Goal_Number(kActorMutant1, 403);
+		if (Game_Flag_Query(kFlagMutantsPaused)
+		&& Actor_Query_Goal_Number(kActorMutant1) != 599
+		) {
+			Actor_Set_Goal_Number(kActorMutant1, 404);
 		}
-		break;
-
-	case 599:
+	} else if (Global_Variable_Query(kVariableChapter) == 5
+	        && Actor_Query_Goal_Number(kActorMutant1) != 590
+	) {
 		if (Actor_Query_Which_Set_In(kActorMutant1) != Player_Query_Current_Set()) {
-			Actor_Set_Goal_Number(kActorMutant1, 411);
+			Actor_Set_Goal_Number(kActorMutant1, 590);
 		}
-		break;
-	}
-
-	if (Game_Flag_Query(630) == 1 && Actor_Query_Goal_Number(kActorMutant1) != 599) {
-		Actor_Set_Goal_Number(kActorMutant1, 404);
 	}
 
 	return false;
@@ -111,8 +109,9 @@ void AIScriptMutant1::TimerExpired(int timer) {
 }
 
 void AIScriptMutant1::CompletedMovementTrack() {
-	if (Actor_Query_Goal_Number(kActorMutant1) == 401)
+	if (Actor_Query_Goal_Number(kActorMutant1) == 401) {
 		Actor_Set_Goal_Number(kActorMutant1, 403);
+	}
 }
 
 void AIScriptMutant1::ReceivedClue(int clueId, int fromActorId) {
@@ -136,31 +135,36 @@ void AIScriptMutant1::OtherAgentExitedThisScene(int otherActorId) {
 }
 
 void AIScriptMutant1::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
-	if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set() && Actor_Query_Goal_Number(kActorMutant1) != 599) {
-		if (otherActorId != kActorMcCoy) {
-			if (otherActorId > 72 || (otherActorId != kActorFreeSlotA && otherActorId != kActorMutant2 && otherActorId != kActorMutant3)) {
-				Actor_Modify_Combat_Aggressiveness(70, -10);
+	if (Actor_Query_Which_Set_In(kActorMutant1) == Player_Query_Current_Set()
+	 && Actor_Query_Goal_Number(kActorMutant1) != 599
+	) {
+		if (otherActorId == kActorMcCoy) {
+			if (combatMode) {
+				Actor_Modify_Combat_Aggressiveness(kActorMutant1, 10);
 			} else {
-				Actor_Modify_Combat_Aggressiveness(70, 10);
+				Actor_Modify_Combat_Aggressiveness(kActorMutant1, -10);
 			}
-		} else if (combatMode) {
-			Actor_Modify_Combat_Aggressiveness(70, 10);
+		} else if (otherActorId == kActorFreeSlotA
+		        || otherActorId == kActorMutant2
+		        || otherActorId == kActorMutant3
+		) {
+			Actor_Modify_Combat_Aggressiveness(kActorMutant1, 10);
 		} else {
-			Actor_Modify_Combat_Aggressiveness(70, -10);
+			Actor_Modify_Combat_Aggressiveness(kActorMutant1, -10);
 		}
 	}
 }
 
 void AIScriptMutant1::ShotAtAndMissed() {
 	if (Actor_Query_Goal_Number(kActorMutant1) != 410) {
-		Actor_Modify_Combat_Aggressiveness(70, 10);
+		Actor_Modify_Combat_Aggressiveness(kActorMutant1, 10);
 		Actor_Modify_Friendliness_To_Other(kActorMutant1, kActorMcCoy, -10);
 	}
 }
 
 bool AIScriptMutant1::ShotAtAndHit() {
 	if (Actor_Query_Goal_Number(kActorMutant1) != 410) {
-		Actor_Modify_Combat_Aggressiveness(70, 15);
+		Actor_Modify_Combat_Aggressiveness(kActorMutant1, 15);
 		Actor_Modify_Friendliness_To_Other(kActorMutant1, kActorMcCoy, -15);
 	}
 
@@ -189,7 +193,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		return true;
 
 	case 401:
-		Actor_Set_Targetable(kActorMutant1, 1);
+		Actor_Set_Targetable(kActorMutant1, true);
 		AI_Movement_Track_Flush(kActorMutant1);
 		AI_Movement_Track_Append(kActorMutant1, 39, 0);
 
@@ -317,7 +321,7 @@ bool AIScriptMutant1::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		return true;
 
 	case 403:
-		Actor_Set_Targetable(kActorMutant1, 0);
+		Actor_Set_Targetable(kActorMutant1, false);
 		Actor_Set_Goal_Number(kActorMutant1, 401);
 		return true;
 
diff --git a/engines/bladerunner/script/ai/mutant2.cpp b/engines/bladerunner/script/ai/mutant2.cpp
index 3e837b6..512f207 100644
--- a/engines/bladerunner/script/ai/mutant2.cpp
+++ b/engines/bladerunner/script/ai/mutant2.cpp
@@ -46,22 +46,18 @@ void AIScriptMutant2::Initialize() {
 bool AIScriptMutant2::Update() {
 	if (Global_Variable_Query(kVariableChapter) == 4) {
 		switch (Actor_Query_Goal_Number(kActorMutant2)) {
-		case 599:
-			if (Actor_Query_Which_Set_In(kActorMutant2) != Player_Query_Current_Set()) {
-				Actor_Set_Goal_Number(kActorMutant2, 403);
-			}
-			break;
-
 		case 401:
 			if (Actor_Query_Which_Set_In(kActorMutant2) == Player_Query_Current_Set()
-					&& (Actor_Query_Friendliness_To_Other(kActorMutant2, kActorMcCoy) < 20
-					|| Actor_Query_Combat_Aggressiveness(kActorMutant2) >= 60)) {
+			 && (Actor_Query_Friendliness_To_Other(kActorMutant2, kActorMcCoy) < 20
+			  || Actor_Query_Combat_Aggressiveness(kActorMutant2) >= 60
+			 )
+			) {
 				Actor_Set_Goal_Number(kActorMutant2, 410);
 			}
 			break;
 
 		case 404:
-			if (!Game_Flag_Query(630)) {
+			if (!Game_Flag_Query(kFlagMutantsPaused)) {
 				Actor_Set_Goal_Number(kActorMutant2, 403);
 			}
 			break;
@@ -72,12 +68,22 @@ bool AIScriptMutant2::Update() {
 				Actor_Set_Goal_Number(kActorMutant2, 403);
 			}
 			break;
+
+		case 599:
+			if (Actor_Query_Which_Set_In(kActorMutant2) != Player_Query_Current_Set()) {
+				Actor_Set_Goal_Number(kActorMutant2, 403);
+			}
+			break;
 		}
 
-		if (Game_Flag_Query(630) == 1 && Actor_Query_Goal_Number(kActorMutant2) != 599) {
+		if (Game_Flag_Query(kFlagMutantsPaused)
+		 && Actor_Query_Goal_Number(kActorMutant2) != 599
+		) {
 			Actor_Set_Goal_Number(kActorMutant2, 404);
 		}
-	} else if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorMutant2) != 590) {
+	} else if (Global_Variable_Query(kVariableChapter) == 5
+	        && Actor_Query_Goal_Number(kActorMutant2) != 590
+	) {
 		if (Actor_Query_Which_Set_In(kActorMutant2) != Player_Query_Current_Set()) {
 			Actor_Set_Goal_Number(kActorMutant2, 590);
 		}
@@ -116,17 +122,22 @@ void AIScriptMutant2::OtherAgentExitedThisScene(int otherActorId) {
 }
 
 void AIScriptMutant2::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
-	if (Actor_Query_Which_Set_In(kActorMutant2) == Player_Query_Current_Set() && Actor_Query_Goal_Number(kActorMutant2) != 599) {
-		if (otherActorId != kActorMcCoy) {
-			if (otherActorId > 72 || (otherActorId != kActorFreeSlotA && otherActorId != kActorMutant1 && otherActorId != kActorMutant3)) {
-				Actor_Modify_Combat_Aggressiveness(kActorMutant2, -10);
+	if (Actor_Query_Which_Set_In(kActorMutant2) == Player_Query_Current_Set()
+	 && Actor_Query_Goal_Number(kActorMutant2) != 599
+	) {
+		if (otherActorId == kActorMcCoy) {
+			if (combatMode) {
+				Actor_Modify_Combat_Aggressiveness(kActorMutant2, 10);
 			} else {
-				Actor_Modify_Combat_Aggressiveness(kActorMutant2, 5);
+				Actor_Modify_Combat_Aggressiveness(kActorMutant2, -10);
 			}
-		} else if (combatMode) {
-			Actor_Modify_Combat_Aggressiveness(kActorMutant2, -10);
+		} else if (otherActorId == kActorFreeSlotA
+		        || otherActorId == kActorMutant1
+		        || otherActorId == kActorMutant3
+		) {
+			Actor_Modify_Combat_Aggressiveness(kActorMutant2, 5);
 		} else {
-			Actor_Modify_Combat_Aggressiveness(kActorMutant2, 10);
+			Actor_Modify_Combat_Aggressiveness(kActorMutant2, -10);
 		}
 	}
 }
@@ -169,7 +180,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		return true;
 
 	case 401:
-		Actor_Set_Targetable(kActorMutant2, 1);
+		Actor_Set_Targetable(kActorMutant2, true);
 		AI_Movement_Track_Flush(kActorMutant2);
 		AI_Movement_Track_Append(kActorMutant2, 39, 0);
 
@@ -292,7 +303,7 @@ bool AIScriptMutant2::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		return true;
 
 	case 403:
-		Actor_Set_Targetable(kActorMutant2, 0);
+		Actor_Set_Targetable(kActorMutant2, false);
 		Actor_Set_Goal_Number(kActorMutant2, 401);
 		return true;
 
diff --git a/engines/bladerunner/script/ai/mutant3.cpp b/engines/bladerunner/script/ai/mutant3.cpp
index 848dd6c..990ed8c 100644
--- a/engines/bladerunner/script/ai/mutant3.cpp
+++ b/engines/bladerunner/script/ai/mutant3.cpp
@@ -46,22 +46,18 @@ void AIScriptMutant3::Initialize() {
 bool AIScriptMutant3::Update() {
 	if (Global_Variable_Query(kVariableChapter) == 4) {
 		switch (Actor_Query_Goal_Number(kActorMutant3)) {
-		case 599:
-			if (Actor_Query_Which_Set_In(kActorMutant3) != Player_Query_Current_Set()) {
-				Actor_Set_Goal_Number(kActorMutant3, 403);
-			}
-			break;
-
 		case 401:
 			if (Actor_Query_Which_Set_In(kActorMutant3) == Player_Query_Current_Set()
-					&& (Actor_Query_Friendliness_To_Other(kActorMutant3, kActorMcCoy) < 40
-					|| Actor_Query_Combat_Aggressiveness(kActorMutant3) >= 60)) {
+			 && (Actor_Query_Friendliness_To_Other(kActorMutant3, kActorMcCoy) < 40
+			  || Actor_Query_Combat_Aggressiveness(kActorMutant3) >= 60
+			 )
+			) {
 				Actor_Set_Goal_Number(kActorMutant3, 410);
 			}
 			break;
 
 		case 404:
-			if (!Game_Flag_Query(630)) {
+			if (!Game_Flag_Query(kFlagMutantsPaused)) {
 				Actor_Set_Goal_Number(kActorMutant3, 401);
 			}
 			break;
@@ -72,12 +68,22 @@ bool AIScriptMutant3::Update() {
 				Actor_Set_Goal_Number(kActorMutant3, 403);
 			}
 			break;
+
+		case 599:
+			if (Actor_Query_Which_Set_In(kActorMutant3) != Player_Query_Current_Set()) {
+				Actor_Set_Goal_Number(kActorMutant3, 403);
+			}
+			break;
 		}
 
-		if (Game_Flag_Query(630) == 1 && Actor_Query_Goal_Number(kActorMutant3) != 599) {
+		if (Game_Flag_Query(kFlagMutantsPaused)
+		 && Actor_Query_Goal_Number(kActorMutant3) != 599
+		) {
 			Actor_Set_Goal_Number(kActorMutant3, 404);
 		}
-	} else if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorMutant3) != 590) {
+	} else if (Global_Variable_Query(kVariableChapter) == 5
+	        && Actor_Query_Goal_Number(kActorMutant3) != 590
+	) {
 		if (Actor_Query_Which_Set_In(kActorMutant3) != Player_Query_Current_Set()) {
 			Actor_Set_Goal_Number(kActorMutant3, 590);
 		}
@@ -122,15 +128,20 @@ void AIScriptMutant3::OtherAgentExitedThisScene(int otherActorId) {
 }
 
 void AIScriptMutant3::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
-	if (Actor_Query_Which_Set_In(kActorMutant3) == Player_Query_Current_Set() && Actor_Query_Goal_Number(kActorMutant3) != 599) {
-		if (otherActorId != kActorMcCoy) {
-			if (otherActorId > 72 || (otherActorId != kActorFreeSlotA && otherActorId != kActorMutant1 && otherActorId != kActorMutant2)) {
-				Actor_Modify_Combat_Aggressiveness(kActorMutant3, -10);
+	if (Actor_Query_Which_Set_In(kActorMutant3) == Player_Query_Current_Set()
+	 && Actor_Query_Goal_Number(kActorMutant3) != 599
+	) {
+		if (otherActorId == kActorMcCoy) {
+			if (combatMode) {
+				Actor_Modify_Combat_Aggressiveness(kActorMutant3, 10);
 			} else {
-				Actor_Modify_Combat_Aggressiveness(kActorMutant3, 5);
+				Actor_Modify_Combat_Aggressiveness(kActorMutant3, -10);
 			}
-		} else if (combatMode) {
-			Actor_Modify_Combat_Aggressiveness(kActorMutant3, 10);
+		} else if (otherActorId == kActorFreeSlotA
+		        || otherActorId == kActorMutant1
+		        || otherActorId == kActorMutant2
+		) {
+			Actor_Modify_Combat_Aggressiveness(kActorMutant3, 5);
 		} else {
 			Actor_Modify_Combat_Aggressiveness(kActorMutant3, -10);
 		}
@@ -182,7 +193,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		break;
 
 	case 401:
-		Actor_Set_Targetable(kActorMutant3, 1);
+		Actor_Set_Targetable(kActorMutant3, true);
 		AI_Movement_Track_Flush(kActorMutant3);
 		AI_Movement_Track_Append(kActorMutant3, 39, 0);
 
@@ -303,7 +314,7 @@ bool AIScriptMutant3::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		break;
 
 	case 403:
-		Actor_Set_Targetable(kActorMutant3, 0);
+		Actor_Set_Targetable(kActorMutant3, false);
 		Actor_Set_Goal_Number(kActorMutant3, 401);
 		break;
 
diff --git a/engines/bladerunner/script/ai/officer_grayford.cpp b/engines/bladerunner/script/ai/officer_grayford.cpp
index 1e7484c..cdf1b1a 100644
--- a/engines/bladerunner/script/ai/officer_grayford.cpp
+++ b/engines/bladerunner/script/ai/officer_grayford.cpp
@@ -85,7 +85,7 @@ bool AIScriptOfficerGrayford::Update() {
 		return false;
 	}
 
-	if (Game_Flag_Query(kFlagUnpaseGenWalkers)) {
+	if (Game_Flag_Query(kFlagUnpauseGenWalkers)) {
 		AI_Movement_Track_Unpause(kActorGenwalkerA);
 		AI_Movement_Track_Unpause(kActorGenwalkerB);
 		AI_Movement_Track_Unpause(kActorGenwalkerC);
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index ad94d2e..a8edf10 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -86,8 +86,8 @@ bool AIScriptOfficerLeary::Update() {
 		return false;
 	}
 
-	if (Game_Flag_Query(kFlagUnpaseGenWalkers)) {
-		Game_Flag_Reset(kFlagUnpaseGenWalkers);
+	if (Game_Flag_Query(kFlagUnpauseGenWalkers)) {
+		Game_Flag_Reset(kFlagUnpauseGenWalkers);
 		return false;
 	}
 
diff --git a/engines/bladerunner/script/scene/ct12.cpp b/engines/bladerunner/script/scene/ct12.cpp
index e7171b9..8160b9a 100644
--- a/engines/bladerunner/script/scene/ct12.cpp
+++ b/engines/bladerunner/script/scene/ct12.cpp
@@ -148,7 +148,7 @@ bool SceneScriptCT12::ClickedOnActor(int actorId) {
 		Actor_Says(kActorOfficerGrayford, 90, kAnimationModeTalk);
 		Actor_Says(kActorOfficerGrayford, 100, kAnimationModeTalk);
 		Actor_Says(kActorOfficerGrayford, 110, kAnimationModeTalk);
-		Game_Flag_Set(kFlagUnpaseGenWalkers);
+		Game_Flag_Set(kFlagUnpauseGenWalkers);
 		Game_Flag_Set(kFlagMcCoyFreedOfAccusations);
 		Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyStartChapter5);
 	}
@@ -202,7 +202,7 @@ bool SceneScriptCT12::ClickedOnExit(int exitId) {
 	if (exitId == 4) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -292.0f, -6.5f, 990.0f, 0, true, false, 0)) {
 			if (Global_Variable_Query(kVariableChapter) == 4) {
-				Game_Flag_Set(kFlagUnpaseGenWalkers);
+				Game_Flag_Set(kFlagUnpauseGenWalkers);
 			}
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
diff --git a/engines/bladerunner/script/scene/ug09.cpp b/engines/bladerunner/script/scene/ug09.cpp
index 3348272..678190d 100644
--- a/engines/bladerunner/script/scene/ug09.cpp
+++ b/engines/bladerunner/script/scene/ug09.cpp
@@ -138,15 +138,13 @@ void SceneScriptUG09::PlayerWalkedIn() {
 	if (Global_Variable_Query(kVariableChapter) == 4
 	 && Game_Flag_Query(kFlagUG07Empty)
 	) {
-		Game_Flag_Set(630);
+		Game_Flag_Set(kFlagMutantsPaused);
 	}
 }
 
 void SceneScriptUG09::PlayerWalkedOut() {
-	if (Global_Variable_Query(kVariableChapter) == 4
-	 && Global_Variable_Query(kVariableChapter) != 5
-	) {
-		Game_Flag_Reset(630);
+	if (Global_Variable_Query(kVariableChapter) == 4) {
+		Game_Flag_Reset(kFlagMutantsPaused);
 	}
 
 	if (Game_Flag_Query(kFlagUG09toCT12)) {


Commit: 7061f7cb173871e84d26010b9742fcec8a0ece1a
    https://github.com/scummvm/scummvm/commit/7061f7cb173871e84d26010b9742fcec8a0ece1a
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-07T23:45:41+01:00

Commit Message:
BLADERUNNER: Cleanup for drive away endings scripts

All ending are achievable

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/generic_walker_a.cpp
    engines/bladerunner/script/ai/generic_walker_b.cpp
    engines/bladerunner/script/ai/generic_walker_c.cpp
    engines/bladerunner/script/ai/lucy.cpp
    engines/bladerunner/script/ai/officer_leary.cpp
    engines/bladerunner/script/ai/transient.cpp
    engines/bladerunner/script/ai/zuben.cpp
    engines/bladerunner/script/init_script.cpp
    engines/bladerunner/script/scene/hf01.cpp
    engines/bladerunner/script/scene/hf05.cpp
    engines/bladerunner/script/scene/hf06.cpp
    engines/bladerunner/script/scene/hf07.cpp
    engines/bladerunner/script/scene/ma04.cpp
    engines/bladerunner/script/scene/ug01.cpp
    engines/bladerunner/script/scene/ug05.cpp
    engines/bladerunner/script/scene_script.h


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 2686993..85481a8 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -807,7 +807,8 @@ enum Flags {
 	kFlagBB12toBB07 = 365,
 	kFlagAR02InsectDealerTalk = 366,
 	kFlagAR02StungByScorpion = 367,
-
+	kFlagHF07Hole = 368,
+	kFlagHF05Hole = 369,
 	kFlagNotUsed370 = 370, // is never checked
 	// 371 is never used
 	// 372 is never used
@@ -960,6 +961,7 @@ enum Flags {
 	kFlagTB06DogCollarTaken = 519,
 	kFlagTB06KitchenBoxTaken = 520,
 	kFlagHC03TrapDoorOpened = 521,
+	kFlagUG05TalkAboutTunnel = 522,
 	kFlagMutantsActive = 523,
 	kFlagUG06Chapter4Started = 524,
 	kFlagCT10Entered = 525,
@@ -996,7 +998,7 @@ enum Flags {
 	kFlagUG16LutherLanceTalk1 = 556,
 	kFlagNotUsed557, // is never checked
 	kFlagDR01toCT11 = 558,
-
+	kFlagHF06SteelInterruption = 559,
 	kFlagLutherLanceIsReplicant = 560,
 	kFlagNR02GordoLeaveLighter = 561,
 	kFlagHF05CrazyLegsTalk1 = 562,
@@ -1099,7 +1101,9 @@ enum Flags {
 	kFlagNR11BreakWindow = 659,
 	kFlagDNARowAvailableTalk = 660,
 	kFlagTB07ShadeDown = 661, // is never set
-
+	kFlagHF01TalkToLovedOne = 662,
+	kFlagHF05PoliceArrived = 663,
+	kFlagUG07PoliceLeave = 664,
 	kFlagUG19Available = 665,
 	kFlagMcCoyFreedOfAccusations = 666,
 	// 667 is never used
@@ -1118,6 +1122,8 @@ enum Flags {
 	kFlagChapter4Intro = 680,
 	// 681 is never used
 	kFlagUG15BridgeBroken = 682,
+	kFlagUG05TalkToPolice = 683,
+	kFlagHF05PoliceAttacked = 684,
 	kFlagClovisLyingDown = 685,
 	kFlagNotUsed686 = 686,
 	// 687 is never used
@@ -1132,9 +1138,9 @@ enum Flags {
 	kFlagKP07ReplicantsAttackMcCoy = 696,
 	kFlagKP07McCoyPulledGun = 697,
 	kFlagUG15LanceLuthorTrade = 698,
-
+	kFlagTalkToZuben = 699,
 	// 700 is never used
-
+	kFlagMcCoyAttackedLucy = 701,
 	kFlagBulletBobDead = 702,
 	kFlagUG18BriefcaseTaken = 703,
 	kFlagRC02EnteredChapter4 = 704,
@@ -1149,7 +1155,7 @@ enum Flags {
 	kFlagDR04McCoyShotMoraji = 713,
 	kFlagMcCoyAttackedReplicants = 714,
 	kFlagDR06UnlockedToUG16 = 715,
-
+	kFlagUG13HomelessLayingdown = 716,
 	kFlagRC04BobTalk3 = 717,
 	kflagPS01toPS02 = 718,
 	kFlagCT02McCoyFell = 719,
@@ -1187,7 +1193,7 @@ enum Variables {
 	kVariableGenericWalkerAModel = 32,
 	kVariableGenericWalkerBModel = 33,
 	kVariableGenericWalkerCModel = 34,
-
+	kVariableGenericWalkerConfig = 35, // has no use
 	kVariableBB10ShelvesAvailable = 36,
 	kVariableWalkLoopActor = 37,
 	kVariableWalkLoopRun = 38,
@@ -1356,7 +1362,7 @@ enum Scenes {
 	kSceneNR06 = 59, // Nightclub Row - Early Q's - Empty dressing room
 	kSceneNR07 = 60, // Nightclub Row - Early Q's - Dektora's dressing room
 	kSceneNR08 = 61, // Nightclub Row - Early Q's - Stage
-	kSceneNR09 = 62, // Nightclub Row - Early Q's - Upstairs
+	kSceneNR09 = 62, // Nightclub Row - Early Q's - Balcony
 	kSceneNR10 = 63, // Nightclub Row - Early Q's - Projector room
 	kSceneNR11 = 64, // Nightclub Row - Early Q's - Loft
 	kScenePS01 = 65, // Police Station - Roof
@@ -1820,6 +1826,7 @@ enum GoalSteele {
 	kGoalSteeleStartChapter4 = 300,
 	// chapter 5
 	kGoalSteeleStartChapter5 = 400,
+	kGoalSteeleHF06Attack = 402, // has no use
 	// kGoalSteeleKP03WillShootMcCoy = 410,
 	kGoalSteeleKP03Walk = 411,
 	kGoalSteeleKP03StopWalking = 412,
@@ -1974,6 +1981,7 @@ enum GoalClovis {
 
 enum GoalLucy {
 	kGoalLucyDefault = 0,
+	// chapter 3
 	kGoalLucyMoveAround = 200,
 	kGoalLucyWillReturnToHF03 = 201,
 	kGoalLucyGoToHF03 = 205,
@@ -1996,6 +2004,12 @@ enum GoalLucy {
 	kGoalLucyHF04WalkAway = 239,
 	kGoalLucyReturnToHF03 = 250,
 	kGoalLucyHF03RanAway = 299,
+	// chapter 4
+	kGoalLucyStartChapter4 = 300,
+	kGoalLucyUG01Wait =	310,
+	kGoalLucyUG01VoightKampff = 311,
+	kGoalLucyUG01RunAway = 312,
+
 	kGoalLucyGone = 599
 };
 
diff --git a/engines/bladerunner/script/ai/generic_walker_a.cpp b/engines/bladerunner/script/ai/generic_walker_a.cpp
index c747251..32a66e6 100644
--- a/engines/bladerunner/script/ai/generic_walker_a.cpp
+++ b/engines/bladerunner/script/ai/generic_walker_a.cpp
@@ -343,7 +343,7 @@ void AIScriptGenericWalkerA::movingUpdate() {
 }
 
 bool AIScriptGenericWalkerA::prepareWalker() {
-	if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(35) < 0 || !preparePath()) {
+	if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(kVariableGenericWalkerConfig) < 0 || !preparePath()) {
 		return false;
 	}
 
diff --git a/engines/bladerunner/script/ai/generic_walker_b.cpp b/engines/bladerunner/script/ai/generic_walker_b.cpp
index 2a6c3a1..3bda0cf 100644
--- a/engines/bladerunner/script/ai/generic_walker_b.cpp
+++ b/engines/bladerunner/script/ai/generic_walker_b.cpp
@@ -319,7 +319,7 @@ void AIScriptGenericWalkerB::movingUpdate() {
 }
 
 bool AIScriptGenericWalkerB::prepareWalker() {
-	if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(35) < 0 || !preparePath()) {
+	if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(kVariableGenericWalkerConfig) < 0 || !preparePath()) {
 		return false;
 	}
 
diff --git a/engines/bladerunner/script/ai/generic_walker_c.cpp b/engines/bladerunner/script/ai/generic_walker_c.cpp
index 5c0478c..99c0736 100644
--- a/engines/bladerunner/script/ai/generic_walker_c.cpp
+++ b/engines/bladerunner/script/ai/generic_walker_c.cpp
@@ -320,7 +320,7 @@ void AIScriptGenericWalkerC::movingUpdate() {
 }
 
 bool AIScriptGenericWalkerC::prepareWalker() {
-	if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(35) < 2 || !preparePath()) {
+	if (Game_Flag_Query(kFlagGenericWalkerWaiting) || Global_Variable_Query(kVariableGenericWalkerConfig) < 2 || !preparePath()) {
 		return false;
 	}
 
diff --git a/engines/bladerunner/script/ai/lucy.cpp b/engines/bladerunner/script/ai/lucy.cpp
index 41e127f..3b37bd6 100644
--- a/engines/bladerunner/script/ai/lucy.cpp
+++ b/engines/bladerunner/script/ai/lucy.cpp
@@ -55,9 +55,9 @@ bool AIScriptLucy::Update() {
 	}
 
 	if (Global_Variable_Query(kVariableChapter) == 4
-	 && Actor_Query_Goal_Number(kActorLucy) < 300
+	 && Actor_Query_Goal_Number(kActorLucy) < kGoalLucyStartChapter4
 	) {
-		Actor_Set_Goal_Number(kActorLucy, 300);
+		Actor_Set_Goal_Number(kActorLucy, kGoalLucyStartChapter4);
 	}
 
 	if (Global_Variable_Query(kVariableChapter) == 4
@@ -83,7 +83,7 @@ bool AIScriptLucy::Update() {
 	 &&  Actor_Query_Goal_Number(kActorLucy) != kGoalLucyHF04TalkToMcCoy
 	 &&  Player_Query_Current_Scene() == kSceneHF04
 	 &&  Actor_Query_Which_Set_In(kActorLucy) == kSetHF04
-	 && !Game_Flag_Query(701)
+	 && !Game_Flag_Query(kFlagMcCoyAttackedLucy)
 	 &&  Actor_Query_Inch_Distance_From_Actor(kActorLucy, kActorMcCoy) < 84
 	 && !Player_Query_Combat_Mode()
 	 &&  Actor_Query_Friendliness_To_Other(kActorLucy, kActorMcCoy) > 40
@@ -485,24 +485,24 @@ bool AIScriptLucy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Repeat(kActorLucy);
 		break;
 
-	case 300:
+	case kGoalLucyStartChapter4:
 		Actor_Put_In_Set(kActorLucy, kSetFreeSlotA);
 		Actor_Set_At_Waypoint(kActorLucy, 33, 0);
 		if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy) {
-			Actor_Set_Goal_Number(kActorLucy, 310);
+			Actor_Set_Goal_Number(kActorLucy, kGoalLucyUG01Wait);
 		}
 		break;
 
-	case 310:
+	case kGoalLucyUG01Wait:
 		Actor_Put_In_Set(kActorLucy, kSetUG01);
 		Actor_Set_At_Waypoint(kActorLucy, 544, 651);
 		break;
 
-	case 311:
+	case kGoalLucyUG01VoightKampff:
 		voightKampffTest();
 		break;
 
-	case 312:
+	case kGoalLucyUG01RunAway:
 		AI_Movement_Track_Flush(kActorLucy);
 		AI_Movement_Track_Append_Run(kActorLucy, 545, 0);
 		AI_Movement_Track_Append(kActorLucy, 33, 0);
@@ -867,7 +867,7 @@ void AIScriptLucy::voightKampffTest() {
 	Voight_Kampff_Activate(kActorLucy, 40);
 
 	Player_Loses_Control();
-	if (Actor_Clue_Query(kActorMcCoy, 271)) {
+	if (Actor_Clue_Query(kActorMcCoy, kClueVKLucyReplicant)) {
 		Actor_Says(kActorMcCoy, 6865, 13);
 		Actor_Says(kActorLucy, 1140, 14);
 		Actor_Says(kActorMcCoy, 6865, 14);
@@ -894,11 +894,12 @@ void AIScriptLucy::voightKampffTest() {
 	Actor_Says(kActorMcCoy, 6910, 13);
 	Delay(2000);
 	Player_Gains_Control();
-	Actor_Set_Goal_Number(kActorLucy, 312);
+	Actor_Set_Goal_Number(kActorLucy, kGoalLucyUG01RunAway);
 }
 
 void AIScriptLucy::checkCombat() {
-	Game_Flag_Set(701);
+	Game_Flag_Set(kFlagMcCoyAttackedLucy);
+
 	if (Actor_Query_In_Set(kActorLucy, kSetHF01)
 	 && Global_Variable_Query(kVariableChapter) == 5
 	 && Actor_Query_Goal_Number(kActorLucy) != 450
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index a8edf10..69ec583 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -92,9 +92,9 @@ bool AIScriptOfficerLeary::Update() {
 	}
 
 	if ( Game_Flag_Query(kFlagUG07Empty)
-	 && !Game_Flag_Query(664)
+	 && !Game_Flag_Query(kFlagUG07PoliceLeave)
 	) {
-		Game_Flag_Set(664);
+		Game_Flag_Set(kFlagUG07PoliceLeave);
 		Actor_Set_Goal_Number(kActorOfficerLeary, 305);
 		return false;
 	}
@@ -203,7 +203,7 @@ void AIScriptOfficerLeary::TimerExpired(int timer) {
 			Actor_Set_Goal_Number(kActorOfficerLeary, 430);
 			Actor_Set_Goal_Number(kActorOfficerGrayford, 430);
 		} else {
-			Game_Flag_Set(684);
+			Game_Flag_Set(kFlagHF05PoliceAttacked);
 		}
 	} else if (timer == 2) {
 		AI_Countdown_Timer_Reset(kActorOfficerLeary, 2);
diff --git a/engines/bladerunner/script/ai/transient.cpp b/engines/bladerunner/script/ai/transient.cpp
index c5dc4ca..9fb2e87 100644
--- a/engines/bladerunner/script/ai/transient.cpp
+++ b/engines/bladerunner/script/ai/transient.cpp
@@ -148,7 +148,7 @@ void AIScriptTransient::ShotAtAndMissed() {
 
 bool AIScriptTransient::ShotAtAndHit() {
 	Actor_Set_Frame_Rate_FPS(kActorTransient, 8);
-	if (Game_Flag_Query(716)) {
+	if (Game_Flag_Query(kFlagUG13HomelessLayingdown)) {
 		_animationState = 11;
 	} else {
 		_animationState = 14;
@@ -203,7 +203,7 @@ bool AIScriptTransient::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_At_XYZ(kActorTransient, -310.0, 55.0, -350.0, 400);
 		Actor_Change_Animation_Mode(kActorTransient, 53);
 		Actor_Set_Targetable(kActorTransient, true);
-		Game_Flag_Set(716);
+		Game_Flag_Set(kFlagUG13HomelessLayingdown);
 		return true;
 	case 391:
 		Actor_Change_Animation_Mode(kActorTransient, 53);
@@ -461,7 +461,7 @@ bool AIScriptTransient::ChangeAnimationMode(int mode) {
 		_animationFrame = 0;
 		break;
 	case 21:
-		if (Game_Flag_Query(716)) {
+		if (Game_Flag_Query(kFlagUG13HomelessLayingdown)) {
 			_animationState = 11;
 		} else {
 			_animationState = 14;
diff --git a/engines/bladerunner/script/ai/zuben.cpp b/engines/bladerunner/script/ai/zuben.cpp
index 8413901..8e25da0 100644
--- a/engines/bladerunner/script/ai/zuben.cpp
+++ b/engines/bladerunner/script/ai/zuben.cpp
@@ -211,14 +211,14 @@ void AIScriptZuben::ClickedByPlayer() {
 		Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
 		Actor_Says(kActorMcCoy, 8529, 13);
 	}
-	if (Global_Variable_Query(kVariableChapter) > 1 && Global_Variable_Query(kVariableChapter) < 5) {
+
+	if (Global_Variable_Query(kVariableChapter) > 1
+	 && Global_Variable_Query(kVariableChapter) < 5
+	) {
 		if (Actor_Query_Friendliness_To_Other(kActorZuben, kActorMcCoy) <= 20) {
 			Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
 			Actor_Says(kActorMcCoy, 8910, 11);
-		} else if (Game_Flag_Query(699)) {
-			Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
-			Actor_Says(kActorMcCoy, 8910, 11);
-		} else {
+		} else if (!Game_Flag_Query(kFlagTalkToZuben)) {
 			AI_Movement_Track_Pause(kActorZuben);
 			Actor_Face_Actor(kActorZuben, kActorMcCoy, true);
 			Actor_Says(kActorZuben, 140, 14);
@@ -227,8 +227,11 @@ void AIScriptZuben::ClickedByPlayer() {
 			Actor_Says(kActorZuben, 150, 15);
 			Actor_Says(kActorMcCoy, 7285, 12);
 			dialogue();
-			Game_Flag_Set(699);
+			Game_Flag_Set(kFlagTalkToZuben);
 			AI_Movement_Track_Unpause(kActorZuben);
+		} else {
+			Actor_Face_Actor(kActorMcCoy, kActorZuben, true);
+			Actor_Says(kActorMcCoy, 8910, 11);
 		}
 		// return true;
 	}
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index 4cd634e..a62ff81 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -58,7 +58,7 @@ void InitScript::Init_Globals() {
 	for (int i = 0; i != 55; ++i)
 		Global_Variable_Set(i, 0);
 
-	Global_Variable_Set(35, 2);
+	Global_Variable_Set(kVariableGenericWalkerConfig, 2);
 	Global_Variable_Set(kVariableChapter, 1);
 	Global_Variable_Set(kVariableChinyen, 100);
 
diff --git a/engines/bladerunner/script/scene/hf01.cpp b/engines/bladerunner/script/scene/hf01.cpp
index 2ceda56..9f871c4 100644
--- a/engines/bladerunner/script/scene/hf01.cpp
+++ b/engines/bladerunner/script/scene/hf01.cpp
@@ -46,7 +46,7 @@ void SceneScriptHF01::InitializeScene() {
 	}
 
 	Scene_Exit_Add_2D_Exit(0, 81, 226, 169, 321, 0);
-	if (!Game_Flag_Query(663)) {
+	if (!Game_Flag_Query(kFlagHF05PoliceArrived)) {
 		Scene_Exit_Add_2D_Exit(1, 304, 239, 492, 339, 0);
 		Scene_Exit_Add_2D_Exit(2, 560, 231, 639, 360, 0);
 		if (Game_Flag_Query(kFlagSpinnerAtHF01)) {
@@ -80,7 +80,7 @@ void SceneScriptHF01::InitializeScene() {
 			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kHF01LoopInshot, false);
 		}
 		Scene_Loop_Set_Default(kHF01LoopMainLoopSpinner);
-	} else if (Game_Flag_Query(663)) {
+	} else if (Game_Flag_Query(kFlagHF05PoliceArrived)) {
 		Scene_Loop_Set_Default(kHF01LoopMainLoopSpinner);
 	} else {
 		Scene_Loop_Set_Default(kHF01LoopMainLoopNoSpinner);
@@ -159,9 +159,9 @@ bool SceneScriptHF01::ClickedOnActor(int actorId) {
 			 && !Game_Flag_Query(kFlagCrazylegsArrested)
 			 &&  Actor_Query_Goal_Number(kActorCrazylegs) != 2
 			 &&  Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
-			 && !Game_Flag_Query(662)
+			 && !Game_Flag_Query(kFlagHF01TalkToLovedOne)
 			) {
-				Game_Flag_Set(662);
+				Game_Flag_Set(kFlagHF01TalkToLovedOne);
 				Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true);
 				Actor_Face_Actor(affectionTowardsActor, kActorMcCoy, true);
 				if (affectionTowardsActor == kActorDektora) {
@@ -328,7 +328,7 @@ void SceneScriptHF01::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptHF01::PlayerWalkedIn() {
-	if (Game_Flag_Query(663)) {
+	if (Game_Flag_Query(kFlagHF05PoliceArrived)) {
 		ADQ_Flush();
 		ADQ_Add(kActorOfficerGrayford, 280, kAnimationModeTalk);
 		Actor_Put_In_Set(kActorOfficerLeary, kSetHF01);
@@ -340,7 +340,7 @@ void SceneScriptHF01::PlayerWalkedIn() {
 	}
 
 	if (!Game_Flag_Query(kFlagCrazylegsArrested)
-	 && Actor_Query_Goal_Number(kActorCrazylegs) != 2
+	 &&  Actor_Query_Goal_Number(kActorCrazylegs) != 2
 	) {
 		if (Actor_Clue_Query(kActorMcCoy, kCluePhoneCallLucy1)
 		 && Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy
diff --git a/engines/bladerunner/script/scene/hf05.cpp b/engines/bladerunner/script/scene/hf05.cpp
index 88f9181..e5932a8 100644
--- a/engines/bladerunner/script/scene/hf05.cpp
+++ b/engines/bladerunner/script/scene/hf05.cpp
@@ -48,10 +48,10 @@ void SceneScriptHF05::InitializeScene() {
 
 	Ambient_Sounds_Add_Looping_Sound(103, 40, 1, 1);
 
-	if (Game_Flag_Query(369)) {
+	if (Game_Flag_Query(kFlagHF05Hole)) {
 		Scene_Loop_Set_Default(kHF05LoopMainLoopHole);
 		addAmbientSounds();
-	} else if (Game_Flag_Query(559)) {
+	} else if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
 		Scene_Loop_Set_Default(kHF05LoopMainLoopSpinner);
 		addAmbientSounds();
 	} else {
@@ -63,7 +63,7 @@ void SceneScriptHF05::SceneLoaded() {
 	Obstacle_Object("MAINBASE", true);
 	Unobstacle_Object("BTIRES02", true);
 	Unobstacle_Object("LFTIRE02", true);
-	if (Game_Flag_Query(369)) {
+	if (Game_Flag_Query(kFlagHF05Hole)) {
 		Unobstacle_Object("MONTE CARLO DRY", true);
 	} else {
 		Unobstacle_Object("OBSTACLE_HOLE", true);
@@ -88,8 +88,8 @@ bool SceneScriptHF05::ClickedOn3DObject(const char *objectName, bool a2) {
 				return true;
 			}
 
-			if (!Game_Flag_Query(662)
-			 ||  Game_Flag_Query(369)
+			if (!Game_Flag_Query(kFlagHF01TalkToLovedOne)
+			 ||  Game_Flag_Query(kFlagHF05Hole)
 			) {
 				Actor_Change_Animation_Mode(kActorMcCoy, 23);
 				Sound_Play(412, 100, 0, 0, 50);
@@ -98,15 +98,15 @@ bool SceneScriptHF05::ClickedOn3DObject(const char *objectName, bool a2) {
 
 			Player_Loses_Control();
 			Actor_Set_Goal_Number(kActorOfficerLeary, 425);
-			Game_Flag_Set(369);
-			Game_Flag_Set(368);
+			Game_Flag_Set(kFlagHF05Hole);
+			Game_Flag_Set(kFlagHF07Hole);
 			Obstacle_Object("OBSTACLE_HOLE", true);
 			Unobstacle_Object("MONTE CARLO DRY", true);
 
-			if (sub_4048C0() != kActorMcCoy) {
-				Loop_Actor_Walk_To_XYZ(sub_4048C0(), 181.54f, 40.63f, 388.09f, 0, false, true, 0);
-				Actor_Face_Actor(kActorMcCoy, sub_4048C0(), true);
-				Actor_Face_Actor(sub_4048C0(), kActorMcCoy, true);
+			if (getCompanionActor() != kActorMcCoy) {
+				Loop_Actor_Walk_To_XYZ(getCompanionActor(), 181.54f, 40.63f, 388.09f, 0, false, true, 0);
+				Actor_Face_Actor(kActorMcCoy, getCompanionActor(), true);
+				Actor_Face_Actor(getCompanionActor(), kActorMcCoy, true);
 				Actor_Says(kActorMcCoy, 1785, kAnimationModeTalk);
 				Actor_Says(kActorMcCoy, 1790, kAnimationModeTalk);
 			}
@@ -116,8 +116,18 @@ bool SceneScriptHF05::ClickedOn3DObject(const char *objectName, bool a2) {
 			Scene_Loop_Set_Default(kHF05LoopMainLoopHole);
 			Scene_Loop_Start_Special(kSceneLoopModeOnce, kHF05LoopArmAnimation, true);
 
-			if (sub_4048C0() != kActorMcCoy) {
-				if (sub_4048C0() == kActorDektora) {
+
+			if (getCompanionActor() == kActorMcCoy) {
+				ADQ_Flush();
+				ADQ_Add(kActorVoiceOver, 940, -1);
+				Ambient_Sounds_Play_Sound(147, 50, 99, 0, 0);
+				Delay(1500);
+				Loop_Actor_Walk_To_XYZ(kActorMcCoy, 181.54f, 40.63f, 388.09f, 0, false, true, 0);
+				Actor_Face_Heading(kActorMcCoy, 0, false);
+				Actor_Change_Animation_Mode(kActorMcCoy, 23);
+				Actor_Clue_Lose(kActorMcCoy, kClueBomb);
+			} else {
+				if (getCompanionActor() == kActorDektora) {
 					Actor_Face_Heading(kActorDektora, 0, false);
 					Ambient_Sounds_Play_Sound(147, 50, 99, 0, 0);
 					Delay(3000);
@@ -130,17 +140,8 @@ bool SceneScriptHF05::ClickedOn3DObject(const char *objectName, bool a2) {
 					Actor_Face_Heading(kActorLucy, 0, false);
 					Actor_Change_Animation_Mode(kActorLucy, 13);
 				}
-				Actor_Face_Actor(kActorMcCoy, sub_4048C0(), true);
+				Actor_Face_Actor(kActorMcCoy, getCompanionActor(), true);
 				Actor_Says(kActorMcCoy, 1805, kAnimationModeTalk);
-			} else {
-				ADQ_Flush();
-				ADQ_Add(kActorVoiceOver, 940, -1);
-				Ambient_Sounds_Play_Sound(147, 50, 99, 0, 0);
-				Delay(1500);
-				Loop_Actor_Walk_To_XYZ(kActorMcCoy, 181.54f, 40.63f, 388.09f, 0, false, true, 0);
-				Actor_Face_Heading(kActorMcCoy, 0, false);
-				Actor_Change_Animation_Mode(kActorMcCoy, 23);
-				Actor_Clue_Lose(kActorMcCoy, kClueBomb);
 			}
 			Player_Gains_Control();
 		}
@@ -167,7 +168,7 @@ bool SceneScriptHF05::ClickedOnItem(int itemId, bool a2) {
 bool SceneScriptHF05::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 483.0f, 40.63f, -189.0f, 0, true, false, 0)) {
-			if (!Game_Flag_Query(684)) {
+			if (!Game_Flag_Query(kFlagHF05PoliceAttacked)) {
 				Game_Flag_Set(kFlagHF05toHF01);
 				Set_Enter(kSetHF01, kSceneHF01);
 			}
@@ -177,10 +178,10 @@ bool SceneScriptHF05::ClickedOnExit(int exitId) {
 
 	if (exitId == 1) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 330.0f, 40.63f, -85.0f, 0, true, false, 0)) {
-			if (!Game_Flag_Query(684)) {
+			if (!Game_Flag_Query(kFlagHF05PoliceAttacked)) {
 				int affectionTowardsActor = getAffectionTowardsActor();
-				if (Game_Flag_Query(663)
-				 && Game_Flag_Query(368)
+				if (Game_Flag_Query(kFlagHF05PoliceArrived)
+				 && Game_Flag_Query(kFlagHF07Hole)
 				 && affectionTowardsActor != -1
 				) {
 					Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true);
@@ -195,7 +196,7 @@ bool SceneScriptHF05::ClickedOnExit(int exitId) {
 
 	if (exitId == 2) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 277.0f, 40.63f, 410.0f, 0, true, false, 0)) {
-			if (!Game_Flag_Query(684)) {
+			if (!Game_Flag_Query(kFlagHF05PoliceAttacked)) {
 				Game_Flag_Set(kFlagHF05toHF06);
 				Set_Enter(kSetHF06, kSceneHF06);
 			}
@@ -271,16 +272,16 @@ void SceneScriptHF05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 	if (actorId == kActorOfficerLeary
 	 && newGoal == 430
 	) {
-		Game_Flag_Set(684);
-		sub_4042E4();
+		Game_Flag_Set(kFlagHF05PoliceAttacked);
+		policeAttack();
 	}
 	//return false;
 }
 
 void SceneScriptHF05::PlayerWalkedIn() {
-	if (Game_Flag_Query(662)) {
+	if (Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
 		int affectionTowardsActor = getAffectionTowardsActor();
-		if (Game_Flag_Query(662)
+		if (Game_Flag_Query(kFlagHF01TalkToLovedOne)
 		 && affectionTowardsActor != -1
 		) {
 			Actor_Put_In_Set(affectionTowardsActor, kSetHF05);
@@ -297,27 +298,27 @@ void SceneScriptHF05::PlayerWalkedIn() {
 			}
 		}
 
-		if (Game_Flag_Query(684)) {
-			sub_4042E4();
+		if (Game_Flag_Query(kFlagHF05PoliceAttacked)) {
+			policeAttack();
 		} else if (Actor_Clue_Query(kActorMcCoy, kClueSpinnerKeys)
-		        || Game_Flag_Query(559)
+		        || Game_Flag_Query(kFlagHF06SteelInterruption)
 		) {
-			if ( Game_Flag_Query(559)
-			 && !Game_Flag_Query(663)
+			if ( Game_Flag_Query(kFlagHF06SteelInterruption)
+			 && !Game_Flag_Query(kFlagHF05PoliceArrived)
 			) {
-				Game_Flag_Set(663);
+				Game_Flag_Set(kFlagHF05PoliceArrived);
 				Music_Play(1, 40, 0, 2, -1, 0, 0);
 				Actor_Says(kActorOfficerGrayford, 200, kAnimationModeTalk);
 				Actor_Says(kActorOfficerGrayford, 210, kAnimationModeTalk);
 				Actor_Set_Goal_Number(kActorOfficerLeary, 420);
-				if (sub_4048C0() == 3) {
-					sub_403F0C();
-				} else if (sub_4048C0() == 6) {
-					sub_40410C();
+				if (getCompanionActor() ==  kActorDektora) {
+					talkWithDektora();
+				} else if (getCompanionActor() == kActorLucy) {
+					talkWithLucy();
 				}
 			}
 		} else {
-			sub_403A34(affectionTowardsActor);
+			talkWithCrazylegs3(affectionTowardsActor);
 		}
 	} else if (Game_Flag_Query(kFlagHF01toHF05)) {
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 399.0f, 40.63f, -85.0f, 0, false, false, 0);
@@ -573,7 +574,7 @@ int SceneScriptHF05::getAffectionTowardsActor() {
 	return -1;
 }
 
-void SceneScriptHF05::sub_4042E4() {
+void SceneScriptHF05::policeAttack() {
 	Actor_Force_Stop_Walking(kActorMcCoy);
 	Actor_Put_In_Set(kActorOfficerLeary, kSetHF05);
 	Actor_Set_At_XYZ(kActorOfficerLeary, 430.4f, 40.63f, -258.18f, 300);
@@ -586,7 +587,7 @@ void SceneScriptHF05::sub_4042E4() {
 	Non_Player_Actor_Combat_Mode_On(kActorOfficerGrayford, kActorCombatStateUncover, true, kActorMcCoy, 4, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 100, 300, true);
 }
 
-void SceneScriptHF05::sub_403F0C() {
+void SceneScriptHF05::talkWithDektora() {
 	Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
 	Actor_Face_Actor(kActorDektora, kActorMcCoy, true);
 	Actor_Says(kActorDektora, 2660, 12);
@@ -605,7 +606,7 @@ void SceneScriptHF05::sub_403F0C() {
 	Actor_Says_With_Pause(kActorMcCoy, 1780, 1.0f, 18);
 }
 
-void SceneScriptHF05::sub_40410C() {
+void SceneScriptHF05::talkWithLucy() {
 	Actor_Face_Actor(kActorMcCoy, kActorLucy, true);
 	Actor_Face_Actor(kActorLucy, kActorMcCoy, true);
 	Actor_Says(kActorLucy, 400, 16);
@@ -623,7 +624,7 @@ void SceneScriptHF05::sub_40410C() {
 	Actor_Says_With_Pause(kActorMcCoy, 1780, 1.0f, 18);
 }
 
-void SceneScriptHF05::sub_403A34(int affectionTowardsActor) {
+void SceneScriptHF05::talkWithCrazylegs3(int affectionTowardsActor) {
 	if (affectionTowardsActor != -1
 	 && Actor_Query_In_Set(kActorCrazylegs, kSetHF05)
 	) {
@@ -743,7 +744,7 @@ void SceneScriptHF05::addAmbientSounds() {
 	Ambient_Sounds_Add_Speech_Sound(38, 280, 5, 70, 7, 10, -50, 50, -101, -101, 1, 1);
 }
 
-int SceneScriptHF05::sub_4048C0() {
+int SceneScriptHF05::getCompanionActor() {
 	if (Actor_Query_In_Set(kActorDektora, kSetHF05)
 	 && Actor_Query_Goal_Number(kActorDektora) != kGoalDektoraGone
 	) {
@@ -755,6 +756,7 @@ int SceneScriptHF05::sub_4048C0() {
 	) {
 		return kActorLucy;
 	}
+
 	return kActorMcCoy;
 }
 
diff --git a/engines/bladerunner/script/scene/hf06.cpp b/engines/bladerunner/script/scene/hf06.cpp
index 19c1048..8e806aa 100644
--- a/engines/bladerunner/script/scene/hf06.cpp
+++ b/engines/bladerunner/script/scene/hf06.cpp
@@ -38,7 +38,7 @@ void SceneScriptHF06::InitializeScene() {
 	Ambient_Sounds_Add_Sound(376, 10, 70, 50, 100, 0, 0, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(377, 10, 70, 50, 100, 0, 0, -101, -101, 0, 0);
 
-	if (Game_Flag_Query(559)) {
+	if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
 		Scene_Loop_Set_Default(3);
 		addAmbientSounds();
 	} else {
@@ -115,7 +115,7 @@ bool SceneScriptHF06::ClickedOnActor(int actorId) {
 	) {
 		Actor_Face_Actor(kActorLucy, kActorMcCoy, true);
 		Actor_Face_Actor(kActorMcCoy, kActorLucy, true);
-		if (Game_Flag_Query(559)) {
+		if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
 			Actor_Says(kActorLucy, 390, 18);
 			Actor_Says(kActorMcCoy, 2115, 17);
 		}
@@ -124,7 +124,7 @@ bool SceneScriptHF06::ClickedOnActor(int actorId) {
 	) {
 		Actor_Face_Actor(kActorDektora, kActorMcCoy, true);
 		Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
-		if (Game_Flag_Query(559)) {
+		if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
 			Actor_Says(kActorDektora, 100, 3);
 			Actor_Says(kActorMcCoy, 2115, 17);
 		}
@@ -208,7 +208,7 @@ void SceneScriptHF06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptHF06::PlayerWalkedIn() {
-	if (Game_Flag_Query(662)) {
+	if (Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
 		int actorId = -1;
 		if (Global_Variable_Query(kVariableAffectionTowards) == kAffectionTowardsLucy
 		 && Actor_Query_Goal_Number(kActorLucy) != kGoalLucyGone
@@ -222,7 +222,7 @@ void SceneScriptHF06::PlayerWalkedIn() {
 
 		if (actorId != -1) {
 			Actor_Put_In_Set(actorId, kSetHF06);
-			if (Game_Flag_Query(559)) {
+			if (Game_Flag_Query(kFlagHF06SteelInterruption)) {
 				Actor_Set_At_XYZ(actorId, 173.67f, 367.93f, 446.04f, 229);
 				Async_Actor_Walk_To_XYZ(actorId, 173.67f, 367.93f, 394.04f, 0, false);
 			} else {
@@ -235,10 +235,10 @@ void SceneScriptHF06::PlayerWalkedIn() {
 	Loop_Actor_Travel_Stairs(kActorMcCoy, 2, true, kAnimationModeIdle);
 	Footstep_Sound_Override_Off();
 
-	if ( Game_Flag_Query(662)
-	 && !Game_Flag_Query(559)
+	if ( Game_Flag_Query(kFlagHF01TalkToLovedOne)
+	 && !Game_Flag_Query(kFlagHF06SteelInterruption)
 	) {
-		sub_401EF4();
+		steelInterruption();
 	}
 }
 
@@ -249,7 +249,7 @@ void SceneScriptHF06::PlayerWalkedOut() {
 void SceneScriptHF06::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptHF06::sub_401EF4() {
+void SceneScriptHF06::steelInterruption() {
 	int actorId;
 
 	if (Actor_Query_In_Set(kActorDektora, kSetHF06)) {
@@ -277,8 +277,8 @@ void SceneScriptHF06::sub_401EF4() {
 	Actor_Says(kActorSteele, 280, 58);
 	Actor_Face_Actor(kActorMcCoy, kActorSteele, true);
 	Player_Set_Combat_Mode(true);
-	Actor_Change_Animation_Mode(kActorMcCoy, 5);
-	Actor_Change_Animation_Mode(kActorSteele, 7);
+	Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAim);
+	Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatWalk);
 	Loop_Actor_Walk_To_XYZ(kActorSteele, 92.0f, 367.93f, 107.0f, 0, false, false, 0);
 	Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
 	Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatIdle);
@@ -295,14 +295,14 @@ void SceneScriptHF06::sub_401EF4() {
 	Actor_Says(kActorSteele, 350, 58);
 	Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatIdle);
 	Game_Flag_Set(kFlagNotUsed644);
-	Actor_Set_Goal_Number(kActorSteele, 402);
+	Actor_Set_Goal_Number(kActorSteele, kGoalSteeleHF06Attack);
 	Actor_Face_Actor(kActorSteele, actorId, true);
 	Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatAttack);
 	Delay(500);
 	Scene_Loop_Set_Default(3);
 	Scene_Loop_Start_Special(kSceneLoopModeOnce, 2, true);
 	Sound_Play(562, 50, 0, 0, 50);
-	Game_Flag_Set(559);
+	Game_Flag_Set(kFlagHF06SteelInterruption);
 	Scene_Exits_Disable();
 	Non_Player_Actor_Combat_Mode_On(kActorSteele, kActorCombatStateUncover, true, actorId, 15, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, 0, 100, 10, 300, false);
 }
diff --git a/engines/bladerunner/script/scene/hf07.cpp b/engines/bladerunner/script/scene/hf07.cpp
index e35c461..f4e8cee 100644
--- a/engines/bladerunner/script/scene/hf07.cpp
+++ b/engines/bladerunner/script/scene/hf07.cpp
@@ -40,7 +40,7 @@ void SceneScriptHF07::InitializeScene() {
 	Ambient_Sounds_Add_Sound(304, 5, 40, 20, 33, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(305, 5, 40, 20, 33, -100, 100, -101, -101, 0, 0);
 
-	if (Game_Flag_Query(368)) {
+	if (Game_Flag_Query(kFlagHF07Hole)) {
 		Scene_Loop_Set_Default(2);
 	} else {
 		Scene_Loop_Set_Default(0);
@@ -79,7 +79,7 @@ bool SceneScriptHF07::ClickedOnExit(int exitId) {
 
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 318.0f, 71.43f, -102.0f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagHF07toHF05);
-			if (!Game_Flag_Query(662)) {
+			if (!Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
 				Actor_Face_Heading(kActorMcCoy, 0, false);
 				Footstep_Sound_Override_On(3);
 				Loop_Actor_Travel_Stairs(kActorMcCoy, 30, true, kAnimationModeIdle);
@@ -121,9 +121,9 @@ void SceneScriptHF07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptHF07::PlayerWalkedIn() {
-	if (Game_Flag_Query(662)) {
+	if (Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
 		int actorId = getAffectionTowardsActor();
-		if (Game_Flag_Query(662)
+		if (Game_Flag_Query(kFlagHF01TalkToLovedOne)
 		 && actorId != -1
 		) {
 			Actor_Put_In_Set(actorId, kSetHF07);
diff --git a/engines/bladerunner/script/scene/ma04.cpp b/engines/bladerunner/script/scene/ma04.cpp
index 5013bb5..b99cfcb 100644
--- a/engines/bladerunner/script/scene/ma04.cpp
+++ b/engines/bladerunner/script/scene/ma04.cpp
@@ -365,17 +365,19 @@ void SceneScriptMA04::phoneCallWithDektora() {
 	Actor_Says(kActorMcCoy, 2495, 0);
 	Actor_Says(kActorDektora, 340, 3);
 	Actor_Says(kActorDektora, 350, 3);
-	if (Game_Flag_Query(kFlagCrazylegsArrested) || Actor_Query_Goal_Number(kActorCrazylegs) == 2) {
-		answer = 1170;
+	if (Game_Flag_Query(kFlagCrazylegsArrested)
+	 || Actor_Query_Goal_Number(kActorCrazylegs) == 2
+	) {
+		answer = 1170; // CLOVIS
 	} else {
 		Dialogue_Menu_Clear_List();
-		DM_Add_To_List_Never_Repeat_Once_Selected(1160, 1, 1, 2);
-		DM_Add_To_List_Never_Repeat_Once_Selected(1170, 2, 1, 1);
+		DM_Add_To_List_Never_Repeat_Once_Selected(1160, 1, 1, 2); // OK
+		DM_Add_To_List_Never_Repeat_Once_Selected(1170, 2, 1, 1); // CLOVIS
 		Dialogue_Menu_Appear(320, 240);
 		answer = Dialogue_Menu_Query_Input();
 		Dialogue_Menu_Disappear();
 	}
-	if (answer == 1160) {
+	if (answer == 1160) { // OK
 		Actor_Says(kActorMcCoy, 2500, 19);
 		Actor_Says(kActorDektora, 360, 3);
 		Actor_Says(kActorMcCoy, 2510, 0);
@@ -418,7 +420,9 @@ void SceneScriptMA04::phoneCallWithLucy() {
 	Actor_Says(kActorLucy, 570, 3);
 	Actor_Says(kActorMcCoy, 2560, 17);
 	Actor_Says(kActorLucy, 580, 3);
-	if (Game_Flag_Query(kFlagCrazylegsArrested) || Actor_Query_Goal_Number(kActorCrazylegs) == 2) {
+	if (Game_Flag_Query(kFlagCrazylegsArrested)
+	 || Actor_Query_Goal_Number(kActorCrazylegs) == 2
+	) {
 		Actor_Says(kActorLucy, 630, 3);
 		Actor_Says_With_Pause(kActorMcCoy, 2575, 0.0f, 15);
 		if (!Game_Flag_Query(kFlagDirectorsCut)) {
diff --git a/engines/bladerunner/script/scene/ug01.cpp b/engines/bladerunner/script/scene/ug01.cpp
index ced4378..e9652f5 100644
--- a/engines/bladerunner/script/scene/ug01.cpp
+++ b/engines/bladerunner/script/scene/ug01.cpp
@@ -170,7 +170,7 @@ void SceneScriptUG01::PlayerWalkedIn() {
 		Game_Flag_Reset(kFlagRC03toUG01);
 	}
 
-	if (Actor_Query_Goal_Number(kActorLucy) == 310) {
+	if (Actor_Query_Goal_Number(kActorLucy) == kGoalLucyUG01Wait) {
 		Music_Play(21, 35, 0, 3, -1, 0, 0);
 		Actor_Set_Goal_Number(kActorLucy, 311);
 	}
diff --git a/engines/bladerunner/script/scene/ug05.cpp b/engines/bladerunner/script/scene/ug05.cpp
index 1062f45..a4b88ee 100644
--- a/engines/bladerunner/script/scene/ug05.cpp
+++ b/engines/bladerunner/script/scene/ug05.cpp
@@ -26,8 +26,8 @@ namespace BladeRunner {
 
 void SceneScriptUG05::InitializeScene() {
 	if (Game_Flag_Query(kFlagHF07toUG06)) {
-		if ( Game_Flag_Query(663)
-		 && !Game_Flag_Query(368)
+		if ( Game_Flag_Query(kFlagHF05PoliceArrived)
+		 && !Game_Flag_Query(kFlagHF07Hole)
 		) {
 			Setup_Scene_Information(-356.35f, 132.77f, -1092.36f, 389);
 		} else {
@@ -39,11 +39,11 @@ void SceneScriptUG05::InitializeScene() {
 	}
 
 	Scene_Exit_Add_2D_Exit(0, 215, 240, 254, 331, 3);
-	if (!Game_Flag_Query(663)) {
+	if (!Game_Flag_Query(kFlagHF05PoliceArrived)) {
 		Scene_Exit_Add_2D_Exit(1, 303, 422, 639, 479, 2);
 	}
-	if (!Game_Flag_Query(663)
-	 ||  Game_Flag_Query(368)
+	if (!Game_Flag_Query(kFlagHF05PoliceArrived)
+	 ||  Game_Flag_Query(kFlagHF07Hole)
 	) {
 		Scene_Exit_Add_2D_Exit(2, 352, 256, 393, 344, 0);
 	}
@@ -69,7 +69,7 @@ void SceneScriptUG05::InitializeScene() {
 	Ambient_Sounds_Add_Sound(304, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(305, 5,  50, 17, 37, -100, 100, -101, -101, 0, 0);
 
-	if (Game_Flag_Query(368)) {
+	if (Game_Flag_Query(kFlagHF07Hole)) {
 		Scene_Loop_Set_Default(2);
 	} else {
 		Scene_Loop_Set_Default(0);
@@ -77,7 +77,7 @@ void SceneScriptUG05::InitializeScene() {
 }
 
 void SceneScriptUG05::SceneLoaded() {
-	if (!Game_Flag_Query(368)) {
+	if (!Game_Flag_Query(kFlagHF07Hole)) {
 		Unobstacle_Object("DROPPED CAR OBSTACL", true);
 	}
 	Obstacle_Object("VANBODY", true);
@@ -94,10 +94,10 @@ bool SceneScriptUG05::ClickedOn3DObject(const char *objectName, bool a2) {
 bool SceneScriptUG05::ClickedOnActor(int actorId) {
 	if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, actorId, 30, true, false)) {
 		Actor_Face_Actor(kActorMcCoy, actorId, true);
-		int affectionTowardsActor = getAffectionTowardsActor();
+
 		if ( actorId == kActorOfficerGrayford
-		 &&  Game_Flag_Query(368)
-		 && !Game_Flag_Query(683)
+		 &&  Game_Flag_Query(kFlagHF07Hole)
+		 && !Game_Flag_Query(kFlagUG05TalkToPolice)
 		) {
 			Actor_Says(kActorOfficerGrayford, 220, -1);
 			Actor_Says(kActorMcCoy, 5540, 14);
@@ -105,11 +105,13 @@ bool SceneScriptUG05::ClickedOnActor(int actorId) {
 			Actor_Says(kActorMcCoy, 5545, 17);
 			Actor_Says(kActorOfficerGrayford, 240, -1);
 			Actor_Says(kActorMcCoy, 5550, 3);
-			Game_Flag_Set(683);
+			Game_Flag_Set(kFlagUG05TalkToPolice);
 			return false;
 		}
+
+		int affectionTowardsActor = getAffectionTowardsActor();
 		if (actorId == affectionTowardsActor) {
-			sub_402218();
+			endGame();
 			return true;
 		}
 		return false;
@@ -123,8 +125,8 @@ bool SceneScriptUG05::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptUG05::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if ( Game_Flag_Query(663)
-		 && !Game_Flag_Query(368)
+		if ( Game_Flag_Query(kFlagHF05PoliceArrived)
+		 && !Game_Flag_Query(kFlagHF07Hole)
 		) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -356.35f, 132.77f, -1092.36f, 0, false, false, 0);
 			Game_Flag_Set(kFlagUG06toHF07);
@@ -147,12 +149,12 @@ bool SceneScriptUG05::ClickedOnExit(int exitId) {
 	}
 
 	if (exitId == 2) {
-		if (!Game_Flag_Query(662)) {
+		if (!Game_Flag_Query(kFlagHF01TalkToLovedOne)) {
 			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 0.0f, -1.37f, -1500.0f, 0, true, false, 0)) {
-				if (!Game_Flag_Query(522)) {
+				if (!Game_Flag_Query(kFlagUG05TalkAboutTunnel)) {
 					Actor_Voice_Over(2600, kActorVoiceOver);
 					Actor_Voice_Over(2610, kActorVoiceOver);
-					Game_Flag_Set(522);
+					Game_Flag_Set(kFlagUG05TalkAboutTunnel);
 				}
 				return true;
 			}
@@ -165,7 +167,7 @@ bool SceneScriptUG05::ClickedOnExit(int exitId) {
 				v2 = Loop_Actor_Walk_To_Actor(kActorMcCoy, affectionTowardsActor, 30, true, false) != 0;
 			}
 			if (!v2) {
-				sub_402218();
+				endGame();
 				return true;
 			}
 		}
@@ -184,13 +186,15 @@ void SceneScriptUG05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptUG05::PlayerWalkedIn() {
-	if (Game_Flag_Query(663)) {
-		if (Game_Flag_Query(368)) {
+	if (Game_Flag_Query(kFlagHF05PoliceArrived)) {
+		if (Game_Flag_Query(kFlagHF07Hole)) {
 			Music_Stop(2);
+
 			Actor_Put_In_Set(kActorOfficerGrayford, kSetUG05);
 			Actor_Set_At_XYZ(kActorOfficerGrayford, 4.22f, -1.37f, -925.0f, 750);
 			Actor_Set_Goal_Number(kActorOfficerGrayford, 599);
-			Actor_Retired_Here(kActorOfficerGrayford, 70, 36, 1, -1);
+			Actor_Retired_Here(kActorOfficerGrayford, 70, 36, true, -1);
+
 			int affectionTowardsActor = getAffectionTowardsActor();
 			if (affectionTowardsActor == kActorDektora) {
 				Actor_Put_In_Set(kActorDektora, kSetUG05);
@@ -206,9 +210,10 @@ void SceneScriptUG05::PlayerWalkedIn() {
 				Actor_Put_In_Set(kActorOfficerLeary, kSetUG05);
 				Actor_Set_At_XYZ(kActorOfficerLeary, 0.0f, -1.37f, -1400.0f, 768);
 			}
+
 			if (!Actor_Query_In_Set(kActorOfficerGrayford, kSetUG05)) {
 				ADQ_Flush();
-				ADQ_Add(kActorOfficerGrayford, 280, 3);
+				ADQ_Add(kActorOfficerGrayford, 280, kAnimationModeTalk);
 				Actor_Put_In_Set(kActorOfficerGrayford, kSetUG05);
 				Actor_Set_At_XYZ(kActorOfficerGrayford, -16.0f, -1.37f, -960.0f, 768);
 			}
@@ -216,15 +221,17 @@ void SceneScriptUG05::PlayerWalkedIn() {
 	}
 
 	if (Game_Flag_Query(kFlagHF07toUG06)) {
-		if (Game_Flag_Query(663) && !Game_Flag_Query(368)) {
+		if ( Game_Flag_Query(kFlagHF05PoliceArrived)
+		 && !Game_Flag_Query(kFlagHF07Hole)
+		) {
 			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -288.35f, 132.77f, -1092.36f, 0, true, false, 0);
 		} else {
-			Loop_Actor_Travel_Stairs(kActorMcCoy, 2, 0, kAnimationModeIdle);
+			Loop_Actor_Travel_Stairs(kActorMcCoy, 2, false, kAnimationModeIdle);
 		}
 	}
 
-	if (Game_Flag_Query(663)) {
-		Game_Flag_Query(368); // bug in game?
+	if (Game_Flag_Query(kFlagHF05PoliceArrived)) {
+		Game_Flag_Query(kFlagHF07Hole); // bug in game?
 	}
 	Game_Flag_Reset(kFlagHF07toUG06);
 }
@@ -251,7 +258,7 @@ int SceneScriptUG05::getAffectionTowardsActor() {
 	return -1;
 }
 
-void SceneScriptUG05::sub_402218() {
+void SceneScriptUG05::endGame() {
 	int affectionTowardsActor = getAffectionTowardsActor();
 	if (affectionTowardsActor != -1) {
 		Actor_Face_Actor(kActorMcCoy, affectionTowardsActor, true);
@@ -268,24 +275,20 @@ void SceneScriptUG05::sub_402218() {
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
 
 	if (affectionTowardsActor == kActorLucy) {
-		if (Game_Flag_Query(kFlagLucyIsReplicant)) {
-			if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
-				Outtake_Play(kOuttakeEnd1B, false, -1);
-			} else {
-				Outtake_Play(kOuttakeEnd1C, false, -1);
-			}
-		} else {
+		if (!Game_Flag_Query(kFlagLucyIsReplicant)) {
 			Outtake_Play(kOuttakeEnd1A, false, -1);
+		} else if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
+			Outtake_Play(kOuttakeEnd1B, false, -1);
+		} else {
+			Outtake_Play(kOuttakeEnd1C, false, -1);
 		}
 	} else if (affectionTowardsActor == kActorDektora) {
-		if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
-			if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
-				Outtake_Play(kOuttakeEnd1E, false, -1);
-			} else {
-				Outtake_Play(kOuttakeEnd1F, false, -1);
-			}
-		} else {
+		if (!Game_Flag_Query(kFlagDektoraIsReplicant)) {
 			Outtake_Play(kOuttakeEnd1D, false, -1);
+		} else if (Global_Variable_Query(kVariableDNAEvidence) > 3) {
+			Outtake_Play(kOuttakeEnd1E, false, -1);
+		} else {
+			Outtake_Play(kOuttakeEnd1F, false, -1);
 		}
 	} else {
 		Outtake_Play(kOuttakeEnd3, false, -1);
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index df8fe1a..a28bee3 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -217,17 +217,17 @@ DECLARE_SCRIPT(HF05)
 	void talkWithCrazyLegs2();
 	void dialogueWithCrazylegs1();
 	void dialogueWithCrazylegs2();
-	void sub_403A34(int actorId);
-	void sub_403F0C();
-	void sub_40410C();
-	void sub_4042E4();
+	void talkWithCrazylegs3(int actorId);
+	void talkWithDektora();
+	void talkWithLucy();
+	void policeAttack();
 	void addAmbientSounds();
 	int getAffectionTowardsActor();
-	int sub_4048C0();
+	int getCompanionActor();
 END_SCRIPT
 
 DECLARE_SCRIPT(HF06)
-	void sub_401EF4();
+	void steelInterruption();
 	void addAmbientSounds();
 END_SCRIPT
 
@@ -459,7 +459,7 @@ END_SCRIPT
 
 DECLARE_SCRIPT(UG05)
 	int getAffectionTowardsActor();
-	void sub_402218();
+	void endGame();
 END_SCRIPT
 
 DECLARE_SCRIPT(UG06)





More information about the Scummvm-git-logs mailing list