aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorThierry Crozat2012-06-26 21:19:16 +0100
committerThierry Crozat2012-06-26 21:20:24 +0100
commit7705c13cc41ba9b4c82d2f061cc42a84f004719e (patch)
treed892ee96b62d2f6ea200075eb0f23ccf59b17fba /engines
parentc2aabea6faa6fc4a056000aa55859526b0c72034 (diff)
downloadscummvm-rg350-7705c13cc41ba9b4c82d2f061cc42a84f004719e.tar.gz
scummvm-rg350-7705c13cc41ba9b4c82d2f061cc42a84f004719e.tar.bz2
scummvm-rg350-7705c13cc41ba9b4c82d2f061cc42a84f004719e.zip
SWORD1: Add workaround for missing subtitles in the demo
Diffstat (limited to 'engines')
-rw-r--r--engines/sword1/objectman.cpp217
-rw-r--r--engines/sword1/objectman.h16
2 files changed, 231 insertions, 2 deletions
diff --git a/engines/sword1/objectman.cpp b/engines/sword1/objectman.cpp
index d3890cc1fc..f3c83c1656 100644
--- a/engines/sword1/objectman.cpp
+++ b/engines/sword1/objectman.cpp
@@ -107,6 +107,7 @@ char *ObjectMan::lockText(uint32 textId) {
warning("Missing translation for textId %u (\"%s\")", textId, text);
unlockText(textId, BS1_ENGLISH);
}
+
return _missingSubTitleStr;
}
return text;
@@ -118,6 +119,42 @@ char *ObjectMan::lockText(uint32 textId, uint8 lang) {
return NULL;
addr += sizeof(Header);
if ((textId & ITM_ID) >= _resMan->readUint32(addr)) {
+ // Workaround for missing sentences in some langages in the demo.
+ switch(textId) {
+ case 8455194:
+ return const_cast<char *>(_translationId8455194[lang]);
+ case 8455195:
+ return const_cast<char *>(_translationId8455195[lang]);
+ case 8455196:
+ return const_cast<char *>(_translationId8455196[lang]);
+ case 8455197:
+ return const_cast<char *>(_translationId8455197[lang]);
+ case 8455198:
+ return const_cast<char *>(_translationId8455198[lang]);
+ case 8455199:
+ return const_cast<char *>(_translationId8455199[lang]);
+ case 8455200:
+ return const_cast<char *>(_translationId8455200[lang]);
+ case 8455201:
+ return const_cast<char *>(_translationId8455201[lang]);
+ case 8455202:
+ return const_cast<char *>(_translationId8455202[lang]);
+ case 8455203:
+ return const_cast<char *>(_translationId8455203[lang]);
+ case 8455204:
+ return const_cast<char *>(_translationId8455204[lang]);
+ case 8455205:
+ return const_cast<char *>(_translationId8455205[lang]);
+ case 6488080:
+ return const_cast<char *>(_translationId6488080[lang]);
+ case 6488081:
+ return const_cast<char *>(_translationId6488081[lang]);
+ case 6488082:
+ return const_cast<char *>(_translationId6488082[lang]);
+ case 6488083:
+ return const_cast<char *>(_translationId6488083[lang]);
+ }
+
warning("ObjectMan::lockText(%d): only %d texts in file", textId & ITM_ID, _resMan->readUint32(addr));
return NULL;
}
@@ -127,7 +164,7 @@ char *ObjectMan::lockText(uint32 textId, uint8 lang) {
// We use the hardcoded text in this case.
if (textId == 2950145)
return const_cast<char *>(_translationId2950145[lang]);
-
+
warning("ObjectMan::lockText(%d): text number has no text lines", textId);
return NULL;
}
@@ -204,7 +241,183 @@ const char *const ObjectMan::_translationId2950145[7] = {
"Eh?", // Italian
"\277Eh?", // Spanish
"Ano?", // Czech
- " " // Portuguese
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455194 (in the demo).
+const char *const ObjectMan::_translationId8455194[7] = {
+ NULL, // "Who was the guy you were supposed to meet?", // English (not needed)
+ "Qui \351tait l'homme que vous deviez rencontrer?", // French
+ "Wer war der Typ, den Du treffen wolltest?", // German
+ "Chi dovevi incontrare?", // Italian
+ "\277Qui\351n era el hombre con el que ten\355as que encontrarte?", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455195 (in the demo).
+const char *const ObjectMan::_translationId8455195[7] = {
+ NULL, // "His name was Plantard. I didn't know him, but he called me last night.", // English (not needed)
+ "Son nom \351tait Plantard. Je ne le connaissais pas, mais il m'avait t\351l\351phon\351 la veille.", // French
+ "Sein Name war Plantard. Ich kannte ihn nicht, aber er hat mich letzte Nacht angerufen.", // German
+ "Si chiamava Plantard. Mi ha chiamato ieri sera, ma non lo conoscevo.", // Italian
+ "Su nombre era Plantard. Yo no lo conoc\355a pero \351l me llam\363 ayer por la noche.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455196 (in the demo).
+const char *const ObjectMan::_translationId8455196[7] = {
+ NULL, // "He said he had a story which would interest me.", // English (not needed)
+ "Il a dit qu'il avait une histoire qui devrait m'int\351resser.", // French
+ "Er sagte, er h\344tte eine Story, die mich interessieren w\374rde.", // German
+ "Mi disse che aveva una storia che mi poteva interessare.", // Italian
+ "Dijo que ten\355a una historia que me interesar\355a.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455197 (in the demo).
+const char *const ObjectMan::_translationId8455197[7] = {
+ NULL, // "He asked me to meet him at the caf\351.", // English (not needed)
+ "Il m'a demand\351 de le rencontrer au caf\351.", // French
+ "Er fragte mich, ob wir uns im Caf\351 treffen k\366nnten.", // German
+ "Mi chiese di incontrarci al bar.", // Italian
+ "Me pidi\363 que nos encontr\341ramos en el caf\351.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455198 (in the demo).
+const char *const ObjectMan::_translationId8455198[7] = {
+ NULL, // "I guess I'll never know what he wanted to tell me...", // English (not needed)
+ "Je suppose que je ne saurai jamais ce qu'il voulait me dire...", // French
+ "Ich werde wohl nie erfahren, was er mir sagen wollte...", // German
+ "Penso che non sapr\362 mai che cosa voleva dirmi...", // Italian
+ "Supongo que nunca sabr\351 qu\351 me quer\355a contar...", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455199 (in the demo).
+const char *const ObjectMan::_translationId8455199[7] = {
+ NULL, // "Not unless you have Rosso's gift for psychic interrogation.", // English (not needed)
+ "Non, \340 moins d'avoir les dons de Rosso pour les interrogatoires psychiques.", // French
+ "Es sei denn, Du h\344ttest Rosso's Gabe der parapsychologischen Befragung.", // German
+ "A meno che tu non riesca a fare interrogatori telepatici come Rosso.", // Italian
+ "A no ser que tengas el don de Rosso para la interrogaci\363n ps\355quica.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455200 (in the demo).
+const char *const ObjectMan::_translationId8455200[7] = {
+ NULL, // "How did Plantard get your name?", // English (not needed)
+ "Comment Plantard a-t-il obtenu votre nom?", // French
+ "Woher hat Plantard Deinen Namen?", // German
+ "Come ha fatto Plantard a sapere il tuo nome?", // Italian
+ "\277C\363mo consigui\363 Plantard tu nombre?", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455201 (in the demo).
+const char *const ObjectMan::_translationId8455201[7] = {
+ NULL, // "Through the newspaper - La Libert\351.", // English (not needed)
+ "Par mon journal... La Libert\351.", // French
+ "\334ber die Zeitung - La Libert\351.", // German
+ "Tramite il giornale La Libert\351.", // Italian
+ "Por el peri\363dico - La Libert\351.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455202 (in the demo).
+const char *const ObjectMan::_translationId8455202[7] = {
+ NULL, // "I'd written an article linking two unsolved murders, one in Italy, the other in Japan.", // English (not needed)
+ "J'ai \351crit un article o\371 je faisais le lien entre deux meurtres inexpliqu\351s, en Italie et au japon.", // French
+ "Ich habe einen Artikel geschrieben, in dem ich zwei ungel\366ste Morde miteinander in Verbindung bringe, einen in Italien, einen anderen in Japan.", // German
+ "Ho scritto un articolo che metteva in collegamento due omicidi insoluti in Italia e Giappone.", // Italian
+ "Yo hab\355a escrito un art\355culo conectando dos asesinatos sin resolver, uno en Italia, el otro en Jap\363n.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455203 (in the demo).
+const char *const ObjectMan::_translationId8455203[7] = {
+ NULL, // "The cases were remarkably similar...", // English (not needed)
+ "Les affaires \351taient quasiment identiques...", // French
+ "Die F\344lle sind sich bemerkenswert \344hnlich...", // German
+ "I casi erano sorprendentemente uguali...", // Italian
+ "Los casos eran incre\355blemente parecidos...", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455204 (in the demo).
+const char *const ObjectMan::_translationId8455204[7] = {
+ NULL, // "...a wealthy victim, no apparent motive, and a costumed killer.", // English (not needed)
+ "...une victime riche, pas de motif apparent, et un tueur d\351guis\351.", // French
+ "...ein wohlhabendes Opfer, kein offensichtliches Motiv, und ein verkleideter Killer.", // German
+ "...una vittima ricca, nessun motivo apparente e un assassino in costume.", // Italian
+ "...una v\355ctima rica, sin motivo aparente, y un asesino disfrazado.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 8455205 (in the demo).
+const char *const ObjectMan::_translationId8455205[7] = {
+ NULL, // "Plantard said he could supply me with more information.", // English (not needed)
+ "Plantard m'a dit qu'il pourrait me fournir des renseignements.", // French
+ "Plantard sagte, er k\366nne mir weitere Informationen beschaffen.", // German
+ "Plantard mi disse che mi avrebbe fornito ulteriori informazioni.", // Italian
+ "Plantard dijo que \351l me pod\355a proporcionar m\341s informaci\363n.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 6488080 (in the demo).
+const char *const ObjectMan::_translationId6488080[7] = {
+ NULL, // "I wasn't going to head off all over Paris until I'd investigated some more.", // English (not needed)
+ "Je ferais mieux d'enqu\351ter un peu par ici avant d'aller me promener ailleurs.", // French
+ "Ich durchquere nicht ganz Paris, bevor ich etwas mehr herausgefunden habe.", // German
+ "Non mi sarei incamminato per tutta Parigi prima di ulteriori indagini.", // Italian
+ "No iba a ponerme a recorrer Par\355s sin haber investigado un poco m\341s.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 6488081 (in the demo).
+const char *const ObjectMan::_translationId6488081[7] = {
+ NULL, // "I wasn't sure what I was going to do when I caught up with that clown...", // English (not needed)
+ "Je ne savais pas ce que je ferais quand je rattraperais le clown...", // French
+ "Ich wu\337te nicht, worauf ich mich einlie\337, als ich dem Clown nachjagte...", // German
+ "Non sapevo cosa avrei fatto una volta raggiunto quel clown...", // Italian
+ "No sab\355a muy bien qu\351 es lo que har\355a cuando alcanzara al payaso...", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 6488082 (in the demo).
+const char *const ObjectMan::_translationId6488082[7] = {
+ NULL, // "...but before I knew it, I was drawn into a desperate race between two ruthless enemies.", // English (not needed)
+ "...mais avant de m'en rendre compte je me retrouvais happ\351 dans une course effr\351n\351e entre deux ennemis impitoyables.", // French
+ "... doch bevor ich mich versah, war ich inmitten eines Wettlaufs von zwei r\374cksichtslosen Feinden.", // German
+ "... ma prima che me ne rendessi conto, fui trascinato in una corsa disperata con due spietati nemici.", // Italian
+ "...pero sin darme cuenta, acab\351 en medio de una desesperada carrera entre dos despiadados enemigos.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
+};
+
+// Missing translation for textId 6488083 (in the demo).
+const char *const ObjectMan::_translationId6488083[7] = {
+ NULL, // "The goal: the mysterious power of the Broken Sword.", // English (not needed)
+ "Le but: les pouvoirs myst\351rieux de l'\351p\351e bris\351e.", // French
+ "Das Ziel: die geheimnisvolle Macht des zerbrochenen Schwertes.", // German
+ "Obiettivo: il misterioso potere della Spada spezzata.", // Italian
+ "El objetivo: el misterioso poder de la Espada Rota.", // Spanish
+ NULL, // Czech
+ NULL // Portuguese
};
} // End of namespace Sword1
diff --git a/engines/sword1/objectman.h b/engines/sword1/objectman.h
index cce360573a..197b437c15 100644
--- a/engines/sword1/objectman.h
+++ b/engines/sword1/objectman.h
@@ -63,6 +63,22 @@ private:
uint8 *_cptData[TOTAL_SECTIONS];
static char _missingSubTitleStr[];
static const char *const _translationId2950145[7]; //translation for textId 2950145 (missing from cluster file for some langages)
+ static const char *const _translationId8455194[7]; //translation for textId 8455194 (missing in the demo)
+ static const char *const _translationId8455195[7]; //translation for textId 8455195 (missing in the demo)
+ static const char *const _translationId8455196[7]; //translation for textId 8455196 (missing in the demo)
+ static const char *const _translationId8455197[7]; //translation for textId 8455197 (missing in the demo)
+ static const char *const _translationId8455198[7]; //translation for textId 8455198 (missing in the demo)
+ static const char *const _translationId8455199[7]; //translation for textId 8455199 (missing in the demo)
+ static const char *const _translationId8455200[7]; //translation for textId 8455200 (missing in the demo)
+ static const char *const _translationId8455201[7]; //translation for textId 8455201 (missing in the demo)
+ static const char *const _translationId8455202[7]; //translation for textId 8455202 (missing in the demo)
+ static const char *const _translationId8455203[7]; //translation for textId 8455203 (missing in the demo)
+ static const char *const _translationId8455204[7]; //translation for textId 8455204 (missing in the demo)
+ static const char *const _translationId8455205[7]; //translation for textId 8455205 (missing in the demo)
+ static const char *const _translationId6488080[7]; //translation for textId 6488081 (missing in the demo)
+ static const char *const _translationId6488081[7]; //translation for textId 6488081 (missing in the demo)
+ static const char *const _translationId6488082[7]; //translation for textId 6488082 (missing in the demo)
+ static const char *const _translationId6488083[7]; //translation for textId 6488083 (missing in the demo)
};
} // End of namespace Sword1