[Scummvm-git-logs] scummvm master -> 95714e95ceef75e162f39c5d1da8c7f413d2e335
antoniou79
a.antoniou79 at gmail.com
Sun Feb 2 22:02:47 UTC 2020
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
3a5dcc13eb BLADERUNNER: Fix missing KIA line in SPA/ITA localizations
882dd06f52 BLADERUNNER: More fixes for cut or muted lines across localizations
95714e95ce BLADERUNNER: More fixes and notes for missing quotes in localizations
Commit: 3a5dcc13eb2848e193c578b1493b231667a85dc1
https://github.com/scummvm/scummvm/commit/3a5dcc13eb2848e193c578b1493b231667a85dc1
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2020-02-03T00:01:15+02:00
Commit Message:
BLADERUNNER: Fix missing KIA line in SPA/ITA localizations
Credits to IlDucci from the Spanish translation team.
This is the same line from Officer Leary in RC01, after canvassing the area.
Changed paths:
engines/bladerunner/script/kia_script.cpp
diff --git a/engines/bladerunner/script/kia_script.cpp b/engines/bladerunner/script/kia_script.cpp
index f40a677..df49a7e 100644
--- a/engines/bladerunner/script/kia_script.cpp
+++ b/engines/bladerunner/script/kia_script.cpp
@@ -108,7 +108,18 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
KIA_Play_Actor_Dialogue(kActorRunciter, 290);
break;
case kClueCrowdInterviewA:
- KIA_Play_Actor_Dialogue(kActorOfficerLeary, 100);
+ if (_vm->_cutContent
+ && (_vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA)
+ ) {
+ // Same fix as in RC01:
+ // this is the second half of the sentence about Lucy hanging around with Zuben ("a fat guy")
+ // in ENG, DEU and FRA it is redundant, but it's needed in ESP and ITA
+ KIA_Play_Actor_Dialogue(kActorOfficerLeary, 100);
+ KIA_Play_Actor_Dialogue(kActorOfficerLeary, 110);
+ } else {
+ KIA_Play_Actor_Dialogue(kActorOfficerLeary, 100);
+ }
break;
case kClueCrowdInterviewB:
KIA_Play_Actor_Dialogue(kActorOfficerLeary, 120);
Commit: 882dd06f523d6fe10ddd1fd015c063602e0456ff
https://github.com/scummvm/scummvm/commit/882dd06f523d6fe10ddd1fd015c063602e0456ff
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2020-02-03T00:01:15+02:00
Commit Message:
BLADERUNNER: More fixes for cut or muted lines across localizations
Based on notes from IlDucci from the Spanish translation team and mine
Changed paths:
engines/bladerunner/detection_tables.h
engines/bladerunner/script/ai/hanoi.cpp
engines/bladerunner/script/kia_script.cpp
engines/bladerunner/script/scene/ps07.cpp
engines/bladerunner/script/scene/ps09.cpp
engines/bladerunner/script/scene/rc01.cpp
engines/bladerunner/script/scene/tb07.cpp
engines/bladerunner/script/vk_script.cpp
engines/bladerunner/ui/kia_section_settings.cpp
diff --git a/engines/bladerunner/detection_tables.h b/engines/bladerunner/detection_tables.h
index 7af030b..6ffce36 100644
--- a/engines/bladerunner/detection_tables.h
+++ b/engines/bladerunner/detection_tables.h
@@ -33,7 +33,7 @@
namespace BladeRunner {
static const ADGameDescription gameDescriptions[] = {
- // BladeRunner (English)
+ // BladeRunner (English) - ENG
{
"bladerunner",
0,
@@ -44,7 +44,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (German)
+ // BladeRunner (German) - DEU
{
"bladerunner",
0,
@@ -55,7 +55,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (French) - Bug #9722
+ // BladeRunner (French) - FRA - Bug #9722
{
"bladerunner",
0,
@@ -66,7 +66,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Italian)
+ // BladeRunner (Italian) - ITA
{
"bladerunner",
0,
@@ -77,7 +77,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc.)
+ // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc.) - RUS
{
"bladerunner",
0,
@@ -88,7 +88,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R3)
+ // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R3) - RUS
{
"bladerunner",
0,
@@ -99,7 +99,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R4)
+ // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R4) - RUS
{
"bladerunner",
0,
@@ -110,7 +110,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Spanish)
+ // BladeRunner (Spanish) - ESP
{
"bladerunner",
0,
@@ -123,7 +123,7 @@ static const ADGameDescription gameDescriptions[] = {
// Versions with restored content
- // BladeRunner (English)
+ // BladeRunner (English) - ENG
{
"bladerunner-final",
0,
@@ -134,7 +134,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (German)
+ // BladeRunner (German) - DEU
{
"bladerunner-final",
0,
@@ -145,7 +145,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (French)
+ // BladeRunner (French) - FRA
{
"bladerunner-final",
0,
@@ -156,7 +156,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Italian)
+ // BladeRunner (Italian) - ITA
{
"bladerunner-final",
0,
@@ -167,7 +167,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc.)
+ // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc.) - RUS
{
"bladerunner-final",
0,
@@ -178,7 +178,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R3)
+ // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R3) - RUS
{
"bladerunner-final",
0,
@@ -189,7 +189,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R4)
+ // BladeRunner (Russian - Fargus Multimedia + Home Systems, Inc. + Siberian Studio, R4) - RUS
{
"bladerunner-final",
0,
@@ -200,7 +200,7 @@ static const ADGameDescription gameDescriptions[] = {
GUIO5(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY, GAMEOPTION_FRAMELIMITER_NODELAYMILLIS, GAMEOPTION_FRAMELIMITER_FPS, GUIO_NOMIDI)
},
- // BladeRunner (Spanish)
+ // BladeRunner (Spanish) - ESP
{
"bladerunner-final",
0,
diff --git a/engines/bladerunner/script/ai/hanoi.cpp b/engines/bladerunner/script/ai/hanoi.cpp
index c13e83d..a069d39 100644
--- a/engines/bladerunner/script/ai/hanoi.cpp
+++ b/engines/bladerunner/script/ai/hanoi.cpp
@@ -291,7 +291,7 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Game_Flag_Set(kFlagNR03McCoyThrownOut);
AI_Countdown_Timer_Reset(kActorHanoi, kActorTimerAIScriptCustomTask0);
Player_Loses_Control();
- Player_Set_Combat_Mode(false); // this is missing in ITA & SPA versions of the game
+ Player_Set_Combat_Mode(false); // this is missing in ITA and ESP versions of the game
Actor_Force_Stop_Walking(kActorMcCoy);
Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
Actor_Set_Invisible(kActorMcCoy, true);
diff --git a/engines/bladerunner/script/kia_script.cpp b/engines/bladerunner/script/kia_script.cpp
index df49a7e..7bed3ac 100644
--- a/engines/bladerunner/script/kia_script.cpp
+++ b/engines/bladerunner/script/kia_script.cpp
@@ -109,11 +109,11 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
break;
case kClueCrowdInterviewA:
if (_vm->_cutContent
- && (_vm->_language == Common::ES_ESP
- || _vm->_language == Common::IT_ITA)
+ && (_vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA)
) {
// Same fix as in RC01:
- // this is the second half of the sentence about Lucy hanging around with Zuben ("a fat guy")
+ // Quote 110 is the second half of the sentence about Lucy hanging around with Zuben ("a fat guy")
// in ENG, DEU and FRA it is redundant, but it's needed in ESP and ITA
KIA_Play_Actor_Dialogue(kActorOfficerLeary, 100);
KIA_Play_Actor_Dialogue(kActorOfficerLeary, 110);
@@ -788,7 +788,25 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
case kClueCrimeSceneNotes:
KIA_Play_Actor_Dialogue(kActorSteele, 3310);
KIA_Play_Actor_Dialogue(kActorSteele, 3320);
- KIA_Play_Actor_Dialogue(kActorSteele, 3330);
+ if (_vm->_cutContent
+ && (_vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA)
+ ) {
+ //
+ // in ITA and ESP the 3340 quote is the second half of the sentence starting in previous quote (3330)
+ KIA_Play_Actor_Dialogue(kActorSteele, 3330);
+ KIA_Play_Actor_Dialogue(kActorSteele, 3340);
+ } else if (_vm->_cutContent
+ && _vm->_language == Common::FR_FRA
+ ) {
+ // in FRA the 3340 quote has the full sentence rendering the previous quote (3330) redundant
+ // FRA (Restored Content) version needs only 3340
+ KIA_Play_Actor_Dialogue(kActorSteele, 3340);
+ } else {
+ // ENG and DEU and non-restored content versions need only 3330
+ // the 3340 quote is *BOOP* in the ENG and DEU versions
+ KIA_Play_Actor_Dialogue(kActorSteele, 3330);
+ }
KIA_Play_Actor_Dialogue(kActorSteele, 3350);
KIA_Play_Actor_Dialogue(kActorSteele, 3360);
KIA_Play_Actor_Dialogue(kActorSteele, 3370);
@@ -809,7 +827,19 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
KIA_Play_Actor_Dialogue(kActorSteele, 3470);
KIA_Play_Actor_Dialogue(kActorGrigorian, 1300);
KIA_Play_Actor_Dialogue(kActorGrigorian, 1310);
- KIA_Play_Actor_Dialogue(kActorSteele, 3480);
+ if (_vm->_cutContent
+ && (_vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA)
+ ) {
+ //
+ // in ITA and ESP the 3490 quote is the second half of the sentence starting in previous quote (3480)
+ KIA_Play_Actor_Dialogue(kActorSteele, 3480);
+ KIA_Play_Actor_Dialogue(kActorSteele, 3490);
+ } else {
+ // the 3490 quote is *BOOP* in the ENG and DEU versions
+ // the 3490 quote is also redundant in FRA version, since it's only the first half of the previous quote (3480)
+ KIA_Play_Actor_Dialogue(kActorSteele, 3480);
+ }
KIA_Play_Actor_Dialogue(kActorSteele, 3500);
KIA_Play_Actor_Dialogue(kActorGrigorian, 1320);
KIA_Play_Actor_Dialogue(kActorGrigorian, 1330);
diff --git a/engines/bladerunner/script/scene/ps07.cpp b/engines/bladerunner/script/scene/ps07.cpp
index 678770c..c94cf1c 100644
--- a/engines/bladerunner/script/scene/ps07.cpp
+++ b/engines/bladerunner/script/scene/ps07.cpp
@@ -157,7 +157,12 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
Actor_Says(kActorKlein, 170, 14);
Actor_Says(kActorMcCoy, 4180, 13);
Actor_Says(kActorKlein, 180, 12);
+#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorKlein, 190, 13);
+#else
+ // Dino's quote 190 is continued in quote 200, and needs 0.0f pause to sound better flowing
+ Actor_Says_With_Pause(kActorKlein, 190, 0.0f, 13);
+#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorKlein, 200, 16);
Actor_Says(kActorMcCoy, 4185, 18);
Actor_Says(kActorKlein, 210, 12);
diff --git a/engines/bladerunner/script/scene/ps09.cpp b/engines/bladerunner/script/scene/ps09.cpp
index c5a0143..40c38d7 100644
--- a/engines/bladerunner/script/scene/ps09.cpp
+++ b/engines/bladerunner/script/scene/ps09.cpp
@@ -356,10 +356,40 @@ void SceneScriptPS09::dialogueWithGrigorian() {
Actor_Says(kActorGrigorian, 170, 15);
Actor_Says(kActorGrigorian, 180, 16);
Actor_Says(kActorMcCoy, 4315, 18);
- if (_vm->_cutContent) {
- Actor_Says(kActorGrigorian, 190, kAnimationModeTalk); // Everything and anything.
+ if (_vm->_cutContent
+ && (_vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA)
+ ) {
+ // In ESP and ITA versions:
+ // Quote 190 is the full quote.
+ // "Everything and anything. Guns so new that even the police had hardly used them I heard."
+ // Quote 200 is muted in ESP and becomes redundant in ITA
+ Actor_Says(kActorGrigorian, 190, kAnimationModeTalk);
+ // TODO: When mixing ESP or ITA voiceover with subtitles from other languages,
+ // those subtitles would have to be merged with the 190 quote
+ // in order to show up in the ESP amd ITA version
+ // Also, the spoken quote appears in ESP version only in restored content mode!
+ } else if (_vm->_cutContent) {
+ // TODO is RUS version covered by this case?
+ // In ENG, FRA and DEU versions:
+ // Quote 190 is the first half:
+ // "Everything and anything."
+ // and quote 200 is the second half:
+ // "Guns so new that even the police had hardly used them I heard."
+ Actor_Says(kActorGrigorian, 190, kAnimationModeTalk);
+ Actor_Says(kActorGrigorian, 200, 13);
+ } else {
+ // vanilla version (non-restored content)
+ // This plays only the second half of the full quote in ENG, FRA, DEU and ITA versions
+#if BLADERUNNER_ORIGINAL_BUGS
+ Actor_Says(kActorGrigorian, 200, 13);
+#else
+ // Quote 200 is muted in the ESP version
+ if (_vm->_language != Common::ES_ESP) {
+ Actor_Says(kActorGrigorian, 200, 13);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
- Actor_Says(kActorGrigorian, 200, 13);
return;
}
break;
@@ -367,12 +397,32 @@ void SceneScriptPS09::dialogueWithGrigorian() {
case 180: // CARS
Actor_Says(kActorMcCoy, 4270, 18);
Actor_Says(kActorMcCoy, 4255, kAnimationModeTalk);
+#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorGrigorian, 210, 12);
Actor_Says(kActorGrigorian, 220, 13);
Actor_Says(kActorGrigorian, 230, 14);
+#else
+ if (_vm->_language != Common::ES_ESP) {
+ Actor_Says(kActorGrigorian, 210, 12);
+ Actor_Says(kActorGrigorian, 220, 13);
+ // pause (after the quote is spoken) is set to 0.0f here
+ // Grigorian is interrupted by McCoy here, so there shouldn't be any pause after his quote
+ Actor_Says_With_Pause(kActorGrigorian, 230, 0.0f, 14);
+ } else {
+ // In ESP version, quote 210 contains the full quote,
+ // and quotes 220 and 230 are muted.
+ // The pause (after the quote is spoken) is set to 0.0f here, because Grigorian is interrupted in the end
+ Actor_Says_With_Pause(kActorGrigorian, 210, 0.0f, 12);
+ // we skip the muted quotes for the ESP version
+ // TODO: When mixing ESP voiceover with subtitles from other languages,
+ // those subtitles would have to be merged with the previous full quote (210)
+ // in order to show up in the ESP version
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 4320, 14);
if (_vm->_cutContent) {
- Actor_Says(kActorMcCoy, 4325, kAnimationModeTalk); // What else do you guys do besides wave signs
+ // "What else do you guys do besides wave signs"
+ Actor_Says(kActorMcCoy, 4325, kAnimationModeTalk);
}
Actor_Says(kActorGrigorian, 240, 16);
Actor_Says(kActorGrigorian, 250, 15);
@@ -380,7 +430,15 @@ void SceneScriptPS09::dialogueWithGrigorian() {
Actor_Says(kActorGrigorian, 260, 13);
Actor_Says(kActorGrigorian, 270, 12);
if (_vm->_cutContent) {
- Actor_Says(kActorGrigorian, 280, 12); // A way for the slaves to escape
+ // In the ESP version quote 280 is muted. The previous quote (270) already contains the full quote.
+ // Essentially, the full quote is not removed content in the vanilla ESP version
+ // TODO: When mixing ESP voiceover with subtitles from other languages,
+ // those subtitles would have to be merged with the previous full quote (270)
+ // in order to show up in the ESP version
+ if (_vm->_language != Common::ES_ESP) {
+ // "A way for the slaves to escape"
+ Actor_Says(kActorGrigorian, 280, 12);
+ }
}
Actor_Says(kActorMcCoy, 4335, 18);
Actor_Says(kActorGrigorian, 290, 15);
@@ -410,10 +468,31 @@ void SceneScriptPS09::dialogueWithGrigorian() {
} else {
Actor_Says(kActorGrigorian, 320, 13);
if (_vm->_cutContent) {
- Actor_Says(kActorGrigorian, 330, kAnimationModeTalk); // Friends with access to vehicles
+ // In the ESP version quote 330 is muted. The previous quote (320) already contains the full quote.
+ // Essentially, the full quote is not removed content in the vanilla ESP version
+ // TODO: When mixing ESP voiceover with subtitles from other languages,
+ // those subtitles would have to be merged with the previous full quote (320)
+ // in order to show up in the ESP version
+ if (_vm->_language != Common::ES_ESP) {
+ // "Friends with access to vehicles"
+ Actor_Says(kActorGrigorian, 330, kAnimationModeTalk);
+ }
}
+#if BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorGrigorian, 340, 14);
Actor_Says(kActorGrigorian, 350, 12);
+#else
+ if (_vm->_language != Common::ES_ESP) {
+ Actor_Says(kActorGrigorian, 340, 14);
+ Actor_Says_With_Pause(kActorGrigorian, 350, 0.0f, 12);
+ } else {
+ // quote 350 is muted in ESP version. The quote 340 contains the full quote
+ // TODO: When mixing ESP voiceover with subtitles from other languages,
+ // those subtitles would have to be merged with the previous full quote (340)
+ // in order to show up in the ESP version
+ Actor_Says_With_Pause(kActorGrigorian, 340, 0.0f, 14);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
Actor_Says(kActorMcCoy, 4375, 18);
}
break;
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp
index 928a89f..c90ff65 100644
--- a/engines/bladerunner/script/scene/rc01.cpp
+++ b/engines/bladerunner/script/scene/rc01.cpp
@@ -214,7 +214,17 @@ void SceneScriptRC01::SceneLoaded() {
Actor_Voice_Over(1830, kActorVoiceOver);
Actor_Voice_Over(1850, kActorVoiceOver);
if (!Game_Flag_Query(kFlagDirectorsCut)) {
+#if BLADERUNNER_ORIGINAL_BUGS
Actor_Voice_Over(1860, kActorVoiceOver);
+#else
+ // Quote 1860 is muted in the DEU version
+ // TODO: When mixing DEU voiceover with subtitles from other languages,
+ // those subtitles would have to be merged with the previous quote
+ // in order to show up in the DEU version
+ if (_vm->_language != Common::DE_DEU) {
+ Actor_Voice_Over(1860, kActorVoiceOver);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
I_Sez("MG: Is David Leary a self-respecting human or is he powered by rechargeable");
I_Sez("batteries?\n");
}
@@ -340,7 +350,7 @@ bool SceneScriptRC01::ClickedOnActor(int actorId) {
&& (_vm->_language == Common::ES_ESP
|| _vm->_language == Common::IT_ITA)
) {
- // this is the second half of the sentence about Lucy hanging around with Zuben ("a fat guy")
+ // Quote 110 is the second half of the sentence about Lucy hanging around with Zuben ("a fat guy")
// in ENG, DEU and FRA it is redundant, but it's needed in ESP and ITA
Actor_Says_With_Pause(kActorOfficerLeary, 100, 0.0f, 15);
Actor_Says(kActorOfficerLeary, 110, kAnimationModeTalk);
diff --git a/engines/bladerunner/script/scene/tb07.cpp b/engines/bladerunner/script/scene/tb07.cpp
index dd70cb2..1a9d172 100644
--- a/engines/bladerunner/script/scene/tb07.cpp
+++ b/engines/bladerunner/script/scene/tb07.cpp
@@ -258,7 +258,7 @@ void SceneScriptTB07::McCoyTalkWithRachaelAndTyrell() {
&& (_vm->_language == Common::ES_ESP
|| _vm->_language == Common::IT_ITA)
) {
- // this is the second half of the sentence about Tyrell having important meetings to attend to
+ // Quote 560 is the second half of the sentence about Tyrell having important meetings to attend to
// In ENG, DEU and FRA it is redundant because it, instead, re-uses a cut line from the removed elevator scene "Copies, only copies"
// However, it's needed in ESP and ITA
Actor_Says_With_Pause(kActorRachael, 550, 0.0f, 13);
diff --git a/engines/bladerunner/script/vk_script.cpp b/engines/bladerunner/script/vk_script.cpp
index 71954c2..ca6047e 100644
--- a/engines/bladerunner/script/vk_script.cpp
+++ b/engines/bladerunner/script/vk_script.cpp
@@ -1522,8 +1522,20 @@ void VKScript::askDektora(int questionId) {
} else {
VK_Subject_Reacts(90, 15, -5, 10);
VK_Play_Speech_Line(kActorDektora, 1870, 0.5f);
+#if BLADERUNNER_ORIGINAL_BUGS
VK_Play_Speech_Line(kActorMcCoy, 8532, 0.5f);
VK_Play_Speech_Line(kActorDektora, 1890, 0.5f);
+#else
+ // Quotes 8532 (McCoy) and 1890 (Dektora) are muted in the ESP version
+ // They are completely missing from the ESP version (they don't appear elsewhere).
+ // The quotes here are:
+ // McCoy: "That's not a single word."
+ // Dektora: "All right. Aggressive. Powerful."
+ if (_vm->_language != Common::ES_ESP) {
+ VK_Play_Speech_Line(kActorMcCoy, 8532, 0.5f);
+ VK_Play_Speech_Line(kActorDektora, 1890, 0.5f);
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
break;
case 7475: // Medium 01
diff --git a/engines/bladerunner/ui/kia_section_settings.cpp b/engines/bladerunner/ui/kia_section_settings.cpp
index 34f63d5..001579a 100644
--- a/engines/bladerunner/ui/kia_section_settings.cpp
+++ b/engines/bladerunner/ui/kia_section_settings.cpp
@@ -66,11 +66,14 @@ KIASectionSettings::KIASectionSettings(BladeRunnerEngine *vm)
#endif
if (_vm->_language == Common::RU_RUS) {
- _directorsCut = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(180, 364, 436, 374), 0, false); // expanded click-bounding box x-axis
- _subtitlesEnable = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(276, 376, 345, 386), 0, false); // moved to new line
+ // expanded click-bounding box x-axis
+ _directorsCut = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(180, 364, 436, 374), 0, false);
+ // moved to new line
+ _subtitlesEnable = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(276, 376, 345, 386), 0, false);
} else {
_directorsCut = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(180, 364, 270, 374), 0, false);
- _subtitlesEnable = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(311, 364, 380, 374), 0, false); // moved further to the right to avoid overlap with 'Designer's Cut' in some language versions (ESP)
+ // moved further to the right to avoid overlap with 'Designer's Cut' in some language versions (ESP)
+ _subtitlesEnable = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(311, 364, 380, 374), 0, false);
}
_playerAgendaSelector = new UIImagePicker(_vm, 5);
@@ -215,7 +218,8 @@ void KIASectionSettings::draw(Graphics::Surface &surface) {
subtitlesTranslation = "Sottotitoli";
break;
case Common::ES_ESP:
- subtitlesTranslation = "Subt\xa1tulos"; // the spanish text must have accented Ã
+ // the spanish text must have accented Ã
+ subtitlesTranslation = "Subt\xa1tulos";
break;
case Common::RU_RUS:
// ÑÑбÑиÑÑÑ
@@ -228,13 +232,15 @@ void KIASectionSettings::draw(Graphics::Surface &surface) {
}
break;
}
-
- const char *textSubtitles = strcmp(_vm->_textOptions->getText(42), "") == 0 ? subtitlesTranslation : _vm->_textOptions->getText(42); // +1 to the max of original index of textOptions which is 41
+ // +1 to the max of original index of textOptions which is 41
+ const char *textSubtitles = strcmp(_vm->_textOptions->getText(42), "") == 0 ? subtitlesTranslation : _vm->_textOptions->getText(42);
if (_vm->_language == Common::RU_RUS) {
- _vm->_mainFont->drawString(&surface, textSubtitles, 288, 376, surface.w, surface.format.RGBToColor(232, 208, 136)); // special case for Russian version, put the option in a new line to avoid overlap
+ // special case for Russian version, put the option in a new line to avoid overlap
+ _vm->_mainFont->drawString(&surface, textSubtitles, 288, 376, surface.w, surface.format.RGBToColor(232, 208, 136));
} else {
- _vm->_mainFont->drawString(&surface, textSubtitles, 323, 365, surface.w, surface.format.RGBToColor(232, 208, 136)); // moved further to the right to avoid overlap with 'Designer's Cut' in some language versions (ESP)
+ // moved further to the right to avoid overlap with 'Designer's Cut' in some language versions (ESP)
+ _vm->_mainFont->drawString(&surface, textSubtitles, 323, 365, surface.w, surface.format.RGBToColor(232, 208, 136));
}
}
Commit: 95714e95ceef75e162f39c5d1da8c7f413d2e335
https://github.com/scummvm/scummvm/commit/95714e95ceef75e162f39c5d1da8c7f413d2e335
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2020-02-03T00:01:15+02:00
Commit Message:
BLADERUNNER: More fixes and notes for missing quotes in localizations
With the help of IlDucci's notes.
Changed paths:
engines/bladerunner/script/ai/blimp_guy.cpp
engines/bladerunner/script/ai/free_slot_a.cpp
engines/bladerunner/script/ai/free_slot_b.cpp
engines/bladerunner/script/kia_script.cpp
engines/bladerunner/script/scene/ps07.cpp
engines/bladerunner/script/scene/rc01.cpp
engines/bladerunner/script/scene/rc02.cpp
diff --git a/engines/bladerunner/script/ai/blimp_guy.cpp b/engines/bladerunner/script/ai/blimp_guy.cpp
index 9dc104e..433e183 100644
--- a/engines/bladerunner/script/ai/blimp_guy.cpp
+++ b/engines/bladerunner/script/ai/blimp_guy.cpp
@@ -24,6 +24,43 @@
namespace BladeRunner {
+// Notes:
+// kActorBlimpGuy's speech appears
+// in specific scenes:
+// - AR01, AR02
+// - BB01
+// - CT01, CT02, CT03, CT04, CT06, CT07, CT08, CT12
+// - DR01, DR04
+// - MA05
+// - RC03
+// and one cutscene:
+// - TB_FLY
+// In the in-game scene his speech is played as ambient sound using Ambient_Sounds_Add_Speech_Sound()
+// It is thus not subtitled as of yet.
+// TODO: maybe if we support dual subtitles being displayed on-screen
+// The Blimp Guy's speech in the TB_FLY VQA cutscene is subtitled.
+//
+// The FRA and ESP versions do not use the Blimp's horn sound at all during any of the announcements
+//
+// From the available quotes for kActorBlimpGuy, only quotes with id 0, 20, 40, 50 are used.
+// Quote 10 is unused:
+// "A new life awaits you in the Off-World colonies."
+// "The chance to begin again in a golden land of opportunity and adventure."
+// - In ENG and DEU versions it is identical with the second half of quote id 0 and thus redundant
+// - In FRA, ESP and ITA versions it is the missing second half of quote id 0 and is thus "required"
+// TODO: Figure out a way to restore this quote as a continuation of the previous quote
+// given that this is ambient sound!
+//
+// Quote 30 is unused:
+// Roughly translates to: "What are you waiting for? Emigrate to the colonies!"
+// - In ENG version this is a *boop* sound
+// - In DEU version this is the start of a new announcement (the Blimp horn plays)
+// - In ITA version this should be a continuation of an announcement (the Blimp horn does not play)
+// - In FRA and ESP version this can be either a new announcement or a continuation of the previous announcement
+// (the Blimp horn does not play ever in FRA and ESP versions)
+// TODO: Figure out a way to restore this quote as a continuation of the previous quote
+// given that this is ambient sound!
+//
AIScriptBlimpGuy::AIScriptBlimpGuy(BladeRunnerEngine *vm) : AIScriptBase(vm) {
}
diff --git a/engines/bladerunner/script/ai/free_slot_a.cpp b/engines/bladerunner/script/ai/free_slot_a.cpp
index 441100b..a529572 100644
--- a/engines/bladerunner/script/ai/free_slot_a.cpp
+++ b/engines/bladerunner/script/ai/free_slot_a.cpp
@@ -213,6 +213,10 @@ void AIScriptFreeSlotA::ClickedByPlayer() {
if (_vm->_cutContent && !Game_Flag_Query(kFlagMcCoyCommentsOnHoodooRats)) {
Game_Flag_Set(kFlagMcCoyCommentsOnHoodooRats);
Actor_Voice_Over(1060, kActorVoiceOver); // Hoodoo rats
+ // Note: Quote 1070 is *boop* in ENG version.
+ // However, it is similar to 1060 quote in FRA, DEU, ESP and ITA versions
+ // with the only difference being not mentioning the "Hoodoo Rats" name.
+ // It uses a generic "rats" in its place.
Actor_Voice_Over(1080, kActorVoiceOver);
Actor_Voice_Over(1090, kActorVoiceOver);
} else {
diff --git a/engines/bladerunner/script/ai/free_slot_b.cpp b/engines/bladerunner/script/ai/free_slot_b.cpp
index e6cb0e2..72dd2f5 100644
--- a/engines/bladerunner/script/ai/free_slot_b.cpp
+++ b/engines/bladerunner/script/ai/free_slot_b.cpp
@@ -158,6 +158,10 @@ void AIScriptFreeSlotB::ClickedByPlayer() {
if (_vm->_cutContent && !Game_Flag_Query(kFlagMcCoyCommentsOnHoodooRats)) {
Game_Flag_Set(kFlagMcCoyCommentsOnHoodooRats);
Actor_Voice_Over(1060, kActorVoiceOver); // Hoodoo rats
+ // Note: Quote 1070 is *boop* in ENG version.
+ // However, it is similar to 1060 quote in FRA, DEU, ESP and ITA versions
+ // with the only difference being not mentioning the "Hoodoo Rats" name.
+ // It uses a generic "rats" in its place.
Actor_Voice_Over(1080, kActorVoiceOver);
Actor_Voice_Over(1090, kActorVoiceOver);
} else {
diff --git a/engines/bladerunner/script/kia_script.cpp b/engines/bladerunner/script/kia_script.cpp
index 7bed3ac..3bdd2be 100644
--- a/engines/bladerunner/script/kia_script.cpp
+++ b/engines/bladerunner/script/kia_script.cpp
@@ -84,6 +84,16 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
break;
case kClueLabCorpses:
KIA_Play_Actor_Dialogue(kActorKlein, 140);
+ // Similar fix to PS07:
+ // quote 150 is *boop* in ENG version
+ // it is redundant in DEU and FRA versions (identical to second half of quote 140)
+ // it is required in ESP and ITA versions. It is the missing second half of quote 140.
+ if (_vm->_cutContent
+ && (_vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA)
+ ) {
+ KIA_Play_Actor_Dialogue(kActorKlein, 150);
+ }
break;
case kClueLabShellCasings:
KIA_Play_Actor_Dialogue(kActorKlein, 50);
diff --git a/engines/bladerunner/script/scene/ps07.cpp b/engines/bladerunner/script/scene/ps07.cpp
index c94cf1c..86c1875 100644
--- a/engines/bladerunner/script/scene/ps07.cpp
+++ b/engines/bladerunner/script/scene/ps07.cpp
@@ -139,6 +139,15 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
Actor_Says(kActorKlein, 130, 15);
Actor_Says(kActorMcCoy, 4160, 13);
Actor_Says(kActorKlein, 140, 16);
+ // quote 150 is *boop* in ENG version
+ // it is redundant in DEU and FRA versions (identical to second half of quote 140)
+ // it is required in ESP and ITA versions. It is the missing second half of quote 140.
+ if (_vm->_cutContent
+ && (_vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA)
+ ) {
+ Actor_Says(kActorKlein, 150, kAnimationModeTalk);
+ }
Actor_Says(kActorMcCoy, 4165, 18);
Actor_Says(kActorKlein, 160, 13);
Actor_Says(kActorMcCoy, 4170, 19);
@@ -182,6 +191,14 @@ bool SceneScriptPS07::ClickedOnActor(int actorId) {
if (_vm->_cutContent) {
Actor_Says(kActorMcCoy, 4195, 13);
Actor_Says(kActorKlein, 240, 16); // Car VIN
+ // quote 250 is *boop* in ENG version
+ // it is redundant in DEU and FRA versions (identical to second half of quote 240)
+ // it is required in ESP and ITA versions. It is the missing second half of quote 240.
+ if (_vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA
+ ) {
+ Actor_Says(kActorKlein, 250, kAnimationModeTalk);
+ }
}
Actor_Set_Goal_Number(kActorKlein, kGoalKleinMovingInLab01);
return true;
diff --git a/engines/bladerunner/script/scene/rc01.cpp b/engines/bladerunner/script/scene/rc01.cpp
index c90ff65..ec9f874 100644
--- a/engines/bladerunner/script/scene/rc01.cpp
+++ b/engines/bladerunner/script/scene/rc01.cpp
@@ -218,9 +218,8 @@ void SceneScriptRC01::SceneLoaded() {
Actor_Voice_Over(1860, kActorVoiceOver);
#else
// Quote 1860 is muted in the DEU version
- // TODO: When mixing DEU voiceover with subtitles from other languages,
- // those subtitles would have to be merged with the previous quote
- // in order to show up in the DEU version
+ // The quote "No self-respecting human would own one of those frauds."
+ // is completely missing from the DEU sound files (it's not part of the previous quote)
if (_vm->_language != Common::DE_DEU) {
Actor_Voice_Over(1860, kActorVoiceOver);
}
diff --git a/engines/bladerunner/script/scene/rc02.cpp b/engines/bladerunner/script/scene/rc02.cpp
index 9595b51..426a3ce 100644
--- a/engines/bladerunner/script/scene/rc02.cpp
+++ b/engines/bladerunner/script/scene/rc02.cpp
@@ -184,6 +184,19 @@ bool SceneScriptRC02::ClickedOn3DObject(const char *objectName, bool a2) {
|| (Player_Query_Agenda() == kPlayerAgendaErratic && Random_Query(0, 1) == 1)
) {
Actor_Voice_Over(1940, kActorVoiceOver);
+ // Note: Quote 1950 is *boop* in ENG version
+ // However it is voiced in FRA, DEU, ESP and ITA versions
+ // In ESP and FRA this quote roughly translates to:
+ // "Seeing them slaughtered was worse than any of my nightmares."
+ // In DEU and ITA it seems to be the second (missing) half of the previous quote (1940)
+ // and it is required for those.
+ if (_vm->_language == Common::FR_FRA
+ || _vm->_language == Common::DE_DEU
+ || _vm->_language == Common::ES_ESP
+ || _vm->_language == Common::IT_ITA
+ ) {
+ Actor_Voice_Over(1950, kActorVoiceOver);
+ }
} else {
Actor_Voice_Over(9010, kActorMcCoy);
Actor_Voice_Over(9015, kActorMcCoy);
More information about the Scummvm-git-logs
mailing list