[Scummvm-git-logs] scummvm master -> 49c5069324e1c45a399f4dcf2a32ce53be840377

peterkohaut peterkohaut at users.noreply.github.com
Tue Feb 5 22:02:47 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:
6222fa443d BLADERUNNER: Gaff scripts cleanup
92774be0ae BLADERUNNER: Cleanup Steele scripts for ending
cafc76dcfe BLADERUNNER: Cleanup of Maggie script
49c5069324 BLADERUNNER: Added debugger command "friend"


Commit: 6222fa443de8557e5af05e4dffbf53df9e54d8eb
    https://github.com/scummvm/scummvm/commit/6222fa443de8557e5af05e4dffbf53df9e54d8eb
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-05T21:54:50+01:00

Commit Message:
BLADERUNNER: Gaff scripts cleanup

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/gaff.cpp
    engines/bladerunner/script/scene/kp01.cpp
    engines/bladerunner/script/scene/kp06.cpp
    engines/bladerunner/script/scene/ma02.cpp
    engines/bladerunner/script/scene/ma07.cpp
    engines/bladerunner/script/scene/rc01.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index bef9b23..2f872f6 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1084,13 +1084,13 @@ enum Flags {
 	kFlagCT11DogWrapperTaken = 645,
 	kFlagSteeleDead = 646, // is never checked
 	kFlagMA04McCoySleeping = 647,
-
+	kFlagMA07GaffTalk = 648,
 	kFlagMA04PhoneMessageFromClovis = 649,
 	kFlagMA04PhoneMessageFromLucy = 650,
 	kFlagNR08McCoyWatchingShow = 651,
 	kFlagCrazylegsArrestedTalk = 652,
 	kFlagMcCoyIsHelpingReplicants = 653,
-
+	kFlagMA02Chapter5Started = 654,
 	kFlagMA02RajifTalk = 655,
 	kFlagUG02RagiationGooglesTaken = 656,
 
@@ -1335,9 +1335,9 @@ enum Scenes {
 	kSceneKP01 = 41, // Kipple - Rubble
 	kSceneKP02 = 42, // Kipple - Entry / Gate
 	kSceneKP03 = 43, // Kipple - Bomb
-	kSceneKP04 = 44,
+	kSceneKP04 = 44, // Kipple - Huge pillar
 	kSceneKP05 = 45, // Kipple - Moonbus - Far
-	kSceneKP06 = 46,
+	kSceneKP06 = 46, // Kipple - Moonbus - Near
 	kSceneKP07 = 47, // Kipple - Moonbus - Inside
 	kSceneMA01 = 48, // McCoy's Apartment - Roof
 	kSceneMA02 = 49, // McCoy's Apartment - Living room
@@ -1389,8 +1389,8 @@ enum Scenes {
 	kSceneUG10 = 95, // Underground - Moving bridge
 	kSceneUG12 = 96, // Underground - Gate
 	kSceneUG13 = 97, // Underground - Homeless' living room
-	kSceneUG14 = 98,
-	kSceneUG15 = 99,
+	kSceneUG14 = 98, // Underground - Crossroad
+	kSceneUG15 = 99, // Underground - Bridge with rat
 	kSceneUG16 = 100, // Underground - Under DR06
 	kSceneUG17 = 101, // Underground - Under TB03
 	kSceneUG18 = 102, // Underground - Pit
@@ -2176,7 +2176,13 @@ enum GoalGaff {
 	kGoalGaffCT12FlyAway = 10,
 	kGoalGaffStartWalkingAround = 100,
 	kGoalGaffWalkAround = 101,
-	kGoalGaffRepeatWalkingAround = 102
+	kGoalGaffRepeatWalkingAround = 102,
+	kGoalGaffStartChapter4 = 299,
+	kGoalGaffMA07Wait = 300,
+	kGoalGaffMA07TalkToMcCoy = 301,
+	kGoalGaffMA07Left = 302,
+	kGoalGaffMA07ShootMcCoy = 303, // cannot be triggered
+	kGoalGaffGone = 499
 };
 
 enum GoalLeon {
diff --git a/engines/bladerunner/script/ai/gaff.cpp b/engines/bladerunner/script/ai/gaff.cpp
index 43d9e9b..57bdd8a 100644
--- a/engines/bladerunner/script/ai/gaff.cpp
+++ b/engines/bladerunner/script/ai/gaff.cpp
@@ -47,9 +47,9 @@ bool AIScriptGaff::Update() {
 	}
 
 	if (Global_Variable_Query(kVariableChapter) == 4
-	 && Actor_Query_Goal_Number(kActorGaff) < 299
+	 && Actor_Query_Goal_Number(kActorGaff) < kGoalGaffStartChapter4
 	) {
-		Actor_Set_Goal_Number(kActorGaff, 299);
+		Actor_Set_Goal_Number(kActorGaff, kGoalGaffStartChapter4);
 	}
 
 	return false;
@@ -59,7 +59,7 @@ bool AIScriptGaff::Update() {
 void AIScriptGaff::TimerExpired(int timer) {
 	if (timer == 0) {
 		AI_Countdown_Timer_Reset(kActorGaff, 0);
-		Actor_Set_Goal_Number(kActorGaff, 301);
+		Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07TalkToMcCoy);
 	}
 	//return false;
 }
@@ -164,14 +164,15 @@ void AIScriptGaff::OtherAgentExitedThisScene(int otherActorId) {
 }
 
 void AIScriptGaff::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
+	// It is impossible to triger this as player has no control at this moment
 	if (otherActorId == kActorMcCoy
 	 && combatMode == 1
 	 && Global_Variable_Query(kVariableChapter) == 4
 	 && Actor_Query_In_Set(kActorMcCoy, kSetMA07)
-	 && Actor_Query_Goal_Number(kActorGaff) == 300
+	 && Actor_Query_Goal_Number(kActorGaff) == kGoalGaffMA07Wait
 	) {
 		AI_Countdown_Timer_Reset(kActorGaff, 0);
-		Actor_Set_Goal_Number(kActorGaff, 303);
+		Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07ShootMcCoy);
 	}
 	// return false;
 }
@@ -274,15 +275,15 @@ bool AIScriptGaff::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_At_Waypoint(kActorGaff, 35, 0);
 		return true;
 
-	case 300:
+	case kGoalGaffMA07Wait:
 		Player_Loses_Control();
 		Actor_Put_In_Set(kActorGaff, kSetMA07);
 		Actor_Set_At_XYZ(kActorGaff, -102.54f, -172.43f, 463.18f, 1015);
-		Actor_Set_Goal_Number(kActorGaff, 301);
+		Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07TalkToMcCoy);
 		return true;
 
-	case 301:
-		Game_Flag_Set(648);
+	case kGoalGaffMA07TalkToMcCoy:
+		Game_Flag_Set(kFlagMA07GaffTalk);
 		Actor_Face_Actor(kActorGaff, kActorMcCoy, true);
 		Actor_Says(kActorGaff, 110, 12);
 		Actor_Face_Actor(kActorMcCoy, kActorGaff, true);
@@ -306,21 +307,21 @@ bool AIScriptGaff::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Delay(4000);
 		Player_Gains_Control();
 		Actor_Start_Speech_Sample(kActorGaff, 210);
-		Actor_Set_Goal_Number(kActorGaff, 302);
+		Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07Left);
 		return true;
 
-	case 302:
+	case kGoalGaffMA07Left:
 		return true;
 
-	case 303:
+	case kGoalGaffMA07ShootMcCoy:
 		Actor_Face_Actor(kActorGaff, kActorMcCoy, true);
 		Actor_Change_Animation_Mode(kActorGaff, kAnimationModeCombatAttack);
 		Sound_Play(27, 100, 0, 0, 50);
 		Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
-		Actor_Retired_Here(kActorMcCoy, 12, 12, 1, -1);
+		Actor_Retired_Here(kActorMcCoy, 12, 12, true, -1);
 		return true;
 
-	case 499:
+	case kGoalGaffGone:
 		AI_Movement_Track_Flush(kActorGaff);
 		Actor_Put_In_Set(kActorGaff, kSetKP05_KP06);
 		Actor_Set_At_XYZ(kActorGaff, -782.15f, 8.26f, -263.64f, 52);
@@ -334,7 +335,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 0:
 		*animation = 794;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(794)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 		}
 		break;
@@ -342,7 +343,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 1:
 		*animation = 788;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(788)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 		}
 		break;
@@ -350,7 +351,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 2:
 		*animation = 798;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(798)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationFrame = 0;
 		}
 		break;
@@ -358,7 +359,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 3:
 		*animation = 799;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(799)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationState = 2;
 			_animationFrame = 0;
 			*animation = 798;
@@ -368,7 +369,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 4:
 		*animation = 800;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(800)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationState = 2;
 			_animationFrame = 0;
 			*animation = 798;
@@ -378,7 +379,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 5:
 		*animation = 801;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(801)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationState = 2;
 			_animationFrame = 0;
 			*animation = 798;
@@ -388,7 +389,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 6:
 		*animation = 800;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(800)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationState = 2;
 			_animationFrame = 0;
 			*animation = 798;
@@ -398,7 +399,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 7:
 		*animation = 801;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(801)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
 			_animationState = 2;
 			_animationFrame = 0;
 			*animation = 798;
@@ -408,7 +409,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
 	case 8:
 		*animation = 802;
 		_animationFrame++;
-		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(35)) {
+		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(35) - 1) { // Bug in the game?
 			Actor_Set_Invisible(kActorGaff, true);
 			*animation = 794;
 			_animationFrame = 0;
diff --git a/engines/bladerunner/script/scene/kp01.cpp b/engines/bladerunner/script/scene/kp01.cpp
index 8fbccd5..52f7bfb 100644
--- a/engines/bladerunner/script/scene/kp01.cpp
+++ b/engines/bladerunner/script/scene/kp01.cpp
@@ -166,7 +166,7 @@ void SceneScriptKP01::PlayerWalkedIn() {
 	if (!Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
 	 && !Game_Flag_Query(714)
 	 &&  Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP01Wait
-	 &&  Actor_Query_Goal_Number(kActorSteele) != 599
+	 &&  Actor_Query_Goal_Number(kActorSteele) != kGoalSteeleGone
 	) {
 		Player_Loses_Control();
 		Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP01TalkToMcCoy);
diff --git a/engines/bladerunner/script/scene/kp06.cpp b/engines/bladerunner/script/scene/kp06.cpp
index 0cd53df..ab1dbed 100644
--- a/engines/bladerunner/script/scene/kp06.cpp
+++ b/engines/bladerunner/script/scene/kp06.cpp
@@ -119,7 +119,7 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
 				} else if (Actor_Query_Goal_Number(kActorSteele) == 433) {
 					Actor_Set_Goal_Number(kActorSteele, 499);
 				} else {
-					Actor_Set_Goal_Number(kActorGaff, 499);
+					Actor_Set_Goal_Number(kActorGaff, kGoalGaffGone);
 				}
 				Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 				Ambient_Sounds_Remove_All_Looping_Sounds(1);
@@ -187,7 +187,7 @@ void SceneScriptKP06::PlayerWalkedIn() {
 			//return true;
 			return;
 		} else {
-			Actor_Set_Goal_Number(kActorGaff, 499);
+			Actor_Set_Goal_Number(kActorGaff, kGoalGaffGone);
 			Actor_Face_Actor(kActorGaff, kActorMcCoy, true);
 			Actor_Says(kActorGaff, 220, 13);
 			Actor_Face_Actor(kActorMcCoy, kActorGaff, true);
diff --git a/engines/bladerunner/script/scene/ma02.cpp b/engines/bladerunner/script/scene/ma02.cpp
index b3e9386..b749b18 100644
--- a/engines/bladerunner/script/scene/ma02.cpp
+++ b/engines/bladerunner/script/scene/ma02.cpp
@@ -186,7 +186,7 @@ void SceneScriptMA02::PlayerWalkedIn() {
 	}
 
 	if ( Global_Variable_Query(kVariableChapter) == 5
-	 && !Game_Flag_Query(654)
+	 && !Game_Flag_Query(kFlagMA02Chapter5Started)
 	) {
 		if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
 			Actor_Says(kActorMcCoy, 2390, kAnimationModeIdle);
@@ -194,7 +194,7 @@ void SceneScriptMA02::PlayerWalkedIn() {
 		} else {
 			Actor_Says(kActorMcCoy, 2385,  kAnimationModeTalk);
 		}
-		Game_Flag_Set(654);
+		Game_Flag_Set(kFlagMA02Chapter5Started);
 		Autosave_Game(3);
 	}
 
diff --git a/engines/bladerunner/script/scene/ma07.cpp b/engines/bladerunner/script/scene/ma07.cpp
index 2b5c0f4..3f5c467 100644
--- a/engines/bladerunner/script/scene/ma07.cpp
+++ b/engines/bladerunner/script/scene/ma07.cpp
@@ -121,7 +121,9 @@ void SceneScriptMA07::SceneFrameAdvanced(int frame) {
 }
 
 void SceneScriptMA07::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet) {
-	if (actorId == kActorGaff && newGoal == 302) {
+	if (actorId == kActorGaff
+	 && newGoal == kGoalGaffMA07Left
+	) {
 		Scene_Exits_Enable();
 	}
 }
@@ -140,12 +142,12 @@ void SceneScriptMA07::PlayerWalkedIn() {
 		Game_Flag_Reset(kFlagMA06toMA07);
 	}
 
-	if (!Game_Flag_Query(648)
+	if (!Game_Flag_Query(kFlagMA07GaffTalk)
 	 &&  Game_Flag_Query(kFlagUG18GuzzaScene)
 	 &&  Global_Variable_Query(kVariableChapter) == 4
 	) {
 		Scene_Exits_Disable();
-		Actor_Set_Goal_Number(kActorGaff, 300);
+		Actor_Set_Goal_Number(kActorGaff, kGoalGaffMA07Wait);
 	}
 
 	if (Game_Flag_Query(kFlagMcCoyFreedOfAccusations)) {
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp
index 15c4d5e..37241cf 100644
--- a/engines/bladerunner/script/scene/rc01.cpp
+++ b/engines/bladerunner/script/scene/rc01.cpp
@@ -51,31 +51,7 @@ void SceneScriptRC01::InitializeScene() {
 	//TODO: not part of game, remove
 	Game_Flag_Set(kFlagIntroPlayed); // force skip intro
 	Game_Flag_Set(kFlagRC02toRC01); // no landing
-	// Game_Flag_Set(kFlagRC01PoliceDone);
-	// Game_Flag_Set(kFlagKIAPrivacyAddon);
-	// Game_Flag_Set(kFlagZubenRetired);
-	// Game_Flag_Set(kFlagSpinnerAtMA01);
-	// Set_Enter(kSetMA02_MA04, kSceneMA04);
-
-	Spinner_Set_Selectable_Destination_Flag(0, true);
-	Spinner_Set_Selectable_Destination_Flag(1, true);
-	Spinner_Set_Selectable_Destination_Flag(2, true);
-	Spinner_Set_Selectable_Destination_Flag(3, true);
-	Spinner_Set_Selectable_Destination_Flag(4, true);
-	Spinner_Set_Selectable_Destination_Flag(5, true);
-	Spinner_Set_Selectable_Destination_Flag(6, true);
-	Spinner_Set_Selectable_Destination_Flag(7, true);
-	Spinner_Set_Selectable_Destination_Flag(8, true);
-	Spinner_Set_Selectable_Destination_Flag(9, true);
-
-	// ESPER_Flag_To_Activate();
-	// Voight_Kampff_Activate(kActorLucy, 50);
-
-	// Global_Variable_Set(kVariableChapter, 2);
-	// Chapter_Enter(2, kSetRC03, kSceneRC03);
-
 	// Set_Enter(kSetPS10_PS11_PS12_PS13, 73);
-
 #endif
 
 	if (!Game_Flag_Query(kFlagIntroPlayed)) {


Commit: 92774be0aed37273be7579a1cdd81d8ccf9a112c
    https://github.com/scummvm/scummvm/commit/92774be0aed37273be7579a1cdd81d8ccf9a112c
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-05T21:54:50+01:00

Commit Message:
BLADERUNNER: Cleanup Steele scripts for ending

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/clovis.cpp
    engines/bladerunner/script/ai/maggie.cpp
    engines/bladerunner/script/ai/steele.cpp
    engines/bladerunner/script/scene/kp03.cpp
    engines/bladerunner/script/scene/kp05.cpp
    engines/bladerunner/script/scene/kp06.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 2f872f6..0d8d46d 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -1813,9 +1813,14 @@ enum GoalSteele {
 	kGoalSteeleImmediatelyStartChapter4 = 285,
 	kGoalSteeleNR01StartChapter4 = 290,
 	kGoalSteeleHF01StartChapter4 = 291,
+	// chapter 4
+	kGoalSteeleStartChapter4 = 300,
 	// chapter 5
+	kGoalSteeleStartChapter5 = 400,
 	// kGoalSteeleKP03WillShootMcCoy = 410,
 	kGoalSteeleKP03Walk = 411,
+	kGoalSteeleKP03StopWalking = 412,
+	kGoalSteeleKP03Leave = 413,
 	kGoalSteeleKP03Exploded = 415,
 	kGoalSteeleKP03Dying = 416,
 	kGoalSteeleKP03ShootMcCoy = 418,
@@ -1824,7 +1829,11 @@ enum GoalSteele {
 	kGoalSteeleKP01TalkToMcCoy = 421,
 	kGoalSteeleKP01Leave = 422,
 	kGoalSteeleKP01Left = 423,
-
+	kGoalSteeleKP05Enter = 430,
+	kGoalSteeleKP05Leave = 431,
+	kGoalSteeleKP06Enter = 432,
+	kGoalSteeleKP06Leave = 433,
+	kGoalSteeleWaitingForEnd = 499,
 	kGoalSteeleGone = 599
 };
 
diff --git a/engines/bladerunner/script/ai/clovis.cpp b/engines/bladerunner/script/ai/clovis.cpp
index 26d545e..1ab80ab 100644
--- a/engines/bladerunner/script/ai/clovis.cpp
+++ b/engines/bladerunner/script/ai/clovis.cpp
@@ -149,7 +149,9 @@ void AIScriptClovis::OtherAgentExitedThisScene(int otherActorId) {
 }
 
 void AIScriptClovis::OtherAgentEnteredCombatMode(int otherActorId, int combatMode) {
-	if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants) && Actor_Query_In_Set(kActorMcCoy, kSetKP07)) {
+	if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
+	 && Actor_Query_In_Set(kActorMcCoy, kSetKP07)
+	) {
 		Game_Flag_Set(697);
 		Game_Flag_Set(714);
 		// return true;
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
index 4feb740..2667918 100644
--- a/engines/bladerunner/script/ai/maggie.cpp
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -327,7 +327,7 @@ bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			Actor_Says(kActorMcCoy, 2235, 12);
 			if (Actor_Query_Is_In_Current_Set(kActorSteele)) {
 				Actor_Says(kActorSteele, 1530, 58);
-				Actor_Set_Goal_Number(kActorSteele, 431);
+				Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP05Leave);
 			}
 			Delay(2000);
 			Actor_Says(kActorMcCoy, 2390, 13);
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index 2b2e1f2..9435195 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -158,17 +158,17 @@ bool AIScriptSteele::Update() {
 		break;
 
 	case 4:
-		if (Actor_Query_Goal_Number(kActorSteele) < 300) {
-			Actor_Set_Goal_Number(kActorSteele, 300);
+		if (Actor_Query_Goal_Number(kActorSteele) < kGoalSteeleStartChapter4) {
+			Actor_Set_Goal_Number(kActorSteele, kGoalSteeleStartChapter4);
 		}
 
 		break;
 
 	case 5:
 		if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
-		 && Actor_Query_Goal_Number(kActorSteele) < 400
+		 && Actor_Query_Goal_Number(kActorSteele) < kGoalSteeleStartChapter5
 		) {
-			Actor_Set_Goal_Number(kActorSteele, 400);
+			Actor_Set_Goal_Number(kActorSteele, kGoalSteeleStartChapter5);
 			return true;
 		}
 
@@ -313,7 +313,7 @@ void AIScriptSteele::CompletedMovementTrack() {
 		Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP01Left);
 		break;
 
-	case 432:
+	case kGoalSteeleKP06Enter:
 		Player_Set_Combat_Mode(kActorMcCoy);
 		Actor_Face_Actor(kActorMcCoy, kActorSteele, true);
 		Actor_Says(kActorMcCoy, 2265, 11);
@@ -324,7 +324,7 @@ void AIScriptSteele::CompletedMovementTrack() {
 		Actor_Says(kActorMcCoy, 2280, 15);
 		Actor_Says(kActorSteele, 660, 60);
 		Actor_Says(kActorSteele, 670, 59);
-		Actor_Set_Goal_Number(kActorSteele, 433);
+		Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP06Leave);
 		Player_Set_Combat_Mode(kActorSteele);
 		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, false, false, 0);
 		Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
@@ -332,9 +332,6 @@ void AIScriptSteele::CompletedMovementTrack() {
 		Game_Flag_Set(kFlagKP06toKP07);
 		Set_Enter(kSetKP07, kSceneKP07);
 		break;
-
-	default:
-		break;
 	}
 	return; //true;
 }
@@ -1297,7 +1294,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Chapter_Enter(4, kSetUG06, kSceneUG06);
 		return true;
 
-	case 300:
+	case kGoalSteeleStartChapter4:
 		if (Query_Score(kActorMcCoy) > Query_Score(kActorSteele) && Query_Score(kActorMcCoy) < 75) {
 			Set_Score(kActorSteele, Random_Query(2, 5) + Query_Score(kActorMcCoy));
 		}
@@ -1312,7 +1309,7 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Set_At_Waypoint(kActorSteele, 35, 0);
 		return true;
 
-	case 400:
+	case kGoalSteeleStartChapter5:
 	case 401:
 	case kGoalSteeleKP01Left:
 		return true;
@@ -1335,11 +1332,11 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Async_Actor_Walk_To_XYZ(kActorSteele, -109.0f, -36.55f, 26.0f, 0, false);
 		return true;
 
-	case 412:
+	case kGoalSteeleKP03StopWalking:
 		Actor_Force_Stop_Walking(kActorSteele);
 		return true;
 
-	case 413:
+	case kGoalSteeleKP03Leave:
 		Async_Actor_Walk_To_XYZ(kActorSteele, 1.0, -36.55f, 111.0f, 0, false);
 		return true;
 
@@ -1410,26 +1407,26 @@ bool AIScriptSteele::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
 
-	case 430:
+	case kGoalSteeleKP05Enter:
 		Actor_Put_In_Set(kActorSteele, kSetKP05_KP06);
 		Actor_Set_At_XYZ(kActorSteele, -1110.0f, 0.0f, 952.0f, 155);
-		Actor_Change_Animation_Mode(kActorSteele, 4);
+		Actor_Change_Animation_Mode(kActorSteele, kAnimationModeCombatIdle);
 		return true;
 
-	case 431:
+	case kGoalSteeleKP05Leave:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append_Run(kActorSteele, 541, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
 
-	case 432:
+	case kGoalSteeleKP06Enter:
 		Actor_Set_At_Waypoint(kActorSteele, 542, 0);
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append_Run(kActorSteele, 543, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
 		return true;
 
-	case 433:
+	case kGoalSteeleKP06Leave:
 		AI_Movement_Track_Flush(kActorSteele);
 		AI_Movement_Track_Append_Run(kActorSteele, 542, 0);
 		AI_Movement_Track_Repeat(kActorSteele);
diff --git a/engines/bladerunner/script/scene/kp03.cpp b/engines/bladerunner/script/scene/kp03.cpp
index fe2746c..9f22323 100644
--- a/engines/bladerunner/script/scene/kp03.cpp
+++ b/engines/bladerunner/script/scene/kp03.cpp
@@ -291,7 +291,7 @@ void SceneScriptKP03::DialogueQueueFlushed(int a1) {
 void SceneScriptKP03::saveSteele() {
 	Player_Loses_Control();
 	Actor_Says(kActorMcCoy, 2180, 14);
-	Actor_Set_Goal_Number(kActorSteele, 412);
+	Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP03StopWalking);
 	Actor_Says(kActorSteele, 480, 60);
 	Actor_Face_Object(kActorMcCoy, "BRACK MID", true);
 	Actor_Says(kActorMcCoy, 2185, 14);
@@ -306,11 +306,11 @@ void SceneScriptKP03::saveSteele() {
 	Game_Flag_Reset(kFlagKP03BombActive);
 	Scene_Loop_Set_Default(kKP03MainLoopBombNoWire);
 	Scene_Loop_Start_Special(kSceneLoopModeOnce, kKP03MainLoopBombNoWire, false);
-	Actor_Set_Goal_Number(kActorSteele, 413);
+	Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP03Leave);
 	Actor_Says(kActorMcCoy, 2195, 14);
 	Ambient_Sounds_Play_Sound(151, 40, -60, -60, 0);
 	Loop_Actor_Walk_To_XYZ(kActorMcCoy, 1.0f, -36.55f, 111.0f, 0, false, false, 0);
-	Actor_Set_Goal_Number(kActorSteele, 430);
+	Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP05Enter);
 	Ambient_Sounds_Remove_All_Non_Looping_Sounds(true);
 	Ambient_Sounds_Remove_All_Looping_Sounds(1);
 	Game_Flag_Reset(kFlagKP01toKP03);
diff --git a/engines/bladerunner/script/scene/kp05.cpp b/engines/bladerunner/script/scene/kp05.cpp
index ff3bb08..2a30cd4 100644
--- a/engines/bladerunner/script/scene/kp05.cpp
+++ b/engines/bladerunner/script/scene/kp05.cpp
@@ -55,7 +55,10 @@ void SceneScriptKP05::SceneLoaded() {
 	Unobstacle_Object("OBSTACLEBOX20", true);
 	Clickable_Object("BRIDGE02");
 	Unclickable_Object("BRIDGE02");
-	if (!Actor_Clue_Query(kActorMcCoy, kCluePowerSource) && Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
+
+	if (!Actor_Clue_Query(kActorMcCoy, kCluePowerSource)
+	 &&  Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
+	) {
 		Item_Add_To_World(118, 960, 9, -1095.0f, 0.0f, 770.0f, 256, 24, 24, false, true, false, true);
 	}
 }
diff --git a/engines/bladerunner/script/scene/kp06.cpp b/engines/bladerunner/script/scene/kp06.cpp
index ab1dbed..5087e33 100644
--- a/engines/bladerunner/script/scene/kp06.cpp
+++ b/engines/bladerunner/script/scene/kp06.cpp
@@ -75,12 +75,14 @@ bool SceneScriptKP06::ClickedOn3DObject(const char *objectName, bool a2) {
 }
 
 bool SceneScriptKP06::ClickedOnActor(int actorId) {
-	if (actorId == kActorSadik && !Game_Flag_Query(714)) {
+	if ( actorId == kActorSadik
+	 && !Game_Flag_Query(714)
+	) {
 		if (Actor_Clue_Query(kActorSadik, kCluePowerSource)) {
 			Actor_Face_Actor(kActorMcCoy, kActorSadik, true);
 			Actor_Says(kActorMcCoy, 8610, 15);
 			Actor_Says(kActorSadik, 290, kAnimationModeTalk);
-		} else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource) ) {
+		} else if (Actor_Clue_Query(kActorMcCoy, kCluePowerSource)) {
 			Actor_Says(kActorSadik, 280, kAnimationModeTalk);
 			Actor_Says(kActorSadik, 290, kAnimationModeTalk);
 			Actor_Clue_Acquire(kActorSadik, kCluePowerSource, true, kActorMcCoy);
@@ -110,14 +112,16 @@ bool SceneScriptKP06::ClickedOnExit(int exitId) {
 	}
 
 	if (exitId == 1) {
-		if (Actor_Clue_Query(kActorSadik, kCluePowerSource) || Actor_Query_Goal_Number(kActorSadik) != 416) {
+		if (Actor_Clue_Query(kActorSadik, kCluePowerSource)
+		 || Actor_Query_Goal_Number(kActorSadik) != 416
+		) {
 			if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -731.0f, 8.26f, -657.0f, 0, 1, false, 0)) {
 				if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)) {
 					if (!Game_Flag_Query(714)) {
 						Player_Set_Combat_Mode(false);
 					}
-				} else if (Actor_Query_Goal_Number(kActorSteele) == 433) {
-					Actor_Set_Goal_Number(kActorSteele, 499);
+				} else if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP06Leave) {
+					Actor_Set_Goal_Number(kActorSteele, kGoalSteeleWaitingForEnd);
 				} else {
 					Actor_Set_Goal_Number(kActorGaff, kGoalGaffGone);
 				}
@@ -156,11 +160,12 @@ void SceneScriptKP06::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
 
 void SceneScriptKP06::PlayerWalkedIn() {
 	if (!Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
-	 && Game_Flag_Query(kFlagKP07toKP06)
+	 &&  Game_Flag_Query(kFlagKP07toKP06)
 	) {
 		Game_Flag_Reset(kFlagKP07toKP06);
 
-		if (Actor_Query_Goal_Number(kActorSteele) == 499) {
+		// Ending - leave with Steele
+		if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleWaitingForEnd) {
 			Actor_Face_Actor(kActorSteele, kActorMcCoy, true);
 			Actor_Says(kActorSteele, 2530, 13);
 			Actor_Face_Actor(kActorMcCoy, kActorSteele, true);
@@ -184,9 +189,7 @@ void SceneScriptKP06::PlayerWalkedIn() {
 			Ambient_Sounds_Remove_All_Looping_Sounds(1);
 			Outtake_Play(kOuttakeEnd6, false, -1);
 			Game_Over();
-			//return true;
-			return;
-		} else {
+		} else { // Ending - talk with Gaff and leaving alone
 			Actor_Set_Goal_Number(kActorGaff, kGoalGaffGone);
 			Actor_Face_Actor(kActorGaff, kActorMcCoy, true);
 			Actor_Says(kActorGaff, 220, 13);
@@ -215,28 +218,26 @@ void SceneScriptKP06::PlayerWalkedIn() {
 			Delay(3000);
 			Outtake_Play(kOuttakeEnd7, false, -1);
 			Game_Over();
-			//return true;
-			return;
-		}
-	} else {
-		if (Actor_Query_Goal_Number(kActorSadik) == 414) {
-			Loop_Actor_Walk_To_XYZ(kActorMcCoy, -809.0f, 8.26f, -619.0f, 0, 0, false, 0);
-			Actor_Face_Actor(kActorMcCoy, kActorSadik, true);
-			Actor_Set_Goal_Number(kActorSadik, 415);
 		}
-		if (Actor_Query_Goal_Number(kActorSteele) == 431) {
-			Actor_Set_Goal_Number(kActorSteele, 432);
-		}
-		//return false;
-		return;
+		return; // true;
+	}
+
+	if (Actor_Query_Goal_Number(kActorSadik) == 414) {
+		Loop_Actor_Walk_To_XYZ(kActorMcCoy, -809.0f, 8.26f, -619.0f, 0, 0, false, 0);
+		Actor_Face_Actor(kActorMcCoy, kActorSadik, true);
+		Actor_Set_Goal_Number(kActorSadik, 415);
+	}
+
+	if (Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP05Leave) {
+		Actor_Set_Goal_Number(kActorSteele, kGoalSteeleKP06Enter);
 	}
 }
 
 void SceneScriptKP06::PlayerWalkedOut() {
 	if (Game_Flag_Query(kFlagKP06toKP07)
-	 && Actor_Query_Goal_Number(kActorSteele) == 433
+	 && Actor_Query_Goal_Number(kActorSteele) == kGoalSteeleKP06Leave
 	) {
-		Actor_Set_Goal_Number(kActorSteele, 499);
+		Actor_Set_Goal_Number(kActorSteele, kGoalSteeleWaitingForEnd);
 	}
 }
 


Commit: cafc76dcfe9adbd92ac77feca78417c81c4c7c83
    https://github.com/scummvm/scummvm/commit/cafc76dcfe9adbd92ac77feca78417c81c4c7c83
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-05T21:59:45+01:00

Commit Message:
BLADERUNNER: Cleanup of Maggie script

Changed paths:
    engines/bladerunner/game_constants.h
    engines/bladerunner/script/ai/maggie.cpp
    engines/bladerunner/script/ai/sadik.cpp
    engines/bladerunner/script/ai_script.h
    engines/bladerunner/script/scene/kp05.cpp
    engines/bladerunner/script/scene/ma02.cpp


diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 0d8d46d..06c6ae9 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -2221,6 +2221,22 @@ enum GoalFreeSlotA { // Rat
 	kGoalFreeSlotAGone = 599
 };
 
+enum GoalMaggie {
+	kGoalMaggieMA02Default = 0,
+	kGoalMaggieMA02WalkToEntrance = 1,
+	kGoalMaggieMA02GetFed = 3,
+	kGoalMaggieMA02WalkToMcCoy = 7,
+	kGoalMaggieMA02Wait = 8,
+	kGoalMaggieMA02SitDown = 10, // not used
+	kGoalMaggieMA02Sleep = 11, // not used
+	kGoalMaggieKP05Wait = 411,
+	kGoalMaggieKP05McCoyEntred = 412,
+	kGoalMaggieKP05WalkToMcCoy = 413,
+	kGoalMaggieKP05WillExplode = 414,
+	kGoalMaggieKP05Explode = 415,
+	kGoalMaggieDead = 599
+};
+
 } // End of namespace BladeRunner
 
 #endif
diff --git a/engines/bladerunner/script/ai/maggie.cpp b/engines/bladerunner/script/ai/maggie.cpp
index 2667918..9928835 100644
--- a/engines/bladerunner/script/ai/maggie.cpp
+++ b/engines/bladerunner/script/ai/maggie.cpp
@@ -63,7 +63,7 @@ void AIScriptMaggie::Initialize() {
 	var_45F400 = 0;
 	var_45F404 = 0;
 	var_45F408 = 0;
-	Actor_Set_Goal_Number(kActorMaggie, 0);
+	Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Default);
 }
 
 bool AIScriptMaggie::Update() {
@@ -76,12 +76,12 @@ bool AIScriptMaggie::Update() {
 		Actor_Set_At_Waypoint(kActorMaggie, 39, 0);
 	}
 
-	if (goal == 414) {
-		Actor_Set_Goal_Number(kActorMaggie, 415);
-	} else if (goal == 413
+	if (goal == kGoalMaggieKP05WillExplode) {
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05Explode);
+	} else if (goal == kGoalMaggieKP05WalkToMcCoy
 	        && Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorMaggie) < 60
 	) {
-		Actor_Set_Goal_Number(kActorMaggie, 415);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05Explode);
 	}
 
 	if (Global_Variable_Query(kVariableChapter) == 5) {
@@ -94,25 +94,25 @@ bool AIScriptMaggie::Update() {
 }
 
 void AIScriptMaggie::TimerExpired(int timer) {
-	if (timer != 0) {
-		return;
-	}
-	int goal = Actor_Query_Goal_Number(kActorMaggie);
-	if (goal == 8) {
-		AI_Countdown_Timer_Reset(kActorMaggie, 0);
-		if (Random_Query(0, 4)) {
-			AI_Movement_Track_Flush(kActorMaggie);
-			AI_Movement_Track_Append(kActorMaggie, sub_44B260(), 0);
-			AI_Movement_Track_Repeat(kActorMaggie);
-		} else {
-			Actor_Change_Animation_Mode(kActorMaggie, 54);
+	if (timer == 0) {
+		int goal = Actor_Query_Goal_Number(kActorMaggie);
+		if (goal == kGoalMaggieMA02Wait) {
+			AI_Countdown_Timer_Reset(kActorMaggie, 0);
+			if (Random_Query(0, 4)) {
+				AI_Movement_Track_Flush(kActorMaggie);
+				AI_Movement_Track_Append(kActorMaggie, randomWaypointMA02(), 0);
+				AI_Movement_Track_Repeat(kActorMaggie);
+			} else {
+				Actor_Change_Animation_Mode(kActorMaggie, 54);
+			}
+			return; //true
+		}
+
+		if (goal == kGoalMaggieMA02SitDown) {
+			AI_Countdown_Timer_Reset(kActorMaggie, 0);
+			Actor_Change_Animation_Mode(kActorMaggie, 55);
+			return; //true
 		}
-		return; //true
-	}
-	if (goal == 10) {
-		AI_Countdown_Timer_Reset(kActorMaggie, 0);
-		Actor_Change_Animation_Mode(kActorMaggie, 55);
-		return; //true
 	}
 	return; //false
 }
@@ -120,28 +120,30 @@ void AIScriptMaggie::TimerExpired(int timer) {
 void AIScriptMaggie::CompletedMovementTrack() {
 	int goal = Actor_Query_Goal_Number(kActorMaggie);
 	if (goal == 0 || goal > 9) {
-		if (goal == 413) {
-			Actor_Set_Goal_Number(kActorMaggie, 414);
+		if (goal == kGoalMaggieKP05WalkToMcCoy) {
+			Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05WillExplode);
 			return; //true
 		}
 	} else {
-		if (goal == 1) {
-			Actor_Set_Goal_Number(kActorMaggie, 7);
+		if (goal == kGoalMaggieMA02WalkToEntrance) {
+			Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02WalkToMcCoy);
 			return; //true
 		}
-		if (goal == 8) {
+
+		if (goal == kGoalMaggieMA02Wait) {
 			Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
 			AI_Countdown_Timer_Reset(kActorMaggie, 0);
 			AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(1, 5));
 			return; //true
 		}
+
 		if (goal == 9) {
 			Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
 			Actor_Change_Animation_Mode(kActorMaggie, 54);
 			return; //true
 		}
 	}
-	Actor_Set_Goal_Number(kActorMaggie, 8);
+	Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Wait);
 	return; //true
 }
 
@@ -152,7 +154,7 @@ void AIScriptMaggie::ClickedByPlayer() {
 	if (!Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
 	 &&  Global_Variable_Query(kVariableChapter) == 5
 	) {
-		if (Actor_Query_Goal_Number(kActorMaggie) == 413) {
+		if (Actor_Query_Goal_Number(kActorMaggie) == kGoalMaggieKP05WalkToMcCoy) {
 			Actor_Set_Targetable(kActorMaggie, true);
 			AI_Movement_Track_Flush(kActorMaggie);
 			Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
@@ -165,14 +167,13 @@ void AIScriptMaggie::ClickedByPlayer() {
 		return; // false
 	}
 
-	float mccoy_x, mccoy_y, mccoy_z;
-
 	Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
+
+	float mccoy_x, mccoy_y, mccoy_z;
 	Actor_Query_XYZ(kActorMcCoy, &mccoy_x, &mccoy_y, &mccoy_z);
-	float distance = sub_44B200(kActorMaggie, mccoy_x, mccoy_y, mccoy_z);
-	if (distance > 60.0f) {
+	if (distanceToActor(kActorMaggie, mccoy_x, mccoy_y, mccoy_z) > 60.0f) {
 		Actor_Says(0, 2430, 18);
-		Actor_Set_Goal_Number(kActorMaggie, 7);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02WalkToMcCoy);
 		return; // true
 	}
 
@@ -185,7 +186,7 @@ void AIScriptMaggie::ClickedByPlayer() {
 	}
 
 	int goal = Actor_Query_Goal_Number(kActorMaggie);
-	if (goal == 8) {
+	if (goal == kGoalMaggieMA02Wait) {
 		if (Random_Query(0, 1)) {
 			Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
 			Actor_Change_Animation_Mode(kActorMaggie, 57);
@@ -208,7 +209,7 @@ void AIScriptMaggie::ClickedByPlayer() {
 		return; // true
 	}
 
-	Actor_Set_Goal_Number(kActorMaggie, 8);
+	Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Wait);
 	return; // true
 }
 
@@ -224,7 +225,7 @@ void AIScriptMaggie::OtherAgentExitedThisScene(int otherActorId) {
 	 && Global_Variable_Query(kVariableChapter) < 4
 	) {
 		AI_Movement_Track_Flush(kActorMaggie);
-		Actor_Set_Goal_Number(kActorMaggie, 0);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Default);
 	}
 }
 
@@ -236,7 +237,7 @@ void AIScriptMaggie::ShotAtAndMissed() {
 
 bool AIScriptMaggie::ShotAtAndHit() {
 	AI_Movement_Track_Flush(kActorMaggie);
-	Actor_Set_Goal_Number(kActorMaggie, 414);
+	Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05WillExplode);
 	Actor_Set_Targetable(kActorMaggie, false);
 	return false;
 }
@@ -249,23 +250,49 @@ int AIScriptMaggie::GetFriendlinessModifierIfGetsClue(int otherActorId, int clue
 }
 
 bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
-	if (currentGoalNumber == 599) {
+	if (currentGoalNumber == kGoalMaggieDead) {
 		return true;
 	}
 
 	switch (newGoalNumber) {
-	case 11:
-		Actor_Change_Animation_Mode(kActorMaggie, 55);
-		_animationState = kMaggieStateSleeping;
-		_animationFrame = 0;
+	case kGoalMaggieMA02Default:
+		Actor_Put_In_Set(kActorMaggie, kSetMA02_MA04);
+		Actor_Set_At_Waypoint(kActorMaggie, 265, 780);
 		return true;
-	case 10:
-		Actor_Change_Animation_Mode(kActorMaggie, 54);
-		_animationState = kMaggieStateLayingIdle;
-		_animationFrame = 0;
+
+	case kGoalMaggieMA02WalkToEntrance:
+		Actor_Put_In_Set(kActorMaggie, kSetMA02_MA04);
+		Actor_Set_At_Waypoint(kActorMaggie, randomWaypointMA02(), 512);
+		AI_Movement_Track_Flush(kActorMaggie);
+		AI_Movement_Track_Append(kActorMaggie, 264, 0);
+		AI_Movement_Track_Repeat(kActorMaggie);
+		return true;
+
+	case kGoalMaggieMA02GetFed:
+		Player_Loses_Control();
+		AI_Movement_Track_Flush(kActorMaggie);
+		Loop_Actor_Walk_To_Actor(kActorMaggie, kActorMcCoy, 48, false, false);
+		Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
+		Actor_Face_Actor(kActorMaggie, kActorMcCoy, false);
+		Actor_Says(kActorMcCoy, 2400, kAnimationModeFeeding);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Wait);
+		Player_Gains_Control();
+		return true;
+
+	case kGoalMaggieMA02WalkToMcCoy:
 		AI_Countdown_Timer_Reset(kActorMaggie, 0);
-		AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(2, 9));
+		AI_Movement_Track_Flush(kActorMaggie);
+		Loop_Actor_Walk_To_Actor(kActorMaggie, kActorMcCoy, 30, false, false);
+		Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
+		Actor_Change_Animation_Mode(kActorMaggie, 56);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Wait);
 		return true;
+
+	case kGoalMaggieMA02Wait:
+		AI_Countdown_Timer_Reset(kActorMaggie, 0);
+		AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(3, 9));
+		return true;
+
 	case 9:
 		if (Random_Query(0, 2) <= 0) {
 			Actor_Face_Actor(kActorMaggie, kActorMcCoy, false);
@@ -273,53 +300,66 @@ bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		} else {
 			AI_Movement_Track_Flush(kActorMaggie);
 			if (Actor_Query_Which_Set_In(kActorMaggie) == kSetMA02_MA04) {
-				AI_Movement_Track_Append(kActorMaggie, sub_44B260(), 486);
+				AI_Movement_Track_Append(kActorMaggie, randomWaypointMA02(), 486);
 			}
 			AI_Movement_Track_Repeat(kActorMaggie);
 		}
 		return true;
-	case 8:
+
+	case kGoalMaggieMA02SitDown:
+		Actor_Change_Animation_Mode(kActorMaggie, 54);
+		_animationState = kMaggieStateLayingIdle;
+		_animationFrame = 0;
 		AI_Countdown_Timer_Reset(kActorMaggie, 0);
-		AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(3, 9));
+		AI_Countdown_Timer_Start(kActorMaggie, 0, Random_Query(2, 9));
 		return true;
-	case 7:
-		AI_Countdown_Timer_Reset(kActorMaggie, 0);
+
+	case kGoalMaggieMA02Sleep:
+		Actor_Change_Animation_Mode(kActorMaggie, 55);
+		_animationState = kMaggieStateSleeping;
+		_animationFrame = 0;
+		return true;
+
+	case 400:
+		Actor_Set_Goal_Number(kActorMaggie, 410);
+		break;
+
+	case kGoalMaggieKP05Wait:
 		AI_Movement_Track_Flush(kActorMaggie);
-		Loop_Actor_Walk_To_Actor(kActorMaggie, kActorMcCoy, 30, false, false);
+		Game_Flag_Set(kFlagMaggieHasBomb);
+		Actor_Put_In_Set(kActorMaggie, kSetKP05_KP06);
+		Actor_Set_At_XYZ(kActorMaggie, -672.0, 0.0, -428.0, 653);
+		Actor_Change_Animation_Mode(kActorMaggie, kAnimationModeIdle);
+		break;
+
+	case kGoalMaggieKP05McCoyEntred:
+		Scene_Exits_Disable();
+		Loop_Actor_Walk_To_XYZ(kActorMaggie, -734.0, 0.0, -432.0, 0, false, false, 0);
 		Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
 		Actor_Change_Animation_Mode(kActorMaggie, 56);
-		Actor_Set_Goal_Number(kActorMaggie, 8);
-		return true;
-	case 3:
-		Player_Loses_Control();
-		AI_Movement_Track_Flush(kActorMaggie);
-		Loop_Actor_Walk_To_Actor(kActorMaggie, kActorMcCoy, 48, false, false);
 		Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
-		Actor_Face_Actor(kActorMaggie, kActorMcCoy, false);
-		Actor_Says(kActorMcCoy, 2400, kAnimationModeFeeding);
-		Actor_Set_Goal_Number(kActorMaggie, 8);
-		Player_Gains_Control();
-		return true;
-	case 1:
-		Actor_Put_In_Set(kActorMaggie, kSetMA02_MA04);
-		Actor_Set_At_Waypoint(kActorMaggie, sub_44B260(), 512);
+		Actor_Says(kActorMcCoy, 2225, kAnimationModeTalk);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05WalkToMcCoy);
+		break;
+
+	case kGoalMaggieKP05WalkToMcCoy:
+		if (Actor_Query_Is_In_Current_Set(kActorSteele)) {
+			Actor_Says(kActorSteele, 3270, 59);
+		}
 		AI_Movement_Track_Flush(kActorMaggie);
-		AI_Movement_Track_Append(kActorMaggie, 264, 0);
+		AI_Movement_Track_Append(kActorMaggie, 540, 0);
 		AI_Movement_Track_Repeat(kActorMaggie);
-		return true;
-	case 0:
-		Actor_Put_In_Set(kActorMaggie, kSetMA02_MA04);
-		Actor_Set_At_Waypoint(kActorMaggie, 265, 780);
-		return true;
-	case 415:
+		break;
+
+	case kGoalMaggieKP05Explode:
 		AI_Movement_Track_Flush(kActorMaggie);
 		Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
 		Sound_Play(494, 50, 0, 0, 100);
-		Actor_Set_Goal_Number(kActorMaggie, 599);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieDead);
 		Actor_Change_Animation_Mode(kActorMaggie, 51);
 		if (Actor_Query_Inch_Distance_From_Actor(kActorMcCoy, kActorMaggie) < 144) {
 			Player_Loses_Control();
-			Actor_Change_Animation_Mode(kActorMcCoy, 48);
+			Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
 			Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1);
 		} else {
 			Delay(3000);
@@ -338,33 +378,7 @@ bool AIScriptMaggie::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 			}
 		}
 		break;
-	case 413:
-		if (Actor_Query_Is_In_Current_Set(kActorSteele)) {
-			Actor_Says(kActorSteele, 3270, 59);
-		}
-		AI_Movement_Track_Flush(kActorMaggie);
-		AI_Movement_Track_Append(kActorMaggie, 540, 0);
-		AI_Movement_Track_Repeat(kActorMaggie);
-		break;
-	case 412:
-		Scene_Exits_Disable();
-		Loop_Actor_Walk_To_XYZ(kActorMaggie, -734.0, 0.0, -432.0, 0, false, false, 0);
-		Actor_Face_Actor(kActorMaggie, kActorMcCoy, true);
-		Actor_Change_Animation_Mode(kActorMaggie, 56);
-		Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
-		Actor_Says(kActorMcCoy, 2225, kAnimationModeTalk);
-		Actor_Set_Goal_Number(kActorMaggie, 413);
-		break;
-	case 411:
-		AI_Movement_Track_Flush(kActorMaggie);
-		Game_Flag_Set(kFlagMaggieHasBomb);
-		Actor_Put_In_Set(kActorMaggie, kSetKP05_KP06);
-		Actor_Set_At_XYZ(kActorMaggie, -672.0, 0.0, -428.0, 653);
-		Actor_Change_Animation_Mode(kActorMaggie, kAnimationModeIdle);
-		break;
-	case 400:
-		Actor_Set_Goal_Number(kActorMaggie, 410);
-		break;
+
 	}
 	return false;
 }
@@ -376,10 +390,12 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 		*animation = 871;
 		_animationFrame = 0;
 		break;
+
 	case kMaggieStateDeadExploded:
 		*animation = 874;
 		_animationFrame = Slice_Animation_Query_Number_Of_Frames(874) - 1;
 		break;
+
 	case kMaggieStateExploding:
 		*animation = 874;
 		_animationFrame++;
@@ -390,6 +406,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			Actor_Set_At_Waypoint(kActorMaggie, 41, 0);
 		}
 		break;
+
 	case kMaggieStateBombJumping:
 		*animation = 873;
 		_animationFrame++;
@@ -397,9 +414,10 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			_animationState = kMaggieStateBombIdle;
 			_animationFrame = 0;
 			*animation = 875;
-			Actor_Set_Goal_Number(kActorMaggie, 414);
+			Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05WillExplode);
 		}
 		break;
+
 	case kMaggieStateBombWalk:
 		*animation = 872;
 		_animationFrame++;
@@ -407,6 +425,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 		}
 		break;
+
 	case kMaggieStateBombIdle:
 		*animation = 875;
 		_animationFrame++;
@@ -414,6 +433,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 		}
 		break;
+
 	case kMaggieStateWakingUp:
 		*animation = 876;
 		_animationFrame--;
@@ -423,30 +443,33 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 		_animationState = kMaggieStateLayingIdle;
 		_animationFrame = 0;
 		*animation = 867;
-		goal = Actor_Query_Goal_Number(66);
-		if (goal == 3) {
+		goal = Actor_Query_Goal_Number(kActorMaggie);
+		if (goal == kGoalMaggieMA02GetFed) {
 			_animationState = kMaggieStateStandingUp;
 			_animationFrame = 0;
 			*animation = 868;
-		} else if (goal == 7) {
-			Actor_Set_Goal_Number(kActorMaggie, 10);
-			Actor_Set_Goal_Number(kActorMaggie, 7);
+		} else if (goal == kGoalMaggieMA02WalkToMcCoy) {
+			Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02SitDown);
+			Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02WalkToMcCoy);
 		} else {
-			Actor_Set_Goal_Number(kActorMaggie, 10);
+			Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02SitDown);
 		}
 		break;
+
 	case kMaggieStateSleeping:
 		*animation = 876;
 		_animationFrame = Slice_Animation_Query_Number_Of_Frames(876) - 1;
 		break;
+
 	case kMaggieStateGoingToSleep:
 		*animation = 876;
 		_animationFrame++;
 		if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(876) - 1) {
 			_animationState = kMaggieStateSleeping;
-			Actor_Set_Goal_Number(kActorMaggie, 11);
+			Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Sleep);
 		}
 		break;
+
 	case kMaggieStateStandingUp:
 		*animation = 868;
 		_animationFrame++;
@@ -454,14 +477,15 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			*animation = 864;
 			_animationState = kMaggieStateIdle;
 			_animationFrame = 0;
-			if (Actor_Query_Goal_Number(kActorMaggie) == 10) {
-				Actor_Set_Goal_Number(kActorMaggie, 8);
-			} else if (Actor_Query_Goal_Number(kActorMaggie) == 7) {
-				Actor_Set_Goal_Number(kActorMaggie, 12);
-				Actor_Set_Goal_Number(kActorMaggie, 7);
+			if (Actor_Query_Goal_Number(kActorMaggie) == kGoalMaggieMA02SitDown) {
+				Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02Wait);
+			} else if (Actor_Query_Goal_Number(kActorMaggie) == kGoalMaggieMA02WalkToMcCoy) {
+				Actor_Set_Goal_Number(kActorMaggie, 12); // this is never used
+				Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02WalkToMcCoy);
 			}
 		}
 		break;
+
 	case kMaggieStateLayingIdle:
 		*animation = 867;
 		_animationFrame++;
@@ -469,6 +493,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 		}
 		break;
+
 	case kMaggieStateLayingDown:
 		*animation = 866;
 		_animationFrame++;
@@ -477,10 +502,11 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 			*animation = 867;
 			if (Actor_Query_Goal_Number(kActorMaggie) == 9) {
-				Actor_Set_Goal_Number(kActorMaggie, 10);
+				Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02SitDown);
 			}
 		}
 		break;
+
 	case kMaggieStateHappyB:
 		*animation = 865;
 		_animationFrame++;
@@ -493,6 +519,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			}
 		}
 		break;
+
 	case kMaggieStateHappyA:
 		*animation = 870;
 		if (_animationFrame == 1) {
@@ -509,6 +536,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 		}
 		break;
+
 	case kMaggieStateJumping:
 		*animation = 869;
 		_animationFrame++;
@@ -519,6 +547,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 		}
 		break;
+
 	case kMaggieStateWalking:
 		*animation = 863;
 		_animationFrame++;
@@ -526,6 +555,7 @@ bool AIScriptMaggie::UpdateAnimation(int *animation, int *frame) {
 			_animationFrame = 0;
 		}
 		break;
+
 	case kMaggieStateIdle:
 		*animation = 864;
 		_animationFrame++;
@@ -581,31 +611,22 @@ bool AIScriptMaggie::ChangeAnimationMode(int mode) {
 	}
 
 	switch (mode) {
-	case 88:
-		_animationState = kMaggieStateDead;
+	case 51:
+		_animationState = kMaggieStateExploding;
 		_animationFrame = 0;
+		Sound_Play(272, 50, 0, 0, 50);
 		break;
-	case 57:
-		if (_animationState != kMaggieStateHappyB) {
-			_animationFrame = 0;
-			_animationState = kMaggieStateHappyB;
-		}
-		var_45F3F8 = Random_Query(2, 6);
-		Sound_Play(276, 50, 0, 0, 50);
-		break;
-	case 56:
-		if (_animationState != 3) {
+
+	case kAnimationModeFeeding:
+		if (Game_Flag_Query(kFlagMaggieHasBomb)) {
+			_animationState = kMaggieStateBombJumping;
 			_animationFrame = 0;
-			_animationState = kMaggieStateHappyA;
-		}
-		var_45F3FC = Random_Query(2, 6);
-		break;
-	case 55:
-		if (_animationState == kMaggieStateLayingIdle) {
-			_animationState = kMaggieStateGoingToSleep;
+		} else {
+			_animationState = kMaggieStateJumping;
 			_animationFrame = 0;
 		}
 		break;
+
 	case 54:
 		if (_animationState <= kMaggieStateSleeping) {
 			if (_animationState > 0) {
@@ -619,20 +640,36 @@ bool AIScriptMaggie::ChangeAnimationMode(int mode) {
 			}
 		}
 		break;
-	case kAnimationModeFeeding:
-		if (Game_Flag_Query(kFlagMaggieHasBomb)) {
-			_animationState = kMaggieStateBombJumping;
+
+	case 55:
+		if (_animationState == kMaggieStateLayingIdle) {
+			_animationState = kMaggieStateGoingToSleep;
 			_animationFrame = 0;
-		} else {
-			_animationState = kMaggieStateJumping;
+		}
+		break;
+
+	case 56:
+		if (_animationState != 3) {
 			_animationFrame = 0;
+			_animationState = kMaggieStateHappyA;
 		}
+		var_45F3FC = Random_Query(2, 6);
 		break;
-	case 51:
-		_animationState = kMaggieStateExploding;
+
+	case 57:
+		if (_animationState != kMaggieStateHappyB) {
+			_animationFrame = 0;
+			_animationState = kMaggieStateHappyB;
+		}
+		var_45F3F8 = Random_Query(2, 6);
+		Sound_Play(276, 50, 0, 0, 50);
+		break;
+
+	case 88:
+		_animationState = kMaggieStateDead;
 		_animationFrame = 0;
-		Sound_Play(272, 50, 0, 0, 50);
 		break;
+
 	}
 	return true;
 }
@@ -658,21 +695,23 @@ bool AIScriptMaggie::ReachedMovementTrackWaypoint(int waypointId) {
 void AIScriptMaggie::FledCombat() {
 }
 
-int AIScriptMaggie::sub_44B260() {
-	int random = Random_Query(0, 3);
-	if (random == 0) {
+int AIScriptMaggie::randomWaypointMA02() {
+	switch (Random_Query(0, 3)) {
+	case 0:
 		return 264;
-	}
-	if (random == 1) {
+
+	case 1:
 		return 265;
-	}
-	if (random == 2) {
+
+	case 2:
 		return 266;
+
+	default:
+		return 267;
 	}
-	return 267;
 }
 
-float AIScriptMaggie::sub_44B200(int actorId, float x, float y, float z) {
+float AIScriptMaggie::distanceToActor(int actorId, float x, float y, float z) {
 	float actorX, actorY, actorZ;
 	Actor_Query_XYZ(actorId, &actorX, &actorY, &actorZ);
 	return sqrt(static_cast<float>((z - actorZ) * (z - actorZ) + (y - actorY) * (y - actorY) + (x - actorX) * (x - actorX)));
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp
index df9ad65..0d6e40b 100644
--- a/engines/bladerunner/script/ai/sadik.cpp
+++ b/engines/bladerunner/script/ai/sadik.cpp
@@ -358,7 +358,7 @@ bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) {
 		Actor_Put_In_Set(kActorSadik, kSetKP05_KP06);
 		Actor_Set_At_XYZ(kActorSadik, -1134.0f, 0.0f, 73.45f, 398);
 		Actor_Set_Goal_Number(kActorClovis, 513);
-		Actor_Set_Goal_Number(kActorMaggie, 411);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05Wait);
 		return true;
 
 	case 412:
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index 73cc4c5..5c5a774 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -480,8 +480,8 @@ DECLARE_SCRIPT(Maggie)
 	int var_45F404;
 	int var_45F408;
 
-	int sub_44B260();
-	float sub_44B200(int actorId, float x, float y, float z);
+	int randomWaypointMA02();
+	float distanceToActor(int actorId, float x, float y, float z);
 END_SCRIPT
 
 DECLARE_SCRIPT(GenericWalkerA)
diff --git a/engines/bladerunner/script/scene/kp05.cpp b/engines/bladerunner/script/scene/kp05.cpp
index 2a30cd4..69de280 100644
--- a/engines/bladerunner/script/scene/kp05.cpp
+++ b/engines/bladerunner/script/scene/kp05.cpp
@@ -142,8 +142,8 @@ void SceneScriptKP05::PlayerWalkedIn() {
 		Game_Flag_Query(kFlagKP03toKP05); // bug in game?
 	}
 
-	if (Actor_Query_Goal_Number(kActorMaggie) == 411) {
-		Actor_Set_Goal_Number(kActorMaggie, 412);
+	if (Actor_Query_Goal_Number(kActorMaggie) == kGoalMaggieKP05Wait) {
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05McCoyEntred);
 	}
 
 	if (Actor_Query_Goal_Number(kActorSteele) == 450) {
diff --git a/engines/bladerunner/script/scene/ma02.cpp b/engines/bladerunner/script/scene/ma02.cpp
index b749b18..5b3d9b0 100644
--- a/engines/bladerunner/script/scene/ma02.cpp
+++ b/engines/bladerunner/script/scene/ma02.cpp
@@ -46,7 +46,7 @@ void SceneScriptMA02::InitializeScene() {
 	 && Global_Variable_Query(kVariableChapter) == 5
 	 && Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
 	) {
-		Actor_Set_Goal_Number(kActorMaggie, 599);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieDead);
 		Actor_Change_Animation_Mode(kActorMaggie, 88);
 		Actor_Put_In_Set(kActorMaggie, kSetMA02_MA04);
 		Actor_Set_At_XYZ(kActorMaggie, -35.51f, -144.12f, 428.0f, 0);
@@ -93,12 +93,16 @@ bool SceneScriptMA02::ClickedOn3DObject(const char *objectName, bool a2) {
 		ESPER_Flag_To_Activate();
 		return true;
 	}
+
 	if (Object_Query_Click("BAR-MAIN", objectName)) {
 		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -29.0f, -140.4f, 298.0f, 36, true, false, 0)) {
 			Actor_Face_Object(kActorMcCoy, "BAR-MAIN", true);
 			if (Global_Variable_Query(kVariableChapter) < 4) {
-				Actor_Set_Goal_Number(kActorMaggie, 3);
-			} else if (Global_Variable_Query(kVariableChapter) == 5 && Game_Flag_Query(kFlagMcCoyIsHelpingReplicants) && !Actor_Clue_Query(kActorMcCoy, kClueCrystalsCigarette)) {
+				Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02GetFed);
+			} else if ( Global_Variable_Query(kVariableChapter) == 5
+			        &&  Game_Flag_Query(kFlagMcCoyIsHelpingReplicants)
+			        && !Actor_Clue_Query(kActorMcCoy, kClueCrystalsCigarette)
+			) {
 				Overlay_Remove("MA02OVER");
 				Item_Pickup_Spin_Effect(985, 480, 240);
 				Actor_Voice_Over(1150, kActorVoiceOver);
@@ -119,7 +123,7 @@ bool SceneScriptMA02::ClickedOn3DObject(const char *objectName, bool a2) {
 
 bool SceneScriptMA02::ClickedOnActor(int actorId) {
 	if (actorId == kActorMaggie
-	 && Actor_Query_Goal_Number(kActorMaggie) == 599
+	 && Actor_Query_Goal_Number(kActorMaggie) == kGoalMaggieDead
 	) {
 		if (!Loop_Actor_Walk_To_Actor(kActorMcCoy, kActorMaggie, 30, true, false)) {
 			Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);
@@ -202,7 +206,8 @@ void SceneScriptMA02::PlayerWalkedIn() {
 	 && !Game_Flag_Query(kFlagMA04ToMA02)
 	 &&  Actor_Query_Goal_Number(kActorMaggie) != 2
 	) {
-		Actor_Set_Goal_Number(kActorMaggie, 1);
+		Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieMA02WalkToEntrance);
+
 		if (!Game_Flag_Query(kFlagMA02MaggieIntroduced)) {
 			Game_Flag_Set(kFlagMA02MaggieIntroduced);
 			Actor_Face_Actor(kActorMcCoy, kActorMaggie, true);


Commit: 49c5069324e1c45a399f4dcf2a32ce53be840377
    https://github.com/scummvm/scummvm/commit/49c5069324e1c45a399f4dcf2a32ce53be840377
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-02-05T22:02:02+01:00

Commit Message:
BLADERUNNER: Added debugger command "friend"

It can be used for querying and changing friendliness between actors.

Changed paths:
    engines/bladerunner/debugger.cpp
    engines/bladerunner/debugger.h


diff --git a/engines/bladerunner/debugger.cpp b/engines/bladerunner/debugger.cpp
index db31c76..49abdfc 100644
--- a/engines/bladerunner/debugger.cpp
+++ b/engines/bladerunner/debugger.cpp
@@ -84,6 +84,7 @@ Debugger::Debugger(BladeRunnerEngine *vm) : GUI::Debugger() {
 	registerCmd("var", WRAP_METHOD(Debugger, cmdVariable));
 	registerCmd("clue", WRAP_METHOD(Debugger, cmdClue));
 	registerCmd("timer", WRAP_METHOD(Debugger, cmdTimer));
+	registerCmd("friend", WRAP_METHOD(Debugger, cmdFriend));
 	registerCmd("load", WRAP_METHOD(Debugger, cmdLoad));
 	registerCmd("save", WRAP_METHOD(Debugger, cmdSave));
 }
@@ -623,6 +624,47 @@ bool Debugger::cmdTimer(int argc, const char **argv) {
 	return true;
 }
 
+bool Debugger::cmdFriend(int argc, const char **argv) {
+	if (argc != 3 && argc != 4) {
+		debugPrintf("Get or changes friendliness for an actor towards another actor.\n");
+		debugPrintf("Usage: %s <actorId> <otherActorId> [<value>]\n", argv[0]);
+		return true;
+	}
+
+	int actorId = atoi(argv[1]);
+
+	Actor *actor = nullptr;
+	if (actorId >= 0 && actorId < (int)_vm->_gameInfo->getActorCount()) {
+		actor = _vm->_actors[actorId];
+	}
+
+	if (actor == nullptr) {
+		debugPrintf("Unknown actor %i\n", actorId);
+		return true;
+	}
+
+	int otherActorId = atoi(argv[2]);
+
+	if (otherActorId < 0 && otherActorId >= (int)_vm->_gameInfo->getActorCount()) {
+		debugPrintf("Unknown actor %i\n", otherActorId);
+	}
+
+	if (argc == 4) {
+		int value = atoi(argv[3]);
+
+		if (value < 0 || value > 100) {
+			debugPrintf("Value must be [0..100]");
+			return true;
+		}
+
+		actor->setFriendlinessToOther(otherActorId, value);
+	}
+
+	debugPrintf("actorFriendliness(%i, %i) = %i\n", actorId, otherActorId, actor->getFriendlinessToOther(otherActorId));
+
+	return true;
+}
+
 bool Debugger::cmdLoad(int argc, const char **argv) {
 	if (argc != 2) {
 		debugPrintf("Loads a save game from original format.\n");
diff --git a/engines/bladerunner/debugger.h b/engines/bladerunner/debugger.h
index 9b3d169..6fe535a 100644
--- a/engines/bladerunner/debugger.h
+++ b/engines/bladerunner/debugger.h
@@ -70,6 +70,7 @@ public:
 	bool cmdVariable(int argc, const char **argv);
 	bool cmdClue(int argc, const char **argv);
 	bool cmdTimer(int argc, const char **argv);
+	bool cmdFriend(int argc, const char **argv);
 	bool cmdLoad(int argc, const char **argv);
 	bool cmdSave(int argc, const char **argv);
 





More information about the Scummvm-git-logs mailing list