diff options
| -rw-r--r-- | engines/bladerunner/game_constants.h | 8 | ||||
| -rw-r--r-- | engines/bladerunner/script/ai/free_slot_a.cpp | 13 | ||||
| -rw-r--r-- | engines/bladerunner/script/ai/free_slot_b.cpp | 13 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/kp02.cpp | 7 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/kp03.cpp | 6 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/ug04.cpp | 23 | 
6 files changed, 60 insertions, 10 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h index a4c9ba8c7e..39d4c8bf84 100644 --- a/engines/bladerunner/game_constants.h +++ b/engines/bladerunner/game_constants.h @@ -1108,19 +1108,19 @@ enum Flags {  	kFlagMcCoyFreedOfAccusations = 666,  	// 667 is never used  	// 668 is never used -	// 669 is never used +	kFlagKP02DispatchOnToxicKipple = 669, // Re-purposed. Original: 669 is never used  	kFlagCallWithGuzza = 670,  	kFlagUG18GuzzaScene = 671,  	kFlagMA07toPS14 = 672,  	kFlagPS14toMA07 = 673,  	kFlagKP01Entered = 674, -	// 675 is never used +	kFlagUG04DispatchOnHoodooRats = 675, // Re-purposed. Original: 675 is never used  	kFlagUG15RatShot = 676,  	kFlagUG15BridgeWillBreak = 677,  	kFlagChapter2Intro = 678,  	kFlagChapter3Intro = 679,  	kFlagChapter4Intro = 680, -	// 681 is never used +	kFlagMcCoyCommentsOnHoodooRats = 681, // Re-purposed. Original: 681 is never used  	kFlagUG15BridgeBroken = 682,  	kFlagUG05TalkToPolice = 683,  	kFlagHF05PoliceAttacked = 684, @@ -2489,7 +2489,7 @@ enum GoalOfficerGrayford {  	kGoalOfficerGrayfordStopPatrolToTalkToMcCoyAtDR04 = 106,  	kGoalOfficerGrayfordLeavesWithMorajiCorpseDR04 = 110,  	kGoalOfficerGrayfordArrestMcCoyInTB03Act4 = 399, // TB02_TB03 -	kGoalOfficerGrayfordStopAndTalkDR04 = 199, // this is used temporarily to make him stop and talk while at UG04 (Moraji's death scene) +	kGoalOfficerGrayfordStopAndTalkDR04 = 199, // this is used temporarily to make him stop and talk while at DR04 (Moraji's death scene)  	kGoalOfficerGrayfordStartOfAct4 = 300,  	kGoalOfficerGrayfordHuntingAroundAct4 = 305,  	kGoalOfficerGrayfordPrepareToHuntAroundAct4 = 306, diff --git a/engines/bladerunner/script/ai/free_slot_a.cpp b/engines/bladerunner/script/ai/free_slot_a.cpp index cba1488d45..eaee3e1bfb 100644 --- a/engines/bladerunner/script/ai/free_slot_a.cpp +++ b/engines/bladerunner/script/ai/free_slot_a.cpp @@ -210,10 +210,17 @@ void AIScriptFreeSlotA::ReceivedClue(int clueId, int fromActorId) {  void AIScriptFreeSlotA::ClickedByPlayer() {  	if (Actor_Query_Goal_Number(kActorFreeSlotA) == kGoalFreeSlotAGone) {  		Actor_Face_Actor(kActorMcCoy, kActorFreeSlotA, true); -		if (Random_Query(1, 2) == 1) { -			Actor_Says(kActorMcCoy, 8655, 16); +		if (_vm->_cutContent && !Game_Flag_Query(kFlagMcCoyCommentsOnHoodooRats)) { +			Game_Flag_Set(kFlagMcCoyCommentsOnHoodooRats); +			Actor_Voice_Over(1060, kActorVoiceOver);  // Hoodoo rats +			Actor_Voice_Over(1080, kActorVoiceOver); +			Actor_Voice_Over(1090, kActorVoiceOver);  		} else { -			Actor_Says(kActorMcCoy, 8665, 16); +			if (Random_Query(1, 2) == 1) { +				Actor_Says(kActorMcCoy, 8655, 16); +			} else { +				Actor_Says(kActorMcCoy, 8665, 16); +			}  		}  	}  	//return false; diff --git a/engines/bladerunner/script/ai/free_slot_b.cpp b/engines/bladerunner/script/ai/free_slot_b.cpp index 69274dae43..1124d283ec 100644 --- a/engines/bladerunner/script/ai/free_slot_b.cpp +++ b/engines/bladerunner/script/ai/free_slot_b.cpp @@ -155,10 +155,17 @@ void AIScriptFreeSlotB::ClickedByPlayer() {  		return; //false;  	Actor_Face_Actor(kActorMcCoy, kActorFreeSlotB, true); -	if (Random_Query(1, 2) == 1) { -		Actor_Says(kActorMcCoy, 8655, 16); +	if (_vm->_cutContent && !Game_Flag_Query(kFlagMcCoyCommentsOnHoodooRats)) { +		Game_Flag_Set(kFlagMcCoyCommentsOnHoodooRats); +		Actor_Voice_Over(1060, kActorVoiceOver);  // Hoodoo rats +		Actor_Voice_Over(1080, kActorVoiceOver); +		Actor_Voice_Over(1090, kActorVoiceOver);  	} else { -		Actor_Says(kActorMcCoy, 8665, 16); +		if (Random_Query(1, 2) == 1) { +			Actor_Says(kActorMcCoy, 8655, 16); +		} else { +			Actor_Says(kActorMcCoy, 8665, 16); +		}  	}  } diff --git a/engines/bladerunner/script/scene/kp02.cpp b/engines/bladerunner/script/scene/kp02.cpp index 0c238b31ef..5bb0474deb 100644 --- a/engines/bladerunner/script/scene/kp02.cpp +++ b/engines/bladerunner/script/scene/kp02.cpp @@ -148,6 +148,13 @@ void SceneScriptKP02::PlayerWalkedIn() {  	) {  		Actor_Set_Goal_Number(kActorSteele, 450);  	} + +	if (_vm->_cutContent && !Game_Flag_Query(kFlagKP02DispatchOnToxicKipple)) { +		Game_Flag_Set(kFlagKP02DispatchOnToxicKipple); +		ADQ_Add_Pause(Random_Query(0, 1) * 1000); +		ADQ_Add(kActorDispatcher, 300, kAnimationModeTalk); +		ADQ_Add(kActorDispatcher, 310, kAnimationModeTalk); +	}  	//return false;  } diff --git a/engines/bladerunner/script/scene/kp03.cpp b/engines/bladerunner/script/scene/kp03.cpp index 8aa85f2e3b..896823f4d1 100644 --- a/engines/bladerunner/script/scene/kp03.cpp +++ b/engines/bladerunner/script/scene/kp03.cpp @@ -117,8 +117,14 @@ bool SceneScriptKP03::ClickedOn3DObject(const char *objectName, bool combatMode)  				Game_Flag_Reset(kFlagKP03BombActive);  				Scene_Loop_Set_Default(kKP03MainLoopBombNoWire);  				Scene_Loop_Start_Special(kSceneLoopModeOnce, kKP03MainLoopBombInactive, false); +				if (_vm->_cutContent) { +					Actor_Voice_Over(1100, kActorVoiceOver); // I'd been lucky this time. +				}  				Actor_Voice_Over(1110, kActorVoiceOver);  				Actor_Voice_Over(1120, kActorVoiceOver); +				if (_vm->_cutContent) { +					Actor_Voice_Over(1130, kActorVoiceOver); // One false step and... +				}  			} else {  				Actor_Face_Object(kActorMcCoy, "BRACK MID", true);  				Actor_Says(kActorMcCoy, 8580, 13); diff --git a/engines/bladerunner/script/scene/ug04.cpp b/engines/bladerunner/script/scene/ug04.cpp index f3fc451f8c..b126ba4bb6 100644 --- a/engines/bladerunner/script/scene/ug04.cpp +++ b/engines/bladerunner/script/scene/ug04.cpp @@ -162,6 +162,29 @@ void SceneScriptUG04::PlayerWalkedIn() {  #endif  		Game_Flag_Reset(kFlagUG06toUG04);  	} +	if (_vm->_cutContent +	    && !Game_Flag_Query(kFlagUG04DispatchOnHoodooRats) +	    && !Game_Flag_Query(kFlagMcCoyCommentsOnHoodooRats) +	) { +		if (Random_Query(0, 2) == 1) { +			Game_Flag_Set(kFlagUG04DispatchOnHoodooRats); +			ADQ_Add_Pause(Random_Query(0, 1) * 1000); +			ADQ_Add(kActorDispatcher, 340, kAnimationModeTalk); // Southern Kipple Unit 2 LA. +			if (Random_Query(0, 1) == 0) { +				// Leary responds +				ADQ_Add(kActorOfficerLeary, 240, kAnimationModeTalk); // LA, South Kipple Unit 2. Go ahead. +				ADQ_Add(kActorDispatcher, 350, kAnimationModeTalk); +				ADQ_Add(kActorDispatcher, 360, kAnimationModeTalk); +				ADQ_Add(kActorOfficerLeary, 250, kAnimationModeTalk); +			} else { +				// Grayford responds +				ADQ_Add(kActorOfficerGrayford, 520, kAnimationModeTalk); // LA, South Kipple Unit 2. Go ahead. +				ADQ_Add(kActorDispatcher, 350, kAnimationModeTalk); +				ADQ_Add(kActorDispatcher, 360, kAnimationModeTalk); +				ADQ_Add(kActorOfficerGrayford, 530, kAnimationModeTalk); +			} +		} +	}  }  void SceneScriptUG04::PlayerWalkedOut() {  | 
