aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/bladerunner/game_constants.h2
-rw-r--r--engines/bladerunner/script/scene/rc02.cpp61
-rw-r--r--engines/bladerunner/script/scene/rc51.cpp13
3 files changed, 69 insertions, 7 deletions
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index f672a14c74..da3d3568e9 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -444,7 +444,7 @@ enum Flags {
kFlagGamePlayedInRestoredContentMode = 2, // Re-purposed. Original: 2 is never used
kFlagRC01GotOfficersStatement = 3,
kFlagRC02Left = 4,
- // 5 is never used
+ kFlagMcCoyCommentsOnMurderedAnimals = 5, // Re-purposed. Original: 5 is never used
kFlagRC02RunciterInterview = 6,
kFlagCT01TalkToHowieAboutDeadZuben = 7, // Re-purposed. Original: 7 is never used
kFlagRC01toRC02 = 8,
diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp
index 15d8cfe453..049427f235 100644
--- a/engines/bladerunner/script/scene/rc02.cpp
+++ b/engines/bladerunner/script/scene/rc02.cpp
@@ -75,12 +75,37 @@ void SceneScriptRC02::SceneLoaded() {
Clickable_Object("SCRTY CA03");
Unclickable_Object("GRL_DSKLEG");
Unclickable_Object("CURTAIN");
- Unclickable_Object("DRAPE01");
- Unclickable_Object("DRAPE02");
- Unclickable_Object("DRAPE03");
- Unclickable_Object("DRAPE05");
- Unclickable_Object("DRAPE06");
- Unclickable_Object("DRAPE07");
+ if (_vm->_cutContent) {
+ if (Global_Variable_Query(kVariableChapter) == 1
+ && !Game_Flag_Query(kFlagMcCoyCommentsOnMurderedAnimals)
+ && !Actor_Clue_Query(kActorMcCoy, kClueLabCorpses)
+ ) {
+ Clickable_Object("DRAPE01");
+ Clickable_Object("DRAPE02");
+ Clickable_Object("DRAPE03");
+ Clickable_Object("DRAPE04");
+ Clickable_Object("DRAPE05");
+ Clickable_Object("DRAPE06");
+ Clickable_Object("DRAPE07");
+ } else {
+ Unclickable_Object("DRAPE01");
+ Unclickable_Object("DRAPE02");
+ Unclickable_Object("DRAPE03");
+ Unclickable_Object("DRAPE04");
+ Unclickable_Object("DRAPE05");
+ Unclickable_Object("DRAPE06");
+ Unclickable_Object("DRAPE07");
+ }
+ } else {
+ // original code
+ Unclickable_Object("DRAPE01");
+ Unclickable_Object("DRAPE02");
+ Unclickable_Object("DRAPE03");
+ Unclickable_Object("DRAPE05");
+ Unclickable_Object("DRAPE06");
+ Unclickable_Object("DRAPE07");
+ }
+
if (Actor_Clue_Query(kActorMcCoy, kClueRuncitersVideo) || Global_Variable_Query(kVariableChapter) > 1) {
Unclickable_Object("SCRTY CA03");
}
@@ -133,6 +158,30 @@ bool SceneScriptRC02::ClickedOn3DObject(const char *objectName, bool a2) {
return true;
}
}
+
+ if (_vm->_cutContent
+ && !Game_Flag_Query(kFlagMcCoyCommentsOnMurderedAnimals)
+ && Global_Variable_Query(kVariableChapter) == 1
+ && !Actor_Clue_Query(kActorMcCoy, kClueLabCorpses)
+ && (Object_Query_Click("DRAPE01", objectName)
+ || Object_Query_Click("DRAPE02", objectName)
+ || Object_Query_Click("DRAPE03", objectName)
+ || Object_Query_Click("DRAPE04", objectName)
+ || Object_Query_Click("DRAPE05", objectName)
+ || Object_Query_Click("DRAPE06", objectName)
+ || Object_Query_Click("DRAPE07", objectName))
+ ) {
+ Game_Flag_Set(kFlagMcCoyCommentsOnMurderedAnimals);
+ Unclickable_Object("DRAPE01");
+ Unclickable_Object("DRAPE02");
+ Unclickable_Object("DRAPE03");
+ Unclickable_Object("DRAPE04");
+ Unclickable_Object("DRAPE05");
+ Unclickable_Object("DRAPE06");
+ Unclickable_Object("DRAPE07");
+ Actor_Voice_Over(1940, kActorVoiceOver);
+ return true;
+ }
return false;
}
diff --git a/engines/bladerunner/script/scene/rc51.cpp b/engines/bladerunner/script/scene/rc51.cpp
index cc54684891..9cac458594 100644
--- a/engines/bladerunner/script/scene/rc51.cpp
+++ b/engines/bladerunner/script/scene/rc51.cpp
@@ -47,6 +47,19 @@ void SceneScriptRC51::SceneLoaded() {
Unclickable_Object("GRL_DSK");
Unclickable_Object("GRL_DSKLEG");
Unclickable_Object("CURTAIN");
+#if BLADERUNNER_ORIGINAL_BUGS
+#else
+ Unclickable_Object("SCRTY CA03");
+ Unclickable_Object("DRAPE01");
+ Unclickable_Object("DRAPE02");
+ Unclickable_Object("DRAPE03");
+ Unclickable_Object("DRAPE04");
+ Unclickable_Object("DRAPE05");
+ Unclickable_Object("DRAPE06");
+ Unclickable_Object("DRAPE07");
+ Unclickable_Object("DRAPE08");
+#endif // BLADERUNNER_ORIGINAL_BUGS
+
if (!Game_Flag_Query(kFlagRC51ChopstickWrapperTaken)) {
Item_Add_To_World(kItemChopstickWrapper, kModelAnimationChopstickWrapper, kSetRC02_RC51, 47.56f, -1238.89f, 108048.61f, 0, 6, 18, false, true, false, true);
}