[Scummvm-git-logs] scummvm master -> 2e9c4bfdc1f0f3f4deff5890f0fb91c175aeedce

peterkohaut peterkohaut at users.noreply.github.com
Tue Jan 29 23:39:06 CET 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:
d776eb186d BLADERUNNER: Fixed Gordo death animation after running
4ba4902c3d BLADERUNNER: Don't mute everything when playing a outtake
2c3af4b8e9 BLADERUNNER: Cleanup of front EarlyQ's scenes scripts
2e9c4bfdc1 BLADERUNNER: Cleanup of back EarlyQ's scenes scripts


Commit: d776eb186d750341c4df58c57f926807efb470ce
    https://github.com/scummvm/scummvm/commit/d776eb186d750341c4df58c57f926807efb470ce
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-29T18:43:42+01:00

Commit Message:
BLADERUNNER: Fixed Gordo death animation after running

Changed paths:
    engines/bladerunner/script/ai/gordo.cpp


diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index 463960c..82a2866 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -1200,7 +1200,7 @@ bool AIScriptGordo::UpdateAnimation(int *animation, int *frame) {
 		_animationFrame++;
 		if (_animationFrame == 6) {
 			Actor_Set_Goal_Number(kActorTaffyPatron, 250);
-			Actor_Change_Animation_Mode(kActorGordo, 49);
+			Actor_Change_Animation_Mode(kActorGordo, kAnimationModeCombatDie);
 			*animation = 100;
 			_animationFrame = 0;
 			_animationState = 24;
@@ -1484,7 +1484,7 @@ bool AIScriptGordo::ChangeAnimationMode(int mode) {
 			_animationState = 24;
 			_animationFrame = 0;
 			break;
-		case 15:
+		default:
 			_animationState = 23;
 			_animationFrame = 0;
 			break;


Commit: 4ba4902c3d559bacaa0177fceea936ac41f0df60
    https://github.com/scummvm/scummvm/commit/4ba4902c3d559bacaa0177fceea936ac41f0df60
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-29T23:36:26+01:00

Commit Message:
BLADERUNNER: Don't mute everything when playing a outtake

this was causing issue at nr08 when audience was silent during Dektora performance

Changed paths:
    engines/bladerunner/outtake.cpp


diff --git a/engines/bladerunner/outtake.cpp b/engines/bladerunner/outtake.cpp
index 8d7b92a..d4171de 100644
--- a/engines/bladerunner/outtake.cpp
+++ b/engines/bladerunner/outtake.cpp
@@ -63,8 +63,6 @@ void OuttakePlayer::play(const Common::String &name, bool noLocalization, int co
 	Common::String resNameNoVQASuffix = resName;
 	resName = resName + ".VQA";
 
-	_vm->_mixer->stopAll();
-
 	VQAPlayer vqaPlayer(_vm, &_surfaceVideo, resName); // in original game _surfaceFront is used here, but for proper subtitles rendering we need separate surface
 	vqaPlayer.open();
 


Commit: 2c3af4b8e967386dd1e27641b82c0bec03d75bc8
    https://github.com/scummvm/scummvm/commit/2c3af4b8e967386dd1e27641b82c0bec03d75bc8
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-29T23:36:29+01:00

Commit Message:
BLADERUNNER: Cleanup of front EarlyQ's scenes scripts

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/early_q.cpp
    engines/bladerunner/script/ai/gordo.cpp
    engines/bladerunner/script/ai/hanoi.cpp
    engines/bladerunner/script/ai/lucy.cpp
    engines/bladerunner/script/ai/mccoy.cpp
    engines/bladerunner/script/ai/steele.cpp
    engines/bladerunner/script/ai_script.h
    engines/bladerunner/script/scene/nr01.cpp
    engines/bladerunner/script/scene/nr03.cpp
    engines/bladerunner/script/scene/nr04.cpp
    engines/bladerunner/script/scene/nr05.cpp
    engines/bladerunner/script/scene/nr08.cpp
    engines/bladerunner/script/scene_script.h


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 97aa92c..356d185 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -852,6 +852,8 @@ enum Flags {
 
 	kFlagUG09toCT12 = 432,
 	kFlagCT12ToUG09 = 433,
+	kFlatNR04toNR03 = 437,
+	kFlatNR03toNR04 = 438,
 	kFlagGenericWalkerWaiting = 443,
 	kFlagIzoShot = 444,
 	kFlagUG02WeaponsChecked = 449,
@@ -884,6 +886,8 @@ enum Flags {
 	kFlagDNARowAvailable = 486,
 	kFlagKIAPrivacyAddon = 487,
 	kFlagDektoraChapter2Started = 489,
+	kFlagEarlyQStartedChapter1 = 490,
+	kFlagEarlyQStartedChapter2 = 491,
 	kFlagCT04HomelessTrashFinish = 492,
 	kFlagBB02ElevatorDown = 493,
 	kFlagBB02Entered = 494,
@@ -913,29 +917,40 @@ enum Flags {
 	kFlagNR02toNR01 = 533,
 	kFlagNR03toNR01 = 534,
 	kFlagNR01toNR03 = 535,
+	kFlagNR03toNR05 = 536,
+	kFlagNR05toNR03 = 537,
 	kFlagCT09Entered = 538,
 	kFlagCT09LeonInterrupted = 539,
 	kFlagCT09DeskClerkTalk = 540,
 	kFlagGordoTalk1 = 543,
 	kFlagGordoTalk2 = 544,
 	kFlagNotUsed545 = 545, // is never set
+	kFlagNR05toNR08 = 546,
+	kFlagNR08toNR05 = 547,
 	kFlagDR06MannequinHeadOpen = 548,
 	kFlagMcCoyTiedDown = 550,
 	kFlagDR01toCT11 = 558,
 	kFlagNR02GordoLeaveLighter = 561,
 	kFlagHF05CrazyLegsTalk1 = 562,
 	kFlagHF05CrazyLegsTalk2 = 563,
+	kFlagEarlyQStartedChapter3 = 564,
 	kFlagHF03toHF04 = 566, // is never checked
 	kFlagHF04toHF03 = 567,
+	kFlagNR03Entered = 573,
 	kFlagHF04DoorsClosed = 584,
 	kFlagHF04CloseDoors = 585,
 	kFlagHF04OpenDoors = 586,
-	kFlagGordoRanWay = 592,
+	kFlagNR05BartenderTalk1 = 588,
+	kFlagNR05BartenderTalk2 = 589,
+	kFlagNR05EarlyQTalk = 590,
+	kFlagGordoRanAway = 592,
 	kFlagLucyRanAway = 593,
 	kFlagNR02GordoJumpDown = 594,
 	kFlagKIAPrivacyAddonIntro = 599,
 	kFlagSteeleAimingAtGordo = 603,
+	kFlagNR03McCoyThrownOut = 604,
 	kFlagTB07toTB02 = 608,
+	kFlagNR03HanoiTalk = 611,
 	kFlagTB07RachaelTalk = 612,
 	kFlagHF03LucyTalk = 613,
 	kFlagMcCoyCapturedByHolloway = 616,
@@ -1004,12 +1019,16 @@ enum Variables {
 	kVariableHollowayArrest = 40, // 1 dektora, 2 gordo, 3 lucy
 	kVariableGordosJoke = 41,
 	kVariableMcCoyDrinks = 42, // is never checked
+	kVariableHanoiNR05Warnings = 43,
+	kVariableHanoiNR04Warnings = 44,
 	kVariableAffectionTowards = 45, // 0 none, 1 steele, 2 dektora, 3 lucy
 	kVariableGunPulledInFrontOfSebastian = 46,
 	kVariableDNAEvidences = 48,
 	kVariableNR02Music = 50,
 	kVariableReplicants = 51,
-	kVariableNextTvNews = 52
+	kVariableNextTvNews = 52,
+	kVariableNR03Music = 53,
+	kVariableNR05Music = 54
 };
 
 enum Outtakes {
@@ -1153,9 +1172,9 @@ enum Scenes {
 	kSceneMA07 = 53, // McCoy's Apartment - Ground floor
 	kSceneNR01 = 54, // Nightclub Row - Outside
 	kSceneNR02 = 55, // Nightclub Row - Taffy Lewis'
-	kSceneNR03 = 56,
-	kSceneNR04 = 57,
-	kSceneNR05 = 58,
+	kSceneNR03 = 56, // Nightclub Row - Early Q's - Main area
+	kSceneNR04 = 57, // Nightclub Row - Early Q's - Office
+	kSceneNR05 = 58, // Nightclub Row - Early Q's - VIP area
 	kSceneNR06 = 59,
 	kSceneNR07 = 60,
 	kSceneNR08 = 61,
@@ -1520,6 +1539,7 @@ enum GoalMcCoy {
 	kGoalMcCoyBB11PrepareToRunAway = 101,
 	kGoalMcCoyBB11RunAway = 102,
 	kGoalMcCoyBB11GetCaught = 103,
+	kGoalMcCoyNR03ThrownOut = 210,
 	kGoalMcCoyArrested = 500
 };
 
@@ -1645,7 +1665,8 @@ enum GoalGuzza {
 	kGoalGuzzaGoToOffice = 102,
 	kGoalGuzzaGoToHawkersCircle2 = 103,
 	kGoalGuzzaGoToFreeSlotB = 104,
-	kGoalGuzzaGoToFreeSlotG = 105
+	kGoalGuzzaGoToFreeSlotG = 105,
+	kGoalGuzzaSitAtNR03 = 201
 };
 
 enum GoalClovis {
@@ -1737,6 +1758,13 @@ enum GoalRunciter {
 	kGoalRunciterDead = 599
 };
 
+enum GoalEarlyQ {
+	// cut feature? goals 0 - 200 has no use as EarlyQ is walking around NR which is not accessible
+	kGoalEarlyQStartWalkingAround = 200,
+	kGoalEarlyQGoToNR05 = 220,
+	kGoalEarlyQGoToNR04 = 230
+};
+
 enum GoalZuben {
 	kGoalZubenDefault = 0,
 	kGoalZubenCT01WalkToCT02 = 1,
@@ -1763,6 +1791,16 @@ enum GoalOfficerLeary {
 	kGoalOfficerLearyRC01CrowdInterrogation = 2
 };
 
+enum GoalHanoi {
+	kGoalHanoiDefault = 200,
+	kGoalHanoiNR03GoToDefaultPosition = 210,
+	kGoalHanoiNR03GoToSwivelTable = 211,
+	kGoalHanoiNR03GoToOfficeDoor = 212,
+	kGoalHanoiNR03GoToDancer = 213,
+	kGoalHanoiNR03StartGuarding = 215,
+	kGoalHanoiNR03ThrowOutMcCoy = 220
+};
+
 enum GoalDeskClerk {
 	kGoalDeskClerkDefault = 0,
 	kGoalDeskClerkKnockedOut = 1,
diff --git a/engines/bladerunner/script/ai/early_q.cpp b/engines/bladerunner/script/ai/early_q.cpp
index 2e45ffe..e06c52a 100644
--- a/engines/bladerunner/script/ai/early_q.cpp
+++ b/engines/bladerunner/script/ai/early_q.cpp
@@ -44,64 +44,80 @@ void AIScriptEarlyQ::Initialize() {
 }
 
 bool AIScriptEarlyQ::Update() {
-	if (Global_Variable_Query(kVariableChapter) != 1 || Game_Flag_Query(490)) {
-		if (Global_Variable_Query(kVariableChapter) != 2 || Game_Flag_Query(491)) {
-			if (Global_Variable_Query(kVariableChapter) != 3 || Game_Flag_Query(564)) {
-				return false;
-			} else {
-				Game_Flag_Set(564);
-				Actor_Put_In_Set(kActorEarlyQ, kSetFreeSlotH);
-				Actor_Set_At_Waypoint(kActorEarlyQ, 40, 0);
-				Actor_Set_Goal_Number(kActorEarlyQ, 200);
-			}
-		} else {
-			Game_Flag_Set(491);
-			Actor_Put_In_Set(kActorEarlyQ, kSetFreeSlotH);
-			Actor_Set_At_Waypoint(kActorEarlyQ, 40, 0);
-			Actor_Set_Goal_Number(kActorEarlyQ, 100);
-		}
-	} else {
-		Game_Flag_Set(490);
+	if ( Global_Variable_Query(kVariableChapter) == 1
+	 && !Game_Flag_Query(kFlagEarlyQStartedChapter1)
+	) {
+		Game_Flag_Set(kFlagEarlyQStartedChapter1);
 		Actor_Put_In_Set(kActorEarlyQ, kSetFreeSlotH);
 		Actor_Set_At_Waypoint(kActorEarlyQ, 40, 0);
 		Actor_Set_Goal_Number(kActorEarlyQ, 0);
+		return true;
 	}
 
-	return true;
+	if ( Global_Variable_Query(kVariableChapter) == 2
+	 && !Game_Flag_Query(kFlagEarlyQStartedChapter2)
+	) {
+		Game_Flag_Set(kFlagEarlyQStartedChapter2);
+		Actor_Put_In_Set(kActorEarlyQ, kSetFreeSlotH);
+		Actor_Set_At_Waypoint(kActorEarlyQ, 40, 0);
+		Actor_Set_Goal_Number(kActorEarlyQ, 100);
+		return true;
+	}
+
+	if ( Global_Variable_Query(kVariableChapter) == 3
+	 && !Game_Flag_Query(kFlagEarlyQStartedChapter3)
+	) {
+		Game_Flag_Set(kFlagEarlyQStartedChapter3);
+		Actor_Put_In_Set(kActorEarlyQ, kSetFreeSlotH);
+		Actor_Set_At_Waypoint(kActorEarlyQ, 40, 0);
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQStartWalkingAround);
+		return true;
+	}
+
+	return false;
 }
 
 void AIScriptEarlyQ::TimerExpired(int timer) {
-	if (Actor_Query_Goal_Number(kActorEarlyQ) == 221 && !timer) {
+	if (timer == 0
+	 && Actor_Query_Goal_Number(kActorEarlyQ) == 221
+	) {
 		if (Player_Query_Current_Scene() == 58) {
 			AI_Countdown_Timer_Reset(kActorEarlyQ, 0);
 			Actor_Set_Goal_Number(kActorEarlyQ, 222);
 		} else {
-			Actor_Set_Goal_Number(kActorEarlyQ, 220);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR05);
 		}
+		return; //true;
 	}
-	if (Actor_Query_Goal_Number(kActorEarlyQ) != 205 || timer) {
-		if (Actor_Query_Goal_Number(kActorEarlyQ) == 211 && timer == 1) {
-			AI_Countdown_Timer_Reset(kActorEarlyQ, 1);
-			Player_Loses_Control();
-			Actor_Change_Animation_Mode(kActorEarlyQ, 29);
-			Delay(2500);
-			Actor_Face_Actor(kActorEarlyQ, kActorMcCoy, 1);
-			Actor_Change_Animation_Mode(kActorEarlyQ, 6);
-			Delay(100);
-			_vm->_aiScripts->callChangeAnimationMode(kActorMcCoy, 22);
-			Delay(250);
-			_vm->_aiScripts->callChangeAnimationMode(kActorMcCoy, 48);
-			Actor_Retired_Here(kActorMcCoy, 12, 12, 1, -1);
-		} else {
-			return; //false;
-		}
-	} else {
+
+	if (timer == 0
+	 && Actor_Query_Goal_Number(kActorEarlyQ) == 205
+	) {
 		Player_Loses_Control();
 		AI_Countdown_Timer_Reset(kActorEarlyQ, 0);
 		Actor_Set_Goal_Number(kActorEarlyQ, 215);
+		return; //true;
 	}
 
-	return; //true;
+	if (timer == 1
+	 && Actor_Query_Goal_Number(kActorEarlyQ) == 211
+	) {
+		AI_Countdown_Timer_Reset(kActorEarlyQ, 1);
+		Player_Loses_Control();
+		Actor_Change_Animation_Mode(kActorEarlyQ, 29);
+		Delay(2500);
+		Actor_Face_Actor(kActorEarlyQ, kActorMcCoy, 1);
+		Actor_Change_Animation_Mode(kActorEarlyQ, 6);
+		Delay(100);
+		_vm->_aiScripts->callChangeAnimationMode(kActorMcCoy, kAnimationModeCombatHit);
+		Delay(250);
+		_vm->_aiScripts->callChangeAnimationMode(kActorMcCoy, kAnimationModeDie);
+		Actor_Retired_Here(kActorMcCoy, 12, 12, true, -1);
+
+		return; //true;
+	}
+
+	return; //false;
 }
 
 void AIScriptEarlyQ::CompletedMovementTrack() {
@@ -150,8 +166,8 @@ void AIScriptEarlyQ::CompletedMovementTrack() {
 		Actor_Set_Goal_Number(kActorEarlyQ, 223);
 		return; //false;
 
-	case 230:
-		Actor_Set_Goal_Number(kActorEarlyQ, 200);
+	case kGoalEarlyQGoToNR04:
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQStartWalkingAround);
 		return; //false;
 
 	default:
@@ -182,43 +198,52 @@ void AIScriptEarlyQ::OtherAgentExitedThisScene(int otherActorId) {
 }
 
 void AIScriptEarlyQ::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
-	if (Game_Flag_Query(569) != 1 || otherActorId || combatMode != 1 || Game_Flag_Query(609)) {
-		if (Actor_Query_Goal_Number(kActorEarlyQ) != 211 || otherActorId || combatMode) {
-			return; //false;
-		} else {
-			if (Game_Flag_Query(565) == 1) {
-				Game_Flag_Reset(565);
-			}
-			AI_Countdown_Timer_Reset(kActorEarlyQ, 1);
-			Actor_Set_Goal_Number(kActorEarlyQ, 213);
-		}
-	} else {
+	if ( Game_Flag_Query(569)
+	 &&  otherActorId == kActorMcCoy
+	 &&  combatMode
+	 && !Game_Flag_Query(609)
+	) {
 		if (!Game_Flag_Query(565)) {
 			Game_Flag_Set(565);
 		}
 		Game_Flag_Set(609);
 		AI_Countdown_Timer_Reset(kActorEarlyQ, 0);
 		Actor_Set_Goal_Number(kActorEarlyQ, 206);
+		return; // true;
 	}
 
-	return; //true;
+	if ( Actor_Query_Goal_Number(kActorEarlyQ) == 211
+	 &&  otherActorId == kActorMcCoy
+	 && !combatMode
+	) {
+		if (Game_Flag_Query(565) == 1) {
+			Game_Flag_Reset(565);
+		}
+		AI_Countdown_Timer_Reset(kActorEarlyQ, 1);
+		Actor_Set_Goal_Number(kActorEarlyQ, 213);
+		return; //true;
+	}
+
+	return; //false;
 }
 
 void AIScriptEarlyQ::ShotAtAndMissed() {
-	if (Actor_Query_Goal_Number(kActorEarlyQ) != 211)
-		return; //false;
-
-	Actor_Set_Goal_Number(kActorEarlyQ, 216);
-	return; //true;
+	if (Actor_Query_Goal_Number(kActorEarlyQ) == 211) {
+		Actor_Set_Goal_Number(kActorEarlyQ, 216);
+		//return true;
+	}
+	// return false;
 }
 
 bool AIScriptEarlyQ::ShotAtAndHit() {
-	if (Actor_Query_Goal_Number(kActorEarlyQ) < 201 || Actor_Query_Goal_Number(kActorEarlyQ) > 217)
-		return 0;
-
-	Actor_Set_Goal_Number(kActorEarlyQ, 216);
+	if (Actor_Query_Goal_Number(kActorEarlyQ) >= 201
+	 && Actor_Query_Goal_Number(kActorEarlyQ) <= 217
+	) {
+		Actor_Set_Goal_Number(kActorEarlyQ, 216);
+		return true;
+	}
 
-	return true;
+	return false;
 }
 
 void AIScriptEarlyQ::Retired(int byActorId) {
@@ -277,19 +302,19 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Repeat(kActorEarlyQ);
 		break;
 
-	case 200:
+	case kGoalEarlyQStartWalkingAround:
 		AI_Movement_Track_Flush(kActorEarlyQ);
 		Actor_Put_In_Set(kActorEarlyQ, kSetFreeSlotH);
 		Actor_Set_At_Waypoint(kActorEarlyQ, 40, 0);
-		if (Game_Flag_Query(47) == 1
-		 && Game_Flag_Query(kFlagGordoRanWay)
+		if (Game_Flag_Query(kFlagDektoraIsReplicant)
+		 && Game_Flag_Query(kFlagGordoRanAway)
 		 && Game_Flag_Query(kFlagLucyRanAway)
 		) {
-			Actor_Set_Goal_Number(kActorEarlyQ, 220);
-		} else if (Game_Flag_Query(47)) {
-			Actor_Set_Goal_Number(kActorEarlyQ, 230);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR05);
+		} else if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR04);
 		} else {
-			Actor_Set_Goal_Number(kActorEarlyQ, 220);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR05);
 		}
 		break;
 
@@ -397,9 +422,9 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Repeat(kActorEarlyQ);
 		break;
 
-	case 220:
+	case kGoalEarlyQGoToNR05:
 		if (Player_Query_Current_Set() == kSetNR05_NR08) {
-			Actor_Set_Goal_Number(kActorEarlyQ, 230);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR04);
 		} else {
 			Actor_Put_In_Set(kActorEarlyQ, kSetNR05_NR08);
 			Actor_Set_At_XYZ(kActorEarlyQ, -671.56f, 0.0f, -287.02f, 849);
@@ -425,7 +450,7 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Set_Goal_Number(kActorEarlyQ, 224);
 			Actor_Set_Goal_Number(kActorHanoi, 230);
 		} else {
-			Actor_Set_Goal_Number(kActorEarlyQ, 220);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR05);
 		}
 		break;
 
@@ -438,7 +463,7 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Countdown_Timer_Reset(kActorEarlyQ, 0);
 		break;
 
-	case 230:
+	case kGoalEarlyQGoToNR04:
 		AI_Movement_Track_Flush(kActorEarlyQ);
 		if (Random_Query(1, 3) > 1) {
 			AI_Movement_Track_Append(kActorEarlyQ, 322, Random_Query(15, 30));
@@ -820,7 +845,7 @@ bool AIScriptEarlyQ::UpdateAnimation(int *animation, int *frame) {
 
 bool AIScriptEarlyQ::ChangeAnimationMode(int mode) {
 	switch (mode) {
-	case 0:
+	case kAnimationModeIdle:
 		switch (_animationState) {
 		case 1:
 			Actor_Change_Animation_Mode(kActorEarlyQ, 73);
@@ -864,30 +889,35 @@ bool AIScriptEarlyQ::ChangeAnimationMode(int mode) {
 		}
 		break;
 
-	case 1:
+	case kAnimationModeWalk:
 		_animationState = 5;
 		_animationFrame = 0;
 		break;
 
-	case 3:
+	case kAnimationModeTalk:
 		_animationState = 20;
 		_animationFrame = 0;
 		_flag = 0;
 		break;
 
-	case 4:
-		if ((unsigned int)(_animationState - 12) > 3 || (_animationState != 12 && _animationState != 13 && _animationState != 15)) {
+	case kAnimationModeCombatIdle:
+		if ((unsigned int)(_animationState - 12) > 3
+		 || (_animationState != 12
+		  && _animationState != 13
+		  && _animationState != 15
+		 )
+		) {
 			_animationState = 13;
 			_animationFrame = 0;
 		}
 		break;
 
-	case 6:
+	case kAnimationModeCombatAttack:
 		_animationState = 15;
 		_animationFrame = 0;
 		break;
 
-	case 7:
+	case kAnimationModeCombatWalk:
 		_animationState = 6;
 		_animationFrame = 0;
 		break;
@@ -940,8 +970,13 @@ bool AIScriptEarlyQ::ChangeAnimationMode(int mode) {
 		_flag = 0;
 		break;
 
-	case 21:
-		if ((unsigned int)(_animationState - 12) > 3 || (_animationState != 12 && _animationState != 13 && _animationState != 15)) {
+	case kAnimationModeHit:
+		if ((unsigned int)(_animationState - 12) > 3
+		 || (_animationState != 12
+		  && _animationState != 13
+		  && _animationState != 15
+		 )
+		) {
 			if (Random_Query(0, 1)) {
 				_animationState = 16;
 			} else {
@@ -974,7 +1009,7 @@ bool AIScriptEarlyQ::ChangeAnimationMode(int mode) {
 		_flag = 0;
 		break;
 
-	case 48:
+	case kAnimationModeDie:
 		_animationState = 4;
 		_animationFrame = 0;
 		break;
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index 82a2866..f8137e8 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -273,7 +273,7 @@ bool AIScriptGordo::ShotAtAndHit() {
 void AIScriptGordo::Retired(int byActorId) {
 	if (Actor_Query_Goal_Number(kActorGordo) == kGoalGordoNR01Attack) {
 		Player_Loses_Control();
-		Game_Flag_Set(kFlagGordoRanWay);
+		Game_Flag_Set(kFlagGordoRanAway);
 		Actor_Set_Goal_Number(kActorGordo, kGoalGordoDead);
 		Delay(2000);
 		Player_Set_Combat_Mode(false);
@@ -680,7 +680,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 
 	case kGoalGordoNR01RanAway:
 		Scene_Exits_Enable();
-		Game_Flag_Set(kFlagGordoRanWay);
+		Game_Flag_Set(kFlagGordoRanAway);
 		Actor_Put_In_Set(kActorGordo, kSetFreeSlotA);
 		Actor_Set_At_Waypoint(kActorGordo, 33, 0);
 		break;
@@ -1116,7 +1116,7 @@ bool AIScriptGordo::UpdateAnimation(int *animation, int *frame) {
 			Actor_Change_Animation_Mode(kActorGordo, kAnimationModeCombatIdle);
 			if (Game_Flag_Query(kFlagNR02GordoJumpDown)) {
 				Actor_Set_Goal_Number(kActorGordo, kGoalGordoNR02RunAway3);
-				Game_Flag_Set(kFlagGordoRanWay);
+				Game_Flag_Set(kFlagGordoRanAway);
 			}
 		}
 		break;
@@ -1683,7 +1683,7 @@ void AIScriptGordo::dialogue2() {
 		Game_Flag_Reset(kFlagSpinnerAtNR01);
 		Game_Flag_Reset(kFlagSpinnerAtHF01);
 		Game_Flag_Set(kFlagSpinnerAtPS01);
-		Game_Flag_Set(kFlagGordoRanWay);
+		Game_Flag_Set(kFlagGordoRanAway);
 		Scene_Exits_Enable();
 		Game_Flag_Reset(kFlagMcCoyInNightclubRow);
 		Game_Flag_Set(kFlagMcCoyInPoliceStation);
@@ -1703,7 +1703,7 @@ void AIScriptGordo::dialogue2() {
 			Delay(1000);
 			Actor_Says(kActorGordo, 570, 13);
 		}
-		Game_Flag_Set(kFlagGordoRanWay);
+		Game_Flag_Set(kFlagGordoRanAway);
 		Scene_Exits_Enable();
 		Actor_Set_Goal_Number(kActorGordo, kGoalGordoNR01RunAway);
 	}
diff --git a/engines/bladerunner/script/ai/hanoi.cpp b/engines/bladerunner/script/ai/hanoi.cpp
index 91be365..f01e5ad 100644
--- a/engines/bladerunner/script/ai/hanoi.cpp
+++ b/engines/bladerunner/script/ai/hanoi.cpp
@@ -26,7 +26,7 @@ namespace BladeRunner {
 
 AIScriptHanoi::AIScriptHanoi(BladeRunnerEngine *vm) : AIScriptBase(vm) {
 	_var1 = 0;
-	_var2 = 0;
+	_flag1 = 0;
 	_var3 = 0;
 	_var4 = 1;
 }
@@ -38,7 +38,7 @@ void AIScriptHanoi::Initialize() {
 	_animationNext = 0;
 
 	_var1 = 0;
-	_var2 = 0;
+	_flag1 = 0;
 	_var3 = 0;
 	_var4 = 1;
 
@@ -49,35 +49,49 @@ bool AIScriptHanoi::Update() {
 	if (Actor_Query_Goal_Number(kActorHolloway) == kGoalHollowayGoToNR07) {
 		AI_Countdown_Timer_Reset(kActorHanoi, 0);
 	}
-	if (Global_Variable_Query(kVariableChapter) == 3 && Actor_Query_Goal_Number(kActorHanoi) < 200) {
-		Actor_Set_Goal_Number(kActorHanoi, 210);
+
+	if (Global_Variable_Query(kVariableChapter) == 3
+	 && Actor_Query_Goal_Number(kActorHanoi) < kGoalHanoiDefault
+	) {
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 	}
-	if (Player_Query_Current_Scene() != 56 && Actor_Query_Goal_Number(kActorHanoi) == 236) {
-		Actor_Set_Goal_Number(kActorHanoi, 210);
+
+	if (Player_Query_Current_Scene() != kSceneNR03
+	 && Actor_Query_Goal_Number(kActorHanoi) == 236
+	) {
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 	}
-	if (Player_Query_Current_Scene() == 56
-			&& Actor_Query_Goal_Number(kActorHanoi) != 215
-			&& Actor_Query_Goal_Number(kActorHanoi) != 230
-			&& Actor_Query_Goal_Number(kActorHanoi) != 235
-			&& Actor_Query_Goal_Number(kActorHanoi) != 236) {
+
+	if (Player_Query_Current_Scene() == kSceneNR03
+	 && Actor_Query_Goal_Number(kActorHanoi) != kGoalHanoiNR03StartGuarding
+	 && Actor_Query_Goal_Number(kActorHanoi) != 230
+	 && Actor_Query_Goal_Number(kActorHanoi) != 235
+	 && Actor_Query_Goal_Number(kActorHanoi) != 236
+	) {
+		// McCoy close to table swivel
 		if (Actor_Query_Inch_Distance_From_Waypoint(kActorMcCoy, 364) < 420) {
-			if (Actor_Query_Goal_Number(kActorHanoi) == 210) {
-				Actor_Set_Goal_Number(kActorHanoi, 211);
+			if (Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR03GoToDefaultPosition) {
+				Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToSwivelTable);
 			}
-		} else if (Actor_Query_Goal_Number(kActorHanoi) == 211) {
-			Actor_Set_Goal_Number(kActorHanoi, 210);
+		} else if (Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR03GoToSwivelTable) {
+			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 		}
+
+		// McCoy close to office door
 		if (Actor_Query_Inch_Distance_From_Waypoint(kActorMcCoy, 361) < 240) {
-			if (Actor_Query_Goal_Number(kActorHanoi) == 210) {
-				Actor_Set_Goal_Number(kActorHanoi, 212);
+			if (Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR03GoToDefaultPosition) {
+				Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToOfficeDoor);
 			}
-		} else if (Actor_Query_Goal_Number(kActorHanoi) == 212) {
-			Actor_Set_Goal_Number(kActorHanoi, 210);
+		} else if (Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR03GoToOfficeDoor) {
+			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 		}
+
+		// McCoy close to dancer
 		if (Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorHysteriaPatron1) < 120
-				&& Actor_Query_Which_Set_In(kActorHanoi) == 55
-				&& Actor_Query_Goal_Number(kActorHanoi) != 213) {
-			Actor_Set_Goal_Number(kActorHanoi, 213);
+		 && Actor_Query_Which_Set_In(kActorHanoi) == kSetNR03
+		 && Actor_Query_Goal_Number(kActorHanoi) != kGoalHanoiNR03GoToDancer
+		) {
+			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDancer);
 		}
 	}
 
@@ -86,30 +100,21 @@ bool AIScriptHanoi::Update() {
 
 void AIScriptHanoi::TimerExpired(int timer) {
 	if (timer == 0) {
-		if (Actor_Query_Goal_Number(kActorHanoi) == 215) {
-			Actor_Set_Goal_Number(kActorHanoi, 210);
+		if (Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR03StartGuarding) {
+			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 			return; //true;
 		}
 
-		if (Actor_Query_Goal_Number(kActorHanoi) == 220)
-			return; //false;
-
-		Actor_Set_Goal_Number(kActorHanoi, 202);
-		return; //true;
+		if (Actor_Query_Goal_Number(kActorHanoi) != kGoalHanoiNR03ThrowOutMcCoy) {
+			Actor_Set_Goal_Number(kActorHanoi, 202);
+			return; //true;
+		}
 	}
 	return; //false;
 }
 
 void AIScriptHanoi::CompletedMovementTrack() {
 	switch (Actor_Query_Goal_Number(kActorHanoi)) {
-	case 235:
-		Actor_Set_Goal_Number(kActorHanoi, 236);
-		break;
-
-	case 240:
-		Actor_Set_Goal_Number(kActorHanoi, 241);
-		break;
-
 	case 202:
 		Actor_Says(kActorHanoi, 130, 3);
 		Actor_Says(kActorDektora, 540, 30);
@@ -117,17 +122,25 @@ void AIScriptHanoi::CompletedMovementTrack() {
 		break;
 
 	case 203:
-		Actor_Face_Actor(kActorHanoi, kActorMcCoy, 1);
-		Actor_Face_Actor(kActorMcCoy, kActorHanoi, 1);
+		Actor_Face_Actor(kActorHanoi, kActorMcCoy, true);
+		Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
 		Actor_Change_Animation_Mode(kActorHanoi, 23);
-		Actor_Set_Invisible(kActorMcCoy, 1);
-		Actor_Says(kActorMcCoy, 3595, 3);
-		Actor_Says(kActorHanoi, 140, 3);
-		Actor_Set_Goal_Number(kActorHanoi, 220);
+		Actor_Set_Invisible(kActorMcCoy, true);
+		Actor_Says(kActorMcCoy, 3595, kAnimationModeTalk);
+		Actor_Says(kActorHanoi, 140, kAnimationModeTalk);
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03ThrowOutMcCoy);
+		break;
+
+	case kGoalHanoiNR03GoToDancer:
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
+		break;
+
+	case 235:
+		Actor_Set_Goal_Number(kActorHanoi, 236);
 		break;
 
-	case 213:
-		Actor_Set_Goal_Number(kActorHanoi, 210);
+	case 240:
+		Actor_Set_Goal_Number(kActorHanoi, 241);
 		break;
 
 	default:
@@ -142,12 +155,14 @@ void AIScriptHanoi::ReceivedClue(int clueId, int fromActorId) {
 }
 
 void AIScriptHanoi::ClickedByPlayer() {
-	if (Actor_Query_Goal_Number(kActorHanoi) == 230 || Actor_Query_Goal_Number(kActorHanoi) == 235) {
-		Actor_Face_Actor(kActorMcCoy, kActorHanoi, 1);
+	if (Actor_Query_Goal_Number(kActorHanoi) == 230
+	 || Actor_Query_Goal_Number(kActorHanoi) == 235
+	) {
+		Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
 		Actor_Says(kActorMcCoy, 8915, 11);
 
 		if (Actor_Query_Goal_Number(kActorHanoi) == 230) {
-			Actor_Says(kActorHanoi, 210, 3);
+			Actor_Says(kActorHanoi, 210, kAnimationModeTalk);
 		}
 	}
 }
@@ -165,14 +180,16 @@ void AIScriptHanoi::OtherAgentExitedThisScene(int otherActorId) {
 }
 
 void AIScriptHanoi::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
-	if (Player_Query_Current_Scene() != 56 || otherActorId || combatMode != 1) {
-		return; //false;
+	if (Player_Query_Current_Scene() == kSceneNR03
+	 && otherActorId == kActorMcCoy
+	 && combatMode
+	) {
+		Player_Set_Combat_Mode(kActorMcCoy);
+		Player_Loses_Control();
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03ThrowOutMcCoy);
+		return; //true;
 	}
-	Player_Set_Combat_Mode(0);
-	Player_Loses_Control();
-	Actor_Set_Goal_Number(kActorHanoi, 220);
-
-	return; //true;
+	return; //false;
 }
 
 void AIScriptHanoi::ShotAtAndMissed() {
@@ -192,7 +209,7 @@ int AIScriptHanoi::GetFriendlinessModifierIfGetsClue(int otherActorId, int clueI
 }
 
 bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
-	if (!newGoalNumber) {
+	if (newGoalNumber == 0) {
 		AI_Movement_Track_Flush(kActorHanoi);
 		AI_Movement_Track_Append(kActorHanoi, 39, 0);
 		AI_Movement_Track_Repeat(kActorHanoi);
@@ -201,7 +218,7 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	}
 
 	switch (newGoalNumber) {
-	case 200:
+	case kGoalHanoiDefault:
 		AI_Countdown_Timer_Start(kActorHanoi, 0, 45);
 		break;
 
@@ -210,11 +227,13 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		break;
 
 	case 202:
-		if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetNR07 && Actor_Query_In_Set(kActorDektora, kSetNR07)) {
+		if (Actor_Query_Which_Set_In(kActorMcCoy) == kSetNR07
+		 && Actor_Query_In_Set(kActorDektora, kSetNR07)
+		) {
 			Player_Loses_Control();
 			Actor_Put_In_Set(kActorHanoi, kSetNR07);
 			Actor_Set_At_XYZ(kActorHanoi, -102.0f, -73.5f, -233.0f, 0);
-			Async_Actor_Walk_To_Waypoint(kActorMcCoy, 338, 0, 0);
+			Async_Actor_Walk_To_Waypoint(kActorMcCoy, 338, 0, false);
 			AI_Movement_Track_Flush(kActorHanoi);
 			AI_Movement_Track_Append(kActorHanoi, 336, 1);
 			AI_Movement_Track_Repeat(kActorHanoi);
@@ -237,45 +256,45 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Change_Animation_Mode(kActorHanoi, 23);
 		break;
 
-	case 210:
+	case kGoalHanoiNR03GoToDefaultPosition:
 		AI_Movement_Track_Flush(kActorHanoi);
 		AI_Movement_Track_Append_With_Facing(kActorHanoi, 362, 0, 300);
 		AI_Movement_Track_Repeat(kActorHanoi);
 		break;
 
-	case 211:
+	case kGoalHanoiNR03GoToSwivelTable:
 		AI_Movement_Track_Flush(kActorHanoi);
 		AI_Movement_Track_Append_With_Facing(kActorHanoi, 363, 0, 500);
 		AI_Movement_Track_Repeat(kActorHanoi);
 		break;
 
-	case 212:
+	case kGoalHanoiNR03GoToOfficeDoor:
 		AI_Movement_Track_Flush(kActorHanoi);
 		AI_Movement_Track_Append_With_Facing(kActorHanoi, 361, 0, 457);
 		AI_Movement_Track_Repeat(kActorHanoi);
 		break;
 
-	case 213:
+	case kGoalHanoiNR03GoToDancer:
 		AI_Movement_Track_Flush(kActorHanoi);
 		AI_Movement_Track_Append_With_Facing(kActorHanoi, 365, Random_Query(15, 20), 600);
 		AI_Movement_Track_Repeat(kActorHanoi);
 		break;
 
-	case 215:
+	case kGoalHanoiNR03StartGuarding:
 		Actor_Put_In_Set(kActorHanoi, kSetNR03);
 		Actor_Set_At_Waypoint(kActorHanoi, 362, 300);
 		AI_Countdown_Timer_Reset(kActorHanoi, 0);
 		AI_Countdown_Timer_Start(kActorHanoi, 0, 6);
 		break;
 
-	case 220:
-		Game_Flag_Set(604);
+	case kGoalHanoiNR03ThrowOutMcCoy:
+		Game_Flag_Set(kFlagNR03McCoyThrownOut);
 		AI_Countdown_Timer_Reset(kActorHanoi, 0);
 		Player_Loses_Control();
-		Player_Set_Combat_Mode(0);
+		Player_Set_Combat_Mode(false);
 		Actor_Force_Stop_Walking(kActorMcCoy);
-		Actor_Change_Animation_Mode(kActorMcCoy, 48);
-		Actor_Set_Invisible(kActorMcCoy, 1);
+		Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
+		Actor_Set_Invisible(kActorMcCoy, true);
 		AI_Movement_Track_Flush(kActorHanoi);
 		Actor_Put_In_Set(kActorHanoi, kSetNR01);
 		Actor_Set_At_XYZ(kActorHanoi, -444.0f, 24.0f, -845.0f, 512);
@@ -327,54 +346,67 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	switch (_animationState) {
 	case 0:
-		if (_var2 == 1) {
+		if (_flag1) {
 			*animation = 649;
 			_animationFrame++;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(649)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 				*animation = 648;
 				_animationFrame = 0;
-				_var2 = 0;
+				_flag1 = false;
 			}
-		} else if (_var2 == 0) {
-			*animation = 648;
-			if (_var3) {
-				_var3--;
-				if (!Random_Query(0, 6)) {
-					_var4 = -_var4;
-				}
-			} else {
-				_animationFrame += _var4;
-				if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(648)) {
-					_animationFrame = 0;
-				}
-				if (_animationFrame < 0) {
-					_animationFrame = Slice_Animation_Query_Number_Of_Frames(648) - 1;
-				}
-				if (_animationFrame == 5 || _animationFrame == 15 || _animationFrame == 11 || !_animationFrame) {
-					_var3 = Random_Query(5, 12);
-				}
-				if (_animationFrame >= 10 && _animationFrame <= 13) {
-					_var3 = Random_Query(0, 1);
-				}
-				if (!_animationFrame) {
-					if (!Random_Query(0, 4)) {
-						_var2 = 1;
-					}
+			break;
+		}
+
+		*animation = 648;
+		if (_var3 != 0) {
+			_var3--;
+			if (!Random_Query(0, 6)) {
+				_var4 = -_var4;
+			}
+		} else {
+			_animationFrame += _var4;
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
+				_animationFrame = 0;
+			}
+
+			if (_animationFrame < 0) {
+				_animationFrame = Slice_Animation_Query_Number_Of_Frames(*animation) - 1;
+			}
+
+			if (_animationFrame == 5
+			 || _animationFrame == 15
+			 || _animationFrame == 11
+			 || _animationFrame == 0
+			) {
+				_var3 = Random_Query(5, 12);
+			}
+
+			if (_animationFrame >= 10
+			 && _animationFrame <= 13
+			) {
+				_var3 = Random_Query(0, 1);
+			}
+
+			if (_animationFrame == 0) {
+				if (!Random_Query(0, 4)) {
+					_flag1 = true;
 				}
 			}
 		}
 		break;
 
 	case 1:
-		if (_var2) {
+		if (_flag1) {
 			*animation = 649;
-			if ( Slice_Animation_Query_Number_Of_Frames(649) < Slice_Animation_Query_Number_Of_Frames(649)) {
+			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(*animation) / 2) {
 				_animationFrame += 2;
 			} else {
 				_animationFrame -= 2;
 			}
-			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(649) - 1
-					|| _animationFrame <= 0) {
+
+			if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(*animation) - 1
+			 || _animationFrame <= 0
+			) {
 				_animationFrame = 0;
 				_animationState = _animationStateNext;
 				*animation = _animationNext;
@@ -389,7 +421,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 2:
 		*animation = 657;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(657)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 3;
 			*animation = 658;
@@ -399,7 +431,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 3:
 		*animation = 658;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(658)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 		}
 		break;
@@ -407,7 +439,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 4:
 		*animation = 659;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(659)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 3;
 			*animation = 658;
@@ -421,8 +453,9 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 			_animationState = 0;
 			_animationFrame = 0;
 			*animation = 648;
-			Actor_Face_Actor(kActorMcCoy, kActorHanoi, 1);
-			Actor_Set_Invisible(kActorMcCoy, 0);
+
+			Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
+			Actor_Set_Invisible(kActorMcCoy, false);
 
 			if (Actor_Query_In_Set(kActorHanoi, kSetNR01)) {
 				AI_Movement_Track_Flush(kActorHanoi);
@@ -434,22 +467,22 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 		break;
 
 	case 6:
-		*animation = 345;
+		*animation = 345;  // Sadik is used in this animation, but he is well hidden
 		_animationFrame++;
 		if (_animationFrame > 26) {
-			Actor_Change_Animation_Mode(kActorHanoi, 0);
+			Actor_Change_Animation_Mode(kActorHanoi, kAnimationModeIdle);
 			_animationState = 0;
 			_animationFrame = 0;
 			*animation = 648;
 			Actor_Set_Goal_Number(kActorMcCoy, 210);
-			Actor_Set_Goal_Number(kActorHanoi, 210);
+			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 		}
 		break;
 
 	case 7:
 		*animation = 645;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(645)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 		}
 		break;
@@ -457,7 +490,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 8:
 		*animation = 642;
 		_animationFrame++;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(642) - 1) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 		}
 		break;
@@ -465,8 +498,8 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 9:
 		*animation = 643;
 		_animationFrame++;
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(643) - 1) {
-			Actor_Change_Animation_Mode(kActorHanoi, 4);
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
+			Actor_Change_Animation_Mode(kActorHanoi, kAnimationModeCombatIdle);
 			_animationState = 8;
 			_animationFrame = 0;
 			*animation = 642;
@@ -477,17 +510,21 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 10:
 		*animation = 644;
 		_animationFrame++;
+
 		if (_animationFrame == 4) {
 			Ambient_Sounds_Play_Sound(492, 77, 0, 0, 20);
 		}
+
 		if (_animationFrame == 6) {
 			Ambient_Sounds_Play_Sound(493, 97, 0, 0, 20);
 		}
+
 		if (_animationFrame == 5) {
 			Actor_Force_Stop_Walking(kActorMcCoy);
 			Actor_Change_Animation_Mode(kActorMcCoy, 48);
 		}
-		if (_animationFrame > Slice_Animation_Query_Number_Of_Frames(*animation) - 1) {
+
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			Actor_Change_Animation_Mode(kActorHanoi, 4);
 			_animationFrame = 0;
 			_animationState = 8;
@@ -498,7 +535,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 11:
 		*animation = 660;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(660)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			*animation = 648;
 			_animationFrame = 0;
 			_animationState = 0;
@@ -508,7 +545,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 12:
 		*animation = 646;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(646)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			*animation = 642;
 			_animationFrame = 0;
 			_animationState = 0;
@@ -517,18 +554,20 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 
 	case 13:
 		*animation = 647;
-		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(647) - 1) {
+		if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(*animation) - 1) {
 			_animationFrame++;
 		}
 		break;
 
 	case 14:
 		*animation = 650;
-		if (!_animationFrame && _var1) {
+		if (_animationFrame == 0
+		 && _var1 // this is never set so it's always 0
+		) {
 			_animationState = 0;
 		} else {
 			_animationFrame++;
-			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(650)) {
+			if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 				_animationFrame = 0;
 			}
 		}
@@ -537,7 +576,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 15:
 		*animation = 651;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(651)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
 			*animation = 650;
@@ -547,7 +586,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 16:
 		*animation = 652;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(652)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
 			*animation = 650;
@@ -557,7 +596,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 17:
 		*animation = 653;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(653)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
 			*animation = 650;
@@ -567,7 +606,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 18:
 		*animation = 654;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(654)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
 			*animation = 650;
@@ -577,7 +616,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 19:
 		*animation = 655;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(655)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
 			*animation = 650;
@@ -587,7 +626,7 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 	case 20:
 		*animation = 656;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(656)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 			_animationState = 14;
 			*animation = 650;
@@ -605,10 +644,12 @@ bool AIScriptHanoi::UpdateAnimation(int *animation, int *frame) {
 bool AIScriptHanoi::ChangeAnimationMode(int mode) {
 	switch (mode) {
 	case kAnimationModeIdle:
-		if ((unsigned int)(_animationState - 2) > 1) {
-			_animationState = 0;
-		} else {
+		if (_animationState == 2
+		 || _animationState == 3
+		) {
 			_animationState = 3;
+		} else {
+			_animationState = 0;
 		}
 		_animationFrame = 0;
 		break;
@@ -682,7 +723,9 @@ bool AIScriptHanoi::ChangeAnimationMode(int mode) {
 		break;
 
 	case 23:
-		if (_animationState != 3 && _animationState != 4) {
+		if (_animationState != 3
+		 && _animationState != 4
+		) {
 			Actor_Set_Invisible(kActorMcCoy, true);
 			_animationState = 2;
 			_animationFrame = 0;
diff --git a/engines/bladerunner/script/ai/lucy.cpp b/engines/bladerunner/script/ai/lucy.cpp
index f735415..981c8fc 100644
--- a/engines/bladerunner/script/ai/lucy.cpp
+++ b/engines/bladerunner/script/ai/lucy.cpp
@@ -282,7 +282,7 @@ bool AIScriptLucy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	case kGoalLucyMoveAround:
 		if (Global_Variable_Query(kVariableHollowayArrest) == 3) {
 			if (Game_Flag_Query(591)
-			 && Game_Flag_Query(kFlagGordoRanWay)
+			 && Game_Flag_Query(kFlagGordoRanAway)
 			 && Player_Query_Current_Scene() != kSceneHF03
 			) {
 				Actor_Set_Goal_Number(kActorLucy, kGoalLucyGoToHF03);
diff --git a/engines/bladerunner/script/ai/mccoy.cpp b/engines/bladerunner/script/ai/mccoy.cpp
index b532088..720c8ef 100644
--- a/engines/bladerunner/script/ai/mccoy.cpp
+++ b/engines/bladerunner/script/ai/mccoy.cpp
@@ -327,38 +327,23 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Face_Actor(kActorMcCoy, kActorSadik, true);
 		return true;
 
-	case 231:
-		Player_Set_Combat_Mode(false);
-		Preload(18);
-		Set_Enter(kSetNR10, kSceneNR10);
-		Player_Loses_Control();
-		Actor_Force_Stop_Walking(kActorMcCoy);
-		Actor_Put_In_Set(kActorMcCoy, kSetNR10);
-		Actor_Set_At_XYZ(kActorMcCoy, 14.0f, 110.84f, -300.0f, 926);
-		Actor_Change_Animation_Mode(kActorMcCoy, 48);
-		_animationState = 27;
-		_animationFrame = 0;
-		flt_462714 = 2.84f;
-		flt_462710 = 110.84f;
-		off_45A100 = -6.0f;
-		return true;
-
-	case 230:
-		dword_45A0FC = Actor_Query_Goal_Number(kActorSteele) == 215;
-		Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack);
-		return true;
 
-	case 220:
-		Actor_Change_Animation_Mode(kActorMcCoy, 75);
+	case 200:
+		Player_Loses_Control();
+		Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeIdle);
 		return true;
 
-	case 212:
-		Global_Variable_Set(47, 0);
-		Player_Set_Combat_Mode_Access(false);
-		Player_Gains_Control();
-		Scene_Exits_Disable();
-		_animationState = 68;
-		_animationFrame = Slice_Animation_Query_Number_Of_Frames(18) - 1;
+	case kGoalMcCoyNR03ThrownOut:
+		Actor_Put_In_Set(kActorMcCoy, kSetNR01);
+		Actor_Set_At_XYZ(kActorMcCoy, -204.0f, 24.0f, -817.0f, 256);
+		Actor_Set_Invisible(kActorMcCoy, false);
+		if (Game_Flag_Query(627)) {
+			Actor_Set_Goal_Number(kActorMcCoy, 212);
+		} else {
+			_animationState = 53;
+			_animationFrame = Slice_Animation_Query_Number_Of_Frames(18) - 1;
+			Actor_Set_Invisible(kActorMcCoy, false);
+		}
 		return true;
 
 	case 211:
@@ -375,22 +360,38 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Player_Gains_Control();
 		return true;
 
-	case 210:
-		Actor_Put_In_Set(kActorMcCoy, kSetNR01);
-		Actor_Set_At_XYZ(kActorMcCoy, -204.0, 24.0, -817.0, 256);
-		Actor_Set_Invisible(kActorMcCoy, false);
-		if (Game_Flag_Query(627)) {
-			Actor_Set_Goal_Number(kActorMcCoy, 212);
-		} else {
-			_animationState = 53;
-			_animationFrame = Slice_Animation_Query_Number_Of_Frames(18) - 1;
-			Actor_Set_Invisible(kActorMcCoy, false);
-		}
+	case 212:
+		Global_Variable_Set(47, 0);
+		Player_Set_Combat_Mode_Access(false);
+		Player_Gains_Control();
+		Scene_Exits_Disable();
+		_animationState = 68;
+		_animationFrame = Slice_Animation_Query_Number_Of_Frames(18) - 1;
 		return true;
 
-	case 200:
+	case 220:
+		Actor_Change_Animation_Mode(kActorMcCoy, 75);
+		return true;
+
+	case 230:
+		dword_45A0FC = Actor_Query_Goal_Number(kActorSteele) == 215;
+		Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeCombatAttack);
+		return true;
+
+	case 231:
+		Player_Set_Combat_Mode(false);
+		Preload(18);
+		Set_Enter(kSetNR10, kSceneNR10);
 		Player_Loses_Control();
-		Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeIdle);
+		Actor_Force_Stop_Walking(kActorMcCoy);
+		Actor_Put_In_Set(kActorMcCoy, kSetNR10);
+		Actor_Set_At_XYZ(kActorMcCoy, 14.0f, 110.84f, -300.0f, 926);
+		Actor_Change_Animation_Mode(kActorMcCoy, 48);
+		_animationState = 27;
+		_animationFrame = 0;
+		flt_462714 = 2.84f;
+		flt_462710 = 110.84f;
+		off_45A100 = -6.0f;
 		return true;
 
 	case 301:
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index fa0d9cc..af6a76c 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -1124,7 +1124,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Says(kActorMcCoy, 3065, 18);
 		Actor_Says(kActorSteele, 1280, 13);
 		Actor_Says(kActorSteele, 1290, 13);
-		Game_Flag_Set(kFlagGordoRanWay);
+		Game_Flag_Set(kFlagGordoRanAway);
 		Player_Gains_Control();
 		if (Game_Flag_Query(kFlagSpinnerAtHF01)) {
 			Actor_Put_In_Set(kActorSteele, kSetHF01);
@@ -1152,7 +1152,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	case kGoalSteeleNR01McCoyShotGordo:
 		Game_Flag_Reset(kFlagSteeleAimingAtGordo);
 		ADQ_Flush();
-		Game_Flag_Set(kFlagGordoRanWay);
+		Game_Flag_Set(kFlagGordoRanAway);
 		Actor_Set_Targetable(kActorSteele, false);
 		Delay(1000);
 		Player_Set_Combat_Mode(false);
@@ -1186,7 +1186,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		_animationFrame = 0;
 		Actor_Set_Goal_Number(kActorGordo, kGoalGordoNR01ReleaseHostage);
 		Game_Flag_Reset(kFlagSteeleAimingAtGordo);
-		Game_Flag_Set(kFlagGordoRanWay);
+		Game_Flag_Set(kFlagGordoRanAway);
 		Actor_Set_Targetable(kActorSteele, false);
 		Player_Loses_Control();
 		return true;
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index fc7a0b1..134a6a9 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -290,7 +290,7 @@ END_SCRIPT
 
 DECLARE_SCRIPT(Hanoi)
 	int _var1;
-	int _var2;
+	bool _flag1;
 	int _var3;
 	int _var4;
 END_SCRIPT
diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp
index 856960b..6089e6a 100644
--- a/engines/bladerunner/script/scene/nr01.cpp
+++ b/engines/bladerunner/script/scene/nr01.cpp
@@ -319,12 +319,12 @@ void SceneScriptNR01::PlayerWalkedIn() {
 		ADQ_Add(kActorGordo, 120, 82);
 	}
 
-	if (Game_Flag_Query(604)) {
+	if (Game_Flag_Query(kFlagNR03McCoyThrownOut)) {
 		if (Game_Flag_Query(622)) {
 			ADQ_Add(kActorHanoi, 150, kAnimationModeTalk);
 			Game_Flag_Reset(622);
 		}
-		Game_Flag_Reset(604);
+		Game_Flag_Reset(kFlagNR03McCoyThrownOut);
 		Player_Gains_Control();
 		//return true;
 		return;
diff --git a/engines/bladerunner/script/scene/nr03.cpp b/engines/bladerunner/script/scene/nr03.cpp
index 641b5c4..e2f627d 100644
--- a/engines/bladerunner/script/scene/nr03.cpp
+++ b/engines/bladerunner/script/scene/nr03.cpp
@@ -24,26 +24,34 @@
 
 namespace BladeRunner {
 
+enum kNR03Loops {
+	kNR03LoopMainLoop    = 0,
+	kNR03LoopTableSwivel = 2
+};
+
 void SceneScriptNR03::InitializeScene() {
-	if (Game_Flag_Query(537)) {
-		Setup_Scene_Information(-301.98f, -70.19f, -348.58f, 0);
-	} else if (Game_Flag_Query(437)) {
-		Setup_Scene_Information(-161.0f, -70.19f, -1139.0f, 500);
-		Game_Flag_Reset(437);
+	if (Game_Flag_Query(kFlagNR05toNR03)) {
+		Setup_Scene_Information(-301.98f, -70.19f, -348.58f,   0);
+	} else if (Game_Flag_Query(kFlatNR04toNR03)) {
+		Setup_Scene_Information( -161.0f, -70.19f, -1139.0f, 500);
+		Game_Flag_Reset(kFlatNR04toNR03);
 	} else {
-		Setup_Scene_Information(410.0f, -70.19f, -715.0f, 690);
+		Setup_Scene_Information(  410.0f, -70.19f,  -715.0f, 690);
 	}
-	Scene_Exit_Add_2D_Exit(0, 561, 0, 639, 216, 1);
-	Scene_Exit_Add_2D_Exit(1, 210, 85, 240, 145, 0);
-	Scene_Exit_Add_2D_Exit(2, 0, 135, 85, 295, 3);
+
+	Scene_Exit_Add_2D_Exit(0, 561,   0, 639, 216, 1);
+	Scene_Exit_Add_2D_Exit(1, 210,  85, 240, 145, 0);
+	Scene_Exit_Add_2D_Exit(2,   0, 135,  85, 295, 3);
+
 	Scene_2D_Region_Add(0, 331, 73, 375, 114);
+
 	Ambient_Sounds_Add_Looping_Sound(280, 50, 38, 0);
-	Ambient_Sounds_Add_Sound(252, 3, 60, 25, 25, 0, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(254, 3, 60, 25, 25, 0, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(255, 3, 60, 25, 25, 0, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(256, 3, 60, 25, 25, 0, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(257, 3, 60, 25, 25, 0, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(258, 3, 60, 25, 25, 0, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(252, 3, 60, 25, 25,    0, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(254, 3, 60, 25, 25,    0, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(255, 3, 60, 25, 25,    0, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(256, 3, 60, 25, 25,    0, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(257, 3, 60, 25, 25,    0, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(258, 3, 60, 25, 25,    0, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(259, 3, 60, 20, 20, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(260, 3, 60, 20, 20, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(261, 3, 60, 20, 20, -100, 100, -101, -101, 0, 0);
@@ -57,21 +65,26 @@ void SceneScriptNR03::InitializeScene() {
 	Ambient_Sounds_Add_Sound(191, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(192, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(195, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	if (Game_Flag_Query(573)) {
-		if (Game_Flag_Query(537)) {
-			Scene_Loop_Start_Special(0, 2, 0);
-			Scene_Loop_Set_Default(0);
-			Game_Flag_Reset(537);
+
+	if (Game_Flag_Query(kFlagNR03Entered)) {
+		if (Game_Flag_Query(kFlagNR05toNR03)) {
+			Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kNR03LoopTableSwivel, false);
+			Scene_Loop_Set_Default(kNR03LoopMainLoop);
+			Game_Flag_Reset(kFlagNR05toNR03);
 		} else {
-			Scene_Loop_Set_Default(0);
+			Scene_Loop_Set_Default(kNR03LoopMainLoop);
 		}
 	} else {
-		Actor_Set_Goal_Number(kActorGuzza, 201);
-		Scene_Loop_Start_Special(0, 2, 0);
-		Scene_Loop_Set_Default(0);
+		Actor_Set_Goal_Number(kActorGuzza, kGoalGuzzaSitAtNR03);
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kNR03LoopTableSwivel, false);
+		Scene_Loop_Set_Default(kNR03LoopMainLoop);
 	}
-	if (Actor_Query_Goal_Number(kActorHanoi) > 209 && Actor_Query_Goal_Number(kActorHanoi) < 215) {
-		Actor_Set_Goal_Number(kActorHanoi, 215);
+
+	// Guarding in NR03
+	if (Actor_Query_Goal_Number(kActorHanoi) > 209
+	 && Actor_Query_Goal_Number(kActorHanoi) < 215
+	) {
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03StartGuarding);
 	}
 }
 
@@ -105,16 +118,16 @@ bool SceneScriptNR03::ClickedOnActor(int actorId) {
 		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorHanoi, 48, true, false)) {
 			AI_Movement_Track_Pause(kActorHanoi);
 			Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
-			if (Game_Flag_Query(611)) {
-				Actor_Says(kActorMcCoy, 3350, 16);
-				Actor_Says(kActorHanoi, 50, 17);
-			} else {
-				Game_Flag_Set(611);
-				Actor_Says(kActorMcCoy, 3340, 3);
+			if (!Game_Flag_Query(kFlagNR03HanoiTalk)) {
+				Game_Flag_Set(kFlagNR03HanoiTalk);
+				Actor_Says(kActorMcCoy, 3340, kAnimationModeTalk);
 				Actor_Face_Actor(kActorHanoi, kActorMcCoy, true);
 				Actor_Says(kActorHanoi, 30, 13);
 				Actor_Says(kActorMcCoy, 3345, 14);
 				Actor_Says(kActorHanoi, 40, 14);
+			} else {
+				Actor_Says(kActorMcCoy, 3350, 16);
+				Actor_Says(kActorHanoi, 50, 17);
 			}
 			AI_Movement_Track_Unpause(kActorHanoi);
 			return true;
@@ -129,7 +142,7 @@ bool SceneScriptNR03::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptNR03::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 410.0f, -70.19f, -715.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 410.0f, -70.19f, -715.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Game_Flag_Set(kFlagNR03toNR01);
@@ -139,70 +152,74 @@ bool SceneScriptNR03::ClickedOnExit(int exitId) {
 	}
 
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -161.0f, -70.19f, -1139.0f, 0, 1, false, 0)) {
-			if (Actor_Query_Which_Set_In(kActorHanoi) == 55) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -161.0f, -70.19f, -1139.0f, 0, true, false, 0)) {
+			if (Actor_Query_Which_Set_In(kActorHanoi) == kSetNR03) {
 				AI_Movement_Track_Pause(kActorHanoi);
 				Actor_Face_Actor(kActorHanoi, kActorMcCoy, true);
 				Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
-				int v3 = Global_Variable_Query(44);
-				if (v3 == 0) {
+				int warnings = Global_Variable_Query(kVariableHanoiNR04Warnings);
+				if (warnings == 0) {
 					Actor_Says(kActorHanoi, 50, 13);
 					AI_Movement_Track_Unpause(kActorHanoi);
-				} else if (v3 == 1) {
+				} else if (warnings == 1) {
 					Actor_Says(kActorHanoi, 210, 15);
 					AI_Movement_Track_Unpause(kActorHanoi);
-				} else if (v3 == 2) {
-					Actor_Set_Goal_Number(kActorHanoi, 220);
+				} else if (warnings == 2) {
+					Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03ThrowOutMcCoy);
 				}
+				// game bug? after reentering this does nothing as variable is never reset or checked for > 2
+				Global_Variable_Increment(kVariableHanoiNR04Warnings, 1);
+			} else {
+				Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
+				Ambient_Sounds_Remove_All_Looping_Sounds(1);
+				Game_Flag_Set(kFlatNR03toNR04);
+				Set_Enter(kSetNR04, kSceneNR04);
 			}
-			Global_Variable_Increment(44, 1);
-		} else {
-			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
-			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(438);
-			Set_Enter(kSetNR04, kSceneNR04);
 		}
 
 		return true;
 	}
 
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -151.0f, -70.19f, -476.0f, 12, 1, false, 0)) {
-			if (Actor_Query_Goal_Number(kActorHanoi) == 213 || Actor_Query_Which_Set_In(kActorHanoi) != 55) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -151.0f, -70.19f, -476.0f, 12, true, false, 0)) {
+			if (Actor_Query_Which_Set_In(kActorHanoi) == kSetNR03
+			 && Actor_Query_Goal_Number(kActorHanoi) != kGoalHanoiNR03GoToDancer
+			) {
+				Actor_Face_Heading(kActorMcCoy, 680, false);
+				Actor_Change_Animation_Mode(kActorMcCoy, 12);
+				Delay(150);
+				Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeIdle);
+				AI_Movement_Track_Pause(kActorHanoi);
+				Actor_Face_Actor(kActorHanoi, kActorMcCoy, true);
+
+				int warnings = Global_Variable_Query(kVariableHanoiNR05Warnings);
+				if (warnings == 0) {
+					Actor_Says(kActorHanoi, 0, 15);
+					Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
+					Actor_Says(kActorMcCoy, 3335, 13);
+					Actor_Says(kActorHanoi, 10, 16);
+					AI_Movement_Track_Unpause(kActorHanoi);
+				} else if (warnings == 1) {
+					Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
+					Actor_Says(kActorHanoi, 210, 12);
+					AI_Movement_Track_Unpause(kActorHanoi);
+				} else if (warnings == 2) {
+					Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03ThrowOutMcCoy);
+				}
+				// game bug? after reentering this does nothing as variable is never reset or checked for > 2
+				Global_Variable_Increment(kVariableHanoiNR05Warnings, 1);
+			} else {
 				Player_Loses_Control();
 				Player_Set_Combat_Mode(false);
-				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -229.0f, -70.19f, -469.0f, 0, 0, false, 1);
+				Loop_Actor_Walk_To_XYZ(kActorMcCoy, -229.0f, -70.19f, -469.0f, 0, false, false, 1);
 				Actor_Face_Heading(kActorMcCoy, 656, false);
 				Actor_Change_Animation_Mode(kActorMcCoy, 53);
 				Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 				Ambient_Sounds_Remove_All_Looping_Sounds(1);
-				Game_Flag_Set(536);
+				Game_Flag_Set(kFlagNR03toNR05);
 				Set_Enter(kSetNR05_NR08, kSceneNR05);
-				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 2, 0);
-				return true;
-			}
-			Actor_Face_Heading(kActorMcCoy, 680, false);
-			Actor_Change_Animation_Mode(kActorMcCoy, 12);
-			Delay(150);
-			Actor_Change_Animation_Mode(kActorMcCoy, 0);
-			AI_Movement_Track_Pause(kActorHanoi);
-			Actor_Face_Actor(kActorHanoi, kActorMcCoy, true);
-
-			int v1 = Global_Variable_Query(43);
-			if (v1 == 0) {
-				Actor_Says(kActorHanoi, 0, 15);
-				Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
-				Actor_Says(kActorMcCoy, 3335, 13);
-				Actor_Says(kActorHanoi, 10, 16);
-				AI_Movement_Track_Unpause(kActorHanoi);
-			} else if (v1 == 1) {
-				Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
-				Actor_Says(kActorHanoi, 210, 12);
-				AI_Movement_Track_Unpause(kActorHanoi);
-			} else if (v1 == 2) {
-				Actor_Set_Goal_Number(kActorHanoi, 220);
+				Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR03LoopTableSwivel, false);
 			}
-			Global_Variable_Increment(43, 1);
 		}
 		return true;
 	}
@@ -211,17 +228,17 @@ bool SceneScriptNR03::ClickedOnExit(int exitId) {
 
 bool SceneScriptNR03::ClickedOn2DRegion(int region) {
 	if (region == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 79.2f, -70.19f, -984.0f, 12, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 79.2f, -70.19f, -984.0f, 12, true, false, 0)) {
 			Actor_Face_Actor(kActorMcCoy, kActorHysteriaPatron1, true);
-			int v1 = Random_Query(0, 4);
-			if (v1 == 0) {
-				Actor_Says(kActorMcCoy, 1055, 3);
-			} else if (v1 == 1) {
-				Actor_Says(kActorMcCoy, 8590, 3);
-			} else if (v1 == 2) {
-				Actor_Says(kActorMcCoy, 8930, 3);
-			} else if (v1 == 3) {
-				Actor_Says(kActorMcCoy, 7465, 3);
+			int rnd = Random_Query(0, 4);
+			if (rnd == 0) {
+				Actor_Says(kActorMcCoy, 1055, kAnimationModeTalk);
+			} else if (rnd == 1) {
+				Actor_Says(kActorMcCoy, 8590, kAnimationModeTalk);
+			} else if (rnd == 2) {
+				Actor_Says(kActorMcCoy, 8930, kAnimationModeTalk);
+			} else if (rnd == 3) {
+				Actor_Says(kActorMcCoy, 7465, kAnimationModeTalk);
 			}
 		}
 		return true;
@@ -231,24 +248,25 @@ bool SceneScriptNR03::ClickedOn2DRegion(int region) {
 
 void SceneScriptNR03::SceneFrameAdvanced(int frame) {
 	if (!Music_Is_Playing()) {
-		sub_402994();
+		playNextMusic();
 	}
+
 	if (frame == 72) {
 		Sound_Play(345, 83, -70, -70, 50);
 	}
+
 	if (frame == 76) {
 		Sound_Play(353, 62, -70, -70, 50);
 	}
-	if (frame > 70 && frame < 110) {
-		sub_40259C(frame);
-	} else {
-		if (frame != 110) {
-			//return false;
-			return;
-		}
-		if (Actor_Query_Goal_Number(kActorGuzza) == 201) {
+
+	if (frame > 70
+	 && frame < 110
+	) {
+		rotateActorOnTable(frame);
+	} else if (frame == 110) {
+		if (Actor_Query_Goal_Number(kActorGuzza) == kGoalGuzzaSitAtNR03) {
 			Actor_Set_Goal_Number(kActorGuzza, 200);
-		} else if (!Game_Flag_Query(536)) {
+		} else if (!Game_Flag_Query(kFlagNR03toNR05)) {
 			Actor_Set_Goal_Number(kActorMcCoy, 200);
 			Player_Gains_Control();
 		}
@@ -262,30 +280,29 @@ void SceneScriptNR03::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 
 void SceneScriptNR03::PlayerWalkedIn() {
 	Player_Set_Combat_Mode(false);
-	if (Game_Flag_Query(573)) {
-		if (Game_Flag_Query(kFlagNR01toNR03) ) {
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, 302.0f, -70.19f, -715.0f, 0, 0, false, 0);
-			Game_Flag_Reset(kFlagNR01toNR03);
-		}
-	} else {
-		Game_Flag_Set(573);
+	if (!Game_Flag_Query(kFlagNR03Entered)) {
+		Game_Flag_Set(kFlagNR03Entered);
 		Async_Actor_Walk_To_XYZ(kActorMcCoy, 206.0f, -70.19f, -643.0f, 0, false);
 		Game_Flag_Reset(kFlagNR01toNR03);
 		Actor_Voice_Over(1490, kActorVoiceOver);
 		Actor_Voice_Over(1510, kActorVoiceOver);
 		Actor_Voice_Over(1520, kActorVoiceOver);
+	} else if (Game_Flag_Query(kFlagNR01toNR03) ) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, 302.0f, -70.19f, -715.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagNR01toNR03);
 	}
+
 	if (Player_Query_Combat_Mode()) {
-		Actor_Set_Goal_Number(kActorHanoi, 220);
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03ThrowOutMcCoy);
 	}
 	//return false;
 }
 
 void SceneScriptNR03::PlayerWalkedOut() {
-	if (!Game_Flag_Query(438)) {
+	if (!Game_Flag_Query(kFlatNR03toNR04)) {
 		Music_Stop(2);
 	}
-	if (Game_Flag_Query(536)) {
+	if (Game_Flag_Query(kFlagNR03toNR05)) {
 		Player_Gains_Control();
 	}
 }
@@ -293,22 +310,25 @@ void SceneScriptNR03::PlayerWalkedOut() {
 void SceneScriptNR03::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptNR03::sub_40259C(int frame) {
+void SceneScriptNR03::rotateActorOnTable(int frame) {
 	int facing;
 	float angle, invertedAngle;
 
 	angle = cos((frame - 70) * (M_PI / 40.0f)) * M_PI_2;
 	invertedAngle = M_PI - angle;
-	if (!Game_Flag_Query(536) && Actor_Query_Goal_Number(kActorGuzza) != 201) {
+	if (!Game_Flag_Query(kFlagNR03toNR05)
+	 &&  Actor_Query_Goal_Number(kActorGuzza) != kGoalGuzzaSitAtNR03
+	) {
 		angle = angle + M_PI;
 		invertedAngle = invertedAngle + M_PI;
 	}
+
 	float c = cos(invertedAngle);
 	float s = sin(invertedAngle);
 	float x = 36.49f * s - -60.21f * c + -265.49f;
 	float z = -60.21f * s + 36.49f * c + -408.79f;
 
-	if (Actor_Query_Goal_Number(kActorGuzza) == 201) {
+	if (Actor_Query_Goal_Number(kActorGuzza) == kGoalGuzzaSitAtNR03) {
 		facing = angle * (512.0f / M_PI);
 		facing = facing + 144;
 		if (facing < 0) {
@@ -332,23 +352,23 @@ void SceneScriptNR03::sub_40259C(int frame) {
 	}
 }
 
-void SceneScriptNR03::sub_402994() {
+void SceneScriptNR03::playNextMusic() {
 	if (Music_Is_Playing()) {
 		Music_Adjust(51, 0, 2);
 	} else {
-		int v0 = Global_Variable_Query(53);
-		if (v0 == 0) {
+		int track = Global_Variable_Query(kVariableNR03Music);
+		if (track == 0) {
 			Music_Play(14, 51, 0, 2, -1, 0, 0);
-		} else if (v0 == 1) {
+		} else if (track == 1) {
 			Music_Play(13, 51, 0, 2, -1, 0, 0);
-		} else if (v0 == 2) {
+		} else if (track == 2) {
 			Music_Play(5, 51, 0, 2, -1, 0, 0);
 		}
-		v0++;
-		if (v0 > 2) {
-			v0 = 0;
+		track++;
+		if (track > 2) {
+			track = 0;
 		}
-		Global_Variable_Set(53, v0);
+		Global_Variable_Set(kVariableNR03Music, track);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/nr04.cpp b/engines/bladerunner/script/scene/nr04.cpp
index 05250e8..f4d784c 100644
--- a/engines/bladerunner/script/scene/nr04.cpp
+++ b/engines/bladerunner/script/scene/nr04.cpp
@@ -26,11 +26,15 @@ namespace BladeRunner {
 
 void SceneScriptNR04::InitializeScene() {
 	Music_Adjust(30, 80, 2);
+
 	Setup_Scene_Information(53.0f, 0.0f, -110.0f, 569);
+
 	Scene_Exit_Add_2D_Exit(0, 498, 126, 560, 238, 0);
-	Scene_2D_Region_Add(0, 0, 259, 61, 479);
-	Scene_2D_Region_Add(1, 62, 327, 92, 479);
+
+	Scene_2D_Region_Add(0,  0, 259,  61, 479);
+	Scene_2D_Region_Add(1, 62, 327,  92, 479);
 	Scene_2D_Region_Add(2, 93, 343, 239, 479);
+
 	Ambient_Sounds_Add_Looping_Sound(408, 16, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(384, 16, 0, 1);
 	Ambient_Sounds_Add_Sound(259, 3, 60, 9, 9, -100, 100, -101, -101, 0, 0);
@@ -46,6 +50,7 @@ void SceneScriptNR04::InitializeScene() {
 	Ambient_Sounds_Add_Sound(191, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(192, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(195, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
+
 	Scene_Loop_Set_Default(0);
 }
 
@@ -62,9 +67,12 @@ void SceneScriptNR04::SceneLoaded() {
 }
 
 bool SceneScriptNR04::MouseClick(int x, int y) {
-	if (Actor_Query_Animation_Mode(kActorMcCoy) == 85 || Actor_Query_Animation_Mode(kActorMcCoy) == 29) {
+	if (Actor_Query_Animation_Mode(kActorMcCoy) == 85
+	 || Actor_Query_Animation_Mode(kActorMcCoy) == 29
+	) {
 		return true;
 	}
+
 	if (Actor_Query_Animation_Mode(kActorMcCoy) == 53) {
 		Actor_Change_Animation_Mode(kActorMcCoy, 29);
 		return true;
@@ -73,8 +81,13 @@ bool SceneScriptNR04::MouseClick(int x, int y) {
 }
 
 bool SceneScriptNR04::ClickedOn3DObject(const char *objectName, bool a2) {
-	if (Object_Query_Click("B.TV01", objectName) || Object_Query_Click("B.TV02", objectName) || Object_Query_Click("B.TV03", objectName) || Object_Query_Click("B.TV05", objectName) || Object_Query_Click("DESK", objectName)) {
-		if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 546, 0, 1, false)) {
+	if (Object_Query_Click("B.TV01", objectName)
+	 || Object_Query_Click("B.TV02", objectName)
+	 || Object_Query_Click("B.TV03", objectName)
+	 || Object_Query_Click("B.TV05", objectName)
+	 || Object_Query_Click("DESK", objectName)
+	) {
+		if (!Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 546, 0, true, false)) {
 			if (!Object_Query_Click("DESK", objectName)) {
 				Actor_Face_Object(kActorMcCoy, "B.TV01", true);
 				Actor_Voice_Over(1530, kActorVoiceOver);
@@ -86,7 +99,7 @@ bool SceneScriptNR04::ClickedOn3DObject(const char *objectName, bool a2) {
 					Actor_Voice_Over(1600, kActorVoiceOver);
 					Actor_Voice_Over(1610, kActorVoiceOver);
 				} else if (Actor_Clue_Query(kActorMcCoy, kClueCollectionReceipt)) {
-					Actor_Says(kActorMcCoy, 8580, 3);
+					Actor_Says(kActorMcCoy, 8580, kAnimationModeTalk);
 				} else {
 					Actor_Clue_Acquire(kActorMcCoy, kClueCollectionReceipt, false, -1);
 					Item_Pickup_Spin_Effect(961, 247, 141);
@@ -98,9 +111,10 @@ bool SceneScriptNR04::ClickedOn3DObject(const char *objectName, bool a2) {
 
 			}
 		}
-	} else if (Object_Query_Click("TORUS01", objectName)
-		&& !Loop_Actor_Walk_To_XYZ(kActorMcCoy, 18.56f, 0.0f, 38.86f, 0, 1, false, 0)
-		&& !Game_Flag_Query(605)) {
+	} else if ( Object_Query_Click("TORUS01", objectName)
+	        && !Loop_Actor_Walk_To_XYZ(kActorMcCoy, 18.56f, 0.0f, 38.86f, 0, true, false, 0)
+	        && !Game_Flag_Query(605)
+	) {
 		Unclickable_Object("TORUS01");
 		Scene_Exits_Disable();
 		Player_Loses_Control();
@@ -116,7 +130,9 @@ bool SceneScriptNR04::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptNR04::ClickedOnActor(int actorId) {
-	if (actorId == kActorEarlyQ && Game_Flag_Query(606)) {
+	if (actorId == kActorEarlyQ
+	 && Game_Flag_Query(606)
+	) {
 		Actor_Voice_Over(1640, kActorVoiceOver);
 		Actor_Voice_Over(1650, kActorVoiceOver);
 		Actor_Voice_Over(1660, kActorVoiceOver);
@@ -136,7 +152,7 @@ bool SceneScriptNR04::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 45.0f, 0.0f, -106.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(437);
+			Game_Flag_Set(kFlatNR04toNR03);
 			Set_Enter(kSetNR03, kSceneNR03);
 		}
 		return true;
@@ -145,7 +161,11 @@ bool SceneScriptNR04::ClickedOnExit(int exitId) {
 }
 
 bool SceneScriptNR04::ClickedOn2DRegion(int region) {
-	if ((region == 0 || region == 1 || region == 2) && Actor_Query_Which_Set_In(kActorEarlyQ) != 12 && Actor_Query_Animation_Mode(kActorMcCoy) != 53 && !Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 445, 0, 1, false)) {
+	if ((region == 0 || region == 1 || region == 2)
+	 && Actor_Query_Which_Set_In(kActorEarlyQ) != 12
+	 && Actor_Query_Animation_Mode(kActorMcCoy) != 53
+	 && !Loop_Actor_Walk_To_Waypoint(kActorMcCoy, 445, 0, true, false)
+	) {
 		Actor_Face_Heading(kActorMcCoy, 49, false);
 		Actor_Change_Animation_Mode(kActorMcCoy, 85);
 		Delay(2500);
diff --git a/engines/bladerunner/script/scene/nr05.cpp b/engines/bladerunner/script/scene/nr05.cpp
index 96b881b..e681b51 100644
--- a/engines/bladerunner/script/scene/nr05.cpp
+++ b/engines/bladerunner/script/scene/nr05.cpp
@@ -24,27 +24,36 @@
 
 namespace BladeRunner {
 
+enum kNR05Loops {
+	kNR05LoopPanFromNR08 = 0,
+	kNR05LoopMainLoop    = 1,
+	kNR05LoopTableSwivel = 3
+};
+
+
 void SceneScriptNR05::InitializeScene() {
-	if (Game_Flag_Query(547)) {
-		Scene_Loop_Start_Special(0, 0, 0);
-		Scene_Loop_Set_Default(1);
-		Setup_Scene_Information(-777.56f, 0.0f, -166.86f, 0);
-	} else if (Game_Flag_Query(536)) {
-		Setup_Scene_Information(-456.0f, 0.0f, -611.0f, 0);
+	if (Game_Flag_Query(kFlagNR08toNR05)) {
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kNR05LoopPanFromNR08, false);
+		Scene_Loop_Set_Default(kNR05LoopMainLoop);
+		Setup_Scene_Information(-777.56f,  0.0f, -166.86f,   0);
+	} else if (Game_Flag_Query(kFlagNR03toNR05)) {
+		Setup_Scene_Information( -456.0f,  0.0f,  -611.0f,   0);
 	} else {
-		Setup_Scene_Information(-527.0f, 1.57f, -406.0f, 649);
+		Setup_Scene_Information( -527.0f, 1.57f,  -406.0f, 649);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 459, 147, 639, 290, 1);
 	if (Game_Flag_Query(620)) {
 		Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
 	}
+
 	Ambient_Sounds_Add_Looping_Sound(280, 50, 38, 0);
-	Ambient_Sounds_Add_Sound(252, 3, 60, 20, 20, -30, 30, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(254, 3, 60, 20, 20, -30, 30, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(255, 3, 60, 20, 20, -30, 30, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(256, 3, 60, 20, 20, -30, 30, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(257, 3, 60, 20, 20, -30, 30, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(258, 3, 60, 20, 20, -30, 30, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(252, 3, 60, 20, 20,  -30,  30, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(254, 3, 60, 20, 20,  -30,  30, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(255, 3, 60, 20, 20,  -30,  30, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(256, 3, 60, 20, 20,  -30,  30, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(257, 3, 60, 20, 20,  -30,  30, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(258, 3, 60, 20, 20,  -30,  30, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(259, 3, 60, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(260, 3, 60, 25, 25, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(261, 3, 60, 25, 25, -100, 100, -101, -101, 0, 0);
@@ -62,15 +71,16 @@ void SceneScriptNR05::InitializeScene() {
 	Ambient_Sounds_Add_Sound(191, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(192, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(195, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
-	if (Game_Flag_Query(547)) {
-		Scene_Loop_Start_Special(0, 0, 0);
-		Scene_Loop_Set_Default(1);
-	} else if (Game_Flag_Query(536)) {
-		Scene_Loop_Start_Special(0, 3, 0);
-		Scene_Loop_Set_Default(1);
-		Game_Flag_Reset(536);
+
+	if (Game_Flag_Query(kFlagNR08toNR05)) {
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kNR05LoopPanFromNR08, false);
+		Scene_Loop_Set_Default(kNR05LoopMainLoop);
+	} else if (Game_Flag_Query(kFlagNR03toNR05)) {
+		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, kNR05LoopTableSwivel, false);
+		Scene_Loop_Set_Default(kNR05LoopMainLoop);
+		Game_Flag_Reset(kFlagNR03toNR05);
 	} else {
-		Scene_Loop_Set_Default(1);
+		Scene_Loop_Set_Default(kNR05LoopMainLoop);
 	}
 }
 
@@ -90,19 +100,21 @@ bool SceneScriptNR05::ClickedOn3DObject(const char *objectName, bool a2) {
 
 bool SceneScriptNR05::ClickedOnActor(int actorId) {
 	if (actorId == kActorEarlyQBartender) {
-		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorEarlyQBartender, 120, 1, false)) {
-			sub_4020B4();
+		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorEarlyQBartender, 120, true, false)) {
+			talkToBartender();
 		}
 		return true;
 	}
+
 	if (actorId == kActorEarlyQ) {
 		Actor_Set_Goal_Number(kActorEarlyQ, 229);
-		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorEarlyQ, 36, 1, false)) {
-			sub_4022DC();
+		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorEarlyQ, 36, true, false)) {
+			talkToEarlyQ();
 		}
 		Actor_Set_Goal_Number(kActorEarlyQ, 221);
 		return true;
 	}
+
 	return false;
 }
 
@@ -112,21 +124,22 @@ bool SceneScriptNR05::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptNR05::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -444.0f, 0.0f, -451.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -444.0f, 0.0f, -451.0f, 0, true, false, 0)) {
 			Player_Loses_Control();
 			Music_Stop(2);
 			Player_Set_Combat_Mode(false);
 			Actor_Face_Heading(kActorMcCoy, 1021, false);
-			Actor_Change_Animation_Mode(kActorMcCoy, 53);
-			Game_Flag_Set(537);
+			Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeSit);
+			Game_Flag_Set(kFlagNR05toNR03);
 			Set_Enter(kSetNR03, kSceneNR03);
-			Scene_Loop_Start_Special(kSceneLoopModeChangeSet, 3, 0);
+			Scene_Loop_Start_Special(kSceneLoopModeChangeSet, kNR05LoopTableSwivel, false);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -777.56f, 0.0f, -166.86f, 0, 1, false, 0)) {
-			Game_Flag_Set(546);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -777.56f, 0.0f, -166.86f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagNR05toNR08);
 			Set_Enter(kSetNR05_NR08, kSceneNR08);
 		}
 		return true;
@@ -140,49 +153,55 @@ bool SceneScriptNR05::ClickedOn2DRegion(int region) {
 
 void SceneScriptNR05::SceneFrameAdvanced(int frame) {
 	if (!Music_Is_Playing()) {
-		sub_402B9C();
+		playNextMusic();
 	}
+
 	if (frame == 78) {
 		Sound_Play(345, 83, 70, 70, 50);
 	}
+
 	if (frame == 86) {
 		Sound_Play(353, 62, 70, 70, 50);
 	}
+
 	rotateActorOnGround(kActorHysteriaPatron2);
 	rotateActorOnGround(kActorMcCoy);
+
 	if (Actor_Query_Goal_Number(kActorEarlyQ) == 224) {
 		Actor_Set_Goal_Number(kActorEarlyQ, 225);
-		if (Player_Query_Current_Scene() == 58) {
+		if (Player_Query_Current_Scene() == kSceneNR05) {
 			Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
 		}
 	}
-	if (frame > 77 && frame <= 134) {
+
+	if (frame > 77
+	 && frame <= 134
+	) {
 		rotateActorOnTable(frame - 13);
-		if (frame == 134 && !Game_Flag_Query(537)) {
+		if ( frame == 134
+		 && !Game_Flag_Query(kFlagNR05toNR03)
+		) {
 			Actor_Set_Goal_Number(kActorMcCoy, 200);
 		}
 		//return true;
-		return;
-	} else {
-		//return false;
-		return;
 	}
+	//return false;
 }
 
 void SceneScriptNR05::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) {
 }
 
 void SceneScriptNR05::PlayerWalkedIn() {
-	if (Game_Flag_Query(547)) {
+	if (Game_Flag_Query(kFlagNR08toNR05)) {
 		Music_Stop(2);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -697.56f, 0.0f, -174.86f, 0, 1, false, 0);
-		Game_Flag_Reset(547);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -697.56f, 0.0f, -174.86f, 0, true, false, 0);
+		Game_Flag_Reset(kFlagNR08toNR05);
 	}
 	//	return false;
 }
 
 void SceneScriptNR05::PlayerWalkedOut() {
-	if (Game_Flag_Query(537)) {
+	if (Game_Flag_Query(kFlagNR05toNR03)) {
 		Music_Stop(2);
 	}
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
@@ -195,7 +214,7 @@ void SceneScriptNR05::DialogueQueueFlushed(int a1) {
 void SceneScriptNR05::rotateActorOnTable(int frame) {
 	float angle = cos((frame - 65) * (M_PI / 57.0f)) * M_PI_2;
 	float invertedAngle = M_PI - angle;
-	if (!Game_Flag_Query(537)) {
+	if (!Game_Flag_Query(kFlagNR05toNR03)) {
 		angle = angle + M_PI;
 		invertedAngle = invertedAngle + M_PI;
 	}
@@ -215,75 +234,82 @@ void SceneScriptNR05::rotateActorOnTable(int frame) {
 	Actor_Set_At_XYZ(kActorMcCoy, x, 0.0f, z, facing);
 }
 
-void SceneScriptNR05::sub_4020B4() {
+void SceneScriptNR05::talkToBartender() {
 	Actor_Face_Actor(kActorMcCoy, kActorEarlyQBartender, true);
 	Actor_Face_Actor(kActorEarlyQBartender, kActorMcCoy, true);
-	if (Game_Flag_Query(588)) {
-		if (Game_Flag_Query(589)) {
-			Actor_Says(kActorMcCoy, 3480, 19);
-			Actor_Says(kActorEarlyQBartender, 30, 12);
-			Actor_Says(kActorMcCoy, 3485, 3);
-			Actor_Says(kActorEarlyQBartender, 40, 13);
-			Actor_Change_Animation_Mode(kActorEarlyQBartender, 23);
-			Actor_Change_Animation_Mode(kActorMcCoy, 75);
-			Global_Variable_Increment(kVariableMcCoyDrinks, 1);
-		} else {
-			Actor_Says(kActorMcCoy, 3475, 17);
-			Actor_Says(kActorEarlyQBartender, 20, 23);
-			Game_Flag_Set(589);
-			Actor_Change_Animation_Mode(kActorMcCoy, 75);
-			Global_Variable_Increment(kVariableMcCoyDrinks, 1);
-		}
-	} else {
+	if (!Game_Flag_Query(kFlagNR05BartenderTalk1)) {
 		Actor_Says(kActorEarlyQBartender, 0, 13);
-		Actor_Says(kActorMcCoy, 3470, 3);
+		Actor_Says(kActorMcCoy, 3470, kAnimationModeTalk);
 		Actor_Says(kActorEarlyQBartender, 10, 23);
-		Game_Flag_Set(588);
+		Game_Flag_Set(kFlagNR05BartenderTalk1);
+		Actor_Change_Animation_Mode(kActorMcCoy, 75);
+		Global_Variable_Increment(kVariableMcCoyDrinks, 1);
+	} else if (!Game_Flag_Query(kFlagNR05BartenderTalk2)) {
+		Actor_Says(kActorMcCoy, 3475, 17);
+		Actor_Says(kActorEarlyQBartender, 20, 23);
+		Game_Flag_Set(kFlagNR05BartenderTalk2);
+		Actor_Change_Animation_Mode(kActorMcCoy, 75);
+		Global_Variable_Increment(kVariableMcCoyDrinks, 1);
+	} else {
+		Actor_Says(kActorMcCoy, 3480, 19);
+		Actor_Says(kActorEarlyQBartender, 30, 12);
+		Actor_Says(kActorMcCoy, 3485, kAnimationModeTalk);
+		Actor_Says(kActorEarlyQBartender, 40, 13);
+		Actor_Change_Animation_Mode(kActorEarlyQBartender, 23);
 		Actor_Change_Animation_Mode(kActorMcCoy, 75);
 		Global_Variable_Increment(kVariableMcCoyDrinks, 1);
 	}
 }
 
-void SceneScriptNR05::sub_4022DC() {
+void SceneScriptNR05::talkToEarlyQ() {
 	if (Actor_Query_Goal_Number(kActorEarlyQ) == 220) {
 		Actor_Set_Goal_Number(kActorEarlyQ, 221);
 	}
 	Actor_Face_Actor(kActorMcCoy, kActorEarlyQ, true);
 	Actor_Face_Actor(kActorEarlyQ, kActorMcCoy, true);
-	if (!Game_Flag_Query(590)) {
-		Actor_Says(kActorMcCoy, 8513, 3);
-		Actor_Says(kActorEarlyQ, 360, 3);
+
+	if (!Game_Flag_Query(kFlagNR05EarlyQTalk)) {
+		Actor_Says(kActorMcCoy, 8513, kAnimationModeTalk);
+		Actor_Says(kActorEarlyQ, 360, kAnimationModeTalk);
 		Actor_Says(kActorMcCoy, 3495, 11);
 		Actor_Says(kActorEarlyQ, 370, 15);
 		Actor_Says(kActorMcCoy, 3500, 17);
 		Actor_Says(kActorEarlyQ, 380, 13);
-		Game_Flag_Set(590);
+		Game_Flag_Set(kFlagNR05EarlyQTalk);
 		return;
 	}
+
 	Dialogue_Menu_Clear_List();
 	if (Actor_Query_Friendliness_To_Other(kActorEarlyQ, kActorMcCoy) >= 48) {
-		if (Actor_Clue_Query(kActorMcCoy, kClueDragonflyCollection) || Actor_Clue_Query(kActorMcCoy, kClueCollectionReceipt)) {
-			DM_Add_To_List_Never_Repeat_Once_Selected(890, -1, 4, 8);
+		if (Actor_Clue_Query(kActorMcCoy, kClueDragonflyCollection)
+		 || Actor_Clue_Query(kActorMcCoy, kClueCollectionReceipt)
+		) {
+			DM_Add_To_List_Never_Repeat_Once_Selected(890, -1, 4, 8); // JEWELRY
 		}
 		if (Actor_Clue_Query(kActorMcCoy, kClueLucy)) {
-			DM_Add_To_List_Never_Repeat_Once_Selected(900, 5, 6, 5);
+			DM_Add_To_List_Never_Repeat_Once_Selected(900, 5, 6, 5); // LUCY
 		}
 		if (Actor_Clue_Query(kActorMcCoy, kClueDektorasDressingRoom)) {
-			DM_Add_To_List_Never_Repeat_Once_Selected(910, 5, 5, 5);
+			DM_Add_To_List_Never_Repeat_Once_Selected(910, 5, 5, 5); // BLOND WOMAN
 		}
 	}
+
 	if (!Dialogue_Menu_Query_List_Size()) {
-		Actor_Says(kActorMcCoy, 3520, 3);
-		Actor_Says(kActorEarlyQ, 730, 3);
+		Actor_Says(kActorMcCoy, 3520, kAnimationModeTalk);
+		Actor_Says(kActorEarlyQ, 730, kAnimationModeTalk);
 		Actor_Face_Heading(kActorEarlyQ, 849, false);
 		return;
 	}
-	Dialogue_Menu_Add_DONE_To_List(100);
+
+	Dialogue_Menu_Add_DONE_To_List(100); // DONE
+
 	Dialogue_Menu_Appear(320, 240);
 	int answer = Dialogue_Menu_Query_Input();
 	Dialogue_Menu_Disappear();
-	if (answer == 890) {
-		Actor_Says(kActorMcCoy, 3505, 3);
+
+	switch(answer){
+	case 890: // JEWELRY
+		Actor_Says(kActorMcCoy, 3505, kAnimationModeTalk);
 		Actor_Modify_Friendliness_To_Other(kActorEarlyQ, kActorMcCoy, -1);
 		Actor_Says(kActorEarlyQ, 420, 12);
 		Actor_Says(kActorEarlyQ, 430, 13);
@@ -297,17 +323,21 @@ void SceneScriptNR05::sub_4022DC() {
 		Actor_Says(kActorMcCoy, 3545, 15);
 		Actor_Says(kActorEarlyQ, 520, 12);
 		Actor_Face_Heading(kActorEarlyQ, 849, false);
-	} else if (answer == 900) {
+		break;
+
+	case 900: // LUCY
 		Actor_Says(kActorMcCoy, 3510, 15);
 		Actor_Modify_Friendliness_To_Other(kActorEarlyQ, kActorMcCoy, -1);
-		Actor_Says_With_Pause(kActorEarlyQ, 530, 1.2f, 3);
+		Actor_Says_With_Pause(kActorEarlyQ, 530, 1.2f, kAnimationModeTalk);
 		Actor_Says(kActorEarlyQ, 540, 15);
 		Actor_Says(kActorMcCoy, 3550, 13);
 		Actor_Says(kActorEarlyQ, 560, 14);
 		Actor_Says(kActorEarlyQ, 570, 13);
 		Actor_Says(kActorMcCoy, 3555, 12);
 		Actor_Face_Heading(kActorEarlyQ, 849, false);
-	} else if (answer == 910) {
+		break;
+
+	case 910: // BLOND WOMAN
 		Actor_Says(kActorMcCoy, 3515, 14);
 		Actor_Modify_Friendliness_To_Other(kActorEarlyQ, kActorMcCoy, -1);
 		if (Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)) {
@@ -325,14 +355,20 @@ void SceneScriptNR05::sub_4022DC() {
 			Actor_Says(kActorEarlyQ, 660, 12);
 		}
 		Actor_Face_Heading(kActorEarlyQ, 849, false);
+		break;
 	}
 }
 
 void SceneScriptNR05::rotateActorOnGround(int actorId) {
 	int animationMode = Actor_Query_Animation_Mode(actorId);
-	if (animationMode == kAnimationModeWalk || animationMode == kAnimationModeRun || animationMode == kAnimationModeCombatWalk || animationMode == kAnimationModeCombatRun) {
+	if (animationMode == kAnimationModeWalk
+	 || animationMode == kAnimationModeRun
+	 || animationMode == kAnimationModeCombatWalk
+	 || animationMode == kAnimationModeCombatRun
+	) {
 		return;
 	}
+
 	float x, y, z;
 	Actor_Query_XYZ(actorId, &x, &y, &z);
 	x -= -542.0f;
@@ -347,23 +383,23 @@ void SceneScriptNR05::rotateActorOnGround(int actorId) {
 	}
 }
 
-void SceneScriptNR05::sub_402B9C() {
+void SceneScriptNR05::playNextMusic() {
 	if (Music_Is_Playing()) {
 		Music_Adjust(51, 0, 2);
 	} else {
-		int v0 = Global_Variable_Query(54);
-		if (v0 == 0) {
+		int track = Global_Variable_Query(kVariableNR05Music);
+		if (track == 0) {
 			Music_Play(16, 61, -80, 2, -1, 0, 0);
-		} else if (v0 == 1) {
+		} else if (track == 1) {
 			Music_Play(15, 41, -80, 2, -1, 0, 0);
-		} else if (v0 == 2) {
+		} else if (track == 2) {
 			Music_Play(7, 41, -80, 2, -1, 0, 0);
 		}
-		v0++;
-		if (v0 > 2) {
-			v0 = 0;
+		track++;
+		if (track > 2) {
+			track = 0;
 		}
-		Global_Variable_Set(54, v0);
+		Global_Variable_Set(kVariableNR05Music, track);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/nr08.cpp b/engines/bladerunner/script/scene/nr08.cpp
index 8fa1d06..47d863b 100644
--- a/engines/bladerunner/script/scene/nr08.cpp
+++ b/engines/bladerunner/script/scene/nr08.cpp
@@ -27,7 +27,7 @@ namespace BladeRunner {
 void SceneScriptNR08::InitializeScene() {
 	if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleNR01GoToNR08) {
 		Setup_Scene_Information(-1174.1f, 0.32f, 303.9f, 435);
-	} else if (Game_Flag_Query(546)) {
+	} else if (Game_Flag_Query(kFlagNR05toNR08)) {
 		Scene_Loop_Start_Special(0, 0, 0);
 		Scene_Loop_Set_Default(1);
 		Setup_Scene_Information(-1102.88f, 0.0f, 107.43f, 0);
@@ -96,7 +96,7 @@ bool SceneScriptNR08::ClickedOnItem(int itemId, bool a2) {
 bool SceneScriptNR08::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1102.88f, 0.0f, 107.43f, 0, 1, false, 0)) {
-			Game_Flag_Set(547);
+			Game_Flag_Set(kFlagNR08toNR05);
 			Set_Enter(kSetNR05_NR08, kSceneNR05);
 		}
 		return true;
@@ -177,11 +177,13 @@ void SceneScriptNR08::PlayerWalkedIn() {
 		Ambient_Sounds_Play_Sound(566, 27, 0, 99, 0);
 		Outtake_Play(kOuttakeDektora, true, -1);
 	}
+
 	if (Actor_Query_Goal_Number(kActorDektora) == 245) {
 		Actor_Face_Heading(kActorDektora, 790, false);
 		Loop_Actor_Travel_Stairs(kActorDektora, 8, 1, kAnimationModeIdle);
 		Actor_Set_Goal_Number(kActorDektora, 246);
 	}
+
 	if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleNR01GoToNR08) {
 		Actor_Says(kActorSteele, 1640, 12);
 		if (!Game_Flag_Query(kFlagDirectorsCut)) {
@@ -194,22 +196,20 @@ void SceneScriptNR08::PlayerWalkedIn() {
 		Actor_Says(kActorSteele, 1680, 14);
 		Actor_Says(kActorSteele, 1690, 15);
 		Actor_Set_Goal_Number(kActorSteele, 235);
-		//return true;
-		return;
-	} else {
-		if (Game_Flag_Query(546)) {
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1090.88f, 0.0f, 147.43f, 0, 1, false, 0);
-			Game_Flag_Reset(546);
-		}
-		//return false;
-		return;
+		return; // true;
 	}
+
+	if (Game_Flag_Query(kFlagNR05toNR08)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1090.88f, 0.0f, 147.43f, 0, true, false, 0);
+		Game_Flag_Reset(kFlagNR05toNR08);
+	}
+	//return false;
 }
 
 void SceneScriptNR08::PlayerWalkedOut() {
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
-	if (!Game_Flag_Query(547)) {
+	if (!Game_Flag_Query(kFlagNR08toNR05)) {
 		Music_Stop(2);
 	}
 }
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index 9f5a100..ed7bceb 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -302,8 +302,8 @@ DECLARE_SCRIPT(NR02)
 END_SCRIPT
 
 DECLARE_SCRIPT(NR03)
-	void sub_40259C(int frame);
-	void sub_402994();
+	void rotateActorOnTable(int frame);
+	void playNextMusic();
 END_SCRIPT
 
 DECLARE_SCRIPT(NR04)
@@ -314,10 +314,10 @@ END_SCRIPT
 
 DECLARE_SCRIPT(NR05)
 	void rotateActorOnTable(int frame);
-	void sub_4020B4();
-	void sub_4022DC();
+	void talkToBartender();
+	void talkToEarlyQ();
 	void rotateActorOnGround(int actorId);
-	void sub_402B9C();
+	void playNextMusic();
 END_SCRIPT
 
 DECLARE_SCRIPT(NR06)


Commit: 2e9c4bfdc1f0f3f4deff5890f0fb91c175aeedce
    https://github.com/scummvm/scummvm/commit/2e9c4bfdc1f0f3f4deff5890f0fb91c175aeedce
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-01-29T23:37:09+01:00

Commit Message:
BLADERUNNER: Cleanup of back EarlyQ's scenes scripts

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/dektora.cpp
    engines/bladerunner/script/ai/early_q.cpp
    engines/bladerunner/script/ai/gordo.cpp
    engines/bladerunner/script/ai/hanoi.cpp
    engines/bladerunner/script/ai/lucy.cpp
    engines/bladerunner/script/ai/steele.cpp
    engines/bladerunner/script/scene/nr01.cpp
    engines/bladerunner/script/scene/nr02.cpp
    engines/bladerunner/script/scene/nr03.cpp
    engines/bladerunner/script/scene/nr04.cpp
    engines/bladerunner/script/scene/nr05.cpp
    engines/bladerunner/script/scene/nr06.cpp
    engines/bladerunner/script/scene/nr07.cpp
    engines/bladerunner/script/scene/nr08.cpp
    engines/bladerunner/script/scene/nr09.cpp
    engines/bladerunner/script/scene/nr10.cpp
    engines/bladerunner/script/scene/nr11.cpp
    engines/bladerunner/script/scene_script.h


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 356d185..69105e4 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -852,8 +852,12 @@ enum Flags {
 
 	kFlagUG09toCT12 = 432,
 	kFlagCT12ToUG09 = 433,
-	kFlatNR04toNR03 = 437,
-	kFlatNR03toNR04 = 438,
+	kFlagNR04toNR03 = 437,
+	kFlagNR03toNR04 = 438,
+	kFlagNR06toNR08 = 439,
+	kFlagNR08toNR06 = 440, // is never checked
+	kFlagNR06toNR07 = 441,
+	kFlagNR07toNR06 = 442,
 	kFlagGenericWalkerWaiting = 443,
 	kFlagIzoShot = 444,
 	kFlagUG02WeaponsChecked = 449,
@@ -875,7 +879,12 @@ enum Flags {
 	kFlagBB10Shelf4Available = 469,
 	kFlagBB10Shelf5Available = 470,
 	kFlagGaffChapter2Started = 471,
+	// 472 is never used
+	// 473 is never used
 	kFlagUG10GateOpen = 474,
+	kFlagNR09toNR10 = 475,
+	kFlagNR10toNR09 = 476,
+	kFlagNR11toNR10 = 477, // is never checked
 	kFlagMcCoyAtPS03 = 478, // has no use
 	kFlagMcCoyInHawkersCircle = 479,
 	// 480 is never used
@@ -900,7 +909,9 @@ enum Flags {
 	kFlagDR03ChewTalkExplosion = 505,
 	kFlagBB08toBB12 = 506,
 	kFlagBB12toBB08 = 507, // is never checked
+	kFlagNR07Entered = 508,
 	kFlagBB11SadikFight = 509,
+	kFlagNotUsed510 = 510, // is never set
 	kFlagDR05ExplodedEntered = 511,
 	kFlagDR05ViewExplosion = 515,
 	kFlagCT07ZubenAttack = 516,
@@ -943,6 +954,7 @@ enum Flags {
 	kFlagNR05BartenderTalk1 = 588,
 	kFlagNR05BartenderTalk2 = 589,
 	kFlagNR05EarlyQTalk = 590,
+	kFlagDektoraRanAway = 591,
 	kFlagGordoRanAway = 592,
 	kFlagLucyRanAway = 593,
 	kFlagNR02GordoJumpDown = 594,
@@ -953,9 +965,15 @@ enum Flags {
 	kFlagNR03HanoiTalk = 611,
 	kFlagTB07RachaelTalk = 612,
 	kFlagHF03LucyTalk = 613,
+	kFlagNR08toNR09 = 614,
+	kFlagNR09toNR08 = 615,
 	kFlagMcCoyCapturedByHolloway = 616,
 	kFlagSpinnerMissing = 617,
+	kFlagNR08Available = 620,
+	kFlagNR08TouchedDektora = 622,
 	kFlagTB07TyrellMeeting = 625,
+	kFlagNR07McCoyIsCop = 638,
+	kFlagNR10toNR11 = 641, // is never checked
 	kFlagSteeleKnowsBulletBobIsDead = 643,
 	kFlagCT11DogWrapperTaken = 645,
 	kFlagSteeleDead = 646, // is never checked
@@ -994,7 +1012,8 @@ enum Flags {
 	kFlagZubenBountyPaid = 723,
 	kFlagCT11DogWrapperAvailable = 725,
 	kFlagAR02Entered = 726,
-	kFlagPS04WeaponsOrderForm = 727
+	kFlagPS04WeaponsOrderForm = 727,
+	kFlagNR08DektoraShow = 729
 };
 
 enum Variables {
@@ -1024,11 +1043,11 @@ enum Variables {
 	kVariableAffectionTowards = 45, // 0 none, 1 steele, 2 dektora, 3 lucy
 	kVariableGunPulledInFrontOfSebastian = 46,
 	kVariableDNAEvidences = 48,
-	kVariableNR02Music = 50,
+	kVariableTaffyLewisMusic = 50,
 	kVariableReplicants = 51,
 	kVariableNextTvNews = 52,
-	kVariableNR03Music = 53,
-	kVariableNR05Music = 54
+	kVariableEarlyQFrontMusic = 53,
+	kVariableEarlyQBackMusic = 54
 };
 
 enum Outtakes {
@@ -1175,11 +1194,11 @@ enum Scenes {
 	kSceneNR03 = 56, // Nightclub Row - Early Q's - Main area
 	kSceneNR04 = 57, // Nightclub Row - Early Q's - Office
 	kSceneNR05 = 58, // Nightclub Row - Early Q's - VIP area
-	kSceneNR06 = 59,
-	kSceneNR07 = 60,
-	kSceneNR08 = 61,
-	kSceneNR09 = 62,
-	kSceneNR10 = 63,
+	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
+	kSceneNR10 = 63, // Nightclub Row - Early Q's - Projector room
 	kSceneNR11 = 64,
 	kScenePS01 = 65, // Police Station - Roof
 	kScenePS02 = 66, // Police Station - Elevator
@@ -1760,9 +1779,15 @@ enum GoalRunciter {
 
 enum GoalEarlyQ {
 	// cut feature? goals 0 - 200 has no use as EarlyQ is walking around NR which is not accessible
-	kGoalEarlyQStartWalkingAround = 200,
-	kGoalEarlyQGoToNR05 = 220,
-	kGoalEarlyQGoToNR04 = 230
+	kGoalEarlyQWalkAround = 200,
+	kGoalEarlyQNR05Wait = 220,
+	kGoalEarlyQNR05WillLeave = 221,
+	kGoalEarlyQNR05Leave = 222,
+	kGoalEarlyQNR05AnnouceDektora = 223,
+	kGoalEarlyQNR05UnlockNR08 = 224,
+	kGoalEarlyQNR05UnlockedNR08 = 225,
+	kGoalEarlyQNR05TalkingToMcCoy = 229,
+	kGoalEarlyQNR04Wait = 230
 };
 
 enum GoalZuben {
@@ -1793,12 +1818,16 @@ enum GoalOfficerLeary {
 
 enum GoalHanoi {
 	kGoalHanoiDefault = 200,
+	kGoalHanoiResetTimer = 201,
 	kGoalHanoiNR03GoToDefaultPosition = 210,
 	kGoalHanoiNR03GoToSwivelTable = 211,
 	kGoalHanoiNR03GoToOfficeDoor = 212,
 	kGoalHanoiNR03GoToDancer = 213,
 	kGoalHanoiNR03StartGuarding = 215,
-	kGoalHanoiNR03ThrowOutMcCoy = 220
+	kGoalHanoiNR03ThrowOutMcCoy = 220,
+	kGoalHanoiNR08WatchShow = 230,
+	kGoalHanoiNR08Leave = 235,
+	kGoalHanoiNR08Left = 236,
 };
 
 enum GoalDeskClerk {
diff --git a/engines/bladerunner/script/ai/dektora.cpp b/engines/bladerunner/script/ai/dektora.cpp
index 48972c4..4106224 100644
--- a/engines/bladerunner/script/ai/dektora.cpp
+++ b/engines/bladerunner/script/ai/dektora.cpp
@@ -204,7 +204,7 @@ void AIScriptDektora::ClickedByPlayer() {
 	}
 
 	if (Actor_Query_Goal_Number(kActorDektora) == 210) {
-		Game_Flag_Set(622);
+		Game_Flag_Set(kFlagNR08TouchedDektora);
 		AI_Movement_Track_Flush(kActorHanoi);
 		Actor_Force_Stop_Walking(kActorMcCoy);
 		Player_Loses_Control();
@@ -521,7 +521,7 @@ bool AIScriptDektora::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		break;
 
 	case 290:
-		Game_Flag_Set(591);
+		Game_Flag_Set(kFlagDektoraRanAway);
 		break;
 
 	case 299:
diff --git a/engines/bladerunner/script/ai/early_q.cpp b/engines/bladerunner/script/ai/early_q.cpp
index e06c52a..7237c15 100644
--- a/engines/bladerunner/script/ai/early_q.cpp
+++ b/engines/bladerunner/script/ai/early_q.cpp
@@ -70,7 +70,7 @@ bool AIScriptEarlyQ::Update() {
 		Game_Flag_Set(kFlagEarlyQStartedChapter3);
 		Actor_Put_In_Set(kActorEarlyQ, kSetFreeSlotH);
 		Actor_Set_At_Waypoint(kActorEarlyQ, 40, 0);
-		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQStartWalkingAround);
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQWalkAround);
 		return true;
 	}
 
@@ -79,13 +79,13 @@ bool AIScriptEarlyQ::Update() {
 
 void AIScriptEarlyQ::TimerExpired(int timer) {
 	if (timer == 0
-	 && Actor_Query_Goal_Number(kActorEarlyQ) == 221
+	 && Actor_Query_Goal_Number(kActorEarlyQ) == kGoalEarlyQNR05WillLeave
 	) {
-		if (Player_Query_Current_Scene() == 58) {
+		if (Player_Query_Current_Scene() == kSceneNR05) {
 			AI_Countdown_Timer_Reset(kActorEarlyQ, 0);
-			Actor_Set_Goal_Number(kActorEarlyQ, 222);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05Leave);
 		} else {
-			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR05);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05Wait);
 		}
 		return; //true;
 	}
@@ -162,12 +162,12 @@ void AIScriptEarlyQ::CompletedMovementTrack() {
 		Actor_Set_Goal_Number(kActorEarlyQ, 204);
 		break;
 
-	case 222:
-		Actor_Set_Goal_Number(kActorEarlyQ, 223);
+	case kGoalEarlyQNR05Leave:
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05AnnouceDektora);
 		return; //false;
 
-	case kGoalEarlyQGoToNR04:
-		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQStartWalkingAround);
+	case kGoalEarlyQNR04Wait:
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQWalkAround);
 		return; //false;
 
 	default:
@@ -302,7 +302,7 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Repeat(kActorEarlyQ);
 		break;
 
-	case kGoalEarlyQStartWalkingAround:
+	case kGoalEarlyQWalkAround:
 		AI_Movement_Track_Flush(kActorEarlyQ);
 		Actor_Put_In_Set(kActorEarlyQ, kSetFreeSlotH);
 		Actor_Set_At_Waypoint(kActorEarlyQ, 40, 0);
@@ -310,11 +310,11 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		 && Game_Flag_Query(kFlagGordoRanAway)
 		 && Game_Flag_Query(kFlagLucyRanAway)
 		) {
-			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR05);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05Wait);
 		} else if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
-			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR04);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR04Wait);
 		} else {
-			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR05);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05Wait);
 		}
 		break;
 
@@ -390,7 +390,7 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Scene_Exits_Enable();
 		Player_Gains_Control();
 		Game_Flag_Set(627);
-		Actor_Set_Goal_Number(kActorHanoi, 220);
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03ThrowOutMcCoy);
 		break;
 
 	case 215:
@@ -422,40 +422,40 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Repeat(kActorEarlyQ);
 		break;
 
-	case kGoalEarlyQGoToNR05:
+	case kGoalEarlyQNR05Wait:
 		if (Player_Query_Current_Set() == kSetNR05_NR08) {
-			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR04);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR04Wait);
 		} else {
 			Actor_Put_In_Set(kActorEarlyQ, kSetNR05_NR08);
 			Actor_Set_At_XYZ(kActorEarlyQ, -671.56f, 0.0f, -287.02f, 849);
 		}
 		break;
 
-	case 221:
+	case kGoalEarlyQNR05WillLeave:
 		AI_Countdown_Timer_Reset(kActorEarlyQ, 0);
 		AI_Countdown_Timer_Start(kActorEarlyQ, 0, 20);
 		break;
 
-	case 222:
+	case kGoalEarlyQNR05Leave:
 		AI_Movement_Track_Flush(kActorEarlyQ);
 		AI_Movement_Track_Append(kActorEarlyQ, 429, 0);
 		AI_Movement_Track_Repeat(kActorEarlyQ);
 		break;
 
-	case 223:
-		if (Player_Query_Current_Scene() == 58) {
-			Actor_Says(kActorEarlyQ, 670, 3);
-			Actor_Says(kActorEarlyQ, 690, 3);
+	case kGoalEarlyQNR05AnnouceDektora:
+		if (Player_Query_Current_Scene() == kSceneNR05) {
+			Actor_Says(kActorEarlyQ, 670, kAnimationModeTalk);
+			Actor_Says(kActorEarlyQ, 690, kAnimationModeTalk);
 			Actor_Set_Goal_Number(kActorDektora, 210);
-			Actor_Set_Goal_Number(kActorEarlyQ, 224);
-			Actor_Set_Goal_Number(kActorHanoi, 230);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05UnlockNR08);
+			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR08WatchShow);
 		} else {
-			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQGoToNR05);
+			Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05Wait);
 		}
 		break;
 
-	case 224:
-		Game_Flag_Set(620);
+	case kGoalEarlyQNR05UnlockNR08:
+		Game_Flag_Set(kFlagNR08Available);
 		break;
 
 	case 229:
@@ -463,7 +463,7 @@ bool AIScriptEarlyQ::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Countdown_Timer_Reset(kActorEarlyQ, 0);
 		break;
 
-	case kGoalEarlyQGoToNR04:
+	case kGoalEarlyQNR04Wait:
 		AI_Movement_Track_Flush(kActorEarlyQ);
 		if (Random_Query(1, 3) > 1) {
 			AI_Movement_Track_Append(kActorEarlyQ, 322, Random_Query(15, 30));
diff --git a/engines/bladerunner/script/ai/gordo.cpp b/engines/bladerunner/script/ai/gordo.cpp
index f8137e8..50dc2c0 100644
--- a/engines/bladerunner/script/ai/gordo.cpp
+++ b/engines/bladerunner/script/ai/gordo.cpp
@@ -466,7 +466,7 @@ bool AIScriptGordo::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	case kGoalGordoStartChapter3:
 		if (Global_Variable_Query(kVariableHollowayArrest) == 2) {
 			if (Game_Flag_Query(kFlagLucyRanAway)
-			 && Game_Flag_Query(591)
+			 && Game_Flag_Query(kFlagDektoraRanAway)
 			 && Player_Query_Current_Scene() != kSceneNR02
 			) {
 				Actor_Set_Goal_Number(kActorGordo, kGoalGordoNR02WaitAtBar);
diff --git a/engines/bladerunner/script/ai/hanoi.cpp b/engines/bladerunner/script/ai/hanoi.cpp
index f01e5ad..2ddf27b 100644
--- a/engines/bladerunner/script/ai/hanoi.cpp
+++ b/engines/bladerunner/script/ai/hanoi.cpp
@@ -57,16 +57,16 @@ bool AIScriptHanoi::Update() {
 	}
 
 	if (Player_Query_Current_Scene() != kSceneNR03
-	 && Actor_Query_Goal_Number(kActorHanoi) == 236
+	 && Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR08Left
 	) {
 		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 	}
 
 	if (Player_Query_Current_Scene() == kSceneNR03
 	 && Actor_Query_Goal_Number(kActorHanoi) != kGoalHanoiNR03StartGuarding
-	 && Actor_Query_Goal_Number(kActorHanoi) != 230
-	 && Actor_Query_Goal_Number(kActorHanoi) != 235
-	 && Actor_Query_Goal_Number(kActorHanoi) != 236
+	 && Actor_Query_Goal_Number(kActorHanoi) != kGoalHanoiNR08WatchShow
+	 && Actor_Query_Goal_Number(kActorHanoi) != kGoalHanoiNR08Leave
+	 && Actor_Query_Goal_Number(kActorHanoi) != kGoalHanoiNR08Left
 	) {
 		// McCoy close to table swivel
 		if (Actor_Query_Inch_Distance_From_Waypoint(kActorMcCoy, 364) < 420) {
@@ -135,8 +135,8 @@ void AIScriptHanoi::CompletedMovementTrack() {
 		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR03GoToDefaultPosition);
 		break;
 
-	case 235:
-		Actor_Set_Goal_Number(kActorHanoi, 236);
+	case kGoalHanoiNR08Leave:
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiNR08Left);
 		break;
 
 	case 240:
@@ -155,13 +155,13 @@ void AIScriptHanoi::ReceivedClue(int clueId, int fromActorId) {
 }
 
 void AIScriptHanoi::ClickedByPlayer() {
-	if (Actor_Query_Goal_Number(kActorHanoi) == 230
-	 || Actor_Query_Goal_Number(kActorHanoi) == 235
+	if (Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR08WatchShow
+	 || Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR08Leave
 	) {
 		Actor_Face_Actor(kActorMcCoy, kActorHanoi, true);
 		Actor_Says(kActorMcCoy, 8915, 11);
 
-		if (Actor_Query_Goal_Number(kActorHanoi) == 230) {
+		if (Actor_Query_Goal_Number(kActorHanoi) == kGoalHanoiNR08WatchShow) {
 			Actor_Says(kActorHanoi, 210, kAnimationModeTalk);
 		}
 	}
@@ -302,20 +302,20 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Set_Enter(kSetNR01, kSceneNR01);
 		break;
 
-	case 230:
+	case kGoalHanoiNR08WatchShow:
 		AI_Movement_Track_Flush(kActorHanoi);
 		Actor_Put_In_Set(kActorHanoi, kSetNR05_NR08);
 		Actor_Set_At_XYZ(kActorHanoi, -1387.51f, 0.32f, 288.16f, 292);
 		break;
 
-	case 235:
+	case kGoalHanoiNR08Leave:
 		AI_Movement_Track_Flush(kActorHanoi);
 		AI_Movement_Track_Append(kActorHanoi, 439, 0);
 		AI_Movement_Track_Append(kActorHanoi, 39, 45);
 		AI_Movement_Track_Repeat(kActorHanoi);
 		break;
 
-	case 236:
+	case kGoalHanoiNR08Left:
 		break;
 
 	case 240:
diff --git a/engines/bladerunner/script/ai/lucy.cpp b/engines/bladerunner/script/ai/lucy.cpp
index 981c8fc..0a44af7 100644
--- a/engines/bladerunner/script/ai/lucy.cpp
+++ b/engines/bladerunner/script/ai/lucy.cpp
@@ -281,7 +281,7 @@ bool AIScriptLucy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 	switch (newGoalNumber) {
 	case kGoalLucyMoveAround:
 		if (Global_Variable_Query(kVariableHollowayArrest) == 3) {
-			if (Game_Flag_Query(591)
+			if (Game_Flag_Query(kFlagDektoraRanAway)
 			 && Game_Flag_Query(kFlagGordoRanAway)
 			 && Player_Query_Current_Scene() != kSceneHF03
 			) {
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index af6a76c..302ba93 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -902,7 +902,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Says(kActorSteele, 1800, 17);
 			Actor_Says(kActorMcCoy, 3835, 18);
 			Actor_Says(kActorSteele, 1810, 16);
-			Game_Flag_Set(591);
+			Game_Flag_Set(kFlagDektoraRanAway);
 			Actor_Set_Goal_Number(kActorDektora, 599);
 			Actor_Set_Goal_Number(kActorSteele, 275);
 			break;
@@ -915,7 +915,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Says(kActorSteele, 1770, 14);
 			Actor_Says(kActorSteele, 1780, 15);
 			Actor_Says(kActorMcCoy, 3825, 14);
-			Game_Flag_Set(591);
+			Game_Flag_Set(kFlagDektoraRanAway);
 			Actor_Set_Goal_Number(kActorDektora, 599);
 			Actor_Set_Goal_Number(kActorSteele, 275);
 		}
diff --git a/engines/bladerunner/script/scene/nr01.cpp b/engines/bladerunner/script/scene/nr01.cpp
index 6089e6a..76575f2 100644
--- a/engines/bladerunner/script/scene/nr01.cpp
+++ b/engines/bladerunner/script/scene/nr01.cpp
@@ -320,9 +320,9 @@ void SceneScriptNR01::PlayerWalkedIn() {
 	}
 
 	if (Game_Flag_Query(kFlagNR03McCoyThrownOut)) {
-		if (Game_Flag_Query(622)) {
+		if (Game_Flag_Query(kFlagNR08TouchedDektora)) {
 			ADQ_Add(kActorHanoi, 150, kAnimationModeTalk);
-			Game_Flag_Reset(622);
+			Game_Flag_Reset(kFlagNR08TouchedDektora);
 		}
 		Game_Flag_Reset(kFlagNR03McCoyThrownOut);
 		Player_Gains_Control();
diff --git a/engines/bladerunner/script/scene/nr02.cpp b/engines/bladerunner/script/scene/nr02.cpp
index eb30957..38851b4 100644
--- a/engines/bladerunner/script/scene/nr02.cpp
+++ b/engines/bladerunner/script/scene/nr02.cpp
@@ -243,7 +243,7 @@ void SceneScriptNR02::DialogueQueueFlushed(int a1) {
 }
 
 void SceneScriptNR02::playNextMusic() {
-	int track = Global_Variable_Query(kVariableNR02Music);
+	int track = Global_Variable_Query(kVariableTaffyLewisMusic);
 	if (track == 0) {
 		Music_Play(8, 41, 0, 2, -1, 0, 0);
 	} else if (track == 1) {
@@ -255,7 +255,7 @@ void SceneScriptNR02::playNextMusic() {
 	if (track > 2) {
 		track = 0;
 	}
-	Global_Variable_Set(kVariableNR02Music, track);
+	Global_Variable_Set(kVariableTaffyLewisMusic, track);
 }
 
 } // End of namespace BladeRunner
diff --git a/engines/bladerunner/script/scene/nr03.cpp b/engines/bladerunner/script/scene/nr03.cpp
index e2f627d..26f8784 100644
--- a/engines/bladerunner/script/scene/nr03.cpp
+++ b/engines/bladerunner/script/scene/nr03.cpp
@@ -32,9 +32,9 @@ enum kNR03Loops {
 void SceneScriptNR03::InitializeScene() {
 	if (Game_Flag_Query(kFlagNR05toNR03)) {
 		Setup_Scene_Information(-301.98f, -70.19f, -348.58f,   0);
-	} else if (Game_Flag_Query(kFlatNR04toNR03)) {
+	} else if (Game_Flag_Query(kFlagNR04toNR03)) {
 		Setup_Scene_Information( -161.0f, -70.19f, -1139.0f, 500);
-		Game_Flag_Reset(kFlatNR04toNR03);
+		Game_Flag_Reset(kFlagNR04toNR03);
 	} else {
 		Setup_Scene_Information(  410.0f, -70.19f,  -715.0f, 690);
 	}
@@ -172,7 +172,7 @@ bool SceneScriptNR03::ClickedOnExit(int exitId) {
 			} else {
 				Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 				Ambient_Sounds_Remove_All_Looping_Sounds(1);
-				Game_Flag_Set(kFlatNR03toNR04);
+				Game_Flag_Set(kFlagNR03toNR04);
 				Set_Enter(kSetNR04, kSceneNR04);
 			}
 		}
@@ -299,7 +299,7 @@ void SceneScriptNR03::PlayerWalkedIn() {
 }
 
 void SceneScriptNR03::PlayerWalkedOut() {
-	if (!Game_Flag_Query(kFlatNR03toNR04)) {
+	if (!Game_Flag_Query(kFlagNR03toNR04)) {
 		Music_Stop(2);
 	}
 	if (Game_Flag_Query(kFlagNR03toNR05)) {
@@ -356,7 +356,7 @@ void SceneScriptNR03::playNextMusic() {
 	if (Music_Is_Playing()) {
 		Music_Adjust(51, 0, 2);
 	} else {
-		int track = Global_Variable_Query(kVariableNR03Music);
+		int track = Global_Variable_Query(kVariableEarlyQFrontMusic);
 		if (track == 0) {
 			Music_Play(14, 51, 0, 2, -1, 0, 0);
 		} else if (track == 1) {
@@ -368,7 +368,7 @@ void SceneScriptNR03::playNextMusic() {
 		if (track > 2) {
 			track = 0;
 		}
-		Global_Variable_Set(kVariableNR03Music, track);
+		Global_Variable_Set(kVariableEarlyQFrontMusic, track);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/nr04.cpp b/engines/bladerunner/script/scene/nr04.cpp
index f4d784c..3af9c3e 100644
--- a/engines/bladerunner/script/scene/nr04.cpp
+++ b/engines/bladerunner/script/scene/nr04.cpp
@@ -152,7 +152,7 @@ bool SceneScriptNR04::ClickedOnExit(int exitId) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 45.0f, 0.0f, -106.0f, 0, 1, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(kFlatNR04toNR03);
+			Game_Flag_Set(kFlagNR04toNR03);
 			Set_Enter(kSetNR03, kSceneNR03);
 		}
 		return true;
diff --git a/engines/bladerunner/script/scene/nr05.cpp b/engines/bladerunner/script/scene/nr05.cpp
index e681b51..f88e8c0 100644
--- a/engines/bladerunner/script/scene/nr05.cpp
+++ b/engines/bladerunner/script/scene/nr05.cpp
@@ -43,7 +43,7 @@ void SceneScriptNR05::InitializeScene() {
 	}
 
 	Scene_Exit_Add_2D_Exit(0, 459, 147, 639, 290, 1);
-	if (Game_Flag_Query(620)) {
+	if (Game_Flag_Query(kFlagNR08Available)) {
 		Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
 	}
 
@@ -107,11 +107,11 @@ bool SceneScriptNR05::ClickedOnActor(int actorId) {
 	}
 
 	if (actorId == kActorEarlyQ) {
-		Actor_Set_Goal_Number(kActorEarlyQ, 229);
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05TalkingToMcCoy);
 		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorEarlyQ, 36, true, false)) {
 			talkToEarlyQ();
 		}
-		Actor_Set_Goal_Number(kActorEarlyQ, 221);
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05WillLeave);
 		return true;
 	}
 
@@ -167,8 +167,8 @@ void SceneScriptNR05::SceneFrameAdvanced(int frame) {
 	rotateActorOnGround(kActorHysteriaPatron2);
 	rotateActorOnGround(kActorMcCoy);
 
-	if (Actor_Query_Goal_Number(kActorEarlyQ) == 224) {
-		Actor_Set_Goal_Number(kActorEarlyQ, 225);
+	if (Actor_Query_Goal_Number(kActorEarlyQ) == kGoalEarlyQNR05UnlockNR08) {
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05UnlockedNR08);
 		if (Player_Query_Current_Scene() == kSceneNR05) {
 			Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
 		}
@@ -262,9 +262,10 @@ void SceneScriptNR05::talkToBartender() {
 }
 
 void SceneScriptNR05::talkToEarlyQ() {
-	if (Actor_Query_Goal_Number(kActorEarlyQ) == 220) {
-		Actor_Set_Goal_Number(kActorEarlyQ, 221);
+	if (Actor_Query_Goal_Number(kActorEarlyQ) == kGoalEarlyQNR05Wait) {
+		Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR05WillLeave);
 	}
+
 	Actor_Face_Actor(kActorMcCoy, kActorEarlyQ, true);
 	Actor_Face_Actor(kActorEarlyQ, kActorMcCoy, true);
 
@@ -340,7 +341,7 @@ void SceneScriptNR05::talkToEarlyQ() {
 	case 910: // BLOND WOMAN
 		Actor_Says(kActorMcCoy, 3515, 14);
 		Actor_Modify_Friendliness_To_Other(kActorEarlyQ, kActorMcCoy, -1);
-		if (Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)) {
+		if (Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)) { // cut content? this clue is unobtanium
 			Actor_Says(kActorEarlyQ, 580, 12);
 			Actor_Says(kActorMcCoy, 3560, 13);
 			Actor_Says(kActorEarlyQ, 590, 16);
@@ -387,7 +388,7 @@ void SceneScriptNR05::playNextMusic() {
 	if (Music_Is_Playing()) {
 		Music_Adjust(51, 0, 2);
 	} else {
-		int track = Global_Variable_Query(kVariableNR05Music);
+		int track = Global_Variable_Query(kVariableEarlyQBackMusic);
 		if (track == 0) {
 			Music_Play(16, 61, -80, 2, -1, 0, 0);
 		} else if (track == 1) {
@@ -399,7 +400,7 @@ void SceneScriptNR05::playNextMusic() {
 		if (track > 2) {
 			track = 0;
 		}
-		Global_Variable_Set(kVariableNR05Music, track);
+		Global_Variable_Set(kVariableEarlyQBackMusic, track);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/nr06.cpp b/engines/bladerunner/script/scene/nr06.cpp
index 4d1e7eb..815a685 100644
--- a/engines/bladerunner/script/scene/nr06.cpp
+++ b/engines/bladerunner/script/scene/nr06.cpp
@@ -25,34 +25,36 @@
 namespace BladeRunner {
 
 void SceneScriptNR06::InitializeScene() {
-	sub_401BAC();
-	if (Game_Flag_Query(442)) {
-		Setup_Scene_Information(48.0f, -71.88f, -26.0f, 782);
+	playNextMusic();
+	if (Game_Flag_Query(kFlagNR07toNR06)) {
+		Setup_Scene_Information( 48.0f, -71.88f,  -26.0f, 782);
 	} else {
-		Setup_Scene_Information(-36.0f, 0.37f, -373.0f, 592);
+		Setup_Scene_Information(-36.0f,   0.37f, -373.0f, 592);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 533, 234, 592, 414, 1);
 	Scene_Exit_Add_2D_Exit(1, 238, 137, 337, 322, 0);
+
 	Ambient_Sounds_Add_Looping_Sound(111, 25, 0, 1);
-	Ambient_Sounds_Add_Sound(252, 3, 60, 8, 12, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(254, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(255, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(256, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(257, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(258, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(259, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(260, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(261, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(262, 3, 60, 8, 8, 0, 0, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(182, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(184, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(185, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(186, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(188, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(189, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(191, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(192, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(195, 5, 70, 8, 8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(252, 3, 60, 8, 12,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(254, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(255, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(256, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(257, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(258, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(259, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(260, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(261, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(262, 3, 60, 8,  8,    0,   0, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(182, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(184, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(185, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(186, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(188, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(189, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(191, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(192, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(195, 5, 70, 8,  8, -100, 100, -101, -101, 0, 0);
 }
 
 void SceneScriptNR06::SceneLoaded() {
@@ -81,21 +83,22 @@ bool SceneScriptNR06::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptNR06::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 48.0f, -71.88f, -26.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 48.0f, -71.88f, -26.0f, 0, true, false, 0)) {
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
-			Game_Flag_Set(441);
+			Game_Flag_Set(kFlagNR06toNR07);
 			Set_Enter(kSetNR07, kSceneNR07);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -137.0f, -71.88f, -243.0f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -137.0f, -71.88f, -243.0f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 95, false);
 			Loop_Actor_Travel_Stairs(kActorMcCoy, 8, 1, kAnimationModeIdle);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -36.0f, 0.37f, -373.0f, 0, 0, false, 0);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -36.0f, 0.37f, -373.0f, 0, false, false, 0);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(439);
+			Game_Flag_Set(kFlagNR06toNR08);
 			Set_Enter(kSetNR05_NR08, kSceneNR08);
 		}
 		return true;
@@ -109,7 +112,7 @@ bool SceneScriptNR06::ClickedOn2DRegion(int region) {
 
 void SceneScriptNR06::SceneFrameAdvanced(int frame) {
 	if (!Music_Is_Playing()) {
-		sub_401BAC();
+		playNextMusic();
 	}
 	//return false;
 }
@@ -118,20 +121,20 @@ void SceneScriptNR06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptNR06::PlayerWalkedIn() {
-	if (Game_Flag_Query(442)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -3.0f, -71.88f, -26.0f, 0, 0, false, 0);
-		Game_Flag_Reset(442);
+	if (Game_Flag_Query(kFlagNR07toNR06)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -3.0f, -71.88f, -26.0f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagNR07toNR06);
 	} else {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -81.72f, 0.12f, -323.49f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -81.72f, 0.12f, -323.49f, 0, false, false, 0);
 		Actor_Face_Heading(kActorMcCoy, 600, false);
-		Loop_Actor_Travel_Stairs(kActorMcCoy, 8, 0, kAnimationModeIdle);
-		Game_Flag_Reset(440);
+		Loop_Actor_Travel_Stairs(kActorMcCoy, 8, false, kAnimationModeIdle);
+		Game_Flag_Reset(kFlagNR08toNR06);
 	}
 	//return false;
 }
 
 void SceneScriptNR06::PlayerWalkedOut() {
-	if (Game_Flag_Query(441)) {
+	if (Game_Flag_Query(kFlagNR06toNR07)) {
 		Music_Stop(2);
 	}
 }
@@ -139,23 +142,23 @@ void SceneScriptNR06::PlayerWalkedOut() {
 void SceneScriptNR06::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptNR06::sub_401BAC() {
+void SceneScriptNR06::playNextMusic() {
 	if (Music_Is_Playing()) {
 		Music_Adjust(31, 80, 2);
 	} else {
-		int v0 = Global_Variable_Query(54);
-		if (v0 == 0) {
+		int track = Global_Variable_Query(kVariableEarlyQBackMusic);
+		if (track == 0) {
 			Music_Play(16, 61, -80, 2, -1, 0, 0);
-		} else if (v0 == 1) {
+		} else if (track == 1) {
 			Music_Play(15, 41, -80, 2, -1, 0, 0);
-		} else if (v0 == 2) {
+		} else if (track == 2) {
 			Music_Play(7, 41, -80, 2, -1, 0, 0);
 		}
-		v0++;
-		if (v0 > 2) {
-			v0 = 0;
+		track++;
+		if (track > 2) {
+			track = 0;
 		}
-		Global_Variable_Set(54, v0);
+		Global_Variable_Set(kVariableEarlyQBackMusic, track);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/nr07.cpp b/engines/bladerunner/script/scene/nr07.cpp
index 1f08131..4ba1438 100644
--- a/engines/bladerunner/script/scene/nr07.cpp
+++ b/engines/bladerunner/script/scene/nr07.cpp
@@ -26,7 +26,9 @@ namespace BladeRunner {
 
 void SceneScriptNR07::InitializeScene() {
 	Setup_Scene_Information(-110.0f, -73.5f, -193.0f, 554);
+
 	Scene_Exit_Add_2D_Exit(0, 429, 137, 506, 251, 0);
+
 	Ambient_Sounds_Add_Looping_Sound(111, 25, 0, 1);
 }
 
@@ -40,72 +42,84 @@ bool SceneScriptNR07::MouseClick(int x, int y) {
 }
 
 bool SceneScriptNR07::ClickedOn3DObject(const char *objectName, bool a2) {
-	Actor_Set_Goal_Number(kActorHanoi, 201);
+	Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiDefault);
+
 	if (Object_Query_Click("VASE", objectName)) {
-		sub_401C60();
+		clickedOnVase();
 	}
-	Actor_Set_Goal_Number(kActorHanoi, 200);
+
+	Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiResetTimer);
 	return false;
 }
 
 bool SceneScriptNR07::ClickedOnActor(int actorId) {
 	if (actorId == kActorDektora) {
-		if (Actor_Query_Goal_Number(kActorHolloway) <= 239) {
-			Actor_Set_Goal_Number(kActorHanoi, 201);
-			Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
-			Dialogue_Menu_Clear_List();
-			if (Game_Flag_Query(638)) {
-				DM_Add_To_List_Never_Repeat_Once_Selected(1100, -1, 3, 8);
-				DM_Add_To_List_Never_Repeat_Once_Selected(1110, 8, -1, -1);
-				if (Actor_Clue_Query(kActorMcCoy, kClueSuspectDektora)) {
-					DM_Add_To_List_Never_Repeat_Once_Selected(1120, 3, 6, 7);
-				}
-				if (Actor_Clue_Query(kActorMcCoy, kClueCarRegistration1)) {
-					DM_Add_To_List_Never_Repeat_Once_Selected(1130, 3, 5, 7);
-				}
-				if (Game_Flag_Query(510)) {
-					DM_Add_To_List_Never_Repeat_Once_Selected(1140, 1, 4, 7);
-				}
-			} else {
-				DM_Add_To_List_Never_Repeat_Once_Selected(1080, 3, 5, 7);
-				DM_Add_To_List_Never_Repeat_Once_Selected(1090, 7, 5, 4);
+		if (Actor_Query_Goal_Number(kActorHolloway) < kGoalHollowayGoToNR07) { // Holloway is not yet comming
+			return true;
+		}
+
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiResetTimer);
+		Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
+		Dialogue_Menu_Clear_List();
+		if (Game_Flag_Query(kFlagNR07McCoyIsCop)) {
+			DM_Add_To_List_Never_Repeat_Once_Selected(1100, -1, 3, 8); // VOIGT-KAMPFF
+			DM_Add_To_List_Never_Repeat_Once_Selected(1110, 8, -1, -1); // CRYSTAL
+			if (Actor_Clue_Query(kActorMcCoy, kClueSuspectDektora)) { // cut content? clue is not obtainable
+				DM_Add_To_List_Never_Repeat_Once_Selected(1120, 3, 6, 7); // MOONBUS
 			}
-			Dialogue_Menu_Add_DONE_To_List(1150);
-			Dialogue_Menu_Appear(320, 240);
-			int answer = Dialogue_Menu_Query_Input();
-			Dialogue_Menu_Disappear();
-			switch (answer) {
-			case 1140:
-				sub_4028FC();
-				break;
-			case 1130:
-				sub_402738();
-				break;
-			case 1120:
-				sub_402614();
-				break;
-			case 1110:
-				sub_402510();
-				break;
-			case 1100:
-				sub_402284();
-				break;
-			case 1090:
-				Actor_Says(kActorMcCoy, 3650, 13);
-				Actor_Says(kActorDektora, 630, 30);
-				Actor_Says(kActorMcCoy, 3655, 16);
-				Actor_Says(kActorDektora, 640, 31);
-				break;
-			case 1080:
-				sub_401EF4();
-				break;
-			default:
-				break;
+			if (Actor_Clue_Query(kActorMcCoy, kClueCarRegistration1)) {
+				DM_Add_To_List_Never_Repeat_Once_Selected(1130, 3, 5, 7); // BLACK SEDAN
 			}
-			Actor_Set_Goal_Number(kActorHanoi, 200);
-			return false;
+			if (Game_Flag_Query(kFlagNotUsed510)) { // cut content? flag is never set
+				DM_Add_To_List_Never_Repeat_Once_Selected(1140, 1, 4, 7); // SCORPIONS
+			}
+		} else {
+			DM_Add_To_List_Never_Repeat_Once_Selected(1080, 3, 5, 7); // BELT
+			DM_Add_To_List_Never_Repeat_Once_Selected(1090, 7, 5, 4); // EARLY-Q
 		}
-		return true;
+		Dialogue_Menu_Add_DONE_To_List(1150); // DONE
+
+		Dialogue_Menu_Appear(320, 240);
+		int answer = Dialogue_Menu_Query_Input();
+		Dialogue_Menu_Disappear();
+
+		switch (answer) {
+		case 1080: // BELT
+			talkAboutBelt1();
+			break;
+
+		case 1090: // EARLY-Q
+			Actor_Says(kActorMcCoy, 3650, 13);
+			Actor_Says(kActorDektora, 630, 30);
+			Actor_Says(kActorMcCoy, 3655, 16);
+			Actor_Says(kActorDektora, 640, 31);
+			break;
+
+		case 1100: // VOIGT-KAMPFF
+			talkAboutVoightKampff();
+			break;
+
+		case 1110: // CRYSTAL
+			talkAboutSteele();
+			break;
+
+		case 1120: // MOONBUS
+			talkAboutMoonbus();
+			break;
+
+		case 1130: // BLACK SEDAN
+			talkAboutBlackSedan();
+			break;
+
+		case 1140: // SCORPIONS
+			talkAboutScorpions();
+			break;
+
+		default:
+			break;
+		}
+
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiDefault);
 	}
 	return false;
 }
@@ -116,11 +130,11 @@ bool SceneScriptNR07::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptNR07::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -102.0f, -73.5f, -233.0f, 0, 1, false, 0)) {
-			Actor_Set_Goal_Number(kActorHanoi, 201);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -102.0f, -73.5f, -233.0f, 0, true, false, 0)) {
+			Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiResetTimer);
 			Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
-			Game_Flag_Set(442);
+			Game_Flag_Set(kFlagNR07toNR06);
 			Set_Enter(kSetNR06, kSceneNR06);
 		}
 		return true;
@@ -139,26 +153,31 @@ void SceneScriptNR07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptNR07::PlayerWalkedIn() {
-	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -110.0f, -73.5f, -169.0f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -110.0f, -73.5f, -169.0f, 0, false, false, 0);
+
 	if (Actor_Query_In_Set(kActorDektora, kSetNR07)) {
-		if (Game_Flag_Query(508)) {
-			Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -2);
-			Actor_Says(kActorDektora, 530, 31);
-		} else {
-			Game_Flag_Set(508);
+		if (!Game_Flag_Query(kFlagNR07Entered)) {
+			Game_Flag_Set(kFlagNR07Entered);
+
 			if (!Actor_Clue_Query(kActorDektora, kClueMcCoyIsABladeRunner)) {
 				Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, 5);
-			} else if (Actor_Clue_Query(kActorMcCoy, kClueMcCoyWarnedIzo) || Actor_Clue_Query(kActorMcCoy, kClueMcCoyHelpedIzoIzoIsAReplicant)) {
+			} else if (Actor_Clue_Query(kActorMcCoy, kClueMcCoyWarnedIzo)
+			        || Actor_Clue_Query(kActorMcCoy, kClueMcCoyHelpedIzoIzoIsAReplicant)
+			) {
 				Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, 10);
 			}
+
 			Actor_Says(kActorDektora, 500, 30);
 			Actor_Says(kActorMcCoy, 3585, 14);
 			Actor_Says(kActorDektora, 510, 30);
 			Actor_Start_Speech_Sample(kActorMcCoy, 3590);
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -112.0f, -73.0f, -89.0f, 525, 0, false, 0);
-			Actor_Says(kActorDektora, 520, 53);
+			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -112.0f, -73.0f, -89.0f, 525, false, false, 0);
+			Actor_Says(kActorDektora, 520, kAnimationModeSit);
+		} else {
+			Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -2);
+			Actor_Says(kActorDektora, 530, 31);
 		}
-		Actor_Set_Goal_Number(kActorHanoi, 200);
+		Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiDefault);
 	}
 	//return false;
 }
@@ -170,27 +189,28 @@ void SceneScriptNR07::PlayerWalkedOut() {
 void SceneScriptNR07::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptNR07::sub_4018D4() {
-	Actor_Set_Goal_Number(kActorHanoi, 201);
+void SceneScriptNR07::dektoraRunAway() {
+	Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiResetTimer);
 	Player_Loses_Control();
 	Actor_Set_At_XYZ(kActorDektora, -136.0f, -73.0f, -18.0f, 300);
 	Actor_Change_Animation_Mode(kActorDektora, 71);
 	Actor_Change_Animation_Mode(kActorMcCoy, 21);
-	Loop_Actor_Walk_To_XYZ(kActorDektora, -102.0f, -73.5f, -233.0f, 0, 0, true, 0);
+	Loop_Actor_Walk_To_XYZ(kActorDektora, -102.0f, -73.5f, -233.0f, 0, false, true, 0);
+
 	if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
 		Actor_Set_Goal_Number(kActorDektora, 245);
 	} else {
 		Actor_Set_Goal_Number(kActorDektora, 295);
-		Game_Flag_Set(591);
+		Game_Flag_Set(kFlagDektoraRanAway);
 		Actor_Put_In_Set(kActorDektora, kSetFreeSlotA);
 		Actor_Set_At_Waypoint(kActorDektora, 33, 0);
 	}
 	Player_Gains_Control();
 }
 
-void SceneScriptNR07::sub_401A10() {
+void SceneScriptNR07::callHolloway() {
 	Scene_Exits_Disable();
-	Actor_Set_Goal_Number(kActorHanoi, 201);
+	Actor_Set_Goal_Number(kActorHanoi, kGoalHanoiResetTimer);
 	Actor_Says_With_Pause(kActorDektora, 930, 1.0f, 30);
 	Actor_Says_With_Pause(kActorDektora, 910, 1.0f, 30);
 	Actor_Face_Object(kActorDektora, "VANITY", true);
@@ -202,26 +222,26 @@ void SceneScriptNR07::sub_401A10() {
 	Actor_Change_Animation_Mode(kActorDektora, kAnimationModeCombatIdle);
 	Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
 	Actor_Says(kActorMcCoy, 3760, 19);
-	Actor_Says(kActorDektora, 960, 53);
-	Actor_Says(kActorDektora, 920, 53);
-	Actor_Says(kActorMcCoy, 3780, 0);
-	Actor_Says(kActorDektora, 970, 53);
+	Actor_Says(kActorDektora, 960, kAnimationModeSit);
+	Actor_Says(kActorDektora, 920, kAnimationModeSit);
+	Actor_Says(kActorMcCoy, 3780, kAnimationModeIdle);
+	Actor_Says(kActorDektora, 970, kAnimationModeSit);
 	Actor_Voice_Over(1710, kActorVoiceOver);
 	Actor_Voice_Over(1720, kActorVoiceOver);
 	Actor_Voice_Over(1730, kActorVoiceOver);
 	Actor_Set_Goal_Number(kActorHolloway, kGoalHollowayGoToNR07);
 }
 
-void SceneScriptNR07::sub_401C60() {
-	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, 0, false, 0);
+void SceneScriptNR07::clickedOnVase() {
+	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, false, false, 0);
 	Actor_Face_Object(kActorMcCoy, "VASE", true);
 	if (Actor_Query_Is_In_Current_Set(kActorDektora)) {
 		if (!Actor_Clue_Query(kActorMcCoy, kClueDektoraInterview3)) {
 			Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview3, true, -1);
-			int v0 = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy);
-			if (v0 > 50) {
+			int friendliness = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy);
+			if (friendliness > 50) {
 				Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, 2);
-			} else if (v0 <= 50) {
+			} else if (friendliness <= 50) {
 				Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -2);
 			}
 			Actor_Says(kActorMcCoy, 3600, 19);
@@ -230,19 +250,19 @@ void SceneScriptNR07::sub_401C60() {
 			Actor_Says(kActorDektora, 560, 31);
 			Actor_Says(kActorMcCoy, 3610, 19);
 		}
-	} else if (Actor_Clue_Query(kActorMcCoy, kClueDektorasCard)) {
-		Actor_Says(kActorMcCoy, 8585, 14);
-	} else {
+	} else if (!Actor_Clue_Query(kActorMcCoy, kClueDektorasCard)) {
 		Actor_Clue_Acquire(kActorMcCoy, kClueDektorasCard, true, -1);
 		Loop_Actor_Walk_To_Scene_Object(kActorMcCoy, "VASE", 100, true, false);
 		Actor_Change_Animation_Mode(kActorMcCoy, 23);
 		Item_Pickup_Spin_Effect(935, 526, 268);
 		Actor_Voice_Over(1690, kActorVoiceOver);
 		Actor_Voice_Over(1700, kActorVoiceOver);
+	} else {
+		Actor_Says(kActorMcCoy, 8585, 14);
 	}
 }
 
-void SceneScriptNR07::sub_401EF4() {
+void SceneScriptNR07::talkAboutBelt1() {
 	Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview2, true, -1);
 	Actor_Says(kActorMcCoy, 3625, 19);
 	Actor_Says(kActorDektora, 570, 30);
@@ -251,43 +271,57 @@ void SceneScriptNR07::sub_401EF4() {
 	Actor_Says_With_Pause(kActorDektora, 590, 1.0f, 30);
 	Actor_Says(kActorDektora, 600, 30);
 	Actor_Start_Speech_Sample(kActorMcCoy, 3640);
-	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, false, false, 0);
 	Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
 	Actor_Face_Actor(kActorDektora, kActorMcCoy, true);
-	Game_Flag_Set(638);
+
+	Game_Flag_Set(kFlagNR07McCoyIsCop);
 	Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyBelt, true, kActorDektora);
-	int v0 = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy);
-	if (!Game_Flag_Query(kFlagDektoraIsReplicant) && v0 < 40) {
-		sub_4018D4();
+
+	int friendliness = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy);
+	if (!Game_Flag_Query(kFlagDektoraIsReplicant)
+	 &&  friendliness < 40
+	) {
+		dektoraRunAway();
 		return;
 	}
-	if (v0 < 36) {
-		sub_401A10();
+
+	if (friendliness < 36) {
+		callHolloway();
 		return;
 	}
-	sub_4020F0();
+
+	talkAboutBelt2();
 }
 
-void SceneScriptNR07::sub_4020F0() {
-	if (Actor_Clue_Query(kActorDektora, kClueMcCoysDescription) && Actor_Clue_Query(kActorDektora, kClueMcCoyIsABladeRunner)) {
+void SceneScriptNR07::talkAboutBelt2() {
+	if (Actor_Clue_Query(kActorDektora, kClueMcCoysDescription)
+	 && Actor_Clue_Query(kActorDektora, kClueMcCoyIsABladeRunner)
+	) {
 		Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -1);
 	}
+
 	Actor_Says(kActorDektora, 610, 31);
 	Actor_Says(kActorMcCoy, 3645, 12);
 	Actor_Says(kActorDektora, 620, 30);
-	int v0 = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy);
-	if (!Game_Flag_Query(kFlagDektoraIsReplicant) && v0 < 40) {
-		sub_4018D4();
+
+	int friendliness = Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy);
+	if (!Game_Flag_Query(kFlagDektoraIsReplicant)
+	 &&  friendliness < 40
+	) {
+		dektoraRunAway();
 		return;
 	}
-	if (v0 < 36) {
-		sub_401A10();
+
+	if (friendliness < 36) {
+		callHolloway();
 		return;
 	}
+
 	Actor_Face_Object(kActorDektora, "VANITY", true);
 }
 
-void SceneScriptNR07::sub_402284() {
+void SceneScriptNR07::talkAboutVoightKampff() {
 	Actor_Clue_Acquire(kActorMcCoy, kClueDektoraInterview1, true, -1);
 	Actor_Start_Speech_Sample(kActorMcCoy, 3660);
 	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, 0, false, 0);
@@ -308,45 +342,50 @@ void SceneScriptNR07::sub_402284() {
 	Actor_Says(kActorDektora, 730, 30);
 	Actor_Says(kActorMcCoy, 3685, 13);
 	Voight_Kampff_Activate(kActorDektora, 40);
+
 	if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
-		sub_401A10();
+		callHolloway();
 	} else {
-		sub_4018D4();
+		dektoraRunAway();
 	}
 }
 
-void SceneScriptNR07::sub_402510() {
+void SceneScriptNR07::talkAboutSteele() {
 	Actor_Says(kActorMcCoy, 3690, 14);
 	Actor_Start_Speech_Sample(kActorDektora, 750);
-	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, 0, false, 0);
+	Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, false, false, 0);
 	Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
 	Actor_Face_Actor(kActorDektora, kActorMcCoy, true);
 	Actor_Says(kActorMcCoy, 3695, 15);
 	Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, 5);
+
 	if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
-		sub_401A10();
+		callHolloway();
 	} else {
-		sub_4018D4();
+		dektoraRunAway();
 	}
 }
 
-void SceneScriptNR07::sub_402614() {
+void SceneScriptNR07::talkAboutMoonbus() {
+	// cut content?
+
 	Actor_Says(kActorMcCoy, 3705, 19);
-	Actor_Says(kActorDektora, 760, 53);
+	Actor_Says(kActorDektora, 760, kAnimationModeSit);
+
 	if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
 		Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -5);
 		Actor_Says(kActorMcCoy, 3710, 18);
-		sub_401A10();
+		callHolloway();
 	} else {
 		Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -3);
 		Actor_Start_Speech_Sample(kActorMcCoy, 3710);
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, 0, false, 0);
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -109.0f, -73.0f, -89.0f, 0, false, false, 0);
 		Actor_Face_Actor(kActorMcCoy, kActorDektora, true);
-		sub_4018D4();
+		dektoraRunAway();
 	}
 }
 
-void SceneScriptNR07::sub_402738() {
+void SceneScriptNR07::talkAboutBlackSedan() {
 	Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -3);
 	Actor_Says(kActorMcCoy, 3615, 16);
 	Actor_Says(kActorDektora, 770, 30);
@@ -356,20 +395,21 @@ void SceneScriptNR07::sub_402738() {
 	Actor_Says(kActorMcCoy, 3725, 18);
 	Actor_Says(kActorDektora, 800, 30);
 	Actor_Says_With_Pause(kActorMcCoy, 3730, 2.0f, 13);
-	Actor_Says_With_Pause(kActorDektora, 810, 1.0f, 53);
+	Actor_Says_With_Pause(kActorDektora, 810, 1.0f, kAnimationModeSit);
 	Actor_Says(kActorDektora, 820, 30);
 	Actor_Says(kActorMcCoy, 3735, 14);
 	Actor_Says(kActorDektora, 830, 31);
 	Actor_Says(kActorMcCoy, 3740, 19);
 }
 
-void SceneScriptNR07::sub_4028FC() {
+void SceneScriptNR07::talkAboutScorpions() {
+	// cut content?
 	Actor_Says(kActorMcCoy, 3620, 19);
 	Actor_Says(kActorDektora, 840, 30);
 	Actor_Says(kActorMcCoy, 3745, 9);
 	Actor_Says_With_Pause(kActorDektora, 850, 1.0f, 30);
 	Actor_Says(kActorDektora, 860, 30);
-	Actor_Says(kActorDektora, 870, 53);
+	Actor_Says(kActorDektora, 870, kAnimationModeSit);
 	Actor_Says(kActorMcCoy, 3750, 11);
 	Actor_Says(kActorDektora, 880, 30);
 	Actor_Says(kActorMcCoy, 3755, 16);
diff --git a/engines/bladerunner/script/scene/nr08.cpp b/engines/bladerunner/script/scene/nr08.cpp
index 47d863b..dd4c0e9 100644
--- a/engines/bladerunner/script/scene/nr08.cpp
+++ b/engines/bladerunner/script/scene/nr08.cpp
@@ -34,25 +34,27 @@ void SceneScriptNR08::InitializeScene() {
 		if (Actor_Query_Goal_Number(kActorDektora) == 210) {
 			Music_Stop(1);
 		}
-	} else if (Game_Flag_Query(439)) {
-		Setup_Scene_Information(-724.7f, 0.0f, 384.24f, 1000);
-		Game_Flag_Reset(439);
-	} else if (Game_Flag_Query(615)) {
-		Setup_Scene_Information(-1663.33f, 0.65f, 342.84f, 330);
-		Game_Flag_Reset(615);
+	} else if (Game_Flag_Query(kFlagNR06toNR08)) {
+		Setup_Scene_Information(  -724.7f,  0.0f, 384.24f, 1000);
+		Game_Flag_Reset(kFlagNR06toNR08);
+	} else if (Game_Flag_Query(kFlagNR09toNR08)) {
+		Setup_Scene_Information(-1663.33f, 0.65f, 342.84f,  330);
+		Game_Flag_Reset(kFlagNR09toNR08);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 610, 0, 639, 479, 1);
 	if (Actor_Query_Goal_Number(kActorDektora) != 210) {
-		Scene_Exit_Add_2D_Exit(1, 0, 309, 30, 398, 3);
+		Scene_Exit_Add_2D_Exit(1,   0, 309,  30, 398, 3);
 		Scene_Exit_Add_2D_Exit(2, 520, 330, 556, 386, 0);
 	}
+
 	Ambient_Sounds_Add_Looping_Sound(280, 50, 38, 0);
-	Ambient_Sounds_Add_Sound(252, 3, 60, 14, 14, 60, 90, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(254, 3, 60, 14, 14, 60, 90, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(255, 3, 60, 14, 14, 60, 90, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(256, 3, 60, 14, 14, 60, 90, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(257, 3, 60, 14, 14, 60, 90, -101, -101, 0, 0);
-	Ambient_Sounds_Add_Sound(258, 3, 60, 14, 14, 60, 90, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(252, 3, 60, 14, 14,   60,  90, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(254, 3, 60, 14, 14,   60,  90, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(255, 3, 60, 14, 14,   60,  90, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(256, 3, 60, 14, 14,   60,  90, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(257, 3, 60, 14, 14,   60,  90, -101, -101, 0, 0);
+	Ambient_Sounds_Add_Sound(258, 3, 60, 14, 14,   60,  90, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(259, 3, 60, 16, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(260, 3, 60, 16, 16, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(261, 3, 60, 16, 16, -100, 100, -101, -101, 0, 0);
@@ -66,6 +68,7 @@ void SceneScriptNR08::InitializeScene() {
 	Ambient_Sounds_Add_Sound(191, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(192, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(195, 5, 70, 12, 12, -100, 100, -101, -101, 0, 0);
+
 	Scene_Loop_Set_Default(1);
 }
 
@@ -95,28 +98,30 @@ bool SceneScriptNR08::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptNR08::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1102.88f, 0.0f, 107.43f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1102.88f, 0.0f, 107.43f, 0, true, false, 0)) {
 			Game_Flag_Set(kFlagNR08toNR05);
 			Set_Enter(kSetNR05_NR08, kSceneNR05);
 		}
 		return true;
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -724.7f, 0.0f, 384.24f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -724.7f, 0.0f, 384.24f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 505, false);
 			Loop_Actor_Travel_Stairs(kActorMcCoy, 4, 1, kAnimationModeIdle);
-			Game_Flag_Set(440);
+			Game_Flag_Set(kFlagNR08toNR06);
 			Set_Enter(kSetNR06, kSceneNR06);
 		}
 		return true;
 	}
+
 	if (exitId == 2) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1663.33f, 0.65f, 342.84f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -1663.33f, 0.65f, 342.84f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 831, false);
 			Footstep_Sound_Override_On(2);
 			Loop_Actor_Travel_Stairs(kActorMcCoy, 6, 1, kAnimationModeIdle);
 			Footstep_Sound_Override_Off();
-			Game_Flag_Set(614);
+			Game_Flag_Set(kFlagNR08toNR09);
 			Set_Enter(kSetNR09, kSceneNR09);
 		}
 	}
@@ -129,37 +134,48 @@ bool SceneScriptNR08::ClickedOn2DRegion(int region) {
 
 void SceneScriptNR08::SceneFrameAdvanced(int frame) {
 	if (!Music_Is_Playing()) {
-		sub_4021B4();
+		playNextMusic();
 	}
+
 	Set_Fade_Color(0, 0, 0);
-	if (frame >= 76 && frame < 91) {
+
+	if (frame >= 76
+	 && frame < 91
+	) {
 		Set_Fade_Density((frame - 76) / 14.0f);
 		Music_Stop(3);
 		Ambient_Sounds_Play_Sound(566, 27, 0, 99, 0);
-	} else if (frame >= 91 && frame < 120) {
+	} else if (frame >= 91
+	        && frame < 120
+	) {
 		Actor_Set_Invisible(kActorMcCoy, true);
 		Set_Fade_Density(1.0f);
-	} else if (frame >= 120 && frame < 135) {
+	} else if (frame >= 120
+	        && frame < 135
+	) {
 		Set_Fade_Density((134 - frame) / 14.0f);
 		Music_Play(7, 61, 0, 1, -1, 0, 0);
 	} else {
 		Actor_Set_Invisible(kActorMcCoy, false);
 		Set_Fade_Density(0.0f);
 	}
+
 	if (Game_Flag_Query(651) && !Game_Flag_Query(636)) {
 		Game_Flag_Set(636);
 		Scene_Exits_Disable();
 		Scene_Loop_Set_Default(1);
 		Scene_Loop_Start_Special(kSceneLoopModeOnce, 3, true);
 	}
+
 	if (frame == 95) {
 		Actor_Put_In_Set(kActorDektora, kSetFreeSlotA);
 		Actor_Set_At_Waypoint(kActorDektora, 33, 0);
-		Actor_Change_Animation_Mode(kActorDektora, 0);
+		Actor_Change_Animation_Mode(kActorDektora, kAnimationModeIdle);
 		Actor_Set_Goal_Number(kActorDektora, 200);
-		Scene_Exit_Add_2D_Exit(1, 0, 309, 30, 398, 3);
+		Scene_Exit_Add_2D_Exit(1,   0, 309,  30, 398, 3);
 		Scene_Exit_Add_2D_Exit(2, 520, 330, 556, 386, 0);
 	}
+
 	if (frame == 130) {
 		Scene_Exits_Enable();
 	}
@@ -170,12 +186,14 @@ void SceneScriptNR08::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptNR08::PlayerWalkedIn() {
-	if (Actor_Query_Goal_Number(kActorDektora) != 210 || Game_Flag_Query(729)) {
-		Music_Adjust(51, 0, 2);
-	} else {
-		Game_Flag_Set(729);
+	if (Actor_Query_Goal_Number(kActorDektora) == 210
+	 && !Game_Flag_Query(kFlagNR08DektoraShow)
+	) {
+		Game_Flag_Set(kFlagNR08DektoraShow);
 		Ambient_Sounds_Play_Sound(566, 27, 0, 99, 0);
 		Outtake_Play(kOuttakeDektora, true, -1);
+	} else {
+		Music_Adjust(51, 0, 2);
 	}
 
 	if (Actor_Query_Goal_Number(kActorDektora) == 245) {
@@ -217,25 +235,25 @@ void SceneScriptNR08::PlayerWalkedOut() {
 void SceneScriptNR08::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptNR08::sub_4021B4() {
+void SceneScriptNR08::playNextMusic() {
 	if (Music_Is_Playing()) {
 		Music_Adjust(51, 0, 2);
 	} else if (Actor_Query_Goal_Number(kActorDektora) == 210) {
 		Music_Play(6, 61, 0, 1, -1, 0, 0);
 	} else {
-		int v0 = Global_Variable_Query(54);
-		if (v0 == 0) {
+		int track = Global_Variable_Query(kVariableEarlyQBackMusic);
+		if (track == 0) {
 			Music_Play(16, 61, -80, 2, -1, 0, 0);
-		} else if (v0 == 1) {
+		} else if (track == 1) {
 			Music_Play(15, 41, -80, 2, -1, 0, 0);
-		} else if (v0 == 2) {
+		} else if (track == 2) {
 			Music_Play(7, 41, -80, 2, -1, 0, 0);
 		}
-		v0++;
-		if (v0 > 2) {
-			v0 = 0;
+		track++;
+		if (track > 2) {
+			track = 0;
 		}
-		Global_Variable_Set(54, v0);
+		Global_Variable_Set(kVariableEarlyQBackMusic, track);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/nr09.cpp b/engines/bladerunner/script/scene/nr09.cpp
index bddf91d..233f58b 100644
--- a/engines/bladerunner/script/scene/nr09.cpp
+++ b/engines/bladerunner/script/scene/nr09.cpp
@@ -25,22 +25,24 @@
 namespace BladeRunner {
 
 void SceneScriptNR09::InitializeScene() {
-	if (Game_Flag_Query(476)) {
+	if (Game_Flag_Query(kFlagNR10toNR09)) {
 		if (!Game_Flag_Query(640)) {
 			Ambient_Sounds_Adjust_Looping_Sound(452, 22, 100, 2);
 		}
-		Game_Flag_Reset(476);
+		Game_Flag_Reset(kFlagNR10toNR09);
 		Setup_Scene_Information(-556.07f, 0.35f, 399.04f, 440);
 	} else {
 		if (!Game_Flag_Query(640)) {
 			Ambient_Sounds_Add_Looping_Sound(452, 22, 100, 1);
 		}
-		Setup_Scene_Information(-704.07f, 0.35f, 663.04f, 0);
+		Setup_Scene_Information(-704.07f, 0.35f, 663.04f,   0);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 400, 100, 440, 280, 1);
 	Scene_Exit_Add_2D_Exit(1, 0, 0, 30, 479, 3);
+
 	Ambient_Sounds_Add_Looping_Sound(205, 22, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(71, 33, 0, 1);
+	Ambient_Sounds_Add_Looping_Sound( 71, 33, 0, 1);
 	Ambient_Sounds_Add_Sound(303, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(304, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(305, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
@@ -73,18 +75,19 @@ bool SceneScriptNR09::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptNR09::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -564.07f, 0.35f, 399.04f, 0, 1, false, 0)) {
-			Game_Flag_Set(475);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -564.07f, 0.35f, 399.04f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagNR09toNR10);
 			Set_Enter(kSetNR10, kSceneNR10);
 			return true;
 		}
 	}
+
 	if (exitId == 1) {
-		int v1 = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -704.07f, 0.35f, 663.04f, 0, 1, false, 0);
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 		Ambient_Sounds_Remove_All_Looping_Sounds(1);
+		int v1 = Loop_Actor_Walk_To_XYZ(kActorMcCoy, -704.07f, 0.35f, 663.04f, 0, true, false, 0);
 		if (!v1) {
-			Game_Flag_Set(615);
+			Game_Flag_Set(kFlagNR09toNR08);
 			Set_Enter(kSetNR05_NR08, kSceneNR08);
 			return true;
 		}
@@ -98,7 +101,7 @@ bool SceneScriptNR09::ClickedOn2DRegion(int region) {
 
 void SceneScriptNR09::SceneFrameAdvanced(int frame) {
 	if (!Music_Is_Playing()) {
-		sub_40172C();
+		playNextMusic();
 	}
 }
 
@@ -106,15 +109,15 @@ void SceneScriptNR09::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 }
 
 void SceneScriptNR09::PlayerWalkedIn() {
-	if (Game_Flag_Query(614)) {
-		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -704.07f, 0.35f, 623.04f, 0, 0, false, 0);
-		Game_Flag_Reset(614);
+	if (Game_Flag_Query(kFlagNR08toNR09)) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -704.07f, 0.35f, 623.04f, 0, false, false, 0);
+		Game_Flag_Reset(kFlagNR08toNR09);
 	}
 	//return false;
 }
 
 void SceneScriptNR09::PlayerWalkedOut() {
-	if (Game_Flag_Query(475)) {
+	if (Game_Flag_Query(kFlagNR09toNR10)) {
 		Music_Stop(2);
 	}
 }
@@ -122,23 +125,23 @@ void SceneScriptNR09::PlayerWalkedOut() {
 void SceneScriptNR09::DialogueQueueFlushed(int a1) {
 }
 
-void SceneScriptNR09::sub_40172C() {
+void SceneScriptNR09::playNextMusic() {
 	if (Music_Is_Playing()) {
 		Music_Adjust(31, -80, 2);
 	} else {
-		int v0 = Global_Variable_Query(54);
-		if (v0 == 0) {
+		int track = Global_Variable_Query(kVariableEarlyQBackMusic);
+		if (track == 0) {
 			Music_Play(16, 61, -80, 2, -1, 0, 0);
-		} else if (v0 == 1) {
+		} else if (track == 1) {
 			Music_Play(15, 41, -80, 2, -1, 0, 0);
-		} else if (v0 == 2) {
+		} else if (track == 2) {
 			Music_Play(7, 41, -80, 2, -1, 0, 0);
 		}
-		v0++;
-		if (v0 > 2) {
-			v0 = 0;
+		track++;
+		if (track > 2) {
+			track = 0;
 		}
-		Global_Variable_Set(54, v0);
+		Global_Variable_Set(kVariableEarlyQBackMusic, track);
 	}
 }
 
diff --git a/engines/bladerunner/script/scene/nr10.cpp b/engines/bladerunner/script/scene/nr10.cpp
index 1d80283..e2a1df8 100644
--- a/engines/bladerunner/script/scene/nr10.cpp
+++ b/engines/bladerunner/script/scene/nr10.cpp
@@ -25,15 +25,17 @@
 namespace BladeRunner {
 
 void SceneScriptNR10::InitializeScene() {
-	if (Game_Flag_Query(475)) {
-		Game_Flag_Reset(475);
+	if (Game_Flag_Query(kFlagNR09toNR10)) {
+		Game_Flag_Reset(kFlagNR09toNR10);
 		Setup_Scene_Information(-136.78f, 2.84f, -234.43f, 320);
 	} else {
-		Game_Flag_Reset(477);
-		Setup_Scene_Information(19.22f, 2.84f, -250.43f, 540);
+		Game_Flag_Reset(kFlagNR11toNR10);
+		Setup_Scene_Information(  19.22f, 2.84f, -250.43f, 540);
 	}
+
 	Scene_Exit_Add_2D_Exit(0, 144, 163, 194, 318, 3);
 	Scene_Exit_Add_2D_Exit(1, 475, 95, 568, 230, 0);
+
 	Ambient_Sounds_Add_Looping_Sound(205, 22, 0, 1);
 	Ambient_Sounds_Add_Looping_Sound(71, 33, 0, 1);
 	Ambient_Sounds_Add_Sound(303, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
@@ -42,6 +44,7 @@ void SceneScriptNR10::InitializeScene() {
 	Ambient_Sounds_Add_Sound(306, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(307, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(308, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
+
 	if (Game_Flag_Query(640)) {
 		Scene_Loop_Set_Default(0);
 	} else {
@@ -62,7 +65,10 @@ bool SceneScriptNR10::MouseClick(int x, int y) {
 }
 
 bool SceneScriptNR10::ClickedOn3DObject(const char *objectName, bool combatMode) {
-	if (Object_Query_Click("BOX18", objectName) && combatMode && Game_Flag_Query(642)) {
+	if (Object_Query_Click("BOX18", objectName)
+	 && combatMode
+	 && Game_Flag_Query(642)
+	) {
 		Actor_Set_Goal_Number(kActorDektora, 250);
 		Game_Flag_Set(640);
 		Game_Flag_Reset(642);
@@ -89,17 +95,18 @@ bool SceneScriptNR10::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptNR10::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -152.78f, 2.84f, -238.43f, 0, 1, false, 0)) {
-			Game_Flag_Set(476);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -152.78f, 2.84f, -238.43f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagNR10toNR09);
 			Set_Enter(kSetNR09, kSceneNR09);
 			return true;
 		}
 	}
+
 	if (exitId == 1) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 11.5f, 2.84f, -304.46f, 0, 1, false, 0)) {
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 11.5f, 2.84f, -304.46f, 0, true, false, 0)) {
 			Actor_Face_Heading(kActorMcCoy, 55, false);
-			Loop_Actor_Travel_Ladder(kActorMcCoy, 8, 1, 0);
-			Game_Flag_Set(641);
+			Loop_Actor_Travel_Ladder(kActorMcCoy, 8, true, kAnimationModeIdle);
+			Game_Flag_Set(kFlagNR10toNR11);
 			Set_Enter(kSetNR11, kSceneNR11);
 			return true;
 		}
@@ -120,7 +127,10 @@ void SceneScriptNR10::SceneFrameAdvanced(int frame) {
 		//return true;
 		return;
 	}
-	if (frame == 61 && Game_Flag_Query(642)) {
+
+	if (frame == 61
+	 && Game_Flag_Query(642)
+	) {
 		Game_Flag_Reset(642);
 		Player_Set_Combat_Mode(false);
 		Actor_Set_Invisible(kActorMcCoy, false);
@@ -140,6 +150,7 @@ void SceneScriptNR10::PlayerWalkedIn() {
 		//return true;
 		return;
 	}
+
 	if (Actor_Query_Goal_Number(kActorSteele) == 236) {
 		Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
 		Actor_Says(kActorSteele, 150, 13);
diff --git a/engines/bladerunner/script/scene/nr11.cpp b/engines/bladerunner/script/scene/nr11.cpp
index b450601..fca1d66 100644
--- a/engines/bladerunner/script/scene/nr11.cpp
+++ b/engines/bladerunner/script/scene/nr11.cpp
@@ -26,18 +26,22 @@ namespace BladeRunner {
 
 void SceneScriptNR11::InitializeScene() {
 	Setup_Scene_Information(100.0f, 1.75f, -4.0f, 0);
+
 	Scene_Exit_Add_2D_Exit(0, 450, 305, 565, 345, 2);
+
 	if (!Game_Flag_Query(640)) {
 		Ambient_Sounds_Adjust_Looping_Sound(452, 22, 0, 1);
 	}
+
 	Ambient_Sounds_Add_Looping_Sound(205, 22, 0, 1);
-	Ambient_Sounds_Add_Looping_Sound(71, 33, 0, 1);
+	Ambient_Sounds_Add_Looping_Sound( 71, 33, 0, 1);
 	Ambient_Sounds_Add_Sound(303, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(304, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(305, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(306, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(307, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
 	Ambient_Sounds_Add_Sound(308, 2, 50, 7, 17, -100, 100, -101, -101, 0, 0);
+
 	if (Game_Flag_Query(632)) {
 		Scene_Loop_Set_Default(3);
 		Ambient_Sounds_Add_Looping_Sound(381, 83, 0, 1);
@@ -46,7 +50,7 @@ void SceneScriptNR11::InitializeScene() {
 		Ambient_Sounds_Add_Looping_Sound(381, 83, 0, 1);
 	} else {
 		Scene_Loop_Set_Default(0);
-		Overlay_Play("NR11OVER", 0, 1, 0, 0);
+		Overlay_Play("NR11OVER", 0, true, false, 0);
 	}
 }
 
@@ -111,11 +115,26 @@ bool SceneScriptNR11::MouseClick(int x, int y) {
 
 bool SceneScriptNR11::ClickedOn3DObject(const char *objectName, bool combatMode) {
 
-	if (Object_Query_Click("CLOTHING02", objectName) || Object_Query_Click("BOX27", objectName) || Object_Query_Click("BOX39", objectName) || Object_Query_Click("BOX44", objectName) || Object_Query_Click("DRESS", objectName) || Object_Query_Click("COATRACK", objectName) || Object_Query_Click("COLUMN3 DETS", objectName) || Object_Query_Click("COLUMN PIPE01", objectName) || Object_Query_Click("RECTANGLE02", objectName) || Object_Query_Click("COLUMN04", objectName) || Object_Query_Click("COATRACK01", objectName) || Object_Query_Click("SHIRT", objectName) || Object_Query_Click("SKIRT 02", objectName) || Object_Query_Click("CLOTHING B 03", objectName) || Object_Query_Click("BUST BUST", objectName)) {
+	if (Object_Query_Click("CLOTHING02", objectName)
+	 || Object_Query_Click("BOX27", objectName)
+	 || Object_Query_Click("BOX39", objectName)
+	 || Object_Query_Click("BOX44", objectName)
+	 || Object_Query_Click("DRESS", objectName)
+	 || Object_Query_Click("COATRACK", objectName)
+	 || Object_Query_Click("COLUMN3 DETS", objectName)
+	 || Object_Query_Click("COLUMN PIPE01", objectName)
+	 || Object_Query_Click("RECTANGLE02", objectName)
+	 || Object_Query_Click("COLUMN04", objectName)
+	 || Object_Query_Click("COATRACK01", objectName)
+	 || Object_Query_Click("SHIRT", objectName)
+	 || Object_Query_Click("SKIRT 02", objectName)
+	 || Object_Query_Click("CLOTHING B 03", objectName)
+	 || Object_Query_Click("BUST BUST", objectName)
+	) {
 		if (combatMode) {
 			Actor_Set_Goal_Number(kActorSteele, 211);
 			Scene_Exits_Disable();
-			sub_4028EC();
+			untargetEverything();
 			Player_Loses_Control();
 			if (!Player_Query_Combat_Mode()) {
 				Player_Set_Combat_Mode(true);
@@ -126,7 +145,7 @@ bool SceneScriptNR11::ClickedOn3DObject(const char *objectName, bool combatMode)
 		} else if (Actor_Query_Goal_Number(kActorDektora) == 250) {
 			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 24.0f, 0.33f, 0.0f, 0, 1, false, 0)) {
 				Actor_Face_XYZ(kActorMcCoy, -180.0f, 0.0f, -170.0f, true);
-				sub_4028EC();
+				untargetEverything();
 				Actor_Set_Goal_Number(kActorSteele, 211);
 				if (Actor_Query_Friendliness_To_Other(kActorDektora, kActorMcCoy) < 30) {
 					Actor_Set_At_XYZ(kActorDektora, 0.5f, 0.33f, -162.0f, 0);
@@ -183,7 +202,7 @@ bool SceneScriptNR11::ClickedOn3DObject(const char *objectName, bool combatMode)
 					if (Global_Variable_Query(kVariableHollowayArrest) == 1) {
 						Actor_Set_Goal_Number(kActorSteele, 236);
 					}
-					Game_Flag_Set(591);
+					Game_Flag_Set(kFlagDektoraRanAway);
 				}
 			} else {
 				if (Random_Query(1, 2) == 1) {
@@ -208,8 +227,8 @@ bool SceneScriptNR11::ClickedOnItem(int itemId, bool a2) {
 
 bool SceneScriptNR11::ClickedOnExit(int exitId) {
 	if (exitId == 0) {
-		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 100.0f, 1.75f, -8.0f, 0, 1, false, 0)) {
-			Game_Flag_Set(477);
+		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 100.0f, 1.75f, -8.0f, 0, true, false, 0)) {
+			Game_Flag_Set(kFlagNR11toNR10);
 			Set_Enter(kSetNR10, kSceneNR10);
 			return true;
 		}
@@ -225,37 +244,47 @@ void SceneScriptNR11::SceneFrameAdvanced(int frame) {
 	if (frame == 62) {
 		Ambient_Sounds_Play_Sound(449, 40, 100, 100, 10);
 	}
+
 	if (frame == 67) {
 		Ambient_Sounds_Play_Sound(449, 30, 90, 90, 10);
 	}
+
 	if (frame == 74) {
 		Ambient_Sounds_Play_Sound(450, 50, 83, 83, 10);
 	}
+
 	if (frame == 80) {
 		Ambient_Sounds_Play_Sound(449, 60, 65, 65, 10);
 	}
+
 	if (frame == 92) {
 		Ambient_Sounds_Play_Sound(450, 30, 50, 50, 10);
 	}
+
 	if (frame == 97) {
 		Ambient_Sounds_Play_Sound(449, 50, -40, -40, 10);
 	}
+
 	if (frame == 103) {
 		Ambient_Sounds_Play_Sound(450, 40, -27, -27, 10);
 	}
+
 	if (frame == 109) {
 		Ambient_Sounds_Play_Sound(449, 60, -20, -20, 10);
 	}
+
 	if (frame == 62) {
 		Ambient_Sounds_Play_Sound(122, 80, 100, 100, 15);
 	}
+
 	if (Game_Flag_Query(659)) {
 		Game_Flag_Reset(659);
 		Overlay_Remove("NR11OVER");
 		Overlay_Play("NR11OVER", 1, 0, 1, 0);
 	}
+
 	if (Game_Flag_Query(635)) {
-		sub_4028EC();
+		untargetEverything();
 		Player_Loses_Control();
 		if (!Player_Query_Combat_Mode()) {
 			Player_Set_Combat_Mode(true);
@@ -363,7 +392,7 @@ void SceneScriptNR11::sub_4027D0(int actorId, signed int frame) {
 	Actor_Face_XYZ(actorId, x, y, z, true);
 }
 
-void SceneScriptNR11::sub_4028EC() {
+void SceneScriptNR11::untargetEverything() {
 	Un_Combat_Target_Object("CLOTHING02");
 	Un_Combat_Target_Object("BOX27");
 	Un_Combat_Target_Object("BOX39");
diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h
index ed7bceb..77cf859 100644
--- a/engines/bladerunner/script/scene_script.h
+++ b/engines/bladerunner/script/scene_script.h
@@ -321,28 +321,28 @@ DECLARE_SCRIPT(NR05)
 END_SCRIPT
 
 DECLARE_SCRIPT(NR06)
-	void sub_401BAC();
+	void playNextMusic();
 END_SCRIPT
 
 DECLARE_SCRIPT(NR07)
-	void sub_4018D4();
-	void sub_401A10();
-	void sub_401C60();
-	void sub_401EF4();
-	void sub_4020F0();
-	void sub_402284();
-	void sub_402510();
-	void sub_402614();
-	void sub_402738();
-	void sub_4028FC();
+	void dektoraRunAway();
+	void callHolloway();
+	void clickedOnVase();
+	void talkAboutBelt1();
+	void talkAboutBelt2();
+	void talkAboutVoightKampff();
+	void talkAboutSteele();
+	void talkAboutMoonbus();
+	void talkAboutBlackSedan();
+	void talkAboutScorpions();
 END_SCRIPT
 
 DECLARE_SCRIPT(NR08)
-	void sub_4021B4();
+	void playNextMusic();
 END_SCRIPT
 
 DECLARE_SCRIPT(NR09)
-	void sub_40172C();
+	void playNextMusic();
 END_SCRIPT
 
 DECLARE_SCRIPT(NR10)
@@ -350,7 +350,7 @@ END_SCRIPT
 
 DECLARE_SCRIPT(NR11)
 	void sub_4027D0(int actorId, signed int frame);
-	void sub_4028EC();
+	void untargetEverything();
 END_SCRIPT
 
 DECLARE_SCRIPT(PS01)





More information about the Scummvm-git-logs mailing list