diff options
-rw-r--r-- | engines/saga/ite_introproc.cpp | 126 | ||||
-rw-r--r-- | engines/saga/itedata.cpp | 73 | ||||
-rw-r--r-- | engines/saga/saga.cpp | 4 | ||||
-rw-r--r-- | engines/saga/scene.h | 1 |
4 files changed, 174 insertions, 30 deletions
diff --git a/engines/saga/ite_introproc.cpp b/engines/saga/ite_introproc.cpp index 1b74d41cb7..3e0c452ac7 100644 --- a/engines/saga/ite_introproc.cpp +++ b/engines/saga/ite_introproc.cpp @@ -44,6 +44,7 @@ namespace Saga { using Common::UNK_LANG; using Common::EN_ANY; using Common::DE_DEU; +using Common::IT_ITA; LoadSceneParams ITE_IntroList[] = { {RID_ITE_INTRO_ANIM_SCENE, kLoadByResourceId, NULL, Scene::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE}, @@ -100,7 +101,13 @@ Event *Scene::ITEQueueDialogue(Event *q_event, int n_dialogues, const IntroDialo textEntry.useRect = true; textEntry.rect.left = 0; textEntry.rect.right = _vm->getDisplayWidth(); - textEntry.rect.top = (_vm->getLanguage() == Common::DE_DEU) ? INTRO_DE_CAPTION_Y : INTRO_CAPTION_Y; + if (_vm->getLanguage() == Common::DE_DEU) { + textEntry.rect.top = INTRO_DE_CAPTION_Y; + } else if (_vm->getLanguage() == Common::IT_ITA) { + textEntry.rect.top = INTRO_IT_CAPTION_Y; + } else { + textEntry.rect.top = INTRO_CAPTION_Y; + } textEntry.rect.bottom = _vm->getDisplayHeight(); textEntry.font = kKnownFontMedium; textEntry.flags = (FontEffectFlags)(kFontOutline | kFontCentered); @@ -364,7 +371,12 @@ int Scene::SC_ITEIntroCave1Proc(int param, void *refCon) { int Scene::ITEIntroCave1Proc(int param) { Event event; Event *q_event; - int lang = (_vm->getLanguage() == Common::DE_DEU) ? 1 : 0; + int lang = 0; + + if (_vm->getLanguage() == Common::DE_DEU) + lang = 1; + else if (_vm->getLanguage() == Common::IT_ITA) + lang = 2; static const IntroDialogue dialogue[][4] = { { { // English @@ -407,6 +419,27 @@ int Scene::ITEIntroCave1Proc(int param) { "Sie kannten das Geheimnis des Fluges, das Geheimnis " "der Fr\224hlichkeit und andere Geheimnisse, die " "unsere Vorstellungskraft \201bersteigen." + } }, + { { // Italian fan translation + RID_CAVE_VOICE_0, + "Guardiamo il cielo, guardiamo la terra, guardiamo " + "l'acqua, e ci chiediamo: Siamo forse soli?" + }, + { + RID_CAVE_VOICE_1, + "Molto tempo prima che noi esistessimo, gli Umani " + "dominavano la terra." + }, + { + RID_CAVE_VOICE_2, + "Fecero cose meravigliose, e mossero intere " + "montagne." + }, + { + RID_CAVE_VOICE_3, + "Conoscevano il Segreto del Volo, il Segreto della " + "Felicit\224, ed altri segreti oltre ogni nostra " + "immaginazione." } } }; @@ -451,7 +484,12 @@ int Scene::SC_ITEIntroCave2Proc(int param, void *refCon) { int Scene::ITEIntroCave2Proc(int param) { Event event; Event *q_event; - int lang = (_vm->getLanguage() == Common::DE_DEU) ? 1 : 0; + int lang = 0; + + if (_vm->getLanguage() == Common::DE_DEU) + lang = 1; + else if (_vm->getLanguage() == Common::IT_ITA) + lang = 2; static const IntroDialogue dialogue[][3] = { { { // English @@ -482,6 +520,21 @@ int Scene::ITEIntroCave2Proc(int param) { { RID_CAVE_VOICE_6, "Wir sind ihre Kinder." + } }, + { { // Italian fan translation + RID_CAVE_VOICE_4, + "Gli Umani conoscevano anche il Segreto della Vita, " + "e lo usarono per darci i Quattro Grandi Doni:" + + }, + { + RID_CAVE_VOICE_5, + "Il pensiero, le emozioni, la parola e la manualit\224." + + }, + { + RID_CAVE_VOICE_6, + "Siamo i loro figli." } } }; @@ -533,7 +586,12 @@ int Scene::SC_ITEIntroCave3Proc(int param, void *refCon) { int Scene::ITEIntroCave3Proc(int param) { Event event; Event *q_event; - int lang = (_vm->getLanguage() == Common::DE_DEU) ? 1 : 0; + int lang = 0; + + if (_vm->getLanguage() == Common::DE_DEU) + lang = 1; + else if (_vm->getLanguage() == Common::IT_ITA) + lang = 2; static const IntroDialogue dialogue[][3] = { { { // English @@ -564,6 +622,22 @@ int Scene::ITEIntroCave3Proc(int param) { "Sie liebten uns, und w\204ren wir bereit gewesen, " "h\204tten sie uns sicherlich das Geheimnis der " "Fr\224hlichkeit offenbart." + } }, + { { // Italian fan translation + RID_CAVE_VOICE_7, + "Ci insegnarono come usare le mani e come parlare. " + + }, + { + RID_CAVE_VOICE_8, + "Ci mostrarono le gioie che l'uso della mente " + "pu\242 dare. " + }, + { + RID_CAVE_VOICE_9, + "Ci amarono, ed una volta pronti, ci avrebbero " + "sicuramente svelato il Segreto della Felicit\224." + } } }; @@ -615,7 +689,12 @@ int Scene::SC_ITEIntroCave4Proc(int param, void *refCon) { int Scene::ITEIntroCave4Proc(int param) { Event event; Event *q_event; - int lang = (_vm->getLanguage() == Common::DE_DEU) ? 1 : 0; + int lang = 0; + + if (_vm->getLanguage() == Common::DE_DEU) + lang = 1; + else if (_vm->getLanguage() == Common::IT_ITA) + lang = 2; static const IntroDialogue dialogue[][4] = { { { // English @@ -655,6 +734,26 @@ int Scene::ITEIntroCave4Proc(int param) { RID_CAVE_VOICE_13, "Und wird uns eines Tages das gleiche Schicksal " "ereilen?" + } }, + { { // Italian fan translation + RID_CAVE_VOICE_10, + "Ed ora che guardiamo il cielo, la terra e l'acqua " + "che abbiamo ereditato, pensiamo: Perch\233 partirono?" + + }, + { + RID_CAVE_VOICE_11, + "Vivono ancora, nelle stelle? Nelle profondit\224 " + "dell'oceano? Nel vento?" + }, + { + RID_CAVE_VOICE_12, + "Ci domandiamo, il loro destino fu felice o nefasto?" + }, + { + RID_CAVE_VOICE_13, + "E un giorno, condivideremo anche noi lo stesso " + "destino?" } } }; @@ -710,13 +809,16 @@ int Scene::ITEIntroValleyProc(int param) { static const IntroCredit credits[] = { {EN_ANY, kITEAny, kCHeader, "Producer"}, {DE_DEU, kITEAny, kCHeader, "Produzent"}, + {IT_ITA, kITEAny, kCHeader, "Produttore"}, {UNK_LANG, kITEAny, kCText, "Walter Hochbrueckner"}, {EN_ANY, kITEAny, kCHeader, "Executive Producer"}, {DE_DEU, kITEAny, kCHeader, "Ausf\201hrender Produzent"}, + {IT_ITA, kITEAny, kCHeader, "Produttore Esecutivo"}, {UNK_LANG, kITEAny, kCText, "Robert McNally"}, {UNK_LANG, kITEWyrmKeep, kCHeader, "2nd Executive Producer"}, {EN_ANY, kITENotWyrmKeep, kCHeader, "Publisher"}, {DE_DEU, kITENotWyrmKeep, kCHeader, "Herausgeber"}, + {IT_ITA, kITENotWyrmKeep, kCHeader, "Editore"}, {UNK_LANG, kITEAny, kCText, "Jon Van Caneghem"} }; @@ -810,13 +912,17 @@ int Scene::ITEIntroTreeHouseProc(int param) { static const IntroCredit credits1[] = { {EN_ANY, kITEAny, kCHeader, "Game Design"}, {DE_DEU, kITEAny, kCHeader, "Spielentwurf"}, + {IT_ITA, kITEAny, kCHeader, "Progetto"}, {UNK_LANG, kITEAny, kCText, "Talin, Joe Pearce, Robert McNally"}, {EN_ANY, kITEAny, kCText, "and Carolly Hauksdottir"}, {DE_DEU, kITEAny, kCText, "und Carolly Hauksdottir"}, + {IT_ITA, kITEAny, kCText, "e Carolly Hauksdottir"}, {EN_ANY, kITEAny, kCHeader, "Screenplay and Dialog"}, {EN_ANY, kITEAny, kCText, "Robert Leh, Len Wein, and Bill Rotsler"}, {DE_DEU, kITEAny, kCHeader, "Geschichte und Dialoge"}, - {DE_DEU, kITEAny, kCText, "Robert Leh, Len Wein und Bill Rotsler"} + {DE_DEU, kITEAny, kCText, "Robert Leh, Len Wein und Bill Rotsler"}, + {IT_ITA, kITEAny, kCHeader, "Sceneggiatura e Dialoghi"}, + {IT_ITA, kITEAny, kCText, "Robert Leh, Len Wein e Bill Rotsler"} }; int n_credits1 = ARRAYSIZE(credits1); @@ -826,16 +932,20 @@ int Scene::ITEIntroTreeHouseProc(int param) { {UNK_LANG, kITEWyrmKeep, kCText, "Allison Hershey"}, {EN_ANY, kITEAny, kCHeader, "Art"}, {DE_DEU, kITEAny, kCHeader, "Grafiken"}, + {IT_ITA, kITEAny, kCHeader, "Grafica"}, {UNK_LANG, kITEWyrmKeep, kCText, "Ed Lacabanne, Glenn Price, April Lee,"}, {UNK_LANG, kITENotWyrmKeep, kCText, "Edward Lacabanne, Glenn Price, April Lee,"}, {UNK_LANG, kITEWyrmKeep, kCText, "Lisa Sample, Brian Dowrick, Reed Waller,"}, {EN_ANY, kITEWyrmKeep, kCText, "Allison Hershey and Talin"}, {DE_DEU, kITEWyrmKeep, kCText, "Allison Hershey und Talin"}, + {IT_ITA, kITEWyrmKeep, kCText, "Allison Hershey e Talin"}, {EN_ANY, kITENotWyrmKeep, kCText, "Lisa Iennaco, Brian Dowrick, Reed"}, {EN_ANY, kITENotWyrmKeep, kCText, "Waller, Allison Hershey and Talin"}, {DE_DEU, kITEAny, kCText, "Waller, Allison Hershey und Talin"}, + {IT_ITA, kITEAny, kCText, "Waller, Allison Hershey e Talin"}, {EN_ANY, kITENotWyrmKeep, kCHeader, "Art Direction"}, {DE_DEU, kITENotWyrmKeep, kCHeader, "Grafische Leitung"}, + {IT_ITA, kITENotWyrmKeep, kCHeader, "Direzione Grafica"}, {UNK_LANG, kITENotWyrmKeep, kCText, "Allison Hershey"} }; @@ -897,15 +1007,18 @@ int Scene::ITEIntroFairePathProc(int param) { static const IntroCredit credits1[] = { {EN_ANY, kITEAny, kCHeader, "Programming"}, {DE_DEU, kITEAny, kCHeader, "Programmiert von"}, + {IT_ITA, kITEAny, kCHeader, "Programmazione"}, {UNK_LANG, kITEAny, kCText, "Talin, Walter Hochbrueckner,"}, {EN_ANY, kITEAny, kCText, "Joe Burks and Robert Wiggins"}, {DE_DEU, kITEAny, kCText, "Joe Burks und Robert Wiggins"}, + {IT_ITA, kITEAny, kCText, "Joe Burks e Robert Wiggins"}, {EN_ANY, kITEPCCD | kITEWyrmKeep, kCHeader, "Additional Programming"}, {EN_ANY, kITEPCCD | kITEWyrmKeep, kCText, "John Bolton"}, {UNK_LANG, kITEMac, kCHeader, "Macintosh Version"}, {UNK_LANG, kITEMac, kCText, "Michael McNally and Robert McNally"}, {EN_ANY, kITEAny, kCHeader, "Music and Sound"}, {DE_DEU, kITEAny, kCHeader, "Musik und Sound"}, + {IT_ITA, kITEAny, kCHeader, "Musica e Sonoro"}, {UNK_LANG, kITEAny, kCText, "Matt Nathan"} }; @@ -914,6 +1027,7 @@ int Scene::ITEIntroFairePathProc(int param) { static const IntroCredit credits2[] = { {EN_ANY, kITEAny, kCHeader, "Directed by"}, {DE_DEU, kITEAny, kCHeader, "Regie"}, + {IT_ITA, kITEAny, kCHeader, "Regia"}, {UNK_LANG, kITEAny, kCText, "Talin"} }; diff --git a/engines/saga/itedata.cpp b/engines/saga/itedata.cpp index 68f51c0c25..f949d2e2a5 100644 --- a/engines/saga/itedata.cpp +++ b/engines/saga/itedata.cpp @@ -377,6 +377,26 @@ const char *ITEinterfaceTextStrings[][52] = { "Text zeigen", "Wie lautet die Antwort?" }, + // Italian fan translation + { + "Vai verso", "Guarda", "Prendi", "Parla con", "Apri", + "Chiudi", "Usa", "Dai", "Opzioni", "Test", + "Demo", "Aiuto", "Uscire", "Veloce", "Lento", + "On", "Off", "Continua il Gioco", "Carica", "Salva", + "Controlli", "Velocit\224 testo", "Musica", "Suoni", "Annulla", + "Fine", "OK", "Med", "Click", "10%", + "20%", "30%", "40%", "50%", "60%", + "70%", "80%", "90%", "Max", "Terminare il Gioco?", + "Caricamento OK!", "Immettere un nome", "Dai %s a %s", "Usa %s con %s", + "[Nuovo Salvataggio]", + "Non posso raccoglierlo.", + "Non ci vedo nulla di speciale.", + "Non c'\232 posto per aprirlo.", + "Nessuna apertura da chiudere.", + "Non saprei come farlo.", + "Dialoghi", + "Come risponderebbe Rif?" + }, // Spanish IHNM { NULL, NULL, NULL, NULL, NULL, @@ -398,28 +418,7 @@ const char *ITEinterfaceTextStrings[][52] = { NULL, NULL, NULL - }, - // Italian fan translation of IHNM - { - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, "Uscire?", - "Load Successful!", "Nome del salvataggio", "Dai %s a %s", "Usa %s con %s", - // This was left untouched in the Italian fan translation - "[New Save Game]", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL - }, + } }; Point pieceOrigins[PUZZLE_PIECES] = { @@ -448,6 +447,10 @@ const char *pieceNames[][PUZZLE_PIECES] = { { "Schraubendreher", "Zange", "Schraubzwinge", "Holzzwinge", "Wasserwaage", "Bindfaden", "Hobel", "Schusterhammer", "Bandma$", "Beil", "Schere", "Winkel", "S\204ge", "Hammer", "Pinsel" + }, + { "cacciavite", "pinze", "morsa", "morsa da legno", "livella", + "spago", "pialla", "martello", "metro a nastro", "accetta", + "cesoie", "righello", "sega", "mazza", "pennello" } }; @@ -461,6 +464,11 @@ const char *hintStr[][4] = { "Schau, in welche Ecke die wenigsten Teile passen, und fang dort an.", "Untersuche jede Ecke und jede Seite auf Teile, die dort passen k\224nnen.", "Ich sehe nichts an der falschen Stelle." + }, + { "Controlla prima quali pezzi si inseriscono meglio in ogni angolo.", + "Controlla quale angolo ha il minor numero di pezzi che combaciano, e parti da quello.", + "Controlla ogni nuovo angolo e lato per ogni pezzo che combacia.", + "Non vedo nulla fuori posto." } }; @@ -476,6 +484,12 @@ const char *solicitStr[][NUM_SOLICIT_REPLIES] = { "\231hm...\216hm..." "Psst! \047n Tip vielleicht?" "Ja, wei$t Du... ich h\204tte das anders gemacht." + }, + { "Hey, Volpe! Serve un suggerimento?", + "Hai bisogno di aiuto?", + "Umm...Umm...", + "Psst! Serve un aiutino?", + "Io, sai, l'avrei fatto diversamente." } }; @@ -495,6 +509,10 @@ const char *sakkaStr[][NUM_SAKKA] = { { "Hey, Du darfst dem Pr\201fling nicht helfen!", "Hallo?! Dies soll eine Pr\201fung sein!", "Also, Jungs. Schummeln steht nicht in den Regeln!" + }, + { "Hey, non si dovrebbero aiutare i candidati!", + "Ragazzi! Questo dovrebbe essere un test!", + "Forza ragazzi, non si pu\242!" } }; @@ -510,6 +528,12 @@ const char *whineStr[][NUM_WHINES] = { "Seufz..." "Ich glaube, Du hast ein Brett vor dem Kopf, Sakka!", "Hm, ich kann mich an keine Regel erinnern, die Tips verbietet." + }, + { "Ooo, suvvia Sakka!", + "Un indizio non guaster\224, no?", + "Sigh...", + "Credo che questa faccenda ti abbia dato alla testa, Sakka!", + "Beh, non ricordo regole specifiche contro i suggerimenti." } }; @@ -523,6 +547,11 @@ const char *optionsStr[][4] = { "\"Ja, ich m\224chte einen Tip, bitte.\"", "\"Nein danke, ich m\224chte das alleine l\224sen.\"", "Pssst... %s... falsche Stelle..." + }, + { "\"Far\242 questo puzzle pi\249 tardi.\"", + "\"Si, grazie. Ne avrei bisogno.\"", + "\"No, grazie, voglio provare a risolverlo da solo.\"", + "penso che la tessera %s sia nel posto sbagliato." } }; diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp index 495a0c6332..567491b481 100644 --- a/engines/saga/saga.cpp +++ b/engines/saga/saga.cpp @@ -395,10 +395,10 @@ const char *SagaEngine::getTextString(int textStringId) { case Common::DE_DEU: lang = 1; break; - case Common::ES_ESP: + case Common::IT_ITA: lang = 2; break; - case Common::IT_ITA: + case Common::ES_ESP: lang = 3; break; default: diff --git a/engines/saga/scene.h b/engines/saga/scene.h index c064457923..4e3e67842e 100644 --- a/engines/saga/scene.h +++ b/engines/saga/scene.h @@ -187,6 +187,7 @@ typedef Common::List<LoadSceneParams> SceneQueueList; #define INTRO_CAPTION_Y 170 #define INTRO_DE_CAPTION_Y 160 +#define INTRO_IT_CAPTION_Y 160 #define VOICE_PAD 50 #define VOICE_LETTERLEN 90 |