BLADERUNNER: Fix for when talking characters get interrupted

This commit is contained in:
antoniou79 2020-12-20 18:09:17 +02:00
parent 074b558e16
commit 45448f93da
14 changed files with 178 additions and 9 deletions

View File

@ -1894,7 +1894,12 @@ void AIScriptGordo::dialogue1() {
Actor_Says(kActorGordo, 500, 13);
Actor_Says(kActorMcCoy, 3290, 16);
Actor_Says(kActorGordo, 510, 15);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 3295, 14);
#else
// McCoy is kind of interrupted here
Actor_Says_With_Pause(kActorMcCoy, 3295, 0.0f, 14);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorGordo, 520, 12);
Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -4);
break;
@ -1908,7 +1913,12 @@ void AIScriptGordo::dialogue1() {
Actor_Says(kActorGordo, 500, 13);
Actor_Says(kActorMcCoy, 3290, 16);
Actor_Says(kActorGordo, 510, 15);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 3295, 14);
#else
// McCoy is kind of interrupted here
Actor_Says_With_Pause(kActorMcCoy, 3295, 0.0f, 14);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorGordo, 520, 12);
Actor_Modify_Friendliness_To_Other(kActorGordo, kActorMcCoy, -1);
break;

View File

@ -889,7 +889,12 @@ void AIScriptLucy::voightKampffTest() {
Actor_Says(kActorLucy, 1070, 17);
Delay(1000);
Actor_Says(kActorLucy, 1080, 14);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 6820, 16);
#else
// McCoy is interrupted here
Actor_Says_With_Pause(kActorMcCoy, 6820, 0.0f, 16);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorLucy, 1090, 13);
if (!Game_Flag_Query(kFlagDirectorsCut)) {
Actor_Says(kActorMcCoy, 6825, 13);
@ -898,7 +903,13 @@ void AIScriptLucy::voightKampffTest() {
Actor_Says(kActorLucy, 1100, 14);
Actor_Says(kActorMcCoy, 6835, 14);
Actor_Says(kActorLucy, 1110, 15);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 6840, 13);
#else
// McCoy cuts his sentence short here.
// He is not interrupted, but still we should use Actor_Says_With_Pause 0.0f
Actor_Says_With_Pause(kActorMcCoy, 6840, 0.0f, 13);
#endif // BLADERUNNER_ORIGINAL_BUGS
Delay(1000);
Actor_Says(kActorMcCoy, 6845, 12);
Delay(500);
@ -938,7 +949,12 @@ void AIScriptLucy::voightKampffTest() {
Actor_Says(kActorLucy, 1210, 17);
}
Actor_Says(kActorMcCoy, 6895, 15);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 6900, 11);
#else
// McCoy is interrupted here
Actor_Says_With_Pause(kActorMcCoy, 6900, 0.0f, 11);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorLucy, 1220, 16);
Actor_Says(kActorMcCoy, 6905, 13);
Actor_Says(kActorLucy, 1230, 17);

View File

@ -510,7 +510,12 @@ bool AIScriptMcCoy::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Actor_Says(kActorMcCoy, 6685, 13);
Delay(500);
Actor_Says(kActorMcCoy, 6695, 16);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 6700, 17);
#else
// McCoy is interrupted here
Actor_Says_With_Pause(kActorMcCoy, 6700, 0.0f, 17);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorGuzza, 1480, kAnimationModeTalk);
Actor_Says(kActorMcCoy, 6705, 11);
Sound_Play(kSfxSPNBEEP9, 50, 0, 0, 50);

View File

@ -124,7 +124,12 @@ void AIScriptRunciter::OtherAgentEnteredCombatMode(int otherActorId, int combatM
Actor_Says(kActorMcCoy, 4770, -1);
Actor_Says(kActorRunciter, 590, 13);
Actor_Says(kActorMcCoy, 4775, -1);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorRunciter, 600, 17);
#else
// Runciter is interrupted here
Actor_Says_With_Pause(kActorRunciter, 600, 0.0f, 17);
#endif // BLADERUNNER_ORIGINAL_BUGS
Sound_Play(kSfxSHOTCOK1, 100, 0, 100, 50);
Actor_Says(kActorMcCoy, 4780, -1);
Actor_Says(kActorRunciter, 610, 18);
@ -138,19 +143,34 @@ void AIScriptRunciter::OtherAgentEnteredCombatMode(int otherActorId, int combatM
Actor_Says(kActorRunciter, 660, 19);
Actor_Clue_Acquire(kActorMcCoy, kClueRuncitersConfession1, true, kActorRunciter);
} else {
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorRunciter, 670, 18);
#else
// Runciter is interrupted here
Actor_Says_With_Pause(kActorRunciter, 670, 0.0f, 18);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 4795, -1);
Actor_Says(kActorRunciter, 730, 17);
}
} else if (Actor_Clue_Query(kActorMcCoy, kClueEnvelope)) {
Actor_Says(kActorMcCoy, 4730, -1);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorRunciter, 480, 17);
#else
// Runciter is kind of interrupted here
Actor_Says_With_Pause(kActorRunciter, 480, 0.0f, 17);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 4735, -1);
Actor_Says(kActorRunciter, 490, 16);
Sound_Play(kSfxSHOTCOK1, 100, 0, 100, 50);
Actor_Says(kActorMcCoy, 4740, -1);
Actor_Says(kActorRunciter, 500, 18);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorRunciter, 510, 19);
#else
// Runciter is kind of interrupted here
Actor_Says_With_Pause(kActorRunciter, 510, 0.0f, 19);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 4745, -1);
Actor_Says(kActorMcCoy, 4750, -1);
Actor_Says(kActorRunciter, 520, 17);

View File

@ -102,7 +102,12 @@ bool SceneScriptDR05::ClickedOnItem(int itemId, bool a2) {
) {
if (!Actor_Query_Goal_Number(kActorMoraji)) {
Actor_Says_With_Pause(kActorMcCoy, 1015, 0.1f, 12);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMoraji, 70, 13);
#else
// Moraji speaks and the place blows up immediately after
Actor_Says_With_Pause(kActorMoraji, 70, 0.0f, 13);
#endif // BLADERUNNER_ORIGINAL_BUGS
}
Actor_Set_Goal_Number(kActorMoraji, kGoalMorajiChooseFate);
}

View File

@ -445,6 +445,7 @@ void SceneScriptHF05::dialogueWithCrazylegs1() {
Actor_Says(kActorCrazylegs, 550, 16);
Actor_Says(kActorMcCoy, 1940, 15);
Actor_Says(kActorMcCoy, 1945, -1);
// CrazyLegs cuts his sentence short here. He is not interrupted.
Actor_Says(kActorCrazylegs, 560, 15);
Actor_Says(kActorCrazylegs, 570, 16);
Actor_Says(kActorMcCoy, 1950, 17);
@ -608,7 +609,12 @@ void SceneScriptHF05::talkWithDektora() {
Actor_Says(kActorDektora, 2660, 12);
Actor_Says(kActorMcCoy, 8990, kAnimationModeTalk);
Actor_Says(kActorDektora, 2670, 13);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorDektora, 2680, 17);
#else
// Dektora is interrupted here
Actor_Says_With_Pause(kActorDektora, 2680, 0.0f, 17);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 8995, 14);
Actor_Says(kActorDektora, 2690, 15);
Actor_Says_With_Pause(kActorMcCoy, 9000, 1.0f, 16);
@ -657,6 +663,7 @@ void SceneScriptHF05::talkWithCrazylegs3(int affectionTowardsActor) {
Actor_Says(kActorMcCoy, 1725, kAnimationModeTalk);
Actor_Says(kActorCrazylegs, 40, 16);
Actor_Says(kActorCrazylegs, 50, kAnimationModeTalk);
// CrazyLegs cuts his sentence short here. He is not interrupted.
Actor_Says(kActorCrazylegs, 60, 12);
Actor_Says(kActorCrazylegs, 70, 13);
Actor_Says(kActorMcCoy, 1730, kAnimationModeTalk);
@ -697,6 +704,7 @@ void SceneScriptHF05::talkWithCrazyLegs1() {
ADQ_Flush();
ADQ_Add(kActorCrazylegs, 130, 18);
ADQ_Add(kActorCrazylegs, 140, 18);
// CrazyLegs cuts his sentence short here. He is not interrupted.
ADQ_Add(kActorCrazylegs, 150, 18);
ADQ_Add(kActorCrazylegs, 160, 17);
}

View File

@ -90,7 +90,12 @@ bool SceneScriptNR07::ClickedOnActor(int actorId) {
case 1090: // EARLY-Q
Actor_Says(kActorMcCoy, 3650, 13);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorDektora, 630, 30);
#else
// Dektora is interrupted here
Actor_Says_With_Pause(kActorDektora, 630, 0.0f, 30);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 3655, 16);
Actor_Says(kActorDektora, 640, 31);
break;
@ -224,7 +229,12 @@ void SceneScriptNR07::callHolloway() {
Actor_Says(kActorMcCoy, 3760, 19);
Actor_Says(kActorDektora, 960, kAnimationModeSit);
Actor_Says(kActorDektora, 920, kAnimationModeSit);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 3780, kAnimationModeIdle);
#else
// McCoy is interrupted here
Actor_Says_With_Pause(kActorMcCoy, 3780, 0.0f, kAnimationModeIdle);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorDektora, 970, kAnimationModeSit);
Actor_Voice_Over(1710, kActorVoiceOver);
Actor_Voice_Over(1720, kActorVoiceOver);
@ -314,7 +324,12 @@ void SceneScriptNR07::talkAboutBelt2() {
Actor_Modify_Friendliness_To_Other(kActorDektora, kActorMcCoy, -1);
}
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorDektora, 610, 31);
#else
// Dektora is interrupted here
Actor_Says_With_Pause(kActorDektora, 610, 0.0f, 31);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 3645, 12);
Actor_Says(kActorDektora, 620, 30);

View File

@ -449,7 +449,12 @@ void SceneScriptPS09::dialogueWithGrigorian() {
Actor_Face_Actor(kActorCrazylegs, kActorGrigorian, true);
Actor_Says(kActorCrazylegs, 1010, kAnimationModeTalk);
Actor_Face_Actor(kActorGrigorian, kActorCrazylegs, true);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorGrigorian, 310, 16);
#else
// Grigorian is interrupted here
Actor_Says_With_Pause(kActorGrigorian, 310, 0.0f, 16);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Face_Actor(kActorMcCoy, kActorCrazylegs, true);
Actor_Says(kActorMcCoy, 4345, 14);
Actor_Face_Actor(kActorCrazylegs, kActorMcCoy, true);
@ -518,7 +523,12 @@ void SceneScriptPS09::dialogueWithGrigorian() {
Actor_Says(kActorMcCoy, 4265, 14);
Actor_Says(kActorGrigorian, 400, 13);
Actor_Says(kActorMcCoy, 4400, 13);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorGrigorian, 410, 16);
#else
// Grigorian is interrupted here, so pause has to be 0.0f
Actor_Says_With_Pause(kActorGrigorian, 410, 0.0f, 16);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 4405, 14);
Actor_Says(kActorMcCoy, 4410, 15);
Voight_Kampff_Activate(kActorGrigorian, 20);

View File

@ -305,7 +305,12 @@ void SceneScriptRC04::dialogueWithBulletBob() {
Actor_Says(kActorMcCoy, 4980, 11);
if (Actor_Query_Friendliness_To_Other(kActorBulletBob, kActorMcCoy) > 49) {
Actor_Says(kActorBulletBob, 740, 37);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 5085, 16);
#else
// McCoy is interrupted here
Actor_Says_With_Pause(kActorMcCoy, 5085, 0.0f, 16);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorBulletBob, 750, 37);
Actor_Says(kActorBulletBob, 760, 37);
Voight_Kampff_Activate(kActorBulletBob, 50);
@ -319,7 +324,12 @@ void SceneScriptRC04::dialogueWithBulletBob() {
} else {
Actor_Says(kActorBulletBob, 770, 36);
Actor_Says(kActorBulletBob, 780, 36);
#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 5090, 16);
#else
// McCoy is interrupted here
Actor_Says_With_Pause(kActorMcCoy, 5090, 0.0f, 16);
#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorBulletBob, 790, 36);
Actor_Says(kActorBulletBob, 800, 35);
Voight_Kampff_Activate(kActorBulletBob, 50);

View File

@ -1801,8 +1801,8 @@ void ScriptBase::ESPER_Define_Special_Region(int regionId, int innerLeft, int in
_vm->_esper->defineRegion(regionId, Common::Rect(innerLeft, innerTop, innerRight, innerBottom), Common::Rect(outerLeft, outerTop, outerRight, outerBottom), Common::Rect(selectionLeft, selectionTop, selectionRight, selectionBottom), name);
}
void ScriptBase::VK_Play_Speech_Line(int actorId, int sentenceId, float duration) {
_vm->_vk->playSpeechLine(actorId, sentenceId, duration);
void ScriptBase::VK_Play_Speech_Line(int actorId, int sentenceId, float pauseDuration) {
_vm->_vk->playSpeechLine(actorId, sentenceId, pauseDuration);
}
void ScriptBase::VK_Add_Question(int intensity, int sentenceId, int relatedSentenceId) {

View File

@ -294,7 +294,7 @@ protected:
void KIA_Play_Slice_Model(int sliceModelId);
void KIA_Play_Photograph(int photographId);
void VK_Play_Speech_Line(int actorId, int sentenceId, float duration);
void VK_Play_Speech_Line(int actorId, int sentenceId, float pauseDuration);
void VK_Add_Question(int intensity, int sentenceId, int relatedSentenceId);
void VK_Subject_Reacts(int intensity, int humanResponse, int replicantResponse, int anxiety);
void VK_Eye_Animates(int loopId);

View File

@ -685,6 +685,8 @@ void VKScript::askLucy(int questionId) {
VK_Play_Speech_Line(kActorLucy, 1410, 0.5f);
break;
case 7430: // Low 07
// Lucy cuts her sentence short here.
// She is not interrupted.
VK_Play_Speech_Line(kActorLucy, 1420, 0.5f);
if (Game_Flag_Query(kFlagLucyIsReplicant)) {
VK_Subject_Reacts(20, -1, 9, -3);
@ -705,6 +707,8 @@ void VKScript::askLucy(int questionId) {
}
break;
case 7440: // Low 09
// Lucy cuts her sentence short here.
// She is not interrupted.
VK_Play_Speech_Line(kActorLucy, 1460, 0.5f);
if (Game_Flag_Query(kFlagLucyIsReplicant)) {
VK_Subject_Reacts(40, 5, 10, 2);
@ -723,7 +727,12 @@ void VKScript::askLucy(int questionId) {
} else {
VK_Subject_Reacts(30, 9, -1, -2);
VK_Play_Speech_Line(kActorLucy, 1510, 0.5f);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 7945, 0.5f);
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 7945, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorLucy, 1520, 0.5f);
}
break;
@ -917,7 +926,12 @@ void VKScript::askLucy(int questionId) {
break;
case 7585: // Medium 13
VK_Play_Speech_Line(kActorLucy, 1950, 0.5f);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8030, 0.5f);
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8030, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorLucy, 1960, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 8035, 0.5f);
VK_Eye_Animates(3);
@ -954,7 +968,12 @@ void VKScript::askLucy(int questionId) {
}
VK_Eye_Animates(3);
VK_Play_Speech_Line(kActorLucy, 2050, 0.5f);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8050, 0.5f);
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8050, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Subject_Reacts(90, 0, 0, 0);
VK_Play_Speech_Line(kActorLucy, 2060, 0.5f);
break;
@ -974,7 +993,12 @@ void VKScript::askLucy(int questionId) {
VK_Subject_Reacts(70, 9, -1, 10);
}
VK_Play_Speech_Line(kActorLucy, 2090, 0.5f);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8055, 0.5f);
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8055, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Eye_Animates(2);
VK_Play_Speech_Line(kActorLucy, 2100, 0.5f);
break;
@ -1077,7 +1101,12 @@ void VKScript::askLucy(int questionId) {
VK_Subject_Reacts(80, 12, -3, 18);
}
VK_Play_Speech_Line(kActorLucy, 2330, 0.5f);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8095, 0.5f);
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8095, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorLucy, 2340, 0.5f);
break;
case 7770: // High 10
@ -1159,7 +1188,12 @@ void VKScript::askGrigorian(int questionId) {
VK_Eye_Animates(2);
VK_Subject_Reacts(45, 8, 7, 15);
VK_Play_Speech_Line(kActorGrigorian, 600, 0.5f);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8130, 0.5f);
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8130, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Eye_Animates(2);
VK_Play_Speech_Line(kActorGrigorian, 610, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 8135, 0.5f);
@ -1230,7 +1264,12 @@ void VKScript::askGrigorian(int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 8150, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 8155, 0.5f);
VK_Subject_Reacts(30, 9, -5, 12);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorGrigorian, 810, 0.5f);
#else
// Grigorian is interrupted here
VK_Play_Speech_Line(kActorGrigorian, 810, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8160, 0.5f);
break;
case 7525: // Medium 07
@ -1341,7 +1380,12 @@ void VKScript::askGrigorian(int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7735, 0.5f);
VK_Subject_Reacts(60, 14, 3, 20);
VK_Play_Speech_Line(kActorGrigorian, 1080, 0.5f);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8195, 0.5f);
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8195, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Eye_Animates(3);
VK_Play_Speech_Line(kActorGrigorian, 1090, 0.5f);
VK_Play_Speech_Line(kActorMcCoy, 8200, 0.5f);
@ -1683,11 +1727,22 @@ void VKScript::askDektora(int questionId) {
if (_vm->_cutContent) {
VK_Play_Speech_Line(kActorDektora, 2400, 0.5f); // D: You want to kidnap me, don't you.
}
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 7895, 0.5f);
#else
// McCoy cuts his sentence short here.
// He is not interrupted. Yet let's still put a pause of 0.0f for consistency
VK_Play_Speech_Line(kActorMcCoy, 7895, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
} else {
VK_Subject_Reacts(80, 18, -3, 10);
VK_Play_Speech_Line(kActorDektora, 2410, 0.5f);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8534, 0.5f);
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8534, 0.0f);
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorDektora, 2430, 0.5f);
}
break;
@ -1791,7 +1846,12 @@ void VKScript::askRunciter(int questionId) {
break;
case 7410: // Low 03
VK_Subject_Reacts(25, 8, 12, 0);
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorRunciter, 940, 0.5f); // R: Capture it
#else
// Runciter is interrupted here
VK_Play_Speech_Line(kActorRunciter, 940, 0.0f); // R: Capture it
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8340, 0.5f);
VK_Subject_Reacts(11, 8, 8, 0);
VK_Play_Speech_Line(kActorRunciter, 950, 0.5f); // R: Oh I do that first
@ -1962,7 +2022,12 @@ void VKScript::askRunciter(int questionId) {
case 7620: // High 02
VK_Subject_Reacts(9, 5, 7, 0);
VK_Play_Speech_Line(kActorRunciter, 1370, 0.5f); // R: What do you expect me to say?
VK_Play_Speech_Line(kActorMcCoy, 8390, 0.5f); // M: You don't have to say anything
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8390, 0.5f); // M: You don't have to say anything
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8390, 0.0f); // M: You don't have to say anything
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Subject_Reacts(15, 6, 4, 2);
VK_Play_Speech_Line(kActorRunciter, 1380, 0.5f); // R: I understand how it works
break;
@ -2008,7 +2073,12 @@ void VKScript::askRunciter(int questionId) {
VK_Play_Speech_Line(kActorMcCoy, 7735, 0.5f);
VK_Subject_Reacts(50, 15, 6, 4);
VK_Play_Speech_Line(kActorRunciter, 1490, 0.5f); // R: You're disgusting
VK_Play_Speech_Line(kActorMcCoy, 8410, 0.5f); // M: Hey I didn't
#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8410, 0.5f); // M: Hey I didn't
#else
// McCoy is interrupted here
VK_Play_Speech_Line(kActorMcCoy, 8410, 0.0f); // M: Hey I didn't
#endif // BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorRunciter, 1500, 0.5f); // R: I've always loved animals...
VK_Play_Speech_Line(kActorMcCoy, 8415, 0.5f); // M: No one is saying otherwise...
VK_Subject_Reacts(60, 18, -3, 1);

View File

@ -239,7 +239,7 @@ void VK::addQuestion(int intensity, int sentenceId, int relatedSentenceId) {
}
}
void VK::playSpeechLine(int actorId, int sentenceId, float duration) {
void VK::playSpeechLine(int actorId, int sentenceId, float pauseDuration) {
_vm->gameWaitForActive();
_vm->_mouse->disable();
@ -258,9 +258,9 @@ void VK::playSpeechLine(int actorId, int sentenceId, float duration) {
}
}
if (duration > 0.0f && !_vm->_actorSpeakStopIsRequested) {
if (pauseDuration > 0.0f && !_vm->_actorSpeakStopIsRequested) {
uint32 timeStart = _vm->_time->current();
uint32 timeUntil = duration * 1000.0f;
uint32 timeUntil = pauseDuration * 1000.0f;
while ((_vm->_time->current() - timeStart < timeUntil) && _vm->_gameIsRunning) {
_vm->gameTick();
}

View File

@ -139,7 +139,7 @@ public:
void handleMouseDown(int mouseX, int mouseY, bool mainButton);
void handleMouseUp(int mouseX, int mouseY, bool mainButton);
void playSpeechLine(int actorId, int sentenceId, float duration);
void playSpeechLine(int actorId, int sentenceId, float pauseDuration);
void addQuestion(int intensity, int sentenceId, int relatedSentenceId);
void subjectReacts(int intensity, int humanResponse, int replicantResponse, int anxiety);
void eyeAnimates(int loopId);