diff options
Diffstat (limited to 'engines')
| -rw-r--r-- | engines/bladerunner/script/ai/klein.cpp | 52 | ||||
| -rw-r--r-- | engines/bladerunner/script/init_script.cpp | 6 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/ps06.cpp | 6 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/ps07.cpp | 292 | 
4 files changed, 248 insertions, 108 deletions
diff --git a/engines/bladerunner/script/ai/klein.cpp b/engines/bladerunner/script/ai/klein.cpp index 66d8801555..943995726a 100644 --- a/engines/bladerunner/script/ai/klein.cpp +++ b/engines/bladerunner/script/ai/klein.cpp @@ -53,25 +53,27 @@ bool AIScriptKlein::Update() {  	// The following if-clauses and flags circumvent the manual's explicit instruction that McCoy should upload his clues  	// on the Mainframe, so that Dino Klein can acquire them. -	if (Actor_Clue_Query(kActorMcCoy, kClueOfficersStatement) -	    && !Game_Flag_Query(kFlagMcCoyHasOfficersStatement) -	) { -		Game_Flag_Set(kFlagMcCoyHasOfficersStatement); -	} -	if (Actor_Clue_Query(kActorMcCoy, kCluePaintTransfer) -	    && !Game_Flag_Query(kFlagMcCoyHasPaintTransfer) -	) { -		Game_Flag_Set(kFlagMcCoyHasPaintTransfer); -	} -	if (Actor_Clue_Query(kActorMcCoy, kClueShellCasings) -	    && !Game_Flag_Query(kFlagMcCoyHasShellCasings) -	) { -		Game_Flag_Set(kFlagMcCoyHasShellCasings); -	} -	if (Actor_Clue_Query(kActorMcCoy, kClueChromeDebris) -	    && !Game_Flag_Query(kFlagMcCoyHasChromeDebris) -	) { -		Game_Flag_Set(kFlagMcCoyHasChromeDebris); +	if (!_vm->_cutContent) { +		if (Actor_Clue_Query(kActorMcCoy, kClueOfficersStatement) +		    && !Game_Flag_Query(kFlagMcCoyHasOfficersStatement) +		) { +			Game_Flag_Set(kFlagMcCoyHasOfficersStatement); +		} +		if (Actor_Clue_Query(kActorMcCoy, kCluePaintTransfer) +		    && !Game_Flag_Query(kFlagMcCoyHasPaintTransfer) +		) { +			Game_Flag_Set(kFlagMcCoyHasPaintTransfer); +		} +		if (Actor_Clue_Query(kActorMcCoy, kClueShellCasings) +		    && !Game_Flag_Query(kFlagMcCoyHasShellCasings) +		) { +			Game_Flag_Set(kFlagMcCoyHasShellCasings); +		} +		if (Actor_Clue_Query(kActorMcCoy, kClueChromeDebris) +		    && !Game_Flag_Query(kFlagMcCoyHasChromeDebris) +		) { +			Game_Flag_Set(kFlagMcCoyHasChromeDebris); +		}  	}  	// The following deals with the case that Klein gets annoyed by McCoy and how he recovers from that @@ -79,6 +81,7 @@ bool AIScriptKlein::Update() {  	    && Actor_Query_Friendliness_To_Other(kActorKlein, kActorMcCoy) < 35  	    && !Game_Flag_Query(kFlagPS07KleinInsulted)  	) { +		// kActorTimerAIScriptCustomTask2 causes the "Klein is annoyed dialogue" to occur after 5 seconds  		AI_Countdown_Timer_Reset(kActorKlein, kActorTimerAIScriptCustomTask2);  		AI_Countdown_Timer_Start(kActorKlein, kActorTimerAIScriptCustomTask2, 5);  		Game_Flag_Set(kFlagPS07KleinInsulted); @@ -219,17 +222,22 @@ bool AIScriptKlein::GoalChanged(int currentGoalNumber, int newGoalNumber) {  		break;  	case kGoalKleinIsAnnoyedByMcCoyInit:  		AI_Movement_Track_Flush(kActorKlein); -		AI_Movement_Track_Append(kActorKlein, 32, 5);  // kSetPS07 +		AI_Movement_Track_Append(kActorKlein, 32, 5);  // kSetPS07 (hidden spot)  		AI_Movement_Track_Repeat(kActorKlein);  		break;  	case kGoalKleinIsAnnoyedByMcCoy01:  		AI_Movement_Track_Flush(kActorKlein); -		AI_Movement_Track_Append(kActorKlein, 35, 60); // kSetFreeSlotC +		if (_vm->_cutContent) { +			AI_Movement_Track_Append(kActorKlein, 35, Random_Query(8, 18)); // kSetFreeSlotC +		} else { +			// this never really gets triggered in the original game +			AI_Movement_Track_Append(kActorKlein, 35, 60); // kSetFreeSlotC +		}  		AI_Movement_Track_Repeat(kActorKlein);  		break;  	case kGoalKleinIsAnnoyedByMcCoy02:  		AI_Movement_Track_Flush(kActorKlein); -		AI_Movement_Track_Append(kActorKlein, 32, 5);  // kSetPS07 +		AI_Movement_Track_Append(kActorKlein, 32, 5);  // kSetPS07 (hidden spot)  		AI_Movement_Track_Repeat(kActorKlein);  		break;  	case kGoalKleinIsAnnoyedByMcCoyFinal: diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp index c62466acfc..3856f908ed 100644 --- a/engines/bladerunner/script/init_script.cpp +++ b/engines/bladerunner/script/init_script.cpp @@ -1138,6 +1138,12 @@ void InitScript::Init_Clues2() {  	Actor_Clue_Add_To_Database(kActorKlein, kClueHollowayInterview, 65, false, false, -1);  	Actor_Clue_Add_To_Database(kActorKlein, kClueRunciterConfession1, 65, false, false, -1);  	Actor_Clue_Add_To_Database(kActorKlein, kClueRunciterConfession2, 65, false, false, -1); +	if (_vm->_cutContent) { +		Actor_Clue_Add_To_Database(kActorKlein, kClueShellCasings, 65, false, false, -1); +		Actor_Clue_Add_To_Database(kActorKlein, kClueChromeDebris, 65, false, false, -1); +		Actor_Clue_Add_To_Database(kActorKlein, kClueOfficersStatement, 65, false, false, -1); +		Actor_Clue_Add_To_Database(kActorKlein, kCluePaintTransfer, 65, false, false, -1); +	}  	Actor_Clue_Add_To_Database(kActorMurray, kClueMcCoyShotZubenInTheBack, 55, false, false, -1);  	Actor_Clue_Add_To_Database(kActorMurray, kClueMcCoyIsAnnoying, 55, false, false, -1);  	Actor_Clue_Add_To_Database(kActorMurray, kClueMcCoyIsKind, 70, false, false, -1); diff --git a/engines/bladerunner/script/scene/ps06.cpp b/engines/bladerunner/script/scene/ps06.cpp index bf9a82cace..1b2477a201 100644 --- a/engines/bladerunner/script/scene/ps06.cpp +++ b/engines/bladerunner/script/scene/ps06.cpp @@ -83,12 +83,18 @@ bool SceneScriptPS06::ClickedOn3DObject(const char *objectName, bool a2) {  			}  			Actor_Clues_Transfer_New_To_Mainframe(kActorMcCoy);  			Actor_Clues_Transfer_New_From_Mainframe(kActorMcCoy); +			if (_vm->_cutContent) { +				Actor_Clues_Transfer_New_From_Mainframe(kActorKlein); +			}  			return true;  		} else {  			bool transferedClues = Actor_Clues_Transfer_New_To_Mainframe(kActorMcCoy);  			if (_vm->_cutContent && !transferedClues) {  				Actor_Says(kActorAnsweringMachine, 370,  kAnimationModeTalk); // no clues transfered  			} else { +				if (_vm->_cutContent) { +					Actor_Clues_Transfer_New_From_Mainframe(kActorKlein); +				}  				Ambient_Sounds_Play_Sound(kSfxDATALOAD, 50, 0, 0, 99);  				Delay(2000);  			} diff --git a/engines/bladerunner/script/scene/ps07.cpp b/engines/bladerunner/script/scene/ps07.cpp index 718254584e..5971a586a9 100644 --- a/engines/bladerunner/script/scene/ps07.cpp +++ b/engines/bladerunner/script/scene/ps07.cpp @@ -49,7 +49,7 @@ void SceneScriptPS07::SceneLoaded() {  		Unobstacle_Object("L.MOUSE", true);  		Unobstacle_Object("L.MOUSE2", true);  		Clickable_Object("L.MOUSE"); -		Clickable_Object("L.MOUSE2"); +		Unclickable_Object("L.MOUSE2"); // TODO: we may not use this one (restored content version)  	}  } @@ -58,10 +58,11 @@ bool SceneScriptPS07::MouseClick(int x, int y) {  }  bool SceneScriptPS07::ClickedOn3DObject(const char *objectName, bool a2) { -	if (Object_Query_Click("L.MOUSE", objectName)) { // a bug? Which object is this? +	if (Object_Query_Click("L.MOUSE", objectName)) { // this object is restored in the scene (buzzer button)  		Sound_Play(kSfxLABBUZZ1, 70, 0, 0, 50);  		if (Actor_Query_Goal_Number(kActorKlein) < kGoalKleinIsAnnoyedByMcCoyInit -		    && Actor_Query_Goal_Number(kActorKlein) > kGoalKleinDefault) { +		    && Actor_Query_Goal_Number(kActorKlein) > kGoalKleinDefault +		) {  			Actor_Face_Actor(kActorMcCoy, kActorKlein, true);  			Actor_Set_Goal_Number(kActorKlein, kGoalKleinGotoLabSpeaker);  			Actor_Modify_Friendliness_To_Other(kActorKlein, kActorMcCoy, -3); @@ -73,101 +74,220 @@ bool SceneScriptPS07::ClickedOn3DObject(const char *objectName, bool a2) {  bool SceneScriptPS07::ClickedOnActor(int actorId) {  	if (actorId == kActorKlein) { -		Actor_Face_Actor(kActorMcCoy, kActorKlein, true); -		Actor_Set_Goal_Number(kActorKlein, kGoalKleinGotoLabSpeaker); +		if (_vm->_cutContent) { +			if (Actor_Query_Goal_Number(kActorKlein) >= kGoalKleinIsAnnoyedByMcCoyInit +			    || (Actor_Query_Goal_Number(kActorKlein) < kGoalKleinIsAnnoyedByMcCoyInit +			        && Actor_Query_Friendliness_To_Other(kActorKlein, kActorMcCoy) < 40) +			) { +				// Dino ignores McCoy +				return true; +			} else { +				Actor_Face_Actor(kActorMcCoy, kActorKlein, true); +				Actor_Set_Goal_Number(kActorKlein, kGoalKleinGotoLabSpeaker); +				if (!Game_Flag_Query(kFlagPS07KleinTalkClues)) { +					Actor_Says(kActorMcCoy, 4115, 13); +				} -		if (!Game_Flag_Query(kFlagPS07KleinTalkClues)) { -			Actor_Says(kActorMcCoy, 4115, 13); -		} +				if (!Game_Flag_Query(kFlagPS07KleinTalkClues) +				    && (Actor_Clue_Query(kActorKlein, kClueShellCasings) +				        || Actor_Clue_Query(kActorKlein, kClueOfficersStatement) +				        || Actor_Clue_Query(kActorKlein, kCluePaintTransfer) +				        || Actor_Clue_Query(kActorKlein, kClueChromeDebris)) +				) { +					Actor_Face_Actor(kActorKlein, kActorMcCoy, true); +					Actor_Says(kActorKlein, 30, 12); +					Game_Flag_Set(kFlagPS07KleinTalkClues); +				} else { +					if (Game_Flag_Query(kFlagPS07KleinTalkClues)) { +						Actor_Says(kActorMcCoy, 4130, 18); +					} +				} +				if (Actor_Clue_Query(kActorKlein, kClueShellCasings) +				    && !Game_Flag_Query(kFlagPS07KleinTalkShellCasings) +				) { +					Game_Flag_Set(kFlagPS07KleinTalkShellCasings); +					Actor_Clue_Acquire(kActorMcCoy, kClueLabShellCasings, false, kActorKlein); +					Actor_Says(kActorKlein, 50, 16); +					Actor_Says(kActorMcCoy, 4135, 13); +					Actor_Says(kActorKlein, 60, 15); +					Actor_Says(kActorKlein, 70, 12); +					Actor_Says(kActorMcCoy, 4140, 18); +					Actor_Says(kActorKlein, 80, 14); +					Actor_Says(kActorKlein, 90, 14); +					Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +					return true; +				} -		if (!Game_Flag_Query(kFlagPS07KleinTalkClues) -		    && (Game_Flag_Query(kFlagMcCoyHasShellCasings) -		        || Game_Flag_Query(kFlagMcCoyHasOfficersStatement) -		        || Game_Flag_Query(kFlagMcCoyHasPaintTransfer) -		        || Game_Flag_Query(kFlagMcCoyHasChromeDebris)) -		) { -			Actor_Face_Actor(kActorKlein, kActorMcCoy, true); -			Actor_Says(kActorKlein, 30, 12); -			Game_Flag_Set(kFlagPS07KleinTalkClues); +				if (Actor_Clue_Query(kActorKlein, kClueOfficersStatement) +				    && !Game_Flag_Query(kFlagPS07KleinTalkOfficersStatement) +				) { +					Game_Flag_Set(kFlagPS07KleinTalkOfficersStatement); +					Actor_Clue_Acquire(kActorMcCoy, kClueLabCorpses, false, kActorKlein); +					Actor_Says(kActorKlein, 100, 13); +					Actor_Says(kActorMcCoy, 4145, 13); +					Actor_Says(kActorKlein, 110, 12); +					Actor_Says(kActorMcCoy, 4150, 13); +					Actor_Says(kActorKlein, 120, 14); +					Actor_Says(kActorMcCoy, 4155, 17); +					Actor_Says(kActorKlein, 130, 15); +					Actor_Says(kActorMcCoy, 4160, 13); +					Actor_Says(kActorKlein, 140, 16); +					Actor_Says(kActorMcCoy, 4165, 18); +					Actor_Says(kActorKlein, 160, 13); +					Actor_Says(kActorMcCoy, 4170, 19); +					Actor_Says(kActorMcCoy, 4175, 19); +					Actor_Modify_Friendliness_To_Other(kActorKlein, kActorMcCoy, 3); +					Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +					return true; +				} + +				if (Actor_Clue_Query(kActorKlein, kCluePaintTransfer) +				    && !Game_Flag_Query(kFlagPS07KleinTalkPaintTransfer) +				) { +					Game_Flag_Set(kFlagPS07KleinTalkPaintTransfer); +					Actor_Clue_Acquire(kActorMcCoy, kClueLabPaintTransfer, false, kActorKlein); +					Actor_Says(kActorKlein, 170, 14); +					Actor_Says(kActorMcCoy, 4180, 13); +					Actor_Says(kActorKlein, 180, 12); +					Actor_Says(kActorKlein, 190, 13); +					Actor_Says(kActorKlein, 200, 16); +					Actor_Says(kActorMcCoy, 4185, 18); +					Actor_Says(kActorKlein, 210, 12); +					Actor_Modify_Friendliness_To_Other(kActorKlein, kActorMcCoy, -12); +					Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +					return true; +				} + +				if (Actor_Clue_Query(kActorKlein, kClueChromeDebris) +				    && !Game_Flag_Query(kFlagPS07KleinTalkChromeDebris) +				) { +					Game_Flag_Set(kFlagPS07KleinTalkChromeDebris); +					Actor_Says(kActorKlein, 220, 12); +					Actor_Says(kActorMcCoy, 4190, 13); +					Actor_Says(kActorKlein, 230, 14); +					if (_vm->_cutContent) { +						Actor_Says(kActorMcCoy, 4195, 13); +						Actor_Says(kActorKlein, 240, 16); // Car VIN +					} +					Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +					return true; +				} + +				switch (Random_Query(1, 4)) { +				case 1: +					Actor_Says(kActorKlein, 0, 13); +					break; +				case 2: +					Actor_Says(kActorKlein, 40, 13); +					break; +				case 3: +					Actor_Says(kActorKlein, 270, 13); +					break; +				case 4: +					Actor_Says(kActorKlein, 280, 13); +					break; +				} +				Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +				return true; +			}  		} else { -			if (Game_Flag_Query(kFlagPS07KleinTalkClues)) { -				Actor_Says(kActorMcCoy, 4130, 18); +			Actor_Face_Actor(kActorMcCoy, kActorKlein, true); +			Actor_Set_Goal_Number(kActorKlein, kGoalKleinGotoLabSpeaker); + +			if (!Game_Flag_Query(kFlagPS07KleinTalkClues)) { +				Actor_Says(kActorMcCoy, 4115, 13);  			} -		} -		if (Game_Flag_Query(kFlagMcCoyHasShellCasings) -		    && !Game_Flag_Query(kFlagPS07KleinTalkShellCasings) -		) { -			Game_Flag_Set(kFlagPS07KleinTalkShellCasings); -			Actor_Clue_Acquire(kActorMcCoy, kClueLabShellCasings, false, kActorKlein); -			Actor_Says(kActorKlein, 50, 16); -			Actor_Says(kActorMcCoy, 4135, 13); -			Actor_Says(kActorKlein, 60, 15); -			Actor_Says(kActorKlein, 70, 12); -			Actor_Says(kActorMcCoy, 4140, 18); -			Actor_Says(kActorKlein, 80, 14); -			Actor_Says(kActorKlein, 90, 14); -			Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); -			return true; -		} +			if (!Game_Flag_Query(kFlagPS07KleinTalkClues) +			    && (Game_Flag_Query(kFlagMcCoyHasShellCasings) +			        || Game_Flag_Query(kFlagMcCoyHasOfficersStatement) +			        || Game_Flag_Query(kFlagMcCoyHasPaintTransfer) +			        || Game_Flag_Query(kFlagMcCoyHasChromeDebris)) +			) { +				Actor_Face_Actor(kActorKlein, kActorMcCoy, true); +				Actor_Says(kActorKlein, 30, 12); +				Game_Flag_Set(kFlagPS07KleinTalkClues); +			} else { +				if (Game_Flag_Query(kFlagPS07KleinTalkClues)) { +					Actor_Says(kActorMcCoy, 4130, 18); +				} +			} -		if (Game_Flag_Query(kFlagMcCoyHasOfficersStatement) -		    && !Game_Flag_Query(kFlagPS07KleinTalkOfficersStatement) -		) { -			Game_Flag_Set(kFlagPS07KleinTalkOfficersStatement); -			Actor_Clue_Acquire(kActorMcCoy, kClueLabCorpses, false, kActorKlein); -			Actor_Says(kActorKlein, 100, 13); -			Actor_Says(kActorMcCoy, 4145, 13); -			Actor_Says(kActorKlein, 110, 12); -			Actor_Says(kActorMcCoy, 4150, 13); -			Actor_Says(kActorKlein, 120, 14); -			Actor_Says(kActorMcCoy, 4155, 17); -			Actor_Says(kActorKlein, 130, 15); -			Actor_Says(kActorMcCoy, 4160, 13); -			Actor_Says(kActorKlein, 140, 16); -			Actor_Says(kActorMcCoy, 4165, 18); -			Actor_Says(kActorKlein, 160, 13); -			Actor_Says(kActorMcCoy, 4170, 19); -			Actor_Says(kActorMcCoy, 4175, 19); -			Actor_Modify_Friendliness_To_Other(kActorKlein, kActorMcCoy, 3); -			Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); -			return true; -		} +			if (Game_Flag_Query(kFlagMcCoyHasShellCasings) +			    && !Game_Flag_Query(kFlagPS07KleinTalkShellCasings) +			) { +				Game_Flag_Set(kFlagPS07KleinTalkShellCasings); +				Actor_Clue_Acquire(kActorMcCoy, kClueLabShellCasings, false, kActorKlein); +				Actor_Says(kActorKlein, 50, 16); +				Actor_Says(kActorMcCoy, 4135, 13); +				Actor_Says(kActorKlein, 60, 15); +				Actor_Says(kActorKlein, 70, 12); +				Actor_Says(kActorMcCoy, 4140, 18); +				Actor_Says(kActorKlein, 80, 14); +				Actor_Says(kActorKlein, 90, 14); +				Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +				return true; +			} -		if (Game_Flag_Query(kFlagMcCoyHasPaintTransfer) -		    && !Game_Flag_Query(kFlagPS07KleinTalkPaintTransfer) -		) { -			Game_Flag_Set(kFlagPS07KleinTalkPaintTransfer); -			Actor_Clue_Acquire(kActorMcCoy, kClueLabPaintTransfer, false, kActorKlein); -			Actor_Says(kActorKlein, 170, 14); -			Actor_Says(kActorMcCoy, 4180, 13); -			Actor_Says(kActorKlein, 180, 12); -			Actor_Says(kActorKlein, 190, 13); -			Actor_Says(kActorKlein, 200, 16); -			Actor_Says(kActorMcCoy, 4185, 18); -			Actor_Says(kActorKlein, 210, 12); -			Actor_Modify_Friendliness_To_Other(kActorKlein, kActorMcCoy, -12); -			Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); -			return true; -		} +			if (Game_Flag_Query(kFlagMcCoyHasOfficersStatement) +			    && !Game_Flag_Query(kFlagPS07KleinTalkOfficersStatement) +			) { +				Game_Flag_Set(kFlagPS07KleinTalkOfficersStatement); +				Actor_Clue_Acquire(kActorMcCoy, kClueLabCorpses, false, kActorKlein); +				Actor_Says(kActorKlein, 100, 13); +				Actor_Says(kActorMcCoy, 4145, 13); +				Actor_Says(kActorKlein, 110, 12); +				Actor_Says(kActorMcCoy, 4150, 13); +				Actor_Says(kActorKlein, 120, 14); +				Actor_Says(kActorMcCoy, 4155, 17); +				Actor_Says(kActorKlein, 130, 15); +				Actor_Says(kActorMcCoy, 4160, 13); +				Actor_Says(kActorKlein, 140, 16); +				Actor_Says(kActorMcCoy, 4165, 18); +				Actor_Says(kActorKlein, 160, 13); +				Actor_Says(kActorMcCoy, 4170, 19); +				Actor_Says(kActorMcCoy, 4175, 19); +				Actor_Modify_Friendliness_To_Other(kActorKlein, kActorMcCoy, 3); +				Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +				return true; +			} -		if (Game_Flag_Query(kFlagMcCoyHasChromeDebris) -		    && !Game_Flag_Query(kFlagPS07KleinTalkChromeDebris) -		) { -			Game_Flag_Set(kFlagPS07KleinTalkChromeDebris); -			Actor_Says(kActorKlein, 220, 12); -			Actor_Says(kActorMcCoy, 4190, 13); -			Actor_Says(kActorKlein, 230, 14); -			if (_vm->_cutContent) { -				Actor_Says(kActorMcCoy, 4195, 13); -				Actor_Says(kActorKlein, 240, 16); // Car VIN +			if (Game_Flag_Query(kFlagMcCoyHasPaintTransfer) +			    && !Game_Flag_Query(kFlagPS07KleinTalkPaintTransfer) +			) { +				Game_Flag_Set(kFlagPS07KleinTalkPaintTransfer); +				Actor_Clue_Acquire(kActorMcCoy, kClueLabPaintTransfer, false, kActorKlein); +				Actor_Says(kActorKlein, 170, 14); +				Actor_Says(kActorMcCoy, 4180, 13); +				Actor_Says(kActorKlein, 180, 12); +				Actor_Says(kActorKlein, 190, 13); +				Actor_Says(kActorKlein, 200, 16); +				Actor_Says(kActorMcCoy, 4185, 18); +				Actor_Says(kActorKlein, 210, 12); +				Actor_Modify_Friendliness_To_Other(kActorKlein, kActorMcCoy, -12); +				Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +				return true;  			} + +			if (Game_Flag_Query(kFlagMcCoyHasChromeDebris) +			    && !Game_Flag_Query(kFlagPS07KleinTalkChromeDebris) +			) { +				Game_Flag_Set(kFlagPS07KleinTalkChromeDebris); +				Actor_Says(kActorKlein, 220, 12); +				Actor_Says(kActorMcCoy, 4190, 13); +				Actor_Says(kActorKlein, 230, 14); +				if (_vm->_cutContent) { // TODO this can go, if we keep separate cases +					Actor_Says(kActorMcCoy, 4195, 13); +					Actor_Says(kActorKlein, 240, 16); // Car VIN +				} +				Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); +				return true; +			} +			Actor_Says(kActorKlein, 0, 13);  			Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01);  			return true; +  		} -		Actor_Says(kActorKlein, 0, 13); -		Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01); -		return true;  	}  	return false;  | 
