[Scummvm-git-logs] scummvm master -> 334c24dea4368eaab005031344dfb7f6101d4536
antoniou79
a.antoniou79 at gmail.com
Sat May 29 16:00:34 UTC 2021
This automated email contains information about 7 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
aee8d17ca2 BLADERUNNER: Grigorian's Note restoration (WIP)
350053a829 BLADERUNNER: Use a new region for Grigorian's note
f71085d8b4 BLADERUNNER: Expand region for crashed car in CT11
390a0052c8 BLADERUNNER: Allow acquiring Tyrell Guard interview clue
d92880d7b1 BLADERUNNER: Fix syntax for help info for a few commands
b4da2ca867 BLADERUNNER: Add notes and comments about clues
334c24dea4 BLADERUNNER: Restore some KIA clues which wrongly had no type set
Commit: aee8d17ca2b23ab8f80f0448d768b3f094a3b8c5
https://github.com/scummvm/scummvm/commit/aee8d17ca2b23ab8f80f0448d768b3f094a3b8c5
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-05-29T18:56:44+03:00
Commit Message:
BLADERUNNER: Grigorian's Note restoration (WIP)
Note can be found in the crashed shedan in Act 3, outside Yukon.
Also fixed a bug with a lingering hotspot (from the lichendog wrapper)
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/init_script.cpp
engines/bladerunner/script/scene/ct11.cpp
engines/bladerunner/script/scene/ps09.cpp
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 5439ef917c..9e45e926b7 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -332,16 +332,16 @@ enum Clues {
kClueMcCoyRetiredSadik = 226,
kClueMcCoyShotZubenInTheBack = 227,
kClueMcCoyRetiredLutherLance = 228,
- kClueMcCoyBetrayal = 229,
+ kClueMcCoyBetrayal = 229, // Unobtained - never checked
kClueMcCoyKilledRunciter2 = 230,
kClueClovisOrdersMcCoysDeath = 231,
kClueEarlyAttemptedToSeduceLucy = 232,
- kClueCarWasStolen = 233,
- kClueGrigoriansResponse1 = 234,
- kClueGrigoriansResponse2 = 235,
- kClueCrazysInvolvement = 236,
- kClueGrigoriansResources = 237,
- kClueMcCoyPulledAGun = 238,
+ kClueCarWasStolen = 233, // Unused
+ kClueGrigoriansResponse1 = 234, // Unused
+ kClueGrigoriansResponse2 = 235, // Unused
+ kClueCrazysInvolvement = 236, // Unobtained - has weight for Crazylegs - never checked
+ kClueGrigoriansResources = 237, // Unobtained - checked for Crazylegs dialogue
+ kClueMcCoyPulledAGun = 238, // Unused
kClueMcCoyIsStupid = 239,
kClueMcCoyIsAnnoying = 240,
kClueMcCoyIsKind = 241,
@@ -390,7 +390,7 @@ enum Clues {
kClueEarlyInterviewB1 = 284,
kClueEarlyInterviewB2 = 285,
kClueCrazylegsInterview3 = 286,
- kClueCrazylegGgrovels = 287
+ kClueCrazylegGrovels = 287 // Unobtained - never checked
};
enum ClueTypes {
@@ -1106,7 +1106,7 @@ enum Flags {
kFlagUG07PoliceLeave = 664,
kFlagUG19Available = 665,
kFlagMcCoyFreedOfAccusations = 666,
- // 667 is never used
+ kFlagCT11GrigorianNotePlaced = 667, // Re-purposed. Original: 667 is never used
kFlagUG13OriginalRequisitionFormPlaced = 668, // Re-purposed. Original: 668 is never used
kFlagKP02DispatchOnToxicKipple = 669, // Re-purposed. Original: 669 is never used
kFlagCallWithGuzza = 670,
@@ -1657,7 +1657,7 @@ enum GameItems {
kItemGordosLighterReplicant = 89,
kItemGordosLighterHuman = 90,
kItemBriefcase = 91,
- // 92 is never used
+ kItemNote = 92, // original: 92 is never used
// 93 is never used
// 94 is never used
// 95 is never used
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index 8954f1cd46..5a289c6f41 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -2726,7 +2726,7 @@ void InitScript::Init_CDB() {
CDB_Set_Clue_Asset_Type(kClueEarlyInterviewB1, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueEarlyInterviewB2, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueCrazylegsInterview3, kClueTypeAudioRecording);
- CDB_Set_Clue_Asset_Type(kClueCrazylegGgrovels, kClueTypeAudioRecording);
+ CDB_Set_Clue_Asset_Type(kClueCrazylegGrovels, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueFolder, kClueTypeObject);
}
diff --git a/engines/bladerunner/script/scene/ct11.cpp b/engines/bladerunner/script/scene/ct11.cpp
index 3ae361319e..ef504005c3 100644
--- a/engines/bladerunner/script/scene/ct11.cpp
+++ b/engines/bladerunner/script/scene/ct11.cpp
@@ -66,6 +66,24 @@ void SceneScriptCT11::SceneLoaded() {
Scene_2D_Region_Add(0, 505, 316, 513, 321);
Game_Flag_Set(kFlagCT11DogWrapperAvailable);
}
+
+ if (_vm->_cutContent
+ && !Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)
+ && (Game_Flag_Query(kFlagDektoraIsReplicant)
+ || !Game_Flag_Query(kFlagGordoIsReplicant))
+ ) {
+ // The car is only bought by Reps from CrazyLegs
+ // if Dektora is a Replicant
+ // or if Dektora is human and Gordo is also human
+ //
+ // Set the note as invisible too, so as not to appear odd or overlap with lichendog wrapper.
+ // The user should "spot" it at the same hot spot region (passenger seat glovebox spot).
+ Item_Add_To_World(kItemNote, kModelAnimationGrigoriansNote, kSetCT11, 640.21f, 30.0f, 470.0f, 512, 12, 12, false, false, false, true);
+ if (Game_Flag_Query(kFlagCT11DogWrapperTaken)) {
+ Scene_2D_Region_Add(0, 505, 316, 513, 321);
+ }
+ }
+
if (!Actor_Clue_Query(kActorMcCoy, kClueCar)) {
Scene_2D_Region_Add(1, 412, 258, 552, 358);
}
@@ -75,6 +93,15 @@ void SceneScriptCT11::SceneLoaded() {
Game_Flag_Reset(kFlagCT11DogWrapperAvailable);
Game_Flag_Set(kFlagCT11DogWrapperTaken);
}
+ // Check if Grigorian's note is still in the world after Act 3
+ // and remove it (in cut content)
+ if (_vm->_cutContent
+ && Game_Flag_Query(kFlagCT11GrigorianNotePlaced)
+ && !Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)) {
+ Item_Remove_From_World(kItemNote);
+ Game_Flag_Reset(kFlagCT11GrigorianNotePlaced);
+ }
+
Unobstacle_Object("BRIDGE SUPPORT", true);
Unobstacle_Object("BODY", true);
Unobstacle_Object("HEADLIGHTS", true);
@@ -153,6 +180,32 @@ bool SceneScriptCT11::ClickedOn2DRegion(int region) {
Actor_Voice_Over(560, kActorVoiceOver);
Actor_Voice_Over(570, kActorVoiceOver);
Actor_Voice_Over(580, kActorVoiceOver);
+#if !BLADERUNNER_ORIGINAL_BUGS
+ // in the original game the hotspot would not be removed
+ // after picking up the lichendog Wrapper
+ if (!_vm->_cutContent
+ || (!Game_Flag_Query(kFlagDektoraIsReplicant)
+ && Game_Flag_Query(kFlagGordoIsReplicant))) {
+ // - We are not in cutContent
+ // - or we are in cutContent but no Grigorian's note due to other conditions
+ Scene_2D_Region_Remove(0);
+ }
+#endif // !BLADERUNNER_ORIGINAL_BUGS
+ }
+ return true;
+ }
+
+ if (_vm->_cutContent
+ && region == 0
+ && !Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)
+ ) {
+ if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, true, false, false)) {
+ Actor_Face_Heading(kActorMcCoy, 47, false);
+ Item_Remove_From_World(kItemNote);
+ Actor_Clue_Acquire(kActorMcCoy, kClueGrigoriansNote, false, -1);
+ Item_Pickup_Spin_Effect(kModelAnimationGrigoriansNote, 510, 319);
+ Actor_Voice_Over(8840, kActorMcCoy);
+ Scene_2D_Region_Remove(0);
}
return true;
}
diff --git a/engines/bladerunner/script/scene/ps09.cpp b/engines/bladerunner/script/scene/ps09.cpp
index a1474b0732..a7f84132b4 100644
--- a/engines/bladerunner/script/scene/ps09.cpp
+++ b/engines/bladerunner/script/scene/ps09.cpp
@@ -123,6 +123,7 @@ bool SceneScriptPS09::ClickedOnActor(int actorId) {
return true;
}
+ // TODO Missing kClueGrigorianInterviewB2 for this?
if (Game_Flag_Query(kFlagPS09GrigorianDialogue)
&& Game_Flag_Query(kFlagPS09GrigorianTalk1)
&& (Actor_Clue_Query(kActorMcCoy, kClueGrigorianInterviewA)
@@ -510,9 +511,14 @@ void SceneScriptPS09::dialogueWithGrigorian() {
Actor_Says(kActorMcCoy, 4385, 19);
Actor_Says(kActorGrigorian, 370, 13);
Actor_Says(kActorMcCoy, 4390, 19);
- Actor_Says(kActorMcCoy, 4395, 18);
+ // TODO McCoy needs to have the Registration Clues (1 or 3)
+ // and probably have talked at least once with CrazyLegs
+ // for this next quote to make sense
+ Actor_Says(kActorMcCoy, 4395, 18); // How was Crazylegs supposed to help them?
Actor_Says(kActorGrigorian, 380, 14);
- Actor_Says(kActorGrigorian, 390, 12);
+#if BLADERUNNER_ORIGINAL_BUGS
+ Actor_Says(kActorGrigorian, 390, 12); // boop placeholder
+#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Modify_Friendliness_To_Other(kActorGrigorian, kActorMcCoy, -5);
break;
Commit: 350053a829e126cf3fbc42aa8066fa65bd67edf4
https://github.com/scummvm/scummvm/commit/350053a829e126cf3fbc42aa8066fa65bd67edf4
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-05-29T18:56:44+03:00
Commit Message:
BLADERUNNER: Use a new region for Grigorian's note
Changed paths:
engines/bladerunner/script/scene/ct11.cpp
diff --git a/engines/bladerunner/script/scene/ct11.cpp b/engines/bladerunner/script/scene/ct11.cpp
index ef504005c3..6a1529ebf6 100644
--- a/engines/bladerunner/script/scene/ct11.cpp
+++ b/engines/bladerunner/script/scene/ct11.cpp
@@ -69,19 +69,14 @@ void SceneScriptCT11::SceneLoaded() {
if (_vm->_cutContent
&& !Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)
- && (Game_Flag_Query(kFlagDektoraIsReplicant)
- || !Game_Flag_Query(kFlagGordoIsReplicant))
+ && (Game_Flag_Query(kFlagDektoraIsReplicant)
+ || !Game_Flag_Query(kFlagGordoIsReplicant))
) {
// The car is only bought by Reps from CrazyLegs
// if Dektora is a Replicant
// or if Dektora is human and Gordo is also human
- //
- // Set the note as invisible too, so as not to appear odd or overlap with lichendog wrapper.
- // The user should "spot" it at the same hot spot region (passenger seat glovebox spot).
- Item_Add_To_World(kItemNote, kModelAnimationGrigoriansNote, kSetCT11, 640.21f, 30.0f, 470.0f, 512, 12, 12, false, false, false, true);
- if (Game_Flag_Query(kFlagCT11DogWrapperTaken)) {
- Scene_2D_Region_Add(0, 505, 316, 513, 321);
- }
+ Item_Add_To_World(kItemNote, kModelAnimationGrigoriansNote, kSetCT11, 641.21f, 26.0f, 472.0f, 304, 12, 12, false, true, false, true);
+ Scene_2D_Region_Add(2, 505, 321, 519, 332);
}
if (!Actor_Clue_Query(kActorMcCoy, kClueCar)) {
@@ -183,29 +178,23 @@ bool SceneScriptCT11::ClickedOn2DRegion(int region) {
#if !BLADERUNNER_ORIGINAL_BUGS
// in the original game the hotspot would not be removed
// after picking up the lichendog Wrapper
- if (!_vm->_cutContent
- || (!Game_Flag_Query(kFlagDektoraIsReplicant)
- && Game_Flag_Query(kFlagGordoIsReplicant))) {
- // - We are not in cutContent
- // - or we are in cutContent but no Grigorian's note due to other conditions
- Scene_2D_Region_Remove(0);
- }
+ Scene_2D_Region_Remove(0);
#endif // !BLADERUNNER_ORIGINAL_BUGS
}
return true;
}
if (_vm->_cutContent
- && region == 0
+ && region == 2
&& !Actor_Clue_Query(kActorMcCoy, kClueGrigoriansNote)
) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, true, false, false)) {
Actor_Face_Heading(kActorMcCoy, 47, false);
Item_Remove_From_World(kItemNote);
Actor_Clue_Acquire(kActorMcCoy, kClueGrigoriansNote, false, -1);
- Item_Pickup_Spin_Effect(kModelAnimationGrigoriansNote, 510, 319);
+ Item_Pickup_Spin_Effect(kModelAnimationGrigoriansNote, 512, 326);
Actor_Voice_Over(8840, kActorMcCoy);
- Scene_2D_Region_Remove(0);
+ Scene_2D_Region_Remove(2);
}
return true;
}
Commit: f71085d8b412c47a5510c8e5bdad9e2c6f54ece6
https://github.com/scummvm/scummvm/commit/f71085d8b412c47a5510c8e5bdad9e2c6f54ece6
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-05-29T18:56:44+03:00
Commit Message:
BLADERUNNER: Expand region for crashed car in CT11
Changed paths:
engines/bladerunner/script/scene/ct11.cpp
diff --git a/engines/bladerunner/script/scene/ct11.cpp b/engines/bladerunner/script/scene/ct11.cpp
index 6a1529ebf6..1ac919ec52 100644
--- a/engines/bladerunner/script/scene/ct11.cpp
+++ b/engines/bladerunner/script/scene/ct11.cpp
@@ -80,7 +80,15 @@ void SceneScriptCT11::SceneLoaded() {
}
if (!Actor_Clue_Query(kActorMcCoy, kClueCar)) {
+#if BLADERUNNER_ORIGINAL_BUGS
Scene_2D_Region_Add(1, 412, 258, 552, 358);
+#else
+ // expand region 1 a bit and add two more
+ // as auxilliary in order to better cover the car area
+ Scene_2D_Region_Add(1, 365, 258, 552, 358);
+ Scene_2D_Region_Add(3, 267, 330, 365, 377);
+ Scene_2D_Region_Add(4, 365, 358, 454, 377);
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
} else {
if (Game_Flag_Query(kFlagCT11DogWrapperAvailable)) {
@@ -199,7 +207,12 @@ bool SceneScriptCT11::ClickedOn2DRegion(int region) {
return true;
}
- if (region == 1) {
+ if (region == 1
+#if !BLADERUNNER_ORIGINAL_BUGS
+ || region == 3
+ || region == 4
+#endif // !BLADERUNNER_ORIGINAL_BUGS
+ ) {
if (!Loop_Actor_Walk_To_XYZ(kActorMcCoy, 686.0f, 0.0f, 658.0f, 12, true, false, false)) {
Actor_Face_Heading(kActorMcCoy, 47, false);
int cluesFound = 0;
@@ -230,6 +243,11 @@ bool SceneScriptCT11::ClickedOn2DRegion(int region) {
Actor_Voice_Over(540, kActorVoiceOver);
Actor_Clue_Acquire(kActorMcCoy, kClueCar, false, -1);
Scene_2D_Region_Remove(1);
+#if !BLADERUNNER_ORIGINAL_BUGS
+ Scene_2D_Region_Remove(3);
+ Scene_2D_Region_Remove(4);
+#endif // !BLADERUNNER_ORIGINAL_BUGS
+
} else {
Actor_Says(kActorMcCoy, 8525, 12);
}
Commit: 390a0052c8e4c2bede84edc05d4a18a2cbdfb84c
https://github.com/scummvm/scummvm/commit/390a0052c8e4c2bede84edc05d4a18a2cbdfb84c
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-05-29T18:56:44+03:00
Commit Message:
BLADERUNNER: Allow acquiring Tyrell Guard interview clue
Only in Restored / cut content
Changed paths:
engines/bladerunner/script/scene/tb02.cpp
diff --git a/engines/bladerunner/script/scene/tb02.cpp b/engines/bladerunner/script/scene/tb02.cpp
index 77394b7f79..a0bad4224b 100644
--- a/engines/bladerunner/script/scene/tb02.cpp
+++ b/engines/bladerunner/script/scene/tb02.cpp
@@ -326,6 +326,9 @@ void SceneScriptTB02::PlayerWalkedIn() {
Actor_Says(kActorMcCoy, 5140, 17);
Actor_Says(kActorTyrellGuard, 30, 14);
Actor_Says(kActorTyrellGuard, 40, 13);
+ if (_vm->_cutContent) {
+ Actor_Clue_Acquire(kActorMcCoy, kClueTyrellGuardInterview, true, kActorTyrellGuard);
+ }
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -140.0f, 0.0f, 1586.0f, 12, false, false, false);
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -112.0f, 0.0f, 1586.0f, 12, false, false, false);
Actor_Face_Actor(kActorMcCoy, kActorTyrellGuard, true);
Commit: d92880d7b1bde5304487cd9d6356d463be72f7fe
https://github.com/scummvm/scummvm/commit/d92880d7b1bde5304487cd9d6356d463be72f7fe
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-05-29T18:56:45+03:00
Commit Message:
BLADERUNNER: Fix syntax for help info for a few commands
Changed paths:
engines/bladerunner/debugger.cpp
diff --git a/engines/bladerunner/debugger.cpp b/engines/bladerunner/debugger.cpp
index fb418799cc..953e90461e 100644
--- a/engines/bladerunner/debugger.cpp
+++ b/engines/bladerunner/debugger.cpp
@@ -886,7 +886,7 @@ bool Debugger::cmdVariable(int argc, const char **argv) {
bool Debugger::cmdClue(int argc, const char **argv) {
if (argc != 3 && argc != 4) {
- debugPrintf("Get or changes clue for an actor.\n");
+ debugPrintf("Gets or changes clue for an actor.\n");
debugPrintf("Usage: %s <actorId> <clueId> [<value>]\n", argv[0]);
return true;
}
@@ -922,7 +922,7 @@ bool Debugger::cmdClue(int argc, const char **argv) {
bool Debugger::cmdTimer(int argc, const char **argv) {
if (argc != 2 && argc != 4) {
- debugPrintf("Get or changes timers for an actor.\n");
+ debugPrintf("Gets or changes timers for an actor.\n");
debugPrintf("Usage: %s <actorId> [<timer> <value>]\n", argv[0]);
return true;
}
@@ -964,7 +964,7 @@ bool Debugger::cmdTimer(int argc, const char **argv) {
bool Debugger::cmdFriend(int argc, const char **argv) {
if (argc != 3 && argc != 4) {
- debugPrintf("Get or changes friendliness for an actor towards another actor.\n");
+ debugPrintf("Gets or changes friendliness for an actor towards another actor.\n");
debugPrintf("Usage: %s <actorId> <otherActorId> [<value>]\n", argv[0]);
return true;
}
Commit: b4da2ca867889a6a9a8cdde3ad56799e4ca73e26
https://github.com/scummvm/scummvm/commit/b4da2ca867889a6a9a8cdde3ad56799e4ca73e26
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-05-29T18:56:45+03:00
Commit Message:
BLADERUNNER: Add notes and comments about clues
Also fix some minor spelling (kSuspectDekora) and capitalization issues (kClueClovisflowers)
Changed paths:
engines/bladerunner/actor_clues.cpp
engines/bladerunner/actor_clues.h
engines/bladerunner/game_constants.h
engines/bladerunner/script/esper_script.cpp
engines/bladerunner/script/init_script.cpp
engines/bladerunner/script/kia_script.cpp
engines/bladerunner/script/scene/nr04.cpp
engines/bladerunner/script/scene/rc04.cpp
diff --git a/engines/bladerunner/actor_clues.cpp b/engines/bladerunner/actor_clues.cpp
index e42cc15184..db6567c514 100644
--- a/engines/bladerunner/actor_clues.cpp
+++ b/engines/bladerunner/actor_clues.cpp
@@ -248,6 +248,16 @@ int ActorClues::getFromActorId(int clueId) const {
return _clues[clueIndex].fromActorId;
}
+/**
+ * @brief returns if flag2 for specified clue is set.
+ *
+ * Bit flag "flag2" seems to affect one modifier when sharing / spreading clues
+ * (based on Honesty, friendliness and some seemingly *complicated* algorithm).
+ * It seems that it increases the overall modifier value for a clue, making it more likely to be shared with another actor.
+ *
+ * @param clueId
+ * @return true if this bit flag is set, false otherwise
+*/
bool ActorClues::isFlag2(int clueId) const {
int clueIndex = findClueIndex(clueId);
if (clueIndex == -1) {
@@ -358,12 +368,12 @@ void ActorClues::remove(int index) {
_clues[index].flags = 0;
_clues[index].fromActorId = -1;
- _clues[index].field3 = -1;
- _clues[index].field4 = 0;
- _clues[index].field5 = -1;
- _clues[index].field6 = 0;
- _clues[index].field7 = -1;
- _clues[index].field8 = 0;
+ _clues[index].field3 = -1; // unused (but stored/restored)
+ _clues[index].field4 = 0; // unused (but stored/restored)
+ _clues[index].field5 = -1; // unused (but stored/restored)
+ _clues[index].field6 = 0; // unused (but stored/restored)
+ _clues[index].field7 = -1; // unused (but stored/restored)
+ _clues[index].field8 = 0; // unused (but stored/restored)
}
void ActorClues::save(SaveFileWriteStream &f) {
diff --git a/engines/bladerunner/actor_clues.h b/engines/bladerunner/actor_clues.h
index 617426ee28..a2fdd68a4e 100644
--- a/engines/bladerunner/actor_clues.h
+++ b/engines/bladerunner/actor_clues.h
@@ -39,13 +39,13 @@ class ActorClues {
int clueId;
int weight;
int fromActorId;
- int field3;
- int field4;
- int field5;
- int field6;
- int field7;
- int field8;
- byte flags;
+ int field3; // unused (but stored/restored)
+ int field4; // unused (but stored/restored)
+ int field5; // unused (but stored/restored)
+ int field6; // unused (but stored/restored)
+ int field7; // unused (but stored/restored)
+ int field8; // unused (but stored/restored)
+ byte flags; // bit 0 (acquired), bit 1 (unknown), bit 2 (viewed), bit 3 (private)
};
BladeRunnerEngine *_vm;
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 9e45e926b7..28dca2a336 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -103,294 +103,294 @@ enum Actors {
};
enum Clues {
- kClueOfficersStatement = 0,
- kClueDoorForced1 = 1,
- kClueDoorForced2 = 2,
- kClueLimpingFootprints = 3,
- kClueGracefulFootprints = 4,
- kClueShellCasings = 5,
- kClueCandy = 6,
- kClueToyDog = 7,
- kClueChopstickWrapper = 8,
- kClueSushiMenu = 9,
- kClueLabCorpses = 10,
- kClueLabShellCasings = 11,
- kClueRuncitersVideo = 12,
- kClueLucy = 13,
- kClueDragonflyAnklet = 14,
- kClueReferenceLetter = 15,
- kClueCrowdInterviewA = 16,
- kClueCrowdInterviewB = 17,
- kClueZubenRunsAway = 18,
- kClueZubenInterview = 19,
- kClueZubenSquadPhoto = 20,
- kClueBigManLimping = 21,
- kClueRunciterInterviewA = 22,
- kClueRunciterInterviewB1 = 23,
- kClueRunciterInterviewB2 = 24,
- kClueHowieLeeInterview = 25,
- kCluePaintTransfer = 26,
- kClueChromeDebris = 27,
- kClueRuncitersViewA = 28,
- kClueRuncitersViewB = 29,
- kClueCarColorAndMake = 30,
- kCluePartialLicenseNumber = 31,
- kClueBriefcase = 32,
- kClueGaffsInformation = 33,
- kClueCrystalVisitedRunciters = 34,
- kClueCrystalVisitedChinatown = 35,
- kClueWantedPoster = 36,
- kClueLicensePlate = 37,
- kClueLicensePlateMatch = 38,
- kClueLabPaintTransfer = 39,
- kClueDispatchHitAndRun = 40, // is now acquired in restored Cut Content
- kClueInceptShotRoy = 41,
- kClueInceptShotsLeon = 42,
- kCluePhoneCallGuzza = 43,
- kClueDragonflyEarring = 44,
- kClueTyrellSecurity = 45,
- kClueTyrellGuardInterview = 46,
- kClueBombingSuspect = 47,
- kClueSadiksGun = 48,
- kClueDetonatorWire = 49,
- kClueVictimInformation = 50,
- kClueAttemptedFileAccess = 51,
- kClueCrystalsCase = 52,
- kClueKingstonKitchenBox1 = 53,
- kClueTyrellSalesPamphletEntertainModel = 54,
- kClueTyrellSalesPamphletLolita = 55,
- kCluePeruvianLadyInterview = 56,
- kClueHasanInterview = 57,
- kClueBobInterview1 = 58,
- kClueBobInterview2 = 59,
- kClueIzoInterview = 60,
- kClueIzosWarning = 61,
- kClueRadiationGoggles = 62,
- kClueGogglesReplicantIssue = 63,
- kClueFishLadyInterview = 64,
- kClueDogCollar1 = 65,
- kClueWeaponsCache = 66,
- kClueChewInterview = 67,
- kClueMorajiInterview = 68,
- kClueGordoInterview1 = 69,
- kClueGordoInterview2 = 70,
- kClueAnsweringMachineMessage = 71,
- kClueChessTable = 72,
- kClueSightingSadikBradbury = 73,
- kClueStaggeredbyPunches = 74,
- kClueMaggieBracelet = 75,
- kClueEnvelope = 76,
- kClueIzosFriend = 77,
- kClueChinaBarSecurityPhoto = 78,
- kCluePurchasedScorpions = 79,
- kClueWeaponsOrderForm = 80,
- kClueShippingForm = 81,
- kClueGuzzasCash = 82,
- kCluePoliceIssueWeapons = 83,
- kClueHysteriaToken = 84,
- kClueRagDoll = 85,
- kClueMoonbus1 = 86,
- kClueCheese = 87,
- kClueDektorasDressingRoom = 88,
- kClueEarlyQsClub = 89,
- kClueDragonflyCollection = 90,
- kClueDragonflyBelt = 91,
- kClueEarlyQInterview = 92,
- kClueStrangeScale1 = 93,
- kClueDektoraInterview1 = 94,
- kClueSuspectDektora = 95,
- kClueDektoraInterview2 = 96,
- kClueDektoraInterview3 = 97,
- kClueDektorasCard = 98,
- kClueGrigoriansNote = 99,
- kClueCollectionReceipt = 100,
- kClueSpecialIngredient = 101,
- kClueStolenCheese = 102,
- kClueGordoInterview3 = 103,
- kClueGordoConfession = 104,
- kClueGordosLighterReplicant = 105,
- kClueGordosLighterHuman = 106,
- kClueDektoraInterview4 = 107,
- kClueHollowayInterview = 108,
- kClueBakersBadge = 109,
- kClueHoldensBadge = 110,
- kClueCar = 111,
- kClueCarIdentified = 112,
- kClueCarRegistration1 = 113, // Dektora bought the car
- kClueCarRegistration2 = 114, // Gavin Kelly bought the car
- kClueCarRegistration3 = 115, // Blake Williams bought the car
- kClueCrazylegsInterview1 = 116, // new: acquired after bug fix. Original: Never acquired
- kClueCrazylegsInterview2 = 117, // original: Never acquired
- kClueLichenDogWrapper = 118,
- kClueRequisitionForm = 119, // original: Never acquired
- kClueScaryChair = 120,
- kClueIzosStashRaided = 121,
- kClueHomelessManInterview1 = 122,
- kClueHomelessManInterview2 = 123,
- kClueHomelessManKid = 124,
- kClueFolder = 125,
- kClueGuzzaFramedMcCoy = 126,
- kClueOriginalShippingForm = 127, // original: Never acquired
- kClueOriginalRequisitionForm = 128,
- kClueCandyWrapper = 129,
- kClueGordoBlabs = 130,
- kClueFlaskOfAbsinthe = 131,
- kClueGuzzaAgreesToMeet = 132,
- kClueDektoraConfession = 133,
- kClueRunciterConfession1 = 134,
- kClueRunciterConfession2 = 135,
- kClueLutherLanceInterview = 136,
- kClueMoonbus2 = 137,
- kClueMoonbusCloseup = 138,
- kCluePhoneCallDektora1 = 139,
- kCluePhoneCallDektora2 = 140,
- kCluePhoneCallLucy1 = 141,
- kCluePhoneCallLucy2 = 142,
- kCluePhoneCallClovis = 143,
- kCluePhoneCallCrystal = 144,
- kCluePowerSource = 145,
- kClueBomb = 146,
- kClueDNATyrell = 147,
- kClueDNASebastian = 148,
- kClueDNAChew = 149,
- kClueDNAMoraji = 150,
- kClueDNALutherLance = 151,
- kClueDNAMarcus = 152,
- kClueGarterSnake = 153,
- kClueSlug = 154,
- kClueGoldfish = 155,
- kClueZubenTalksAboutLucy1 = 156,
- kClueZubenTalksAboutLucy2 = 157,
- kClueZubensMotive = 158,
- kClueSightingBulletBob = 159,
- kClueSightingClovis = 160,
- kClueSightingDektora = 161,
- kClueVKDektoraReplicant = 162,
- kClueVKDektoraHuman = 163,
- kClueVKBobGorskyReplicant = 164,
- kClueVKBobGorskyHuman = 165,
- kClueVKLutherLanceReplicant = 166,
- kClueVKLutherLanceHuman = 167,
- kClueVKGrigorianReplicant = 168,
- kClueVKGrigorianHuman = 169,
- kClueVKIzoReplicant = 170,
- kClueVKIzoHuman = 171,
- kClueVKCrazylegsReplicant = 172,
- kClueVKCrazylegsHuman = 173,
- kClueVKRunciterReplicant = 174,
- kClueVKRunciterHuman = 175,
- kClueVKEarlyQReplicant = 176,
- kClueVKEarlyQHuman = 177,
- kClueCrimeSceneNotes = 178,
- kClueGrigorianInterviewA = 179,
- kClueGrigorianInterviewB1 = 180,
- kClueGrigorianInterviewB2 = 181,
- kClueLabAnalysisGoldChain = 182,
- kClueSightingZuben = 183,
- kClueCrystalRetiredZuben = 184,
- kClueCrystalRetiredGordo = 185,
- kClueSightingGordo = 186,
- kClueCrystalRetiredIzo = 187,
- kClueClovisIncept = 188,
- kClueDektoraIncept = 189,
- kClueLucyIncept = 190,
- kClueGordoIncept = 191,
- kClueIzoIncept = 192,
- kClueSadikIncept = 193,
- kClueZubenIncept = 194,
- kClueMcCoyIncept = 195,
- kClueWarRecordsGordoFrizz = 196,
- kCluePoliceWeaponUsed = 197,
- kClueMcCoysWeaponUsedonBob = 198,
- kClueBobRobbed = 199,
- kClueBobShotInSelfDefense = 200,
- kClueBobShotInColdBlood = 201,
- kClueMcCoyRecoveredHoldensBadge = 202,
- kClueCrystalTestedBulletBob = 203,
- kClueCrystalRetiredBob = 204,
- kClueCrystalTestedCrazylegs = 205,
- kClueCrystalRetiredCrazylegs = 206,
- kClueCrystalArrestedCrazylegs = 207,
- kClueCrystalTestedRunciter = 208,
- kClueCrystalRetiredRunciter1 = 209,
- kClueCrystalRetiredRunciter2 = 210,
- kClueSightingMcCoyRuncitersShop = 211,
- kClueMcCoyKilledRunciter1 = 212,
- kClueMcCoysDescription = 213,
- kClueMcCoyIsABladeRunner = 214,
- kClueMcCoyLetZubenEscape = 215,
- kClueMcCoyWarnedIzo = 216,
- kClueMcCoyHelpedIzoIzoIsAReplicant = 217,
- kClueMcCoyHelpedDektora = 218,
- kClueMcCoyHelpedLucy = 219,
- kClueMcCoyHelpedGordo = 220,
- kClueMcCoyShotGuzza = 221,
- kClueMcCoyRetiredZuben = 222,
- kClueMcCoyRetiredLucy = 223,
- kClueMcCoyRetiredDektora = 224,
- kClueMcCoyRetiredGordo = 225,
- kClueMcCoyRetiredSadik = 226,
- kClueMcCoyShotZubenInTheBack = 227,
- kClueMcCoyRetiredLutherLance = 228,
- kClueMcCoyBetrayal = 229, // Unobtained - never checked
- kClueMcCoyKilledRunciter2 = 230,
- kClueClovisOrdersMcCoysDeath = 231,
- kClueEarlyAttemptedToSeduceLucy = 232,
- kClueCarWasStolen = 233, // Unused
- kClueGrigoriansResponse1 = 234, // Unused
- kClueGrigoriansResponse2 = 235, // Unused
- kClueCrazysInvolvement = 236, // Unobtained - has weight for Crazylegs - never checked
- kClueGrigoriansResources = 237, // Unobtained - checked for Crazylegs dialogue
- kClueMcCoyPulledAGun = 238, // Unused
- kClueMcCoyIsStupid = 239,
- kClueMcCoyIsAnnoying = 240,
- kClueMcCoyIsKind = 241,
- kClueMcCoyIsInsane = 242,
- kClueAnimalMurderSuspect = 243,
- kClueMilitaryBoots = 244,
- kClueOuterDressingRoom = 245,
- kCluePhotoOfMcCoy1 = 246,
- kCluePhotoOfMcCoy2 = 247,
- kClueEarlyQAndLucy = 248,
- kClueClovisflowers = 249,
- kClueLucyWithDektora = 250,
- kClueWomanInAnimoidRow = 251,
- kClueScorpions = 252,
- kClueStrangeScale2 = 253,
- kClueChinaBarSecurityCamera = 254,
- kClueIzo = 255,
- kClueGuzza = 256,
- kClueChinaBarSecurityDisc = 257,
- kClueScorpionbox = 258,
- kClueTyrellSecurityPhoto = 259,
- kClueChinaBar = 260,
- kCluePlasticExplosive = 261,
- kClueDogCollar2 = 262,
- kClueKingstonKitchenBox2 = 263, // ESPER hard-copy
- kClueCrystalsCigarette = 264,
- kClueSpinnerKeys = 265,
- kClueAct2Ended = 266, // is acquired but never checked. Has no type and seems like a placeholder
- kClueAct3Ended = 267, // unused
- kClueAct4Ended = 268, // unused
- kClueExpertBomber = 269,
- kClueAmateurBomber = 270,
- kClueVKLucyReplicant = 271,
- kClueVKLucyHuman = 272,
- kClueLucyInterview = 273,
- kClueMoonbusReflection = 274,
- kClueMcCoyAtMoonbus = 275,
- kClueClovisAtMoonbus = 276,
- kClueSadikAtMoonbus = 277,
- kClueRachaelInterview = 278,
- kClueTyrellInterview = 279,
- kClueRuncitersConfession1 = 280,
- kClueRuncitersConfession2 = 281,
- kClueRuncitersConfession3 = 282,
- kClueEarlyInterviewA = 283,
- kClueEarlyInterviewB1 = 284,
- kClueEarlyInterviewB2 = 285,
- kClueCrazylegsInterview3 = 286,
- kClueCrazylegGrovels = 287 // Unobtained - never checked
+ kClueOfficersStatement = 0, // Audio Recording
+ kClueDoorForced1 = 1, // Audio Recording - Acquired when Leary is not present
+ kClueDoorForced2 = 2, // Audio Recording - Acquired when Leary is present
+ kClueLimpingFootprints = 3, // Audio Recording
+ kClueGracefulFootprints = 4, // Audio Recording
+ kClueShellCasings = 5, // Object
+ kClueCandy = 6, // Object
+ kClueToyDog = 7, // Object
+ kClueChopstickWrapper = 8, // Object
+ kClueSushiMenu = 9, // Photograph - ESPER hard-copy
+ kClueLabCorpses = 10, // Audio Recording
+ kClueLabShellCasings = 11, // Audio Recording
+ kClueRuncitersVideo = 12, // Video Clip
+ kClueLucy = 13, // Photograph - ESPER hard-copy
+ kClueDragonflyAnklet = 14, // Photograph - ESPER hard-copy
+ kClueReferenceLetter = 15, // Object
+ kClueCrowdInterviewA = 16, // Audio Recording
+ kClueCrowdInterviewB = 17, // Audio Recording
+ kClueZubenRunsAway = 18, // (Intangible) - Not checked in KIA
+ kClueZubenInterview = 19, // Audio Recording (CT02)
+ kClueZubenSquadPhoto = 20, // Photograph
+ kClueBigManLimping = 21, // Audio Recording - UNOBTAINED - Checked in KIA - Transient's hint about Zuben - TODO?
+ kClueRunciterInterviewA = 22, // Audio Recording - Identity Reveal for Lucy
+ kClueRunciterInterviewB1 = 23, // Audio Recording - Lucy is Replicant
+ kClueRunciterInterviewB2 = 24, // Audio Recording - Lucy is Human
+ kClueHowieLeeInterview = 25, // Audio Recording
+ kCluePaintTransfer = 26, // Audio Recording
+ kClueChromeDebris = 27, // Object
+ kClueRuncitersViewA = 28, // Photograph
+ kClueRuncitersViewB = 29, // Photograph
+ kClueCarColorAndMake = 30, // Photograph - ESPER hard-copy
+ kCluePartialLicenseNumber = 31, // Photograph - ESPER hard-copy
+ kClueBriefcase = 32, // Object
+ kClueGaffsInformation = 33, // Audio Recording
+ kClueCrystalVisitedRunciters = 34, // Intangible - UNOBTAINED - Not checked in KIA
+ kClueCrystalVisitedChinatown = 35, // Intangible - UNOBTAINED - Not checked in KIA
+ kClueWantedPoster = 36, // Intangible - UNOBTAINED - Not checked in KIA - checked by Leon's AI
+ kClueLicensePlate = 37, // Object
+ kClueLicensePlateMatch = 38, // UNUSED
+ kClueLabPaintTransfer = 39, // Audio Recording
+ kClueDispatchHitAndRun = 40, // Audio Recording - Acquired in Cut Content. Original: Unobtained
+ kClueInceptShotRoy = 41, // Photograph - UNOBTAINED - Not checked in KIA
+ kClueInceptShotsLeon = 42, // UNUSED
+ kCluePhoneCallGuzza = 43, // Audio Recording
+ kClueDragonflyEarring = 44, // Object
+ kClueTyrellSecurity = 45, // Video Clip
+ kClueTyrellGuardInterview = 46, // Audio Recording - Acquired in Cut Content. Original: Unobtained
+ kClueBombingSuspect = 47, // Photograph - ESPER hard-copy
+ kClueSadiksGun = 48, // Photograph - UNOBTAINED - Not checked in KIA - TODO: A removed ESPER clue?
+ kClueDetonatorWire = 49, // Object
+ kClueVictimInformation = 50, // Audio Recording
+ kClueAttemptedFileAccess = 51, // Audio Recording
+ kClueCrystalsCase = 52, // Audio Recording
+ kClueKingstonKitchenBox1 = 53, // Object
+ kClueTyrellSalesPamphletEntertainModel = 54, // Object
+ kClueTyrellSalesPamphletLolita = 55, // Object
+ kCluePeruvianLadyInterview = 56, // Audio Recording
+ kClueHasanInterview = 57, // Audio Recording
+ kClueBobInterview1 = 58, // Audio Recording - when Izo is Replicant
+ kClueBobInterview2 = 59, // Audio Recording - when Izo is Human
+ kClueIzoInterview = 60, // Audio Recording - About INSECT JEWELRY
+ kClueIzosWarning = 61, // Audio Recording - UNOBTAINED - Checked in KIA - Identity Reveal for Clovis - TODO?
+ kClueRadiationGoggles = 62, // Object
+ kClueGogglesReplicantIssue = 63, // Audio Recording
+ kClueFishLadyInterview = 64, // Audio Recording
+ kClueDogCollar1 = 65, // Object
+ kClueWeaponsCache = 66, // Audio Recording
+ kClueChewInterview = 67, // Audio Recording
+ kClueMorajiInterview = 68, // Audio Recording
+ kClueGordoInterview1 = 69, // Audio Recording - When Gordo is Replicant - Identity Reveal for Gordo
+ kClueGordoInterview2 = 70, // Audio Recording - When Gordo is Human - Identity Reveal for Gordo
+ kClueAnsweringMachineMessage = 71, // Audio Recording - Sebastian's message
+ kClueChessTable = 72, // Audio Recording - Acquired after bug fix. Original: Unobtained
+ kClueSightingSadikBradbury = 73, // (Intangible) - UNOBTAINED - Not checked in KIA - added to many actors DBs
+ kClueStaggeredbyPunches = 74, // Audio Recording
+ kClueMaggieBracelet = 75, // Object
+ kClueEnvelope = 76, // Object
+ kClueIzosFriend = 77, // Photograph - ESPER hard-copy (Clovis)
+ kClueChinaBarSecurityPhoto = 78, // Photograph
+ kCluePurchasedScorpions = 79, // Audio Recording
+ kClueWeaponsOrderForm = 80, // Object
+ kClueShippingForm = 81, // Object
+ kClueGuzzasCash = 82, // (Intangible)
+ kCluePoliceIssueWeapons = 83, // (Intangible) - Can be acquired - Not checked in KIA - TODO?
+ kClueHysteriaToken = 84, // Object
+ kClueRagDoll = 85, // Object
+ kClueMoonbus1 = 86, // Photograph
+ kClueCheese = 87, // Object
+ kClueDektorasDressingRoom = 88, // Photograph
+ kClueEarlyQsClub = 89, // Video Clip
+ kClueDragonflyCollection = 90, // (Intangible) - From Peruvian Lady
+ kClueDragonflyBelt = 91, // (Intangible)
+ kClueEarlyQInterview = 92, // (Intangible) - Identity Reveal for Dektora
+ kClueStrangeScale1 = 93, // Object
+ kClueDektoraInterview1 = 94, // Audio Recording
+ kClueSuspectDektora = 95, // (Intangible) - UNOBTAINED - Not checked in KIA - added to many actors DBs
+ kClueDektoraInterview2 = 96, // Audio Recording - About belt and dragonflies
+ kClueDektoraInterview3 = 97, // Audio Recording - About vase (flowers)
+ kClueDektorasCard = 98, // Object
+ kClueGrigoriansNote = 99, // Object - Acquired in Cut Content. Original: Unobtained
+ kClueCollectionReceipt = 100, // Object
+ kClueSpecialIngredient = 101, // Audio Recording
+ kClueStolenCheese = 102, // Audio Recording
+ kClueGordoInterview3 = 103, // Audio Recording - when Gordo is Replicant (about JOB)
+ kClueGordoConfession = 104, // Audio Recording - about Cheese
+ kClueGordosLighterReplicant = 105, // Object
+ kClueGordosLighterHuman = 106, // Object
+ kClueDektoraInterview4 = 107, // Audio Recording - McCoy lets Dektora escape from attic - Identity Reveal for Clovis, Lucy - Replicant Clue for Dektora, Lucy, Clovis
+ kClueHollowayInterview = 108, // Audio Recording - UNOBTAINED - Checked in KIA - Holloway says he's seen McCoy's incept photo - TODO?
+ kClueBakersBadge = 109, // Object - UNOBTAINED - Checked in KIA - TODO?
+ kClueHoldensBadge = 110, // Object
+ kClueCar = 111, // (Intangible) - Not checked in KIA - Acquired when inspecting the crashed car, if McCoy has enough clues - TODO?
+ kClueCarIdentified = 112, // Audio Recording - UNOBTAINED - Checked in KIA - McCoy's monologue when mainframe confirms suspect car - TODO?
+ kClueCarRegistration1 = 113, // Audio Recording - Dektora bought the car
+ kClueCarRegistration2 = 114, // Audio Recording - Gavin Kelly bought the car
+ kClueCarRegistration3 = 115, // Audio Recording - Blake Williams bought the car
+ kClueCrazylegsInterview1 = 116, // Audio Recording - Acquired after bug fix. Original: Unobtained - Checked in KIA
+ kClueCrazylegsInterview2 = 117, // Audio Recording - UNOBTAINED - Not checked in KIA - added to many actors DBs - TODO?
+ kClueLichenDogWrapper = 118, // Object
+ kClueRequisitionForm = 119, // Object - UNOBTAINED - Checked in KIA - TODO?
+ kClueScaryChair = 120, // Audio Recording
+ kClueIzosStashRaided = 121, // Audio Recording
+ kClueHomelessManInterview1 = 122, // Audio Recording
+ kClueHomelessManInterview2 = 123, // Audio Recording
+ kClueHomelessManKid = 124, // Audio Recording
+ kClueFolder = 125, // Object
+ kClueGuzzaFramedMcCoy = 126, // Audio Recording
+ kClueOriginalShippingForm = 127, // Object - UNOBTAINED - Checked in KIA - TODO?
+ kClueOriginalRequisitionForm = 128, // Object
+ kClueCandyWrapper = 129, // Object - UNOBTAINED - Checked in KIA - TODO?
+ kClueGordoBlabs = 130, // (Intangible) - UNOBTAINED - Not checked in KIA - added to many actors DBs - TODO probably Audio Recording?
+ kClueFlaskOfAbsinthe = 131, // Object
+ kClueGuzzaAgreesToMeet = 132, // UNUSED
+ kClueDektoraConfession = 133, // Audio Recording - UNOBTAINED - Not checked in KIA - added to many actors DBs - TODO?
+ kClueRunciterConfession1 = 134, // Audio Recording - UNOBTAINED - Not checked in KIA - added to many actors DBs - TODO? Why in addition to 280, 281, 282?
+ kClueRunciterConfession2 = 135, // Audio Recording - UNOBTAINED - Not checked in KIA - added to many actors DBs - TODO? Why in addition to 280, 281, 282?
+ kClueLutherLanceInterview = 136, // Audio Recording
+ kClueMoonbus2 = 137, // Photograph - UNOBTAINED - Not checked in KIA
+ kClueMoonbusCloseup = 138, // Photograph - UNOBTAINED - Not checked in KIA
+ kCluePhoneCallDektora1 = 139, // Audio Recording - McCoy agrees to leave with Dektora
+ kCluePhoneCallDektora2 = 140, // Audio Recording - McCoy prioritizes Moonbus and Clovis
+ kCluePhoneCallLucy1 = 141, // Audio Recording - Lucy suggests meeting at Crazylegs
+ kCluePhoneCallLucy2 = 142, // Audio Recording - McCoy prioritizes Moonbus and Clovis
+ kCluePhoneCallClovis = 143, // Audio Recording
+ kCluePhoneCallCrystal = 144, // Audio Recording
+ kCluePowerSource = 145, // Object
+ kClueBomb = 146, // Object - Acquired when McCoy leaves by car (underground) alone
+ kClueDNATyrell = 147, // Object
+ kClueDNASebastian = 148, // Object
+ kClueDNAChew = 149, // Object - UNOBTAINED - Checked in KIA - added to many actors DBs - TODO?
+ kClueDNAMoraji = 150, // Object - UNOBTAINED - Checked in KIA - added to many actors DBs - TODO?
+ kClueDNALutherLance = 151, // Object
+ kClueDNAMarcus = 152, // Object
+ kClueGarterSnake = 153, // Object - Acquired in Cut Content. Original: Unobtained
+ kClueSlug = 154, // Object - Acquired in Cut Content. Original: Unobtained
+ kClueGoldfish = 155, // Object - Acquired in Cut Content. Original: Unobtained
+ kClueZubenTalksAboutLucy1 = 156, // Audio Recording - Lucy is Replicant
+ kClueZubenTalksAboutLucy2 = 157, // Audio Recording - Lucy is Human
+ kClueZubensMotive = 158, // Audio Recording
+ kClueSightingBulletBob = 159, // UNUSED
+ kClueSightingClovis = 160, // UNUSED
+ kClueSightingDektora = 161, // UNUSED
+ kClueVKDektoraReplicant = 162, // Audio Recording
+ kClueVKDektoraHuman = 163, // Audio Recording
+ kClueVKBobGorskyReplicant = 164, // Audio Recording
+ kClueVKBobGorskyHuman = 165, // Audio Recording
+ kClueVKLutherLanceReplicant = 166, // (Intangible) - UNOBTAINED - Checked in KIA - added to many actors DBs - TODO? (Audio Recording)
+ kClueVKLutherLanceHuman = 167, // (Intangible) - UNOBTAINED - Checked in KIA - TODO? (Audio Recording)
+ kClueVKGrigorianReplicant = 168, // Audio Recording
+ kClueVKGrigorianHuman = 169, // Audio Recording
+ kClueVKIzoReplicant = 170, // (Intangible) - UNOBTAINED - Checked in KIA - added to many actors DBs - TODO? (Audio Recording)
+ kClueVKIzoHuman = 171, // (Intangible) - UNOBTAINED - Checked in KIA - TODO? (Audio Recording)
+ kClueVKCrazylegsReplicant = 172, // (Intangible) - UNOBTAINED - Checked in KIA - added to many actors DBs - TODO? (Audio Recording)
+ kClueVKCrazylegsHuman = 173, // (Intangible) - UNOBTAINED - Checked in KIA - TODO? (Audio Recording)
+ kClueVKRunciterReplicant = 174, // Audio Recording - Restored in Cut Content - but Runciter cannot be a Replicant, hence intentionally never triggered
+ kClueVKRunciterHuman = 175, // Audio Recording - Restored in Cut Content
+ kClueVKEarlyQReplicant = 176, // (Intangible) - UNOBTAINED - Checked in KIA - added to many actors DBs - TODO? (Audio Recording)
+ kClueVKEarlyQHuman = 177, // (Intangible) - UNOBTAINED - Checked in KIA - TODO? (Audio Recording)
+ kClueCrimeSceneNotes = 178, // Audio Recording
+ kClueGrigorianInterviewA = 179, // Audio Recording
+ kClueGrigorianInterviewB1 = 180, // Audio Recording - When Izo is Replicant
+ kClueGrigorianInterviewB2 = 181, // Audio Recording - When Izo is Human
+ kClueLabAnalysisGoldChain = 182, // UNUSED
+ kClueSightingZuben = 183, // UNUSED
+ kClueCrystalRetiredZuben = 184, // UNUSED
+ kClueCrystalRetiredGordo = 185, // UNUSED
+ kClueSightingGordo = 186, // UNUSED
+ kClueCrystalRetiredIzo = 187, // UNUSED
+ kClueClovisIncept = 188, // UNUSED
+ kClueDektoraIncept = 189, // UNUSED
+ kClueLucyIncept = 190, // UNUSED
+ kClueGordoIncept = 191, // UNUSED
+ kClueIzoIncept = 192, // UNUSED
+ kClueSadikIncept = 193, // UNUSED
+ kClueZubenIncept = 194, // UNUSED
+ kClueMcCoyIncept = 195, // (Intangible) - UNOBTAINED - Not checked in KIA - added to DBs of Klein, Walls and Gaff
+ kClueWarRecordsGordoFrizz = 196, // UNUSED
+ kCluePoliceWeaponUsed = 197, // (Intangible) - UNOBTAINED - Not checked in KIA - added to DBs of Klein, Walls and Gaff
+ kClueMcCoysWeaponUsedonBob = 198, // (Intangible) - UNOBTAINED - Not checked in KIA - added to DBs of Klein, Walls and Gaff
+ kClueBobRobbed = 199, // UNUSED
+ kClueBobShotInSelfDefense = 200, // UNUSED
+ kClueBobShotInColdBlood = 201, // (Intangible) - UNOBTAINED - Not checked in KIA - added to DB of Grigorian
+ kClueMcCoyRecoveredHoldensBadge = 202, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele AI - added to DBs of Klein, Walls and Gaff
+ kClueCrystalTestedBulletBob = 203, // UNUSED
+ kClueCrystalRetiredBob = 204, // UNUSED
+ kClueCrystalTestedCrazylegs = 205, // UNUSED
+ kClueCrystalRetiredCrazylegs = 206, // UNUSED
+ kClueCrystalArrestedCrazylegs = 207, // (Intangible) - UNOBTAINED - Not checked in KIA - added to many actor's DBs
+ kClueCrystalTestedRunciter = 208, // UNUSED
+ kClueCrystalRetiredRunciter1 = 209, // UNUSED
+ kClueCrystalRetiredRunciter2 = 210, // UNUSED
+ kClueSightingMcCoyRuncitersShop = 211, // (Intangible) - UNOBTAINED - Not checked in KIA - added to many actors DBs
+ kClueMcCoyKilledRunciter1 = 212, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis AI - added to many actors DBs - see also 230
+ kClueMcCoysDescription = 213, // (Intangible) - Acquired by Zuben, Gordo - Not checked in KIA - Checked in NR07 - added to many actors DBs
+ kClueMcCoyIsABladeRunner = 214, // (Intangible) - Acquired by Gordo, McCoy, Dektora, Zuben, Sebastian - Not checked in KIA - Checked in Sebastian, Clovis AI and NR07
+ kClueMcCoyLetZubenEscape = 215, // (Intangible) - Acquired by Gaff, Zuben - Not checked in KIA - Checked in Steele, Leary, Clovis AI and MA04
+ kClueMcCoyWarnedIzo = 216, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis AI and NR07
+ kClueMcCoyHelpedIzoIzoIsAReplicant = 217, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis AI and NR07
+ kClueMcCoyHelpedDektora = 218, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis AI
+ kClueMcCoyHelpedLucy = 219, // (Intangible) - Acquired by Lucy - Not checked in KIA - Checked in Steele, Clovis, Lucy AI, HF04
+ kClueMcCoyHelpedGordo = 220, // (Intangible) - Acquired by Gordo - Not checked in KIA - Checked in Steele, Clovis AI
+ kClueMcCoyShotGuzza = 221, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis AI
+ kClueMcCoyRetiredZuben = 222, // (Intangible) - Acquired by Gaff, Gordo - Not checked in KIA - Checked in Steele, Gaff, Gordo, Clovis, Leary AI, MA04
+ kClueMcCoyRetiredLucy = 223, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis, Leary AI, UG07
+ kClueMcCoyRetiredDektora = 224, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis, Leary AI, UG07
+ kClueMcCoyRetiredGordo = 225, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Leary AI
+ kClueMcCoyRetiredSadik = 226, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis, Leary AI
+ kClueMcCoyShotZubenInTheBack = 227, // (Intangible) - Acquired by Zuben - Not checked in KIA - Checked in Steele, Clovis, Leary AI - added to many actors DBs
+ kClueMcCoyRetiredLutherLance = 228, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis, Leary AI
+ kClueMcCoyBetrayal = 229, // (Intangible) - UNOBTAINED - Not checked in KIA - added to many actors DBs
+ kClueMcCoyKilledRunciter2 = 230, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis AI - added to many actors DBs - see also 212
+ kClueClovisOrdersMcCoysDeath = 231, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele AI - added to many actors DBs
+ kClueEarlyAttemptedToSeduceLucy = 232, // (Intangible) - UNOBTAINED - Not checked in KIA - added to many actors DBs
+ kClueCarWasStolen = 233, // UNUSED
+ kClueGrigoriansResponse1 = 234, // UNUSED
+ kClueGrigoriansResponse2 = 235, // UNUSED
+ kClueCrazysInvolvement = 236, // (Intangible) - UNOBTAINED - Not checked in KIA - Has weight for Crazylegs
+ kClueGrigoriansResources = 237, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked for Crazylegs dialogue
+ kClueMcCoyPulledAGun = 238, // UNUSED - TODO: Was this for Crazylegs being offended?
+ kClueMcCoyIsStupid = 239, // (Intangible) - Obtained by Leary - Not checked in KIA - Checked in Steele, Clovis, Leary AI - added to many actors DBs
+ kClueMcCoyIsAnnoying = 240, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis, Leary AI - added to many actors DBs
+ kClueMcCoyIsKind = 241, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis AI - added to many actors DBs
+ kClueMcCoyIsInsane = 242, // (Intangible) - UNOBTAINED - Not checked in KIA - Checked in Steele, Clovis, Leary AI - added to many actors DBs
+ kClueAnimalMurderSuspect = 243, // Photograph - ESPER hard-copy
+ kClueMilitaryBoots = 244, // Photograph - ESPER hard-copy
+ kClueOuterDressingRoom = 245, // Photograph
+ kCluePhotoOfMcCoy1 = 246, // Photograph - ESPER hard-copy
+ kCluePhotoOfMcCoy2 = 247, // Photograph - ESPER hard-copy
+ kClueEarlyQAndLucy = 248, // Photograph - ESPER hard-copy
+ kClueClovisFlowers = 249, // Photograph - ESPER hard-copy
+ kClueLucyWithDektora = 250, // Photograph - ESPER hard-copy
+ kClueWomanInAnimoidRow = 251, // Photograph - ESPER hard-copy
+ kClueScorpions = 252, // Photograph - ESPER hard-copy
+ kClueStrangeScale2 = 253, // Photograph - ESPER hard-copy
+ kClueChinaBarSecurityCamera = 254, // Photograph - ESPER hard-copy
+ kClueIzo = 255, // Photograph - ESPER hard-copy
+ kClueGuzza = 256, // Photograph - ESPER hard-copy
+ kClueChinaBarSecurityDisc = 257, // Video Clip
+ kClueScorpionbox = 258, // Photograph - ESPER hard-copy
+ kClueTyrellSecurityPhoto = 259, // Photograph
+ kClueChinaBar = 260, // Photograph
+ kCluePlasticExplosive = 261, // Photograph - ESPER hard-copy
+ kClueDogCollar2 = 262, // Photograph - ESPER hard-copy
+ kClueKingstonKitchenBox2 = 263, // Photograph - ESPER hard-copy
+ kClueCrystalsCigarette = 264, // Object
+ kClueSpinnerKeys = 265, // Object
+ kClueAct2Ended = 266, // (Intangible) - Acquired by McCoy - Identity Reveal for Clovis and Sadik
+ kClueAct3Ended = 267, // UNUSED
+ kClueAct4Ended = 268, // UNUSED
+ kClueExpertBomber = 269, // Audio Recording - When Sadik is Replicant
+ kClueAmateurBomber = 270, // Audio Recording - When Sadik is Human
+ kClueVKLucyReplicant = 271, // Audio Recording
+ kClueVKLucyHuman = 272, // Audio Recording
+ kClueLucyInterview = 273, // Audio Recording
+ kClueMoonbusReflection = 274, // Photograph - ESPER hard-copy
+ kClueMcCoyAtMoonbus = 275, // Photograph - ESPER hard-copy
+ kClueClovisAtMoonbus = 276, // Photograph - ESPER hard-copy
+ kClueSadikAtMoonbus = 277, // Photograph - ESPER hard-copy
+ kClueRachaelInterview = 278, // Audio Recording
+ kClueTyrellInterview = 279, // Audio Recording
+ kClueRuncitersConfession1 = 280, // Audio Recording
+ kClueRuncitersConfession2 = 281, // UNUSED
+ kClueRuncitersConfession3 = 282, // UNUSED
+ kClueEarlyInterviewA = 283, // Audio Recording - UNOBTAINED - Not checked in KIA
+ kClueEarlyInterviewB1 = 284, // Audio Recording - UNOBTAINED - Not checked in KIA
+ kClueEarlyInterviewB2 = 285, // Audio Recording - UNOBTAINED - Not checked in KIA
+ kClueCrazylegsInterview3 = 286, // Audio Recording - UNOBTAINED - Not checked in KIA
+ kClueCrazylegGrovels = 287 // Audio Recording - UNOBTAINED - Not checked in KIA
};
enum ClueTypes {
@@ -406,7 +406,7 @@ enum Suspects {
kSuspectClovis = 1,
kSuspectZuben = 2,
kSuspectLucy = 3,
- kSuspectDekora = 4,
+ kSuspectDektora = 4,
kSuspectGordo = 5,
kSuspectIzo = 6,
kSuspectMcCoy = 7,
@@ -420,8 +420,8 @@ enum Crimes {
kCrimeMorajiMurder = 3,
kCrimeBradburyAssault = 4,
kCrimeFactoryBombing = 5,
- kCrimeBobMurder = 6,
- kCrimeRunciterMurder = 7,
+ kCrimeBobMurder = 6, // Unused
+ kCrimeRunciterMurder = 7, // Unused
kCrimeMoonbusHijacking = 8
};
@@ -2701,7 +2701,7 @@ enum GameModelAnimations {
kModelAnimationFolderInKIA = 946,
kModelAnimationGoldfish = 947,
kModelAnimationFolder = 948,
-// kModelAnimationLetter = 949, // UNUSED?
+// kModelAnimationLetter = 949, // UNUSED - Could this be used for Crazylegs Advertisement?
kModelAnimationGarterSnake = 950,
kModelAnimationLichenDogWrapper = 951,
kModelAnimationLicensePlate = 952,
diff --git a/engines/bladerunner/script/esper_script.cpp b/engines/bladerunner/script/esper_script.cpp
index 2461c6a65c..3234716fe1 100644
--- a/engines/bladerunner/script/esper_script.cpp
+++ b/engines/bladerunner/script/esper_script.cpp
@@ -265,10 +265,10 @@ bool ESPERScript::SCRIPT_ESPER_DLL_Special_Region_Selected(int photo, int region
case 3:
if (region == 9) {
Actor_Voice_Over(4230, kActorVoiceOver);
- if (!Actor_Clue_Query(kActorMcCoy, kClueClovisflowers)) {
+ if (!Actor_Clue_Query(kActorMcCoy, kClueClovisFlowers)) {
Actor_Says(kActorMcCoy, 6945, 3);
Sound_Play(kSfxBR034_1A, 50, 0, 0, 50);
- Actor_Clue_Acquire(kActorMcCoy, kClueClovisflowers, true, -1);
+ Actor_Clue_Acquire(kActorMcCoy, kClueClovisFlowers, true, -1);
}
retValue = true;
} else if (region == 10) {
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index 5a289c6f41..971a68a7bf 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -2361,26 +2361,26 @@ void InitScript::Init_SDB() {
SDB_Add_Identity_Clue(kSuspectLucy, kClueDektoraInterview4);
SDB_Add_Photo_Clue(kSuspectLucy, kClueLucy, 5);
- SDB_Set_Actor(kSuspectDekora, kActorDektora);
- SDB_Add_MO_Clue(kSuspectDekora, kClueScorpions);
- SDB_Add_Replicant_Clue(kSuspectDekora, kClueVKDektoraReplicant);
- SDB_Add_Replicant_Clue(kSuspectDekora, kClueEarlyQInterview);
- SDB_Add_Replicant_Clue(kSuspectDekora, kClueDragonflyBelt);
- SDB_Add_Replicant_Clue(kSuspectDekora, kClueDektoraInterview4);
- SDB_Add_Non_Replicant_Clue(kSuspectDekora, kClueVKDektoraHuman);
- SDB_Add_Non_Replicant_Clue(kSuspectDekora, kClueDektoraInterview2);
- SDB_Add_Non_Replicant_Clue(kSuspectDekora, kClueDektoraInterview3);
- SDB_Add_Non_Replicant_Clue(kSuspectDekora, kClueDektorasCard);
- SDB_Add_Non_Replicant_Clue(kSuspectDekora, kClueDektoraInterview1);
- SDB_Add_Other_Clue(kSuspectDekora, kClueDragonflyBelt);
- SDB_Add_Other_Clue(kSuspectDekora, kClueWomanInAnimoidRow);
- SDB_Add_Other_Clue(kSuspectDekora, kClueChinaBar);
- SDB_Add_Other_Clue(kSuspectDekora, kClueCarRegistration1);
- SDB_Add_Identity_Clue(kSuspectDekora, kClueDektoraInterview2);
- SDB_Add_Identity_Clue(kSuspectDekora, kClueDektoraInterview3);
- SDB_Add_Identity_Clue(kSuspectDekora, kClueEarlyQInterview);
- SDB_Add_Photo_Clue(kSuspectDekora, kClueWomanInAnimoidRow, 21);
- SDB_Add_Photo_Clue(kSuspectDekora, kClueChinaBar, 19);
+ SDB_Set_Actor(kSuspectDektora, kActorDektora);
+ SDB_Add_MO_Clue(kSuspectDektora, kClueScorpions);
+ SDB_Add_Replicant_Clue(kSuspectDektora, kClueVKDektoraReplicant);
+ SDB_Add_Replicant_Clue(kSuspectDektora, kClueEarlyQInterview);
+ SDB_Add_Replicant_Clue(kSuspectDektora, kClueDragonflyBelt);
+ SDB_Add_Replicant_Clue(kSuspectDektora, kClueDektoraInterview4);
+ SDB_Add_Non_Replicant_Clue(kSuspectDektora, kClueVKDektoraHuman);
+ SDB_Add_Non_Replicant_Clue(kSuspectDektora, kClueDektoraInterview2);
+ SDB_Add_Non_Replicant_Clue(kSuspectDektora, kClueDektoraInterview3);
+ SDB_Add_Non_Replicant_Clue(kSuspectDektora, kClueDektorasCard);
+ SDB_Add_Non_Replicant_Clue(kSuspectDektora, kClueDektoraInterview1);
+ SDB_Add_Other_Clue(kSuspectDektora, kClueDragonflyBelt);
+ SDB_Add_Other_Clue(kSuspectDektora, kClueWomanInAnimoidRow);
+ SDB_Add_Other_Clue(kSuspectDektora, kClueChinaBar);
+ SDB_Add_Other_Clue(kSuspectDektora, kClueCarRegistration1);
+ SDB_Add_Identity_Clue(kSuspectDektora, kClueDektoraInterview2);
+ SDB_Add_Identity_Clue(kSuspectDektora, kClueDektoraInterview3);
+ SDB_Add_Identity_Clue(kSuspectDektora, kClueEarlyQInterview);
+ SDB_Add_Photo_Clue(kSuspectDektora, kClueWomanInAnimoidRow, 21);
+ SDB_Add_Photo_Clue(kSuspectDektora, kClueChinaBar, 19);
SDB_Set_Actor(kSuspectGordo, kActorGordo);
SDB_Set_Sex(kSuspectGordo, 1);
@@ -2682,7 +2682,7 @@ void InitScript::Init_CDB() {
CDB_Set_Clue_Asset_Type(kCluePhotoOfMcCoy1, kClueTypePhotograph);
CDB_Set_Clue_Asset_Type(kCluePhotoOfMcCoy2, kClueTypePhotograph);
CDB_Set_Clue_Asset_Type(kClueEarlyQAndLucy, kClueTypePhotograph);
- CDB_Set_Clue_Asset_Type(kClueClovisflowers, kClueTypePhotograph);
+ CDB_Set_Clue_Asset_Type(kClueClovisFlowers, kClueTypePhotograph);
CDB_Set_Clue_Asset_Type(kClueLucyWithDektora, kClueTypePhotograph);
CDB_Set_Clue_Asset_Type(kClueWomanInAnimoidRow, kClueTypePhotograph);
CDB_Set_Clue_Asset_Type(kClueScorpions, kClueTypePhotograph);
diff --git a/engines/bladerunner/script/kia_script.cpp b/engines/bladerunner/script/kia_script.cpp
index 18f228408a..27648f76d0 100644
--- a/engines/bladerunner/script/kia_script.cpp
+++ b/engines/bladerunner/script/kia_script.cpp
@@ -916,7 +916,7 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
KIA_Play_Photograph(1);
KIA_Play_Actor_Dialogue(kActorVoiceOver, 4260);
break;
- case kClueClovisflowers:
+ case kClueClovisFlowers:
KIA_Play_Photograph(3);
KIA_Play_Actor_Dialogue(kActorVoiceOver, 4230);
break;
diff --git a/engines/bladerunner/script/scene/nr04.cpp b/engines/bladerunner/script/scene/nr04.cpp
index c2e6137706..c9da905214 100644
--- a/engines/bladerunner/script/scene/nr04.cpp
+++ b/engines/bladerunner/script/scene/nr04.cpp
@@ -250,6 +250,9 @@ void SceneScriptNR04::ActorChangedGoal(int actorId, int newGoal, int oldGoal, bo
Actor_Change_Animation_Mode(kActorEarlyQ, 85);
Actor_Face_Actor(kActorMcCoy, kActorEarlyQ, true);
Actor_Set_Goal_Number(kActorEarlyQ, kGoalEarlyQNR04ScorpionsCheck);
+ // The quotes corresponding to this quote are from kGoalEarlyQNR04McCoyPulledGun (previous goal of EarlyQ)
+ // That goal leads to this one (if McCoy does not shoot Early Q that is)
+ // TODO maybe move acquiring the clue to the kGoalEarlyQNR04McCoyPulledGun?
Actor_Clue_Acquire(kActorMcCoy, kClueEarlyQInterview, false, kActorEarlyQ);
//return true;
break;
diff --git a/engines/bladerunner/script/scene/rc04.cpp b/engines/bladerunner/script/scene/rc04.cpp
index 92e347da71..17a1520ac6 100644
--- a/engines/bladerunner/script/scene/rc04.cpp
+++ b/engines/bladerunner/script/scene/rc04.cpp
@@ -231,9 +231,11 @@ void SceneScriptRC04::dialogueWithBulletBob() {
Actor_Says(kActorMcCoy, 5080, 11);
Actor_Says(kActorBulletBob, 730, 37);
#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);
+ // Last argument should be -1 or kActorBulletBob here
+ // However, this clue is acquired for asking about Izo, when Izo is Replicant
+ // (see also the KIA entry for it, which references the audio recording from that discussion)
+ // It should not be acquired here.
+ Actor_Clue_Acquire(kActorMcCoy, kClueBobInterview1, true, kActorMcCoy);
#endif // BLADERUNNER_ORIGINAL_BUGS
} else {
Actor_Says(kActorBulletBob, 560, 37);
Commit: 334c24dea4368eaab005031344dfb7f6101d4536
https://github.com/scummvm/scummvm/commit/334c24dea4368eaab005031344dfb7f6101d4536
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2021-05-29T18:56:45+03:00
Commit Message:
BLADERUNNER: Restore some KIA clues which wrongly had no type set
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/init_script.cpp
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 28dca2a336..fd196fd074 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -185,7 +185,7 @@ enum Clues {
kCluePurchasedScorpions = 79, // Audio Recording
kClueWeaponsOrderForm = 80, // Object
kClueShippingForm = 81, // Object
- kClueGuzzasCash = 82, // (Intangible)
+ kClueGuzzasCash = 82, // Restored Content: Audio Recording. Original: (Intangible)
kCluePoliceIssueWeapons = 83, // (Intangible) - Can be acquired - Not checked in KIA - TODO?
kClueHysteriaToken = 84, // Object
kClueRagDoll = 85, // Object
@@ -193,9 +193,9 @@ enum Clues {
kClueCheese = 87, // Object
kClueDektorasDressingRoom = 88, // Photograph
kClueEarlyQsClub = 89, // Video Clip
- kClueDragonflyCollection = 90, // (Intangible) - From Peruvian Lady
- kClueDragonflyBelt = 91, // (Intangible)
- kClueEarlyQInterview = 92, // (Intangible) - Identity Reveal for Dektora
+ kClueDragonflyCollection = 90, // Restored Content: Audio Recording. Original: (Intangible) - From Peruvian Lady
+ kClueDragonflyBelt = 91, // Restored Content: Object. Original: (Intangible)
+ kClueEarlyQInterview = 92, // Restored Content: Audio Recording. Original: (Intangible) - Identity Reveal for Dektora
kClueStrangeScale1 = 93, // Object
kClueDektoraInterview1 = 94, // Audio Recording
kClueSuspectDektora = 95, // (Intangible) - UNOBTAINED - Not checked in KIA - added to many actors DBs
diff --git a/engines/bladerunner/script/init_script.cpp b/engines/bladerunner/script/init_script.cpp
index 971a68a7bf..2ed1397d5e 100644
--- a/engines/bladerunner/script/init_script.cpp
+++ b/engines/bladerunner/script/init_script.cpp
@@ -2728,6 +2728,14 @@ void InitScript::Init_CDB() {
CDB_Set_Clue_Asset_Type(kClueCrazylegsInterview3, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueCrazylegGrovels, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueFolder, kClueTypeObject);
+ if (_vm->_cutContent) {
+ // These clues had no asset type assigned, so they defaulted to "Intangible"
+ // and therefore they would not appear in McCoy's KIA
+ CDB_Set_Clue_Asset_Type(kClueGuzzasCash, kClueTypeAudioRecording);
+ CDB_Set_Clue_Asset_Type(kClueDragonflyCollection, kClueTypeAudioRecording);
+ CDB_Set_Clue_Asset_Type(kClueDragonflyBelt, kClueTypeObject);
+ CDB_Set_Clue_Asset_Type(kClueEarlyQInterview, kClueTypeAudioRecording);
+ }
}
void InitScript::Init_Spinner() {
More information about the Scummvm-git-logs
mailing list