aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/saga/ite_introproc.cpp126
-rw-r--r--engines/saga/itedata.cpp73
-rw-r--r--engines/saga/saga.cpp4
-rw-r--r--engines/saga/scene.h1
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