diff options
-rw-r--r-- | engines/bladerunner/script/ai/sadik.cpp | 10 | ||||
-rw-r--r-- | engines/bladerunner/script/ai/sebastian.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ar01.cpp | 6 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/bb06.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/bb09.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/bb51.cpp | 7 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ct01.cpp | 2 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/dr06.cpp | 13 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps04.cpp | 6 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/ps15.cpp | 9 | ||||
-rw-r--r-- | engines/bladerunner/script/scene/rc04.cpp | 36 |
11 files changed, 76 insertions, 19 deletions
diff --git a/engines/bladerunner/script/ai/sadik.cpp b/engines/bladerunner/script/ai/sadik.cpp index 85c1e58a97..c4a2b99fa8 100644 --- a/engines/bladerunner/script/ai/sadik.cpp +++ b/engines/bladerunner/script/ai/sadik.cpp @@ -189,20 +189,22 @@ bool AIScriptSadik::ShotAtAndHit() { if (Actor_Query_Goal_Number(kActorSadik) == kGoalSadikUG18Move) { // this lowers Sadik's original health but makes it impossible to kill him here (UG18) if (Game_Flag_Query(kFlagSadikIsReplicant)) { -#if BLADERUNNER_ORIGINAL_BUGS // Sadik killed in BB09 dead end bug fix +#if BLADERUNNER_ORIGINAL_BUGS Actor_Set_Health(kActorSadik, 60, 60); #else - if (Actor_Query_Current_HP(kActorSadik) == 60) { // shot also at Bradburry, so lower his health further + // Sadik killed in BB09 dead end bug fix + if (Actor_Query_Current_HP(kActorSadik) == 60) { // shot also at Bradbury, so lower his health further Actor_Set_Health(kActorSadik, 50, 50); } else { Actor_Set_Health(kActorSadik, 60, 60); } #endif } else { -#if BLADERUNNER_ORIGINAL_BUGS // Sadik killed in BB09 dead end bug fix +#if BLADERUNNER_ORIGINAL_BUGS Actor_Set_Health(kActorSadik, 40, 40); #else - if (Actor_Query_Current_HP(kActorSadik) == 40) { // shot also at Bradburry, so lower his health further + // Sadik killed in BB09 dead end bug fix + if (Actor_Query_Current_HP(kActorSadik) == 40) { // shot also at Bradbury, so lower his health further Actor_Set_Health(kActorSadik, 30, 30); } else { Actor_Set_Health(kActorSadik, 40, 40); diff --git a/engines/bladerunner/script/ai/sebastian.cpp b/engines/bladerunner/script/ai/sebastian.cpp index d2560fdc74..4f2cc0ab80 100644 --- a/engines/bladerunner/script/ai/sebastian.cpp +++ b/engines/bladerunner/script/ai/sebastian.cpp @@ -425,7 +425,7 @@ void AIScriptSebastian::dialogue() { Actor_Says_With_Pause(kActorSebastian, 370, 0.30f, 13); Actor_Says_With_Pause(kActorSebastian, 380, 0.70f, 17); Actor_Says(kActorSebastian, 390, 14); - if (Actor_Clue_Query(kActorMcCoy, kClueChessTable)) { // cut feature? it is impossible to obtain this clue + if (Actor_Clue_Query(kActorMcCoy, kClueChessTable)) { Actor_Says(kActorMcCoy, 7140, kAnimationModeTalk); Actor_Says(kActorSebastian, 400, 12); Actor_Says(kActorMcCoy, 7145, 16); diff --git a/engines/bladerunner/script/scene/ar01.cpp b/engines/bladerunner/script/scene/ar01.cpp index 0397435d57..465978376f 100644 --- a/engines/bladerunner/script/scene/ar01.cpp +++ b/engines/bladerunner/script/scene/ar01.cpp @@ -172,7 +172,11 @@ bool SceneScriptAR01::ClickedOnActor(int actorId) { Actor_Says(kActorFishDealer, 140, 14); Actor_Says(kActorMcCoy, 50, 13); Actor_Says(kActorFishDealer, 150, 14); - Actor_Clue_Acquire(kActorMcCoy, kClueFishLadyInterview, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueFishLadyInterview, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorFishDealer here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueFishLadyInterview, true, kActorFishDealer); +#endif // BLADERUNNER_ORIGINAL_BUGS } else { if (Random_Query(1, 2) == 1) { Actor_Says(kActorMcCoy, 30, 17); diff --git a/engines/bladerunner/script/scene/bb06.cpp b/engines/bladerunner/script/scene/bb06.cpp index d27ea18d22..89a5881721 100644 --- a/engines/bladerunner/script/scene/bb06.cpp +++ b/engines/bladerunner/script/scene/bb06.cpp @@ -84,7 +84,7 @@ void SceneScriptBB06::SceneLoaded() { Clickable_Object("BOX31"); #if BLADERUNNER_ORIGINAL_BUGS // Sebastian's Doll Fix // This Item_Add_To_World call is only ok for the transition from BB51 to BB06, - // otherwise the doll item is not placed in the current set + // otherwise the "doll" item (actually the badge item) is not placed in the current set Item_Add_To_World(kItemBB06ControlBox, kModelAnimationBadge, kSetBB06_BB07, -127.0f, 68.42f, 57.0f, 0, 8, 8, true, true, false, true); #else if (!Game_Flag_Query(kFlagBB06AndroidDestroyed)) { diff --git a/engines/bladerunner/script/scene/bb09.cpp b/engines/bladerunner/script/scene/bb09.cpp index d461d7de26..3cca63dacb 100644 --- a/engines/bladerunner/script/scene/bb09.cpp +++ b/engines/bladerunner/script/scene/bb09.cpp @@ -56,7 +56,7 @@ void SceneScriptBB09::InitializeScene() { Ambient_Sounds_Add_Sound(kSfxHAUNT1, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); Ambient_Sounds_Add_Sound(kSfxHAUNT2, 5, 50, 17, 27, -100, 100, -101, -101, 0, 0); - Actor_Set_Targetable(kActorSadik, true); // Don't kill Sadik yet, game cannot continue, a bug? + Actor_Set_Targetable(kActorSadik, true); // Don't kill Sadik yet, game cannot continue. This is an original bug - fixed in ScummVM in Sadik's AI script (method ShotAtAndHit() ) } void SceneScriptBB09::SceneLoaded() { diff --git a/engines/bladerunner/script/scene/bb51.cpp b/engines/bladerunner/script/scene/bb51.cpp index 94513695be..9eb8717c6a 100644 --- a/engines/bladerunner/script/scene/bb51.cpp +++ b/engines/bladerunner/script/scene/bb51.cpp @@ -69,6 +69,13 @@ bool SceneScriptBB51::MouseClick(int x, int y) { bool SceneScriptBB51::ClickedOn3DObject(const char *objectName, bool a2) { if (Object_Query_Click("V2CHESSTBL01", objectName)) { +#if BLADERUNNER_ORIGINAL_BUGS +#else + // acquire chess clue + if (!Actor_Clue_Query(kActorMcCoy, kClueChessTable)) { + Actor_Clue_Acquire(kActorMcCoy, kClueChessTable, true, -1); + } +#endif // BLADERUNNER_ORIGINAL_BUGS Actor_Face_Object(kActorMcCoy, "V2CHESSTBL01", true); Actor_Voice_Over(80, kActorVoiceOver); Actor_Voice_Over(90, kActorVoiceOver); diff --git a/engines/bladerunner/script/scene/ct01.cpp b/engines/bladerunner/script/scene/ct01.cpp index 43805d09f5..29ba22cb5e 100644 --- a/engines/bladerunner/script/scene/ct01.cpp +++ b/engines/bladerunner/script/scene/ct01.cpp @@ -221,7 +221,7 @@ bool SceneScriptCT01::ClickedOnActor(int actorId) { Game_Flag_Set(kFlagCT01GordoTalk); Actor_Clue_Acquire(kActorGordo, kClueMcCoysDescription, true, kActorMcCoy); #if BLADERUNNER_ORIGINAL_BUGS - Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyIsABladeRunner, true, kActorMcCoy); + Actor_Clue_Acquire(kActorMcCoy, kClueMcCoyIsABladeRunner, true, kActorMcCoy); // a bug? #else Actor_Clue_Acquire(kActorGordo, kClueMcCoyIsABladeRunner, true, kActorMcCoy); #endif // BLADERUNNER_ORIGINAL_BUGS diff --git a/engines/bladerunner/script/scene/dr06.cpp b/engines/bladerunner/script/scene/dr06.cpp index a5389e5dde..fb7716e0ca 100644 --- a/engines/bladerunner/script/scene/dr06.cpp +++ b/engines/bladerunner/script/scene/dr06.cpp @@ -133,7 +133,7 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) { } return true; } - +#if BLADERUNNER_ORIGINAL_BUGS if ( Object_Query_Click("X2_KEYBRD02", objectName) // a bug? there is no X2_KEYBRD02 only X2KEYBRD02 && !Game_Flag_Query(kFlagDR06KeyboardChecked)) { Loop_Actor_Walk_To_XYZ(kActorMcCoy, -655.57f, 136.6f, -1092.64f, 0, true, false, 0); @@ -143,6 +143,17 @@ bool SceneScriptDR06::ClickedOn3DObject(const char *objectName, bool a2) { Game_Flag_Set(kFlagDR06KeyboardChecked); return true; } +#else + if ( Object_Query_Click("X2KEYBRD02", objectName) // Use X2KEYBRD02 in place of X2_KEYBRD02 + && !Game_Flag_Query(kFlagDR06KeyboardChecked)) { + Loop_Actor_Walk_To_XYZ(kActorMcCoy, -655.57f, 136.6f, -1092.64f, 0, true, false, 0); + Actor_Face_Object(kActorMcCoy, "X2KEYBRD02", true); + Actor_Voice_Over(830, kActorVoiceOver); + Actor_Voice_Over(840, kActorVoiceOver); + Game_Flag_Set(kFlagDR06KeyboardChecked); + return true; + } +#endif // BLADERUNNER_ORIGINAL_BUGS if (Object_Query_Click("X2_TORSO04HIRES", objectName)) { if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, -700.0f, 136.6f, -1133.0f, 4, true, false, 0)) { diff --git a/engines/bladerunner/script/scene/ps04.cpp b/engines/bladerunner/script/scene/ps04.cpp index 830de0dad5..6be812804c 100644 --- a/engines/bladerunner/script/scene/ps04.cpp +++ b/engines/bladerunner/script/scene/ps04.cpp @@ -99,7 +99,11 @@ bool SceneScriptPS04::ClickedOnItem(int itemId, bool a2) { Item_Remove_From_World(kItemWeaponsOrderForm); Item_Pickup_Spin_Effect(kModelAnimationOriginalRequisitionForm, 464, 362); Actor_Says(kActorMcCoy, 4485, kAnimationModeTalk); - Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, true, -1); +#endif // BLADERUNNER_ORIGINAL_BUGS } return false; } diff --git a/engines/bladerunner/script/scene/ps15.cpp b/engines/bladerunner/script/scene/ps15.cpp index f7bb4da2c3..0e1aa83f3e 100644 --- a/engines/bladerunner/script/scene/ps15.cpp +++ b/engines/bladerunner/script/scene/ps15.cpp @@ -100,8 +100,13 @@ bool SceneScriptPS15::ClickedOnItem(int itemId, bool a2) { Actor_Says(kActorSergeantWalls, 160, 14); Actor_Says(kActorMcCoy, 4490, 12); Actor_Says(kActorSergeantWalls, 170, 13); - Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, true, kActorMcCoy); - Actor_Clue_Acquire(kActorMcCoy, kCluePoliceIssueWeapons, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorSergeantWalls here? + Actor_Clue_Acquire(kActorMcCoy, kCluePoliceIssueWeapons, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorSergeantWalls here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueWeaponsOrderForm, true, kActorSergeantWalls); + Actor_Clue_Acquire(kActorMcCoy, kCluePoliceIssueWeapons, true, kActorSergeantWalls); +#endif // BLADERUNNER_ORIGINAL_BUGS } return true; } diff --git a/engines/bladerunner/script/scene/rc04.cpp b/engines/bladerunner/script/scene/rc04.cpp index 212e07c083..151945ce39 100644 --- a/engines/bladerunner/script/scene/rc04.cpp +++ b/engines/bladerunner/script/scene/rc04.cpp @@ -126,7 +126,11 @@ void SceneScriptRC04::dialogueWithBulletBob() { Actor_Says(kActorBulletBob, 380, 37); Actor_Says(kActorBulletBob, 390, 11); Actor_Says(kActorBulletBob, 400, 37); - Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorBulletBob here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorBulletBob); +#endif // BLADERUNNER_ORIGINAL_BUGS } else { Actor_Says(kActorBulletBob, 410, 11); Actor_Says(kActorBulletBob, 420, 37); @@ -136,7 +140,11 @@ void SceneScriptRC04::dialogueWithBulletBob() { Actor_Says(kActorBulletBob, 450, 32); Actor_Says(kActorMcCoy, 5030, 16); Actor_Says(kActorBulletBob, 460, 37); - Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorBulletBob here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, true, kActorBulletBob); +#endif // BLADERUNNER_ORIGINAL_BUGS } return; @@ -165,7 +173,11 @@ void SceneScriptRC04::dialogueWithBulletBob() { Actor_Says(kActorBulletBob, 380, 33); Actor_Says(kActorBulletBob, 390, 37); Actor_Says(kActorBulletBob, 400, 32); - Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorBulletBob here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorBulletBob); +#endif // BLADERUNNER_ORIGINAL_BUGS } else { Actor_Says(kActorBulletBob, 410, 32); Actor_Says(kActorBulletBob, 420, 30); @@ -175,7 +187,11 @@ void SceneScriptRC04::dialogueWithBulletBob() { Actor_Says(kActorBulletBob, 450, 37); Actor_Says(kActorMcCoy, 5030, 16); Actor_Says(kActorBulletBob, 460, 30); - Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorBulletBob here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview2, true, kActorBulletBob); +#endif // BLADERUNNER_ORIGINAL_BUGS } break; @@ -205,7 +221,11 @@ void SceneScriptRC04::dialogueWithBulletBob() { Actor_Says(kActorBulletBob, 720, 30); Actor_Says(kActorMcCoy, 5080, 11); Actor_Says(kActorBulletBob, 730, 37); - Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorBulletBob here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorBulletBob); +#endif // BLADERUNNER_ORIGINAL_BUGS } else { Actor_Says(kActorBulletBob, 560, 37); Actor_Says(kActorMcCoy, 5070, 13); @@ -222,7 +242,11 @@ void SceneScriptRC04::dialogueWithBulletBob() { Actor_Says(kActorBulletBob, 650, 35); Actor_Says(kActorBulletBob, 660, 30); Actor_Says(kActorMcCoy, 5060, 13); - Actor_Clue_Acquire(kActorMcCoy, kClueGogglesReplicantIssue, true, kActorMcCoy); +#if BLADERUNNER_ORIGINAL_BUGS + Actor_Clue_Acquire(kActorMcCoy, kClueGogglesReplicantIssue, true, kActorMcCoy); // A bug? Shouldn't the last argument be -1 or kActorBulletBob here? +#else + Actor_Clue_Acquire(kActorMcCoy, kClueGogglesReplicantIssue, true, kActorBulletBob); // A bug? Shouldn't the last argument be -1 or kActorBulletBob here? +#endif // BLADERUNNER_ORIGINAL_BUGS } break; |