aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/bladerunner/script/ai/sadik.cpp10
-rw-r--r--engines/bladerunner/script/ai/sebastian.cpp2
-rw-r--r--engines/bladerunner/script/scene/ar01.cpp6
-rw-r--r--engines/bladerunner/script/scene/bb06.cpp2
-rw-r--r--engines/bladerunner/script/scene/bb09.cpp2
-rw-r--r--engines/bladerunner/script/scene/bb51.cpp7
-rw-r--r--engines/bladerunner/script/scene/ct01.cpp2
-rw-r--r--engines/bladerunner/script/scene/dr06.cpp13
-rw-r--r--engines/bladerunner/script/scene/ps04.cpp6
-rw-r--r--engines/bladerunner/script/scene/ps15.cpp9
-rw-r--r--engines/bladerunner/script/scene/rc04.cpp36
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;