[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