aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/script/scene/ar01.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/script/scene/ar01.cpp')
-rw-r--r--engines/bladerunner/script/scene/ar01.cpp90
1 files changed, 80 insertions, 10 deletions
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