diff options
Diffstat (limited to 'engines')
| -rw-r--r-- | engines/bladerunner/game_constants.h | 6 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/ar01.cpp | 90 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/ar02.cpp | 223 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene/rc04.cpp | 3 | ||||
| -rw-r--r-- | engines/bladerunner/script/scene_script.h | 5 | 
5 files changed, 289 insertions, 38 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h index a425efd7ee..36c6ab624d 100644 --- a/engines/bladerunner/game_constants.h +++ b/engines/bladerunner/game_constants.h @@ -685,7 +685,7 @@ enum Flags {  	// 243 is never used  	// 244 is never used  	// 245 is never used -	// 246 is never used +	kFlagWrongInvestigation                   = 246, // Re-purposed. Original: 246 is never used  	kFlagArrivedFromSpinner1                  = 247,  	kFlagSpinnerAtCT01                        = 248,  	kFlagSpinnerAtRC01                        = 249, @@ -1186,7 +1186,9 @@ enum Variables {  	kVariablePoliceMazePS13TargetCounter   = 13,  	kVariableMcCoyEvidenceMissed           = 14,  	// variable 15 has no use -	// variables 16 - 18 are not used +	kVariableFishDealerBanterTalk          = 16, // Re-purposed. Original: not used +	kVariableInsectDealerBanterTalk        = 17, // Re-purposed. Original: not used +	kVariableHasanBanterTalk               = 18, // Re-purposed. Original: not used  	kVariableIzoShot                       = 19, // has no use  	// variables 20 - 23 are not used  	kVariableBobShot                       = 24, // has no use diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp index 227ed73a2b..edc18bb46c 100644 --- a/engines/bladerunner/script/scene/ar01.cpp +++ b/engines/bladerunner/script/scene/ar01.cpp @@ -182,9 +182,10 @@ bool SceneScriptAR01::ClickedOnActor(int actorId) {  				Game_Flag_Set(kFlagAR01FishDealerTalk);  				Actor_Set_Goal_Number(kActorFishDealer, 1);  			} else { -				if ( Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1) -				 && !Actor_Clue_Query(kActorMcCoy, kClueFishLadyInterview) -				 ) { +				if (Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1) +				    && !Actor_Clue_Query(kActorMcCoy, kClueFishLadyInterview) +				    && (!_vm->_cutContent || !Game_Flag_Query(kFlagWrongInvestigation)) +				) {  					Actor_Says(kActorMcCoy, 40, 11);  					Actor_Says(kActorFishDealer, 120, 14);  					Actor_Says(kActorMcCoy, 45, 17); @@ -198,14 +199,50 @@ bool SceneScriptAR01::ClickedOnActor(int actorId) {  					Actor_Clue_Acquire(kActorMcCoy, kClueFishLadyInterview, true, kActorFishDealer);  #endif // BLADERUNNER_ORIGINAL_BUGS  				} else { -					if (Random_Query(1, 2) == 1) { -						Actor_Says(kActorMcCoy, 30, 17); -						Actor_Says(kActorFishDealer, 100, 14); -						Actor_Says(kActorFishDealer, 110, 14); -						Actor_Says(kActorMcCoy, 35, 13); +					if (_vm->_cutContent) { +						switch (Global_Variable_Query(kVariableFishDealerBanterTalk)) { +						case 0: +							Global_Variable_Increment(kVariableFishDealerBanterTalk, 1); +							Actor_Says(kActorFishDealer, 230, 14); +							Item_Pickup_Spin_Effect(kModelAnimationGoldfish, 88, 400); // TODO check co-ordinates +							dialogueWithFishDealerBuyGoldfish(); +							break; +						case 1: +							Global_Variable_Increment(kVariableFishDealerBanterTalk, 1); +							if (Player_Query_Agenda() == kPlayerAgendaSurly +							    || Actor_Query_Friendliness_To_Other(kActorFishDealer, kActorMcCoy) <= 45 ) { +								Actor_Says(kActorMcCoy, 8600, 17); // You keeping busy, pal? +								Actor_Says(kActorFishDealer, 180, 14); // I can't stand all day gabbing away. My fish require attention. +								Actor_Says(kActorMcCoy, 8450, 14); // Does this badge mean anything to you? +								Actor_Says(kActorFishDealer, 190, 14); // Ah! You think you get better info somewhere else? You welcome to try. +							} else { +								Actor_Says(kActorMcCoy, 8514, 11); // Got anything new to tell me? +								Actor_Says(kActorFishDealer, 170, 14); // Afraid not. But been busy today. Maybe you ask me later. +							} +							break; + +						default: +							if (Random_Query(1, 2) == 1) { +								Actor_Says(kActorMcCoy, 30, 17); +								Actor_Says(kActorFishDealer, 100, 14); +								Actor_Says(kActorFishDealer, 110, 14); +								Actor_Says(kActorMcCoy, 35, 13); +							} else { +								Actor_Says(kActorMcCoy, 30, 17); +								Actor_Says(kActorFishDealer, 220, 14); +							} +						}  					} else { -						Actor_Says(kActorMcCoy, 30, 17); -						Actor_Says(kActorFishDealer, 220, 14); +						// original behavior +						if (Random_Query(1, 2) == 1) { +							Actor_Says(kActorMcCoy, 30, 17); +							Actor_Says(kActorFishDealer, 100, 14); +							Actor_Says(kActorFishDealer, 110, 14); +							Actor_Says(kActorMcCoy, 35, 13); +						} else { +							Actor_Says(kActorMcCoy, 30, 17); +							Actor_Says(kActorFishDealer, 220, 14); +						}  					}  				}  				Actor_Set_Goal_Number(kActorFishDealer, 1); @@ -437,4 +474,37 @@ void SceneScriptAR01::PlayerWalkedOut() {  void SceneScriptAR01::DialogueQueueFlushed(int a1) {  } +/** +* This is only for cut content (purchasing the Goldfish) +*/ +void SceneScriptAR01::dialogueWithFishDealerBuyGoldfish() { +	Dialogue_Menu_Clear_List(); + +	Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(530); +	Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(540); + +	if (Global_Variable_Query(kVariableChinyen) >= 75 +	    || Query_Difficulty_Level() == kGameDifficultyEasy +	) { +		DM_Add_To_List_Never_Repeat_Once_Selected(530, 7, 5, 3); // BUY +	} +	DM_Add_To_List_Never_Repeat_Once_Selected(540, 3, 5, 7); // NO THANKS + +	Dialogue_Menu_Appear(320, 240); +	int answerValue = Dialogue_Menu_Query_Input(); +	Dialogue_Menu_Disappear(); + +	if (answerValue == 530) { // BUY +		Actor_Says(kActorMcCoy, 7000, 12); +		if (Query_Difficulty_Level() != kGameDifficultyEasy) { +			Global_Variable_Decrement(kVariableChinyen, 75); +		} +		Actor_Clue_Acquire(kActorMcCoy, kClueGoldfish, true, kActorFishDealer); +		Actor_Modify_Friendliness_To_Other(kActorFishDealer, kActorMcCoy, 5); +	} else if (answerValue == 540) { // NO THANKS +		Actor_Says(kActorMcCoy, 7005, 13); +		Actor_Modify_Friendliness_To_Other(kActorFishDealer, kActorMcCoy, -5); +	} +} +  } // End of namespace BladeRunner diff --git a/engines/bladerunner/script/scene/ar02.cpp b/engines/bladerunner/script/scene/ar02.cpp index a013c16091..81846a3be4 100644 --- a/engines/bladerunner/script/scene/ar02.cpp +++ b/engines/bladerunner/script/scene/ar02.cpp @@ -63,12 +63,12 @@ void SceneScriptAR02::InitializeScene() {  	Ambient_Sounds_Add_Sound(kSfxTHNDER3, 10, 180, 50, 100,    0,   0, -101, -101, 0, 0);  	Ambient_Sounds_Add_Sound(kSfxTHNDER4, 10, 180, 50, 100,    0,   0, -101, -101, 0, 0);  	if (Game_Flag_Query(kFlagSpinnerAtAR01) -	 && Game_Flag_Query(kFlagAR01toAR02)) { +	    && Game_Flag_Query(kFlagAR01toAR02)) {  		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 1, false);  		Scene_Loop_Set_Default(2);  		Game_Flag_Reset(kFlagAR01toAR02);  	} else if (!Game_Flag_Query(kFlagSpinnerAtAR01) -	        &&  Game_Flag_Query(kFlagAR01toAR02)) { +	           &&  Game_Flag_Query(kFlagAR01toAR02)) {  		Scene_Loop_Start_Special(kSceneLoopModeLoseControl, 0, false);  		Scene_Loop_Set_Default(2);  		Game_Flag_Reset(kFlagAR01toAR02); @@ -123,8 +123,8 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {  			Actor_Face_Actor(kActorMcCoy, kActorInsectDealer, true);  			Actor_Face_Actor(kActorInsectDealer, kActorMcCoy, true);  			if (Global_Variable_Query(kVariableChapter) == 2) { -				if ( Game_Flag_Query(kFlagAR02InsectDealerInterviewed) -				 && !Game_Flag_Query(kFlagAR02InsectDealerTalk) +				if (Game_Flag_Query(kFlagAR02InsectDealerInterviewed) +				    && !Game_Flag_Query(kFlagAR02InsectDealerTalk)  				) {  					Game_Flag_Set(kFlagAR02InsectDealerTalk);  					Player_Loses_Control(); @@ -132,6 +132,9 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {  					ADQ_Add(kActorInsectDealer, 210, 14);  					Loop_Actor_Walk_To_XYZ(kActorMcCoy, -350.66f, 0.0f, -1117.19f, 0, false, false, false);  					Actor_Face_Actor(kActorMcCoy, kActorInsectDealer, true); +					if (_vm->_cutContent) { +						Actor_Says(kActorInsectDealer, 220, 14); // Doesn't she deserve a gift? +					}  					Actor_Says(kActorMcCoy, 110, 18);  					Actor_Says(kActorInsectDealer, 230, 14);  					Actor_Says(kActorMcCoy, 115, 18); @@ -139,7 +142,7 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {  					Item_Pickup_Spin_Effect(kModelAnimationMaggieBracelet, 288, 257);  					Actor_Says(kActorInsectDealer, 250, 14);  					Player_Gains_Control(); -					dialogueWithInsectDealer2(); +					dialogueWithInsectDealerBuyBracelet();  				} else if (Game_Flag_Query(kFlagAR02InsectDealerInterviewed)) {  					Actor_Says(kActorMcCoy, 75, 18);  					Actor_Says(kActorInsectDealer, 60, 12); @@ -148,15 +151,15 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {  					dialogueWithInsectDealer1();  				}  			} else if (Global_Variable_Query(kVariableChapter) > 2) { -				if ( Actor_Clue_Query(kActorMcCoy, kCluePeruvianLadyInterview) -				 && !Actor_Clue_Query(kActorMcCoy, kClueDragonflyCollection) +				if (Actor_Clue_Query(kActorMcCoy, kCluePeruvianLadyInterview) +				    && !Actor_Clue_Query(kActorMcCoy, kClueDragonflyCollection)  				) {  					Actor_Says(kActorMcCoy, 205, 16);  					Actor_Says(kActorInsectDealer, 290, 12);  					Actor_Says(kActorInsectDealer, 300, 13);  					Actor_Says(kActorMcCoy, 210, 15);  					Actor_Says(kActorInsectDealer, 310, 12); -					Actor_Says(kActorMcCoy, 215, 13); +					Actor_Says(kActorMcCoy, 215, 13); // Thanks for your help  					if (Game_Flag_Query(kFlagAR02DektoraBoughtScorpions)) {  						Actor_Says(kActorMcCoy, 220, 14);  						Actor_Says(kActorInsectDealer, 320, 12); @@ -170,10 +173,59 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {  					}  					Actor_Clue_Acquire(kActorMcCoy, kClueDragonflyCollection, false, kActorInsectDealer);  				} else { -					Actor_Says(kActorMcCoy, 240, 17); -					Actor_Says(kActorInsectDealer, 360, 13); -					Actor_Says(kActorInsectDealer, 370, 14); -					Actor_Says(kActorMcCoy, 245, 13); +					// still from Act 3 and beyond +					if (_vm->_cutContent) { +						switch (Global_Variable_Query(kVariableInsectDealerBanterTalk)) { +						case 0: +							// how's business +							Global_Variable_Increment(kVariableInsectDealerBanterTalk, 1); +							Actor_Says(kActorMcCoy, 240, 17); // How's business? +							Actor_Says(kActorInsectDealer, 360, 13); +							Actor_Says(kActorInsectDealer, 370, 14); +							Actor_Says(kActorMcCoy, 245, 13); +							break; +						case 1: +							Global_Variable_Increment(kVariableInsectDealerBanterTalk, 1); +							Actor_Says(kActorMcCoy, 8920, 13); // I gotta ask you a question. +							Actor_Says(kActorInsectDealer, 410, 13); //	Ah, perhaps you should ask someone else. +							if (Player_Query_Agenda() == kPlayerAgendaSurly) { +								Actor_Says(kActorMcCoy, 8450, 14); // Does this badge mean anything to you? +								Actor_Says(kActorInsectDealer, 440, 14); // Please, this is all I know. +								Actor_Modify_Friendliness_To_Other(kActorInsectDealer, kActorMcCoy, -5); +							} +							break; +						case 2: +							// offer to buy slug +							Global_Variable_Increment(kVariableInsectDealerBanterTalk, 1); +							Actor_Says(kActorMcCoy, 8520, 13); // What do you know? +							Actor_Says(kActorInsectDealer, 450, 13); +							if (Actor_Query_Friendliness_To_Other(kActorInsectDealer, kActorMcCoy) > 40) { +								Actor_Says(kActorInsectDealer, 460, 14); +								Actor_Says(kActorInsectDealer, 470, 13); // This slug, perhaps. +								Item_Pickup_Spin_Effect(kModelAnimationSlug, 288, 257); +								dialogueWithInsectDealerBuySlug(); +							} +							break; +						case 3: +							Global_Variable_Increment(kVariableInsectDealerBanterTalk, 1); +							if (Actor_Query_Friendliness_To_Other(kActorInsectDealer, kActorMcCoy) > 45) { +								Actor_Says(kActorMcCoy, 8610, 17); // What's the word, friend? +							} else { +								Actor_Says(kActorMcCoy, 8615, 17); // Heard anything on the street? +							} +							Actor_Says(kActorInsectDealer, 400, 13); // I hear very little. +							break; +						default: +							Actor_Says(kActorMcCoy, 215, 13); +							break; +						} +					} else { +						// original behavior +						Actor_Says(kActorMcCoy, 240, 17); // How's business? +						Actor_Says(kActorInsectDealer, 360, 13); +						Actor_Says(kActorInsectDealer, 370, 14); +						Actor_Says(kActorMcCoy, 245, 13); +					}  				}  			}  			return true; @@ -181,7 +233,7 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {  	}  	if (actorId == kActorHasan -	 && Global_Variable_Query(kVariableChapter) == 2 +	    && Global_Variable_Query(kVariableChapter) == 2  	) {  		if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -240.79f, 0.0f, -1328.89f, 12, true, false, false)) {  			Actor_Face_Actor(kActorMcCoy, kActorHasan, true); @@ -195,6 +247,58 @@ bool SceneScriptAR02::ClickedOnActor(int actorId) {  			dialogueWithHassan();  		}  	} + +	if (_vm->_cutContent) { +		if (actorId == kActorHasan +		    && Global_Variable_Query(kVariableChapter) > 2) { + +			if (Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1) +			    && !Game_Flag_Query(kFlagWrongInvestigation) +			) { +				dialogueWithHassan(); +			} else { +				switch (Global_Variable_Query(kVariableHasanBanterTalk)) { +				case 0: +					Global_Variable_Increment(kVariableHasanBanterTalk, 1); +					Actor_Says(kActorMcCoy, 155, 13); // How's business? +					Actor_Says(kActorHasan, 10, 13); +					Actor_Says(kActorHasan, 20, 14); +					break; +				case 1: +					Global_Variable_Increment(kVariableHasanBanterTalk, 1); +					Actor_Says(kActorMcCoy, 6980, 13); // What's the word +					Actor_Says(kActorHasan, 290, 13); +					if (Actor_Query_Friendliness_To_Other(kActorHasan, kActorMcCoy) > 49) { +						Actor_Says(kActorHasan, 300, 14); +						Actor_Says(kActorHasan, 310, 13); +						Item_Pickup_Spin_Effect(kModelAnimationGarterSnake, 328, 237); // TODO check co-ordinates +						dialogueWithHassanBuySnake(); +					} +					break; +				case 2: +					// offer to buy snake +					Global_Variable_Increment(kVariableHasanBanterTalk, 1); +					if (Player_Query_Agenda() == kPlayerAgendaSurly +					   || Actor_Query_Friendliness_To_Other(kActorHasan, kActorMcCoy) <= 49 ) { +						Actor_Says(kActorMcCoy, 8915, 14); // You got a minute, pal? +						Actor_Says(kActorHasan, 260, 14); // My time is quite valuable, noble one +						Actor_Modify_Friendliness_To_Other(kActorHasan, kActorMcCoy, -5); +					} else { +						Actor_Says(kActorMcCoy, 8615, 13); // Heard anything on the street? +						Actor_Says(kActorHasan, 250, 13); // I'm afraid not, noble one. But you shall surely be the first to know, if I do hear something. +					} +					break; +				default: +					if (Actor_Query_Friendliness_To_Other(kActorHasan, kActorMcCoy) <= 45 ) { +						Actor_Says(kActorMcCoy, 8940, 13); +					} else { +						Actor_Says(kActorMcCoy, 1315, 13); +					} +					break; +				} +			} +		} +	}  	return false;  } @@ -280,13 +384,13 @@ void SceneScriptAR02::DialogueQueueFlushed(int a1) {  void SceneScriptAR02::dialogueWithInsectDealer1() {  	Dialogue_Menu_Clear_List();  	if (Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring) -	 || Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect) +	    || Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect)  	) {  		DM_Add_To_List_Never_Repeat_Once_Selected(490, 3, 5, 5); // EARRING  	} -	if ( Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet) -	 && !Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring) -	 && !Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect) +	if (Actor_Clue_Query(kActorMcCoy, kClueDragonflyAnklet) +	    && !Actor_Clue_Query(kActorMcCoy, kClueDragonflyEarring) +	    && !Actor_Clue_Query(kActorMcCoy, kClueBombingSuspect)  	) {  		DM_Add_To_List_Never_Repeat_Once_Selected(500, 3, 5, 5); // ANKLET  	} @@ -333,16 +437,16 @@ void SceneScriptAR02::dialogueWithInsectDealer1() {  		break;  	case 520: // DONE -		Actor_Says(kActorMcCoy, 215, 16); +		Actor_Says(kActorMcCoy, 215, 16); // Thanks for your help.  		break;  	}  } -void SceneScriptAR02::dialogueWithInsectDealer2() { +void SceneScriptAR02::dialogueWithInsectDealerBuyBracelet() {  	Dialogue_Menu_Clear_List();  	if (Global_Variable_Query(kVariableChinyen) >= 15 -	 || Query_Difficulty_Level() == kGameDifficultyEasy +	    || Query_Difficulty_Level() == kGameDifficultyEasy  	) {  		DM_Add_To_List_Never_Repeat_Once_Selected(530, 7, 5, 3); // BUY  	} @@ -370,6 +474,39 @@ void SceneScriptAR02::dialogueWithInsectDealer2() {  	}  } +/** +* This is only for cut content (purchasing the Electric Slug) +*/ +void SceneScriptAR02::dialogueWithInsectDealerBuySlug() { +	Dialogue_Menu_Clear_List(); + +	Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(530); +	Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(540); + +	if (Global_Variable_Query(kVariableChinyen) >= 85 +	    || Query_Difficulty_Level() == kGameDifficultyEasy +	) { +		DM_Add_To_List_Never_Repeat_Once_Selected(530, 7, 5, 3); // BUY +	} +	DM_Add_To_List_Never_Repeat_Once_Selected(540, 3, 5, 7); // NO THANKS + +	Dialogue_Menu_Appear(320, 240); +	int answerValue = Dialogue_Menu_Query_Input(); +	Dialogue_Menu_Disappear(); + +	if (answerValue == 530) { // BUY +		Actor_Says(kActorMcCoy, 7000, 12); +		if (Query_Difficulty_Level() != kGameDifficultyEasy) { +			Global_Variable_Decrement(kVariableChinyen, 85); +		} +		Actor_Clue_Acquire(kActorMcCoy, kClueSlug, true, kActorInsectDealer); +		Actor_Modify_Friendliness_To_Other(kActorInsectDealer, kActorMcCoy, 5); +	} else if (answerValue == 540) { // NO THANKS +		Actor_Says(kActorMcCoy, 7005, 13); +		Actor_Modify_Friendliness_To_Other(kActorInsectDealer, kActorMcCoy, -5); +	} +} +  void SceneScriptAR02::dialogueWithHassan() {  	Dialogue_Menu_Clear_List();  	if (Actor_Clue_Query(kActorMcCoy, kClueStrangeScale1)) { @@ -386,7 +523,7 @@ void SceneScriptAR02::dialogueWithHassan() {  	switch (answerValue) {  	case 550: // SCALE -		Actor_Says(kActorMcCoy, 145, 11); +		Actor_Says(kActorMcCoy, 145, 11); // This your work?  		Actor_Says(kActorHasan, 30, 11);  		Actor_Says(kActorMcCoy, 160, 11);  		Actor_Says(kActorHasan, 40, 11); @@ -395,6 +532,9 @@ void SceneScriptAR02::dialogueWithHassan() {  		Actor_Says(kActorMcCoy, 170, 11);  		Actor_Says(kActorHasan, 60, 11);  		Actor_Says(kActorMcCoy, 175, 11); +		if (_vm->_cutContent) { +			Game_Flag_Set(kFlagWrongInvestigation); +		}  		Game_Flag_Set(kFlagNotUsed370);  		break; @@ -411,9 +551,9 @@ void SceneScriptAR02::dialogueWithHassan() {  		Actor_Says(kActorHasan, 190, 11);  		Actor_Says(kActorHasan, 200, 11);  		Actor_Says(kActorMcCoy, 200, 11); -		Actor_Says(kActorHasan, 210, 11); -		Actor_Says(kActorHasan, 220, 11); -		Actor_Says(kActorHasan, 230, 11); +		Actor_Says(kActorHasan, 210, 11); // Perhaps you should ask the Peruvian woman next door. +		Actor_Says(kActorHasan, 220, 11); // She's an expert on such things +		Actor_Says(kActorHasan, 230, 11); // and will cut a wonderful deal to friends.  		Game_Flag_Set(kFlagNotUsed370);  		break; @@ -429,10 +569,43 @@ void SceneScriptAR02::dialogueWithHassan() {  			Actor_Modify_Friendliness_To_Other(kActorHasan, kActorMcCoy, -1);  			Actor_Clue_Acquire(kActorMcCoy, kClueHasanInterview, false, kActorHasan);  		} else { -			Actor_Says(kActorMcCoy, 1315, 11); +			Actor_Says(kActorMcCoy, 1315, 11); // Thanks for your time  		}  		break;  	}  } +/** +* This is only for cut content (purchasing the Garter Snake) +*/ +void SceneScriptAR02::dialogueWithHassanBuySnake() { +	Dialogue_Menu_Clear_List(); + +	Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(530); +	Dialogue_Menu_Clear_Never_Repeat_Was_Selected_Flag(540); + +	if (Global_Variable_Query(kVariableChinyen) >= 105 +	    || Query_Difficulty_Level() == kGameDifficultyEasy +	) { +		DM_Add_To_List_Never_Repeat_Once_Selected(530, 7, 5, 3); // BUY +	} +	DM_Add_To_List_Never_Repeat_Once_Selected(540, 3, 5, 7); // NO THANKS + +	Dialogue_Menu_Appear(320, 240); +	int answerValue = Dialogue_Menu_Query_Input(); +	Dialogue_Menu_Disappear(); + +	if (answerValue == 530) { // BUY +		Actor_Says(kActorMcCoy, 7000, 12); +		if (Query_Difficulty_Level() != kGameDifficultyEasy) { +			Global_Variable_Decrement(kVariableChinyen, 105); +		} +		Actor_Clue_Acquire(kActorMcCoy, kClueGarterSnake, true, kActorHasan); +		Actor_Modify_Friendliness_To_Other(kActorHasan, kActorMcCoy, 5); +	} else if (answerValue == 540) { // NO THANKS +		Actor_Says(kActorMcCoy, 7005, 13); +		Actor_Modify_Friendliness_To_Other(kActorHasan, kActorMcCoy, -5); +	} +} +  } // End of namespace BladeRunner diff --git a/engines/bladerunner/script/scene/rc04.cpp b/engines/bladerunner/script/scene/rc04.cpp index 8efdaf4a24..4b4e31b014 100644 --- a/engines/bladerunner/script/scene/rc04.cpp +++ b/engines/bladerunner/script/scene/rc04.cpp @@ -209,6 +209,9 @@ void SceneScriptRC04::dialogueWithBulletBob() {  		Actor_Says(kActorMcCoy, 5040, 16);  		Actor_Says(kActorBulletBob, 550, 11);  		Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, -6); +		if (_vm->_cutContent) { +			Actor_Modify_Friendliness_To_Other(kActorHasan, kActorMcCoy, 6); +		}  		Game_Flag_Set(kFlagMcCoyTalkedToBulletBobAboutHasan);  		break; diff --git a/engines/bladerunner/script/scene_script.h b/engines/bladerunner/script/scene_script.h index f5abd45de0..8fd586ae03 100644 --- a/engines/bladerunner/script/scene_script.h +++ b/engines/bladerunner/script/scene_script.h @@ -71,12 +71,15 @@ private:  #define END_SCRIPT };  DECLARE_SCRIPT(AR01) +	void dialogueWithFishDealerBuyGoldfish();  END_SCRIPT  DECLARE_SCRIPT(AR02)  	void dialogueWithInsectDealer1(); -	void dialogueWithInsectDealer2(); +	void dialogueWithInsectDealerBuyBracelet(); +	void dialogueWithInsectDealerBuySlug();  	void dialogueWithHassan(); +	void dialogueWithHassanBuySnake();  END_SCRIPT  DECLARE_SCRIPT(BB01)  | 
