BLADERUNNER: Make the cut content a runtime option

Player can choose to use or not the restored cut content.
Does not affect fixed bugs in original game.
This commit is contained in:
Peter Kohaut 2019-04-25 23:39:31 +02:00
parent 620864293d
commit ee2dcf6375
13 changed files with 774 additions and 766 deletions

View file

@ -111,6 +111,7 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst, const ADGameDescription *des
_sitcomMode = false;
_shortyMode = false;
_cutContent = true;
_playerLosesControlCounter = 0;
@ -443,6 +444,7 @@ bool BladeRunnerEngine::startup(bool hasSavegames) {
_sitcomMode = ConfMan.getBool("sitcom");
_shortyMode = ConfMan.getBool("shorty");
_cutContent = ConfMan.getBool("cutcontent");
_items = new Items(this);

View file

@ -39,8 +39,6 @@
#define BLADERUNNER_DEBUG_CONSOLE 0
#define BLADERUNNER_ORIGINAL_SETTINGS 0
#define BLADERUNNER_ORIGINAL_BUGS 0
#define BLADERUNNER_RESTORED_CUT_CONTENT 1
namespace Common {
struct Event;
@ -116,6 +114,7 @@ public:
bool _gameIsRunning;
bool _windowIsActive;
int _playerLosesControlCounter;
Common::String _languageCode;
Common::Language _language;
@ -203,6 +202,7 @@ public:
bool _subtitlesEnabled; // tracks the state of whether subtitles are enabled or disabled from ScummVM GUI option or KIA checkbox (the states are synched)
bool _sitcomMode;
bool _shortyMode;
bool _cutContent;
int _walkSoundId;
int _walkSoundVolume;

View file

@ -59,6 +59,15 @@ static const ADExtraGuiOptionsMap optionsList[] = {
false
}
},
{
GAMEOPTION_CUT_CONTENT,
{
_s("Restore cut content"),
_s("Restore content which was cut from the original game"),
"cutcontent",
true
}
},
AD_EXTRA_GUI_OPTIONS_TERMINATOR
};

View file

@ -27,6 +27,7 @@
#define GAMEOPTION_SITCOM GUIO_GAMEOPTIONS1
#define GAMEOPTION_SHORTY GUIO_GAMEOPTIONS2
#define GAMEOPTION_CUT_CONTENT GUIO_GAMEOPTIONS3
namespace BladeRunner {
@ -39,7 +40,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::EN_ANY,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
GUIO3(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_CUT_CONTENT)
},
// BladeRunner (German)
@ -50,7 +51,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::DE_DEU,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
GUIO3(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_CUT_CONTENT)
},
// BladeRunner (French) - Bug #9722
@ -61,7 +62,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::FR_FRA,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
GUIO3(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_CUT_CONTENT)
},
// BladeRunner (Italian)
@ -72,7 +73,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::IT_ITA,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
GUIO3(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_CUT_CONTENT)
},
// BladeRunner (Russian)
@ -83,7 +84,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::RU_RUS,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
GUIO3(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_CUT_CONTENT)
},
// BladeRunner (Russian - alternate version)
@ -94,7 +95,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::RU_RUS,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
GUIO3(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_CUT_CONTENT)
},
@ -106,7 +107,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::ES_ESP,
Common::kPlatformWindows,
ADGF_NO_FLAGS,
GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
GUIO3(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_CUT_CONTENT)
},
AD_TABLE_END_MARKER

View file

@ -191,11 +191,9 @@ bool AIScriptMoraji::GoalChanged(int currentGoalNumber, int newGoalNumber) {
case kGoalMorajiDie:
// Added check here to have Moraji death speech SFX
// when shot by McCoy outside the Dermo Design Lab
if (Game_Flag_Query(kFlagDR04McCoyShotMoraji)) {
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent && Game_Flag_Query(kFlagDR04McCoyShotMoraji)) {
// original code used no voice here
Sound_Play_Speech_Line(kActorMoraji, 9020, 50, 0, 50); // Use Moraji's death SPCHSFX, also lower volume
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
_animationFrame = -1;
_animationState = 13;

View file

@ -1180,10 +1180,10 @@ bool AIScriptZuben::ChangeAnimationMode(int mode) {
break;
case kAnimationModeDie:
Actor_Set_Targetable(kActorZuben, false);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
// original code used no voice here
Sound_Play_Speech_Line(kActorZuben, 9020, 75, 0, 99); // add Zuben's death rattle here
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
switch (_animationState) {
case 2:
case 4:

View file

@ -2247,9 +2247,9 @@ void InitScript::Init_SDB() {
SDB_Add_Whereabouts_Clue(kSuspectClovis, kClueChewInterview);
SDB_Add_Replicant_Clue(kSuspectClovis, kClueOfficersStatement);
SDB_Add_Replicant_Clue(kSuspectClovis, kClueDoorForced2);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
SDB_Add_Replicant_Clue(kSuspectClovis, kClueDoorForced1);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
SDB_Add_Replicant_Clue(kSuspectClovis, kClueMorajiInterview);
SDB_Add_Replicant_Clue(kSuspectClovis, kClueZubenTalksAboutLucy1);
SDB_Add_Replicant_Clue(kSuspectClovis, kClueZubenTalksAboutLucy2);
@ -2278,9 +2278,9 @@ void InitScript::Init_SDB() {
SDB_Add_Whereabouts_Clue(kSuspectZuben, kClueRuncitersViewB);
SDB_Add_Replicant_Clue(kSuspectZuben, kClueOfficersStatement);
SDB_Add_Replicant_Clue(kSuspectZuben, kClueDoorForced2);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
SDB_Add_Replicant_Clue(kSuspectZuben, kClueDoorForced1);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
SDB_Add_Replicant_Clue(kSuspectZuben, kClueHowieLeeInterview);
SDB_Add_Replicant_Clue(kSuspectZuben, kClueZubenRunsAway);
SDB_Add_Replicant_Clue(kSuspectZuben, kClueZuben);
@ -2490,9 +2490,9 @@ void InitScript::Init_CDB() {
CDB_Set_Clue_Asset_Type(kClueOfficersStatement, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueDoorForced2, kClueTypeAudioRecording);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
CDB_Set_Clue_Asset_Type(kClueDoorForced1, kClueTypeAudioRecording);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
CDB_Set_Clue_Asset_Type(kClueLimpingFootprints, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueGracefulFootprints, kClueTypeAudioRecording);
CDB_Set_Clue_Asset_Type(kClueShellCasings, kClueTypeObject);

View file

@ -45,11 +45,11 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
case kClueDoorForced2:
KIA_Play_Actor_Dialogue(kActorOfficerLeary, 0);
break;
#if BLADERUNNER_RESTORED_CUT_CONTENT
case kClueDoorForced1:
if (_vm->_cutContent) {
KIA_Play_Actor_Dialogue(kActorVoiceOver, 1870);
}
break;
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
case kClueLimpingFootprints:
KIA_Play_Actor_Dialogue(kActorVoiceOver, 1970);
KIA_Play_Actor_Dialogue(kActorVoiceOver, 1980);

View file

@ -63,7 +63,7 @@ void SceneScriptCT01::InitializeScene() {
}
}
} else if (Game_Flag_Query(kFlagSpinnerAtCT01)) {
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
// 0. This scene is not available in chapters 4 and 5
// 1. Add open/close spinner door animation and sound
// 2. Keep walkers from messing about with the scene (popping up or overlapping with landing) until spinner has landed
@ -81,7 +81,7 @@ void SceneScriptCT01::InitializeScene() {
// There's also another flag called kFlagUnpauseGenWalkers
// but the usage of that flag seems more obscure and dubious for this purpose
Game_Flag_Set(kFlagGenericWalkerWaiting);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
Setup_Scene_Information(-530.0f, -6.5f, 241.0f, 506);
Game_Flag_Set(kFlagArrivedFromSpinner1);
} else {
@ -292,14 +292,14 @@ bool SceneScriptCT01::ClickedOnExit(int exitId) {
Game_Flag_Reset(kFlagMcCoyInTyrellBuilding);
Game_Flag_Reset(kFlagMcCoyInDNARow);
Game_Flag_Reset(kFlagMcCoyInBradburyBuilding);
//#if BLADERUNNER_RESTORED_CUT_CONTENT
//if (_vm->_cutContent) {
// // Restored spinner door opens/ closes, so we disable this for now
// // NOTE: Reverted this cut content since this might be annoying
// as it slows down the pacing...
// int spinnerDest = Spinner_Interface_Choose_Dest(kCT01LoopDoorAnim, false);
//#else
//} else {
int spinnerDest = Spinner_Interface_Choose_Dest(-1, false);
//#endif // BLADERUNNER_RESTORED_CUT_CONTENT
//}
switch (spinnerDest) {
case kSpinnerDestinationPoliceStation:
@ -407,7 +407,7 @@ void SceneScriptCT01::SceneFrameAdvanced(int frame) {
Ambient_Sounds_Play_Sound(kSfxCARDOWN3, 40, 99, 0, 0);
}
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (frame == 136 || frame == 258) {
Sound_Play(kSfxSPINOPN4, 100, 80, 80, 50);
}
@ -415,7 +415,7 @@ void SceneScriptCT01::SceneFrameAdvanced(int frame) {
if (frame == 183 || frame == 303) {
Sound_Play(kSfxSPINCLS1, 100, 80, 80, 50);
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
if (frame == 316) {
Ambient_Sounds_Play_Sound(kSfxCARUP3B, 50, -50, 100, 99);
@ -456,14 +456,14 @@ void SceneScriptCT01::PlayerWalkedIn() {
return;
}
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -330.0f, -6.5f, 221.0f, 0, false, false, 0);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
// unpause generic walkers here, less chance to collide with McCOy while he enters the scene
if( Game_Flag_Query(kFlagArrivedFromSpinner1)
&& Game_Flag_Query(kFlagGenericWalkerWaiting)
) {
Game_Flag_Reset(kFlagGenericWalkerWaiting);
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
Loop_Actor_Walk_To_XYZ(kActorMcCoy, -314.0f, -6.5f, 326.0f, 0, false, false, 0);
if (!Game_Flag_Query(kFlagCT01Visited)) {

View file

@ -176,7 +176,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
case 120: // MONEY
Actor_Says(kActorMcCoy, 4000, 18);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
// Using cut content we have two cases:
// 1. Guzza can accept the loan (as in ORIGINAL)
// 2. Guzza can refuse the loan (CUT)
@ -205,7 +205,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
Actor_Says(kActorGuzza, 510, 31); // Hey, you track down a Rep, you get an advance.
Actor_Says(kActorMcCoy, 4050, 18);
}
#else
} else {
Actor_Clue_Acquire(kActorMcCoy, kClueGuzzasCash, true, kActorGuzza);
Actor_Says(kActorGuzza, 520, 33);
Actor_Says(kActorMcCoy, 4055, 13);
@ -218,7 +218,7 @@ void SceneScriptPS04::dialogueWithGuzza() {
if (Query_Difficulty_Level() != kGameDifficultyEasy) {
Global_Variable_Increment(kVariableChinyen, 100);
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 130: // REPORT IN

View file

@ -271,11 +271,11 @@ bool SceneScriptRC01::ClickedOn3DObject(const char *objectName, bool a2) {
#if BLADERUNNER_ORIGINAL_BUGS
#else
else if (!Actor_Clue_Query(kActorMcCoy, kClueDoorForced2) && !Actor_Clue_Query(kActorMcCoy, kClueDoorForced1) && !Actor_Query_In_Set(kActorOfficerLeary, kSetRC01) && Global_Variable_Query(kVariableChapter) == 1) {
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
Actor_Voice_Over(1870, kActorVoiceOver);
#else
} else {
Actor_Says(kActorMcCoy, 8570, 14);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
Actor_Clue_Acquire(kActorMcCoy, kClueDoorForced1, true, -1);
}
#endif // BLADERUNNER_ORIGINAL_BUGS

View file

@ -145,9 +145,9 @@ void SceneScriptRC02::dialogueWithRunciter() {
) {
DM_Add_To_List_Never_Repeat_Once_Selected(20, 6, 4, 5); // REFERENCE
}
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
DM_Add_To_List_Never_Repeat_Once_Selected(200, -1, 3, 6); // VK - TEST
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
Dialogue_Menu_Add_DONE_To_List(30); // DONE
Dialogue_Menu_Appear(320, 240);
@ -210,8 +210,8 @@ void SceneScriptRC02::dialogueWithRunciter() {
Actor_Clue_Acquire(kActorMcCoy, kClueReferenceLetter, true, kActorRunciter);
break;
#if BLADERUNNER_RESTORED_CUT_CONTENT // scene 16 79
case 200:
if (_vm->_cutContent) { // scene 16 79
Actor_Face_Actor(kActorMcCoy, kActorRunciter, true);
Actor_Says(kActorMcCoy, 395, 14);
Actor_Face_Actor(kActorRunciter, kActorMcCoy, true);
@ -219,8 +219,8 @@ void SceneScriptRC02::dialogueWithRunciter() {
Actor_Says(kActorMcCoy, 400, 14);
Voight_Kampff_Activate(kActorRunciter, 20);
Actor_Modify_Friendliness_To_Other(kActorRunciter, kActorMcCoy, -10);
}
break;
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
case 30: // DONE
Actor_Says(kActorMcCoy, 4595, 14);

View file

@ -93,7 +93,7 @@ bool VKScript::SCRIPT_VK_DLL_Initialize(int actorId) {
VK_Add_Question(0, 7415, -1); // Low 04
VK_Add_Question(0, 7420, -1); // Low 05
VK_Add_Question(0, 7425, -1); // Low 06
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
// Add the question for male subjects too ("when did you stop beating your spouse?")
if (actorId == kActorLucy) {
VK_Add_Question(0, 7430, 7770); // Low 07 -> High 10 (A game/ It's not, really, just part of the test)
@ -102,11 +102,11 @@ bool VKScript::SCRIPT_VK_DLL_Initialize(int actorId) {
} else {
VK_Add_Question(0, 7430, -1); // Low 07
}
#else
} else {
if (actorId == kActorLucy || actorId == kActorDektora) {
VK_Add_Question(0, 7430, -1); // Low 07
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Add_Question(0, 7435, -1); // Low 08
VK_Add_Question(0, 7440, -1); // Low 09
VK_Add_Question(0, 7445, -1); // Low 10
@ -128,39 +128,39 @@ bool VKScript::SCRIPT_VK_DLL_Initialize(int actorId) {
VK_Add_Question(1, 7565, -1); // Medium 11
VK_Add_Question(1, 7580, -1); // Medium 12
VK_Add_Question(1, 7585, -1); // Medium 13
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId == kActorBulletBob) {
// Bullet Bob's Medium 14 is related to Low 05 (Low 05 is supposed to be asked first)
VK_Add_Question(1, 7595, 7420); // Medium 14 -> Low 05 (Hamster)
} else {
VK_Add_Question(1, 7595, -1); // Medium 14
}
#else
} else {
VK_Add_Question(1, 7595, -1); // Medium 14
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
#if BLADERUNNER_RESTORED_CUT_CONTENT
}
if (_vm->_cutContent) {
if (actorId == kActorLucy) {
VK_Add_Question(1, 7600, 7475); // Medium 15 -> Medium 01 (Can't have children not ever)
} else {
VK_Add_Question(1, 7600, -1); // Medium 15
}
#else
} else {
VK_Add_Question(1, 7600, -1); // Medium 15
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Add_Question(2, 7605, -1); // High 01
VK_Add_Question(2, 7620, -1); // High 02
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId == kActorGrigorian) {
VK_Add_Question(2, 7635, 7585); // High 03 -> Medium 13 // book/ magazine with dead animals
} else {
VK_Add_Question(2, 7635, -1); // High 03
}
#else
} else {
VK_Add_Question(2, 7635, -1); // High 03
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Add_Question(2, 7670, -1); // High 04
VK_Add_Question(2, 7680, -1); // High 05
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId == kActorBulletBob) {
VK_Add_Question(2, 7690, 7565); // High 06 -> Medium 11 (when people laughing at him)
} else if (actorId == kActorDektora) {
@ -168,10 +168,10 @@ bool VKScript::SCRIPT_VK_DLL_Initialize(int actorId) {
} else {
VK_Add_Question(2, 7690, -1); // High 06
}
#else
} else {
VK_Add_Question(2, 7690, -1); // High 06
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
#if BLADERUNNER_RESTORED_CUT_CONTENT
}
if (_vm->_cutContent) {
if (actorId == kActorBulletBob) {
VK_Add_Question(2, 7705, 7635); // High 07 -> High 03 (I've had enough)
} else if (actorId == kActorGrigorian) {
@ -179,9 +179,9 @@ bool VKScript::SCRIPT_VK_DLL_Initialize(int actorId) {
} else {
VK_Add_Question(2, 7705, -1); // High 07
}
#else
} else {
VK_Add_Question(2, 7705, -1); // High 07
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Add_Question(2, 7740, -1); // High 08
VK_Add_Question(2, 7750, -1); // High 09
VK_Add_Question(2, 7770, -1); // High 10
@ -287,13 +287,13 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
break;
case 7515: // Medium 06
VK_Play_Speech_Line(kActorMcCoy, 7515, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId != kActorRunciter) {
VK_Play_Speech_Line(kActorMcCoy, 7520, 0.5f);
}
#else
} else {
VK_Play_Speech_Line(kActorMcCoy, 7520, 0.5f);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7525: // Medium 07
VK_Play_Speech_Line(kActorMcCoy, 7525, 0.5f);
@ -308,19 +308,19 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
break;
case 7550: // Medium 10 - you pour yourself a drink...
VK_Play_Speech_Line(kActorMcCoy, 7550, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId != kActorRunciter) {
VK_Play_Speech_Line(kActorMcCoy, 7555, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7560, 0.5f);
}
#else
} else {
VK_Play_Speech_Line(kActorMcCoy, 7555, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7560, 0.5f);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7565: // Medium 11
VK_Play_Speech_Line(kActorMcCoy, 7565, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId != kActorBulletBob
&& actorId != kActorRunciter
) {
@ -330,30 +330,30 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7570, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7575, 0.5f);
}
#else
} else {
if (actorId != kActorBulletBob) {
VK_Play_Speech_Line(kActorMcCoy, 7570, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7575, 0.5f);
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7580: // Medium 12
VK_Play_Speech_Line(kActorMcCoy, 7580, 0.5f);
break;
case 7585: // Medium 13
VK_Play_Speech_Line(kActorMcCoy, 7585, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId != kActorLucy
&& actorId != kActorBulletBob
&& actorId != kActorRunciter
) {
VK_Play_Speech_Line(kActorMcCoy, 7590, 0.5f);
}
#else
} else {
if (actorId != kActorLucy && actorId != kActorBulletBob) {
VK_Play_Speech_Line(kActorMcCoy, 7590, 0.5f);
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7595: // Medium 14
VK_Play_Speech_Line(kActorMcCoy, 7595, 0.5f);
@ -383,7 +383,7 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
if (actorId != kActorGrigorian && actorId != kActorBulletBob) {
VK_Play_Speech_Line(kActorMcCoy, 7645, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7650, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId != kActorLucy
&& actorId != kActorRunciter
) {
@ -391,13 +391,13 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7660, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7665, 0.5f);
}
#else
} else {
if (actorId != kActorLucy) {
VK_Play_Speech_Line(kActorMcCoy, 7655, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7660, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7665, 0.5f);
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
}
break;
case 7670: // High 04
@ -419,7 +419,7 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7705, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7710, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7715, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId != kActorGrigorian
&& actorId != kActorBulletBob
&& actorId != kActorRunciter
@ -434,7 +434,7 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7735, 0.5f);
}
}
#else
} else {
if (actorId != kActorGrigorian && actorId != kActorBulletBob) {
VK_Play_Speech_Line(kActorMcCoy, 7720, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7725, 0.5f);
@ -446,7 +446,7 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7735, 0.5f);
}
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7740: // High 08
VK_Play_Speech_Line(kActorMcCoy, 7740, 0.5f);
@ -463,7 +463,7 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
break;
case 7770: // High 10
VK_Play_Speech_Line(kActorMcCoy, 7770, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
if (actorId != kActorRunciter) {
if (actorId == kActorDektora) {
VK_Play_Speech_Line(kActorDektora, 2620, 0.5f);
@ -471,13 +471,13 @@ void VKScript::SCRIPT_VK_DLL_McCoy_Asks_Question(int actorId, int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7775, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7780, 0.5f);
}
#else
} else {
if (actorId == kActorDektora) {
VK_Play_Speech_Line(kActorDektora, 2620, 0.5f);
}
VK_Play_Speech_Line(kActorMcCoy, 7775, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7780, 0.5f);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
}
@ -1039,9 +1039,9 @@ void VKScript::askLucy(int questionId) {
VK_Eye_Animates(3);
VK_Subject_Reacts(60, 12, 2, 12);
VK_Play_Speech_Line(kActorLucy, 2230, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 8537, 0.5f);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Play_Speech_Line(kActorLucy, 2270, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 8080, 0.5f);
VK_Play_Speech_Line(kActorLucy, 2280, 0.5f);
@ -1081,9 +1081,9 @@ void VKScript::askLucy(int questionId) {
VK_Subject_Reacts(90, 13, -4, 12);
}
VK_Play_Speech_Line(kActorLucy, 2360, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 8538, 0.5f);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
}
}
@ -1106,11 +1106,11 @@ void VKScript::askGrigorian(int questionId) {
VK_Eye_Animates(2);
VK_Play_Speech_Line(kActorGrigorian, 470, 0.5f);
VK_Play_Speech_Line(kActorGrigorian, 480, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 8110, 0.5f);
#else
} else {
VK_Play_Speech_Line(kActorMcCoy, 8105, 0.5f);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7400: // Low 01
VK_Subject_Reacts(10, 8, 0, -5);
@ -1276,9 +1276,9 @@ void VKScript::askGrigorian(int questionId) {
VK_Eye_Animates(3);
VK_Subject_Reacts(40, 10, -3, 15);
VK_Play_Speech_Line(kActorGrigorian, 950, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 7375, 0.5f); // M: They're just questions
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7620: // High 02
VK_Subject_Reacts(30, 9, 10, 10);
@ -1308,9 +1308,9 @@ void VKScript::askGrigorian(int questionId) {
VK_Play_Speech_Line(kActorGrigorian, 1020, 0.5f);
VK_Play_Speech_Line(kActorGrigorian, 1030, 0.5f);
VK_Play_Speech_Line(kActorGrigorian, 1040, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 8535, 0.5f); // M: yeah...
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7690: // High 06
VK_Play_Speech_Line(kActorGrigorian, 1050, 0.5f);
@ -1322,9 +1322,9 @@ void VKScript::askGrigorian(int questionId) {
case 7705: // High 07
VK_Eye_Animates(3);
VK_Play_Speech_Line(kActorGrigorian, 1070, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 8536, 0.5f); // M: But if you did...
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Play_Speech_Line(kActorMcCoy, 7720, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7725, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 7730, 0.5f);
@ -1393,11 +1393,11 @@ void VKScript::askDektora(int questionId) {
VK_Eye_Animates(3);
if (Game_Flag_Query(kFlagDektoraIsReplicant)) {
VK_Play_Speech_Line(kActorDektora, 1520, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 8531, 0.5f);
#else
} else {
VK_Play_Speech_Line(kActorMcCoy, 7840, 0.5f);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Subject_Reacts(20, -1, 9, 10);
VK_Play_Speech_Line(kActorDektora, 1540, 0.8f);
VK_Play_Speech_Line(kActorDektora, 1550, 0.5f);
@ -1456,9 +1456,9 @@ void VKScript::askDektora(int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7800, 0.5f);
VK_Play_Speech_Line(kActorDektora, 1720, 0.5f);
VK_Subject_Reacts(45, 4, 6, 0);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 7380, 0.5f); // M: Just answer the question please.
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Play_Speech_Line(kActorDektora, 1730, 0.5f);
break;
case 7450: // Low 11
@ -1469,9 +1469,9 @@ void VKScript::askDektora(int questionId) {
VK_Eye_Animates(2);
VK_Play_Speech_Line(kActorDektora, 1750, 0.9f);
VK_Play_Speech_Line(kActorDektora, 1760, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 7806, 0.5f); // M: They are meant to provoke a reaction.
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7455: // Low 12
VK_Play_Speech_Line(kActorDektora, 1780, 0.5f);
@ -1653,9 +1653,9 @@ void VKScript::askDektora(int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7890, 0.5f);
VK_Play_Speech_Line(kActorDektora, 2390, 0.5f);
VK_Subject_Reacts(90, -3, 14, 50);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorDektora, 2400, 0.5f); // D: You want to kidnap me, don't you.
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Play_Speech_Line(kActorMcCoy, 7895, 0.5f);
} else {
VK_Subject_Reacts(80, 18, -3, 10);
@ -1687,15 +1687,15 @@ void VKScript::askDektora(int questionId) {
VK_Play_Speech_Line(kActorDektora, 2500, 0.5f);
VK_Subject_Reacts(85, 7, 14, 20);
VK_Play_Speech_Line(kActorDektora, 2510, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 7905, 0.5f); // M: Let's keep going, all right?
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
} else {
VK_Subject_Reacts(99, 18, 7, 20);
VK_Play_Speech_Line(kActorDektora, 2530, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 7909, 0.5f); // M: Went off the scale on that one.
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Play_Speech_Line(kActorMcCoy, 7910, 0.5f);
VK_Play_Speech_Line(kActorDektora, 2550, 0.5f);
VK_Eye_Animates(3);
@ -1734,8 +1734,8 @@ void VKScript::askDektora(int questionId) {
}
}
#if BLADERUNNER_RESTORED_CUT_CONTENT
void VKScript::askRunciter(int questionId) {
if (_vm->_cutContent) {
switch (questionId) {
case 7385: // Calibration 01
VK_Subject_Reacts(20, 4, -2, 5);
@ -2013,9 +2013,7 @@ void VKScript::askRunciter(int questionId) {
VK_Play_Speech_Line(kActorRunciter, 1590, 0.5f); // R: Let's get this over with
break;
}
}
#else
void VKScript::askRunciter(int questionId) {
} else {
switch (questionId) {
case 7385: // Calibration 01
VK_Subject_Reacts(20, 10, 20, 0);
@ -2193,7 +2191,7 @@ void VKScript::askRunciter(int questionId) {
break;
}
}
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
void VKScript::askBulletBob(int questionId) {
switch (questionId) {
@ -2238,9 +2236,9 @@ void VKScript::askBulletBob(int questionId) {
VK_Eye_Animates(1);
VK_Subject_Reacts(70, 8, 6, 0);
VK_Play_Speech_Line(kActorBulletBob, 1010, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 8539, 0.5f); // M: Let's keep going
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7415: // Low 04
VK_Subject_Reacts(25, 9, 6, 5);
@ -2310,10 +2308,10 @@ void VKScript::askBulletBob(int questionId) {
break;
case 7470: // Low 15
VK_Subject_Reacts(50, -4, 0, -5);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
Delay(2000);
VK_Play_Speech_Line(kActorMcCoy, 8270, 0.5f);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Play_Speech_Line(kActorBulletBob, 1240, 0.5f);
break;
case 7475: // Medium 01
@ -2357,13 +2355,13 @@ void VKScript::askBulletBob(int questionId) {
VK_Eye_Animates(1);
VK_Play_Speech_Line(kActorBulletBob, 1360, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 8275, 0.5f);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorBulletBob, 1370, 0.5f); // B: they ain't animals. we eat plants
VK_Subject_Reacts(10, 9, 7, -4);
VK_Play_Speech_Line(kActorMcCoy, 8540, 0.5f); // M: actually they are organic
#else
} else {
VK_Subject_Reacts(10, 9, 7, -4);
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
VK_Play_Speech_Line(kActorMcCoy, 8280, 0.5f);
VK_Eye_Animates(1);
VK_Play_Speech_Line(kActorBulletBob, 1380, 0.5f);
@ -2383,9 +2381,9 @@ void VKScript::askBulletBob(int questionId) {
if (Random_Query(0, 1) == 1) {
VK_Eye_Animates(1);
}
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorMcCoy, 8290, 0.5f); // M: Let's continue
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7565: // Medium 11
VK_Play_Speech_Line(kActorBulletBob, 1440, 0.5f);
@ -2455,9 +2453,9 @@ void VKScript::askBulletBob(int questionId) {
VK_Subject_Reacts(85, 10, 11, 0);
VK_Play_Speech_Line(kActorBulletBob, 1600, 0.5f);
VK_Eye_Animates(3);
#if BLADERUNNER_RESTORED_CUT_CONTENT
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorBulletBob, 1610, 0.5f); // B: I've had enough McCoy
#endif // BLADERUNNER_RESTORED_CUT_CONTENT
}
break;
case 7670: // High 04
VK_Subject_Reacts(50, 12, 7, 10);