[Scummvm-git-logs] scummvm master -> 0df39b75022d0e6a2b81296e34ca62f98f20c15d
bluegr
noreply at scummvm.org
Thu Mar 10 23:22:04 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
0df39b7502 SAGA: Unify language index for all hardcoded strings
Commit: 0df39b75022d0e6a2b81296e34ca62f98f20c15d
https://github.com/scummvm/scummvm/commit/0df39b75022d0e6a2b81296e34ca62f98f20c15d
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-03-11T01:21:34+02:00
Commit Message:
SAGA: Unify language index for all hardcoded strings
Changed paths:
engines/saga/introproc_ite.cpp
engines/saga/itedata.cpp
engines/saga/puzzle.cpp
engines/saga/saga.cpp
engines/saga/saga.h
diff --git a/engines/saga/introproc_ite.cpp b/engines/saga/introproc_ite.cpp
index 58020a014ae..4b49a0b31ab 100644
--- a/engines/saga/introproc_ite.cpp
+++ b/engines/saga/introproc_ite.cpp
@@ -395,22 +395,7 @@ int Scene::ITEIntroCaveCommonProc(int param, int caveScene) {
Event event;
EventColumns *eventColumns = nullptr;
const IntroDialogue *dialogue;
-
- int lang = 0;
-
- if (_vm->getLanguage() == Common::DE_DEU)
- lang = 1;
- else if (_vm->getLanguage() == Common::IT_ITA)
- lang = 2;
- else if (_vm->getLanguage() == Common::FR_FRA)
- lang = 3;
- else if (_vm->getLanguage() == Common::JA_JPN)
- lang = 4;
- else if (_vm->getLanguage() == Common::RU_RUS)
- lang = 5;
- else if (_vm->getLanguage() == Common::HE_ISR)
- lang = 6;
-
+ int lang = _vm->getLanguageIndex();
int n_dialogues = 0;
switch (caveScene) {
diff --git a/engines/saga/itedata.cpp b/engines/saga/itedata.cpp
index d4f89b93ce7..3eb8f5a754f 100644
--- a/engines/saga/itedata.cpp
+++ b/engines/saga/itedata.cpp
@@ -336,6 +336,7 @@ IteFxTable ITE_SfxTable[ITE_SFXCOUNT] = {
};
const char *ITEinterfaceTextStrings[][53] = {
+ // English
{
// Note that the "Load Successful!" string is never used in ScummVM
"Walk to", "Look At", "Pick Up", "Talk to", "Open",
@@ -422,50 +423,6 @@ const char *ITEinterfaceTextStrings[][53] = {
NULL,
"Cardango una partida guardada"
},
- // Russian IHNM & ITE fan translations
- {
- // "ÐдÑи", "ÐÑмоÑÑеÑÑ", "ÐзÑÑÑ", "ÐовоÑиÑÑ", "ÐÑкÑÑÑÑ",
- "\xC8\xE4\xF2\xE8", "\xCE\xF1\xEC\xEE\xF2\xF0\xE5\xF2\xFC", "\xC2\xE7\xFF\xF2\xFC", "\xC3\xEE\xE2\xEE\xF0\xE8\xF2\xFC", "\xCE\xF2\xEA\xF0\xFB\xF2\xFC",
- // "ÐакÑÑÑÑ", "ÐÑимениÑÑ", "ÐаÑÑ", "ÐаÑÑÑойки", "ТеÑÑ",
- "\xC7\xE0\xEA\xF0\xFB\xF2\xFC", "\xCF\xF0\xE8\xEC\xE5\xED\xE8\xF2\xFC", "\xC4\xE0\xF2\xFC", "\xCD\xE0\xF1\xF2\xF0\xEE\xE9\xEA\xE8", "\xD2\xE5\xF1\xF2",
- // "Demo", "ÐомоÑÑ", "ÐÑйÑи из игÑÑ", "ÐЫСТ", "ÐÐÐÐ",
- "Demo", "\xCF\xEE\xEC\xEE\xF9\xFC", "\xC2\xFB\xE9\xF2\xE8 \xE8\xE7 \xE8\xE3\xF0\xFB", "\xC1\xDB\xD1\xD2", "\xCC\xC5\xC4\xCB",
- // "ÐÐÐ", "ÐЫÐÐ", "ÐÑодолжиÑÑ", "ЧÑение", "ÐапиÑÑ",
- "\xC2\xCA\xCB", "\xC2\xDB\xCA\xCB", "\xCF\xF0\xEE\xE4\xEE\xEB\xE6\xE8\xF2\xFC", "\xD7\xF2\xE5\xED\xE8\xE5", "\xC7\xE0\xEF\xE8\xF1\xFC",
- // "ÐаÑÑÑойки игÑÑ", "СÑбÑиÑÑÑ", "ÐÑзÑка", "ÐвÑк", "ÐÑмена",
- "\xCD\xE0\xF1\xF2\xF0\xEE\xE9\xEA\xE8 \xE8\xE3\xF0\xFB", "\xD1\xF3\xE1\xF2\xE8\xF2\xF0\xFB", "\xCC\xF3\xE7\xFB\xEA\xE0", "\xC7\xE2\xF3\xEA", "\xCE\xF2\xEC\xE5\xED\xE0",
- // "ÐÑÑ
од", "OK", "СРÐ", "ÐÑÑÑ", "10%",
- "\xC2\xFB\xF5\xEE\xE4", "OK", "\xD1\xD0\xC4", "\xCC\xFB\xF8\xFC", "10%",
- "20%", "30%", "40%", "50%", "60%",
- // "70%", "80%", "90%", "ÐÐÐС", "ÐÑйÑи из игÑÑ?",
- "70%", "80%", "90%", "\xCC\xC0\xCA\xD1", "\xC2\xFB\xE9\xF2\xE8 \xE8\xE7 \xE8\xE3\xF0\xFB?",
- // "ÐгÑа загÑÑжена!",
- "\xC8\xE3\xF0\xE0 \xE7\xE0\xE3\xF0\xF3\xE6\xE5\xED\xE0!",
- // "ÐведиÑе Ð¸Ð¼Ñ Ð·Ð°Ð¿Ð¸Ñи",
- "\xC2\xE2\xE5\xE4\xE8\xF2\xE5 \xE8\xEC\xFF \xE7\xE0\xEF\xE8\xF1\xE8",
- // "ÐаÑÑ -> %s -> %s",
- "\xC4\xE0\xF2\xFC -> %s -> %s",
- // "ÐÑполÑзоваÑÑ %s >> %s",
- "\xC8\xF1\xEF\xEE\xEB\xFC\xE7\xEE\xE2\xE0\xF2\xFC %s >> %s", //two different lines for IHNM & ITE; check in saga.cpp, SagaEngine::getTextString()
- // "[ÐÐ¾Ð²Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ]",
- "[\xCD\xEE\xE2\xE0\xFF \xE7\xE0\xEF\xE8\xF1\xFC]",
- // "Я не Ð¼Ð¾Ð³Ñ ÑÑо взÑÑÑ.",
- "\xDF \xED\xE5 \xEC\xEE\xE3\xF3 \xFD\xF2\xEE \xE2\xE7\xFF\xF2\xFC.",
- // "ÐиÑего оÑобенного.",
- "\xCD\xE8\xF7\xE5\xE3\xEE \xEE\xF1\xEE\xE1\xE5\xED\xED\xEE\xE3\xEE.",
- // "ÐдеÑÑ Ð½ÐµÑего оÑкÑÑваÑÑ.",
- "\xC7\xE4\xE5\xF1\xFC \xED\xE5\xF7\xE5\xE3\xEE \xEE\xF2\xEA\xF0\xFB\xE2\xE0\xF2\xFC.",
- // "ÐдеÑÑ Ð½ÐµÑего закÑÑÑÑ.",
- "\xC7\xE4\xE5\xF1\xFC \xED\xE5\xF7\xE5\xE3\xEE \xE7\xE0\xEA\xF0\xFB\xF2\xFC.",
- // "Я не знаÑ, как ÑÑо ÑделаÑÑ.",
- "\xDF \xED\xE5 \xE7\xED\xE0\xFE, \xEA\xE0\xEA \xFD\xF2\xEE \xF1\xE4\xE5\xEB\xE0\xF2\xFC.",
- // "СÑбÑиÑÑÑ",
- "\xD1\xF3\xE1\xF2\xE8\xF2\xF0\xFB",
- // "ЧÑо ÑÐºÐ°Ð¶ÐµÑ Ð Ð¸Ñ?",
- "\xD7\xF2\xEE \xF1\xEA\xE0\xE6\xE5\xF2 \xD0\xE8\xF4?",
- // " ÐагÑÑзка "
- " \xC7\xE0\xE3\xF0\xF3\xE7\xEA\xE0 "
- },
// French fan translation : ACTIONS
{
"Aller vers", "Examiner", "Prendre", "Parler \205", "Ouvrir",
@@ -523,6 +480,50 @@ const char *ITEinterfaceTextStrings[][53] = {
"\x83\x8A\x83t\x82\xCC\x95\xD4\x8E\x96\x82\xCD\x81H",
"?"
},
+ // Russian IHNM & ITE fan translations
+ {
+ // "ÐдÑи", "ÐÑмоÑÑеÑÑ", "ÐзÑÑÑ", "ÐовоÑиÑÑ", "ÐÑкÑÑÑÑ",
+ "\xC8\xE4\xF2\xE8", "\xCE\xF1\xEC\xEE\xF2\xF0\xE5\xF2\xFC", "\xC2\xE7\xFF\xF2\xFC", "\xC3\xEE\xE2\xEE\xF0\xE8\xF2\xFC", "\xCE\xF2\xEA\xF0\xFB\xF2\xFC",
+ // "ÐакÑÑÑÑ", "ÐÑимениÑÑ", "ÐаÑÑ", "ÐаÑÑÑойки", "ТеÑÑ",
+ "\xC7\xE0\xEA\xF0\xFB\xF2\xFC", "\xCF\xF0\xE8\xEC\xE5\xED\xE8\xF2\xFC", "\xC4\xE0\xF2\xFC", "\xCD\xE0\xF1\xF2\xF0\xEE\xE9\xEA\xE8", "\xD2\xE5\xF1\xF2",
+ // "Demo", "ÐомоÑÑ", "ÐÑйÑи из игÑÑ", "ÐЫСТ", "ÐÐÐÐ",
+ "Demo", "\xCF\xEE\xEC\xEE\xF9\xFC", "\xC2\xFB\xE9\xF2\xE8 \xE8\xE7 \xE8\xE3\xF0\xFB", "\xC1\xDB\xD1\xD2", "\xCC\xC5\xC4\xCB",
+ // "ÐÐÐ", "ÐЫÐÐ", "ÐÑодолжиÑÑ", "ЧÑение", "ÐапиÑÑ",
+ "\xC2\xCA\xCB", "\xC2\xDB\xCA\xCB", "\xCF\xF0\xEE\xE4\xEE\xEB\xE6\xE8\xF2\xFC", "\xD7\xF2\xE5\xED\xE8\xE5", "\xC7\xE0\xEF\xE8\xF1\xFC",
+ // "ÐаÑÑÑойки игÑÑ", "СÑбÑиÑÑÑ", "ÐÑзÑка", "ÐвÑк", "ÐÑмена",
+ "\xCD\xE0\xF1\xF2\xF0\xEE\xE9\xEA\xE8 \xE8\xE3\xF0\xFB", "\xD1\xF3\xE1\xF2\xE8\xF2\xF0\xFB", "\xCC\xF3\xE7\xFB\xEA\xE0", "\xC7\xE2\xF3\xEA", "\xCE\xF2\xEC\xE5\xED\xE0",
+ // "ÐÑÑ
од", "OK", "СРÐ", "ÐÑÑÑ", "10%",
+ "\xC2\xFB\xF5\xEE\xE4", "OK", "\xD1\xD0\xC4", "\xCC\xFB\xF8\xFC", "10%",
+ "20%", "30%", "40%", "50%", "60%",
+ // "70%", "80%", "90%", "ÐÐÐС", "ÐÑйÑи из игÑÑ?",
+ "70%", "80%", "90%", "\xCC\xC0\xCA\xD1", "\xC2\xFB\xE9\xF2\xE8 \xE8\xE7 \xE8\xE3\xF0\xFB?",
+ // "ÐгÑа загÑÑжена!",
+ "\xC8\xE3\xF0\xE0 \xE7\xE0\xE3\xF0\xF3\xE6\xE5\xED\xE0!",
+ // "ÐведиÑе Ð¸Ð¼Ñ Ð·Ð°Ð¿Ð¸Ñи",
+ "\xC2\xE2\xE5\xE4\xE8\xF2\xE5 \xE8\xEC\xFF \xE7\xE0\xEF\xE8\xF1\xE8",
+ // "ÐаÑÑ -> %s -> %s",
+ "\xC4\xE0\xF2\xFC -> %s -> %s",
+ // "ÐÑполÑзоваÑÑ %s >> %s",
+ "\xC8\xF1\xEF\xEE\xEB\xFC\xE7\xEE\xE2\xE0\xF2\xFC %s >> %s", //two different lines for IHNM & ITE; check in saga.cpp, SagaEngine::getTextString()
+ // "[ÐÐ¾Ð²Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ]",
+ "[\xCD\xEE\xE2\xE0\xFF \xE7\xE0\xEF\xE8\xF1\xFC]",
+ // "Я не Ð¼Ð¾Ð³Ñ ÑÑо взÑÑÑ.",
+ "\xDF \xED\xE5 \xEC\xEE\xE3\xF3 \xFD\xF2\xEE \xE2\xE7\xFF\xF2\xFC.",
+ // "ÐиÑего оÑобенного.",
+ "\xCD\xE8\xF7\xE5\xE3\xEE \xEE\xF1\xEE\xE1\xE5\xED\xED\xEE\xE3\xEE.",
+ // "ÐдеÑÑ Ð½ÐµÑего оÑкÑÑваÑÑ.",
+ "\xC7\xE4\xE5\xF1\xFC \xED\xE5\xF7\xE5\xE3\xEE \xEE\xF2\xEA\xF0\xFB\xE2\xE0\xF2\xFC.",
+ // "ÐдеÑÑ Ð½ÐµÑего закÑÑÑÑ.",
+ "\xC7\xE4\xE5\xF1\xFC \xED\xE5\xF7\xE5\xE3\xEE \xE7\xE0\xEA\xF0\xFB\xF2\xFC.",
+ // "Я не знаÑ, как ÑÑо ÑделаÑÑ.",
+ "\xDF \xED\xE5 \xE7\xED\xE0\xFE, \xEA\xE0\xEA \xFD\xF2\xEE \xF1\xE4\xE5\xEB\xE0\xF2\xFC.",
+ // "СÑбÑиÑÑÑ",
+ "\xD1\xF3\xE1\xF2\xE8\xF2\xF0\xFB",
+ // "ЧÑо ÑÐºÐ°Ð¶ÐµÑ Ð Ð¸Ñ?",
+ "\xD7\xF2\xEE \xF1\xEA\xE0\xE6\xE5\xF2 \xD0\xE8\xF4?",
+ // " ÐагÑÑзка "
+ " \xC7\xE0\xE3\xF0\xF3\xE7\xEA\xE0 "
+ },
{
// Hebrew fan-translation
"\xEC\xEA \xE0\xEC", "\xE4\xE1\xE8 \xE0\xEC", "\xE4\xF8\xED", "\xE3\xE1\xF8 \xF2\xED", "\xF4\xFA\xE7",
@@ -566,26 +567,37 @@ const RawPoint pieceOrigins[PUZZLE_PIECES] = {
// Objects
const char *pieceNames[][PUZZLE_PIECES] = {
+ // English
{
"screwdriver", "pliers", "c-clamp", "wood clamp", "level",
"twine", "wood plane", "claw hammer", "tape measure", "hatchet",
"shears", "ruler", "saw", "mallet", "paint brush"
},
+ // German
{
"Schraubendreher", "Zange", "Schraubzwinge", "Holzzwinge", "Wasserwaage",
"Bindfaden", "Hobel", "Schusterhammer", "Bandma$", "Beil",
"Schere", "Winkel", "S\204ge", "Hammer", "Pinsel"
},
+ // Italian
{
"cacciavite", "pinze", "morsa", "morsa da legno", "livella",
"spago", "pialla", "martello", "metro a nastro", "accetta",
"cesoie", "righello", "sega", "mazza", "pennello"
},
+ // Spanish
+ {
+ "", "", "", "", "",
+ "", "", "", "", "",
+ "", "", "", "", ""
+ },
+ // French
{
"tournevis", "pince", "\202tau \205 vis", "pince \205 bois", "niveau",
"ficelle", "rabot \205 bois", "marteau", "m\212tre ruban", "hachette",
"ciseaux", "r\212gle", "scie", "maillet", "pinceau"
},
+ // Japanese
{
// "ãã©ã¤ãã¼", "éæã", "C形ã¯ã©ã³ã", "æ¨ã®ã¯ã©ã³ã", "ã¬ãã«",
"\x83h\x83\x89\x83\x43\x83o\x81[", "\x93\x42\x94\xB2\x82\xAB", "\x82\x62\x8C`\x83N\x83\x89\x83\x93\x83v", "\x96\xD8\x82\xCC\x83N\x83\x89\x83\x93\x83v", "\x83\x8C\x83x\x83\x8B",
@@ -594,6 +606,7 @@ const char *pieceNames[][PUZZLE_PIECES] = {
// "ããµã", "æ²å°º", "ã®ããã", "æ¨ã¥ã¡", "ãã³ããã©ã·"
"\x83n\x83T\x83~", "\x8B\xC8\x8E\xDA", "\x82\xCC\x82\xB1\x82\xAC\x82\xE8", "\x96\xD8\x82\xC3\x82\xBF", "\x83y\x83\x93\x83L\x83u\x83\x89\x83V"
},
+ // Russian
{
// "оÑвеÑÑка", "клеÑи", "ÑÑÑÑбÑина", "деÑевÑннÑй зажим", "ÑÑовенÑ",
"\xEE\xF2\xE2\xE5\xF0\xF2\xEA\xE0", "\xEA\xEB\xE5\xF9\xE8", "\xF1\xF2\xF0\xF3\xE1\xF6\xE8\xED\xE0", "\xE4\xE5\xF0\xE5\xE2\xFF\xED\xED\xFB\xE9 \xE7\xE0\xE6\xE8\xEC", "\xF3\xF0\xEE\xE2\xE5\xED\xFC",
@@ -602,6 +615,7 @@ const char *pieceNames[][PUZZLE_PIECES] = {
// "ножниÑÑ", "линейка", "пила", "киÑнка", "киÑÑÑ"
"\xED\xEE\xE6\xED\xE8\xF6\xFB", "\xEB\xE8\xED\xE5\xE9\xEA\xE0", "\xEF\xE8\xEB\xE0", "\xEA\xE8\xFF\xED\xEA\xE0", "\xEA\xE8\xF1\xF2\xFC"
},
+ // Hebrew
{
"\xEE\xE1\xF8\xE2", "\xF6\xE1\xFA", "\xEB\xEC\xE9\xE1\xE4", "\xEE\xEC\xE7\xF6\xE9\xE9\xED", "\xF4\xEC\xF1",
"\xE7\xE5\xE8 \xEE\xF9\xE9\xE7\xE4", "\xEE\xF7\xF6\xE5\xF2\xE4", "\xF4\xE8\xE9\xF9 \xF0\xE2\xF8\xE9\xED", "\xF1\xF8\xE8 \xEE\xE9\xE3\xE4", "\xF7\xF8\xE3\xE5\xED",
@@ -611,30 +625,42 @@ const char *pieceNames[][PUZZLE_PIECES] = {
// hints
const char *hintStr[][4] = {
+ // English
{
"Check which pieces could fit in each corner first.",
"Check which corner has the least number of pieces that can fit and start from there.",
"Check each new corner and any new side for pieces that fit.",
"I don't see anything out of place."
},
+ // German
{
"\232berpr\201fe zun\204chst, welche die Eckteile sein k\224nnten.",
"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."
},
+ // Italian
{
"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."
},
+ // Spanish
+ {
+ "",
+ "",
+ "",
+ ""
+ },
+ // French
{
"Trouve d'abord les pi\212ces qui correspondent aux coins.",
"V\202rifie quel coin a le moins de pi\212ces qui correspondent et part de l\205.",
"Evalue chaque coin et bord pour voir les pi\212ces qui collent.",
"Je ne vois rien de mal plac\202."
},
+ // Japanese
{
// "ã¾ããåé
ã«åããã¼ã¹ã\næãã¦ãããã",
"\x82\xDC\x82\xB8\x81\x41\x8El\x8B\xF7\x82\xC9\x8D\x87\x82\xA4\x83s\x81[\x83X\x82\xF0\n\x91{\x82\xB5\x82\xC4\x82\xB2\x82\xE7\x82\xF1\x81\x42",
@@ -645,6 +671,7 @@ const char *hintStr[][4] = {
// "ç½®ãããã¼ã¹ã®ä½ç½®ã¯\nã©ããåã£ã¦ããã"
"\x92u\x82\xA2\x82\xBD\x83s\x81[\x83X\x82\xCC\x88\xCA\x92u\x82\xCD\n\x82\xC7\x82\xEA\x82\xE0\x8D\x87\x82\xC1\x82\xC4\x82\xE9\x82\xE6\x81\x42"
},
+ // Russian
{
// "СпеÑва поÑмоÑÑи, какие ÑÑагменÑÑ Ð² какой Ñгол можно поÑÑавиÑÑ.",
"\xD1\xEF\xE5\xF0\xE2\xE0 \xEF\xEE\xF1\xEC\xEE\xF2\xF0\xE8, \xEA\xE0\xEA\xE8\xE5 \xF4\xF0\xE0\xE3\xEC\xE5\xED\xF2\xFB \xE2 \xEA\xE0\xEA\xEE\xE9 \xF3\xE3\xEE\xEB \xEC\xEE\xE6\xED\xEE \xEF\xEE\xF1\xF2\xE0\xE2\xE8\xF2\xFC.",
@@ -655,6 +682,7 @@ const char *hintStr[][4] = {
// "Ðе вижÑ, ÑÑÐ¾Ð±Ñ ÑÑо-нибÑÐ´Ñ Ð±Ñло не Ñак."
"\xCD\xE5 \xE2\xE8\xE6\xF3, \xF7\xF2\xEE\xE1\xFB \xF7\xF2\xEE-\xED\xE8\xE1\xF3\xE4\xFC \xE1\xFB\xEB\xEE \xED\xE5 \xF2\xE0\xEA."
},
+ // Hebrew
{
"\xE1\xE3\xF7\xE5 \xF7\xE5\xE3\xED \xE0\xE9\xEC\xE5 \xE7\xFA\xE9\xEB\xE5\xFA \xEE\xFA\xE0\xE9\xEE\xE5\xFA \xEC\xEB\xEC \xF4\xE9\xF0\xE4.",
"\xE1\xE3\xF7\xE5 \xEC\xE0\xE9\xEC\xE5 \xF4\xE9\xF0\xE4 \xE9\xF9 \xE4\xEB\xE9 \xEE\xF2\xE8 \xE7\xFA\xE9\xEB\xE5\xFA \xF9\xF2\xF9\xE5\xE9\xE5\xFA \xEC\xE4\xFA\xE0\xE9\xED \xE5\xE4\xFA\xE7\xE9\xEC\xE5 \xEE\xF9\xED.",
@@ -664,6 +692,7 @@ const char *hintStr[][4] = {
};
const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
+ // English
{
"Hey, Fox! Would you like a hint?",
"Would you like some help?",
@@ -671,6 +700,7 @@ const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
"Psst! want a hint?",
"I would have done this differently, you know."
},
+ // German
{
"Hey, Fuchs! Brauchst Du \047nen Tip?",
"M\224chtest Du etwas Hilfe?"
@@ -678,6 +708,7 @@ const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
"Psst! \047n Tip vielleicht?"
"Ja, wei$t Du... ich h\204tte das anders gemacht."
},
+ // Italian
{
"Hey, Volpe! Serve un suggerimento?",
"Hai bisogno di aiuto?",
@@ -685,6 +716,15 @@ const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
"Psst! Serve un aiutino?",
"Io, sai, l'avrei fatto diversamente."
},
+ // Spanish
+ {
+ "",
+ "",
+ "",
+ "",
+ ""
+ },
+ // French
{
"H\202, Renard! Tu veux un coup de pouce?",
"T'as besoin d'aide?",
@@ -692,6 +732,7 @@ const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
"Psst! Un indice?",
"Tu sais, j'aurais fait ça autrement."
},
+ // Japanese
{
// "ããåï¼\nãã³ã欲ããï¼",
"\x82\xCB\x82\xA5\x8CN\x81I\n\x83q\x83\x93\x83g\x97~\x82\xB5\x82\xA2\x81H",
@@ -704,6 +745,7 @@ const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
// "ç§ãªãéãæ¹æ³ã§\nãã£ã¦ãã ãããªã"
"\x8E\x84\x82\xC8\x82\xE7\x88\xE1\x82\xA4\x95\xFB\x96@\x82\xC5\n\x82\xE2\x82\xC1\x82\xC4\x82\xE9\x82\xBE\x82\xEB\x82\xA4\x82\xC8\x81\x42"
},
+ // Russian
{
// "Ðй, лиÑ! ÐодÑказка не нÑжна?",
"\xDD\xE9, \xEB\xE8\xF1! \xCF\xEE\xE4\xF1\xEA\xE0\xE7\xEA\xE0 \xED\xE5 \xED\xF3\xE6\xED\xE0?",
@@ -716,6 +758,7 @@ const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
// "ÐнаеÑÑ, а Ñ Ð±Ñ Ñделал по-дÑÑгомÑ."
"\xC7\xED\xE0\xE5\xF8\xFC, \xE0 \xFF \xE1\xFB \xF1\xE4\xE5\xEB\xE0\xEB \xEF\xEE-\xE4\xF0\xF3\xE3\xEE\xEC\xF3."
},
+ // Hebrew
{
"\xE4\xE9\xE9, \xF9\xE5\xF2\xEC! \xFA\xF8\xF6\xE4 \xF8\xEE\xE6?",
"\xEE\xF2\xE5\xF0\xE9\xE9\xEF \xE1\xEE\xF2\xE8 \xF2\xE6\xF8\xE4?",
@@ -726,26 +769,37 @@ const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
};
const char *sakkaStr[][NUM_SAKKA] = {
+ // English
{
"Hey, you're not supposed to help the applicants!",
"Guys! This is supposed to be a test!",
"C'mon fellows, that's not in the rules!"
},
+ // German
{
"Hey, Du darfst dem Pr\201fling nicht helfen!",
"Hallo?! Dies soll eine Pr\201fung sein!",
"Also, Jungs. Schummeln steht nicht in den Regeln!"
},
+ // Italian
{
"Hey, non si dovrebbero aiutare i candidati!",
"Ragazzi! Questo dovrebbe essere un test!",
"Forza ragazzi, non si pu\225!"
},
+ // Spanish
+ {
+ "",
+ "",
+ ""
+ },
+ // French
{
"H\202, vous n'\210tes pas suppos\202s aider les concurrents!",
"Les gars! C'est suppos\202 être un test!",
"Allez les gars, c'est pas dans les r\212gles!"
},
+ // Japanese
{
// "ãããã©ãï¼",
"\x82\xCB\x82\xA5\x81\x41\x82\xC7\x82\xA4\x81H",
@@ -754,6 +808,7 @@ const char *sakkaStr[][NUM_SAKKA] = {
// "ã©ãããã®ï¼"
"\x82\xC7\x82\xA4\x82\xB5\x82\xBD\x82\xCC\x81I"
},
+ // Russian
{
// "Ðй, иÑпÑÑÑемÑм помогаÑÑ Ð½ÐµÐ»ÑзÑ!",
"\xDD\xE9, \xE8\xF1\xEF\xFB\xF2\xF3\xE5\xEC\xFB\xEC \xEF\xEE\xEC\xEE\xE3\xE0\xF2\xFC \xED\xE5\xEB\xFC\xE7\xFF!",
@@ -762,6 +817,7 @@ const char *sakkaStr[][NUM_SAKKA] = {
// "Ðа Ñ
ваÑÐ¸Ñ Ð²Ð°Ð¼, ÑÑо не по пÑавилам!"
"\xC4\xE0 \xF5\xE2\xE0\xF2\xE8\xF2 \xE2\xE0\xEC, \xFD\xF2\xEE \xED\xE5 \xEF\xEE \xEF\xF0\xE0\xE2\xE8\xEB\xE0\xEC!"
},
+ // Hebrew
{
"\xE4\xE9\xE9, \xE0\xFA\xE4 \xEC\xE0 \xE0\xEE\xE5\xF8 \xEC\xF1\xE9\xE9\xF2 \xEC\xEE\xE5\xF2\xEE\xE3\xE9\xED!",
"\xE7\xE1\xF8'\xE4! \xE6\xE4 \xE0\xEE\xE5\xF8 \xEC\xE4\xE9\xE5\xFA \xEE\xE1\xE7\xEF!",
@@ -770,6 +826,7 @@ const char *sakkaStr[][NUM_SAKKA] = {
};
const char *whineStr[][NUM_WHINES] = {
+ // English
{
"Aww, c'mon Sakka!",
"One hint won't hurt, will it?",
@@ -777,6 +834,7 @@ const char *whineStr[][NUM_WHINES] = {
"I think that clipboard has gone to your head, Sakka!",
"Well, I don't recall any specific rule against hinting."
},
+ // German
{
"Och, sei nicht so, Sakka!"
"EIN Tip wird schon nicht schaden, oder?",
@@ -784,6 +842,7 @@ const char *whineStr[][NUM_WHINES] = {
"Ich glaube, Du hast ein Brett vor dem Kopf, Sakka!",
"Hm, ich kann mich an keine Regel erinnern, die Tips verbietet."
},
+ // Italian
{
"Ooo, suvvia Sakka!",
"Un indizio non guaster\205, no?",
@@ -791,6 +850,15 @@ const char *whineStr[][NUM_WHINES] = {
"Credo che questa faccenda ti abbia dato alla testa, Sakka!",
"Beh, non ricordo regole specifiche contro i suggerimenti."
},
+ // Spanish
+ {
+ "",
+ "",
+ "",
+ "",
+ ""
+ },
+ // French
{
"Rohh, allez Sakka!",
"Un indice ne peut pas faire de mal.",
@@ -798,6 +866,7 @@ const char *whineStr[][NUM_WHINES] = {
"Je crois que ton carnet te monte \205 la t\210te, Sakka!",
"Bon, je ne me souviens d'aucune r\212gle concernant les indices."
},
+ // Japanese
{
// "ã¢ã¥ã\nã¡ãã£ã¨ããµãã«ï¼",
"\x83\x41\x83\x44\x81\x41\n\x82\xBF\x82\xE5\x82\xC1\x82\xC6\x81\x41\x83T\x83\x62\x83J\x81I",
@@ -810,6 +879,7 @@ const char *whineStr[][NUM_WHINES] = {
// "ããããã³ãã«å¯¾æã§ãã\nã«ã¼ã«ãæãåºããªãã"
"\x82\xA0\x82\xA0\x81\x41\x83q\x83\x93\x83g\x82\xC9\x91\xCE\x8DR\x82\xC5\x82\xAB\x82\xE9\n\x83\x8B\x81[\x83\x8B\x82\xAA\x8Ev\x82\xA2\x8Fo\x82\xB9\x82\xC8\x82\xA2\x81\x42"
},
+ // Russian
{
// "Ðй, Сакка, да бÑоÑÑ!",
"\xCE\xE9, \xD1\xE0\xEA\xEA\xE0, \xE4\xE0 \xE1\xF0\xEE\xF1\xFC!",
@@ -822,6 +892,7 @@ const char *whineStr[][NUM_WHINES] = {
// "ÐÑ, Ñ Ð½Ðµ Ð¿Ð¾Ð¼Ð½Ñ Ð½Ð¸ одного пÑавила, Ñвно запÑеÑаÑÑего подÑказки."
"\xCD\xF3, \xFF \xED\xE5 \xEF\xEE\xEC\xED\xFE \xED\xE8 \xEE\xE4\xED\xEE\xE3\xEE \xEF\xF0\xE0\xE2\xE8\xEB\xE0, \xFF\xE2\xED\xEE \xE7\xE0\xEF\xF0\xE5\xF9\xE0\xFE\xF9\xE5\xE3\xEE \xEF\xEE\xE4\xF1\xEA\xE0\xE7\xEA\xE8."
},
+ // Hebrew
{
"\xF0\xE5, \xE1\xE7\xE9\xE9\xE0\xFA \xF1\xE0\xF7\xE4!",
"\xF8\xEE\xE6 \xE0\xE7\xE3 \xEC\xE0 \xE9\xEB\xE5\xEC \xEC\xE4\xE6\xE9\xF7, \xF0\xEB\xE5\xEF?",
@@ -832,30 +903,42 @@ const char *whineStr[][NUM_WHINES] = {
};
const char *optionsStr[][4] = {
+ // English
{
"\"I'll do this puzzle later.\"",
"\"Yes, I'd like a hint please.\"",
"\"No, thank you, I'd like to try and solve it myself.\"",
"I think the %s is in the wrong place."
},
+ // German
{
"\"Ich l\224se das Puzzle sp\204ter.\"",
"\"Ja, ich m\224chte einen Tip, bitte.\"",
"\"Nein danke, ich m\224chte das alleine l\224sen.\"",
"Pssst... %s... falsche Stelle..."
},
+ // Italian
{
"\"Far\225 questo puzzle pi\227 tardi.\"",
"\"Si, grazie. Ne avrei bisogno.\"",
"\"No, grazie, voglio provare a risolverlo da solo.\"",
"Penso che la tessera %s sia nel posto sbagliato."
},
+ // Spanish
+ {
+ "",
+ "",
+ "",
+ ""
+ },
+ // French
{
"\"Je r\202soudrai cette \202nigme plus tard.\"",
"\"Oui, j'aimerais un indice s'il vous plait.\"",
"\"Non merci, je voudrais r\202soudre cela par moi m\210me.\"",
"Je crois que t'as mal plac\202 l'%s."
},
+ // Japanese
{
// "ãå¾ã§ãããããªãã",
"\x81u\x8C\xE3\x82\xC5\x82\xE2\x82\xEB\x82\xA4\x82\xA9\x82\xC8\x81\x42\x81v",
@@ -866,6 +949,7 @@ const char *optionsStr[][4] = {
// "%sã®ä½ç½®ãéãããããªãããªã"
"%s\x82\xCC\x88\xCA\x92u\x82\xAA\x88\xE1\x82\xA4\x82\xF1\x82\xB6\x82\xE1\x82\xC8\x82\xA2\x82\xA9\x82\xC8\x81\x42"
},
+ // Russian
{
// "\"Я ÑеÑÑ ÑÑÑ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð»Ð¾Ð¼ÐºÑ Ð² дÑÑгой Ñаз.\"",
"\"\xDF \xF0\xE5\xF8\xF3 \xFD\xF2\xF3 \xE3\xEE\xEB\xEE\xE2\xEE\xEB\xEE\xEC\xEA\xF3 \xE2 \xE4\xF0\xF3\xE3\xEE\xE9 \xF0\xE0\xE7.\"",
@@ -876,6 +960,7 @@ const char *optionsStr[][4] = {
// "Ðне кажеÑÑÑ, %s не на Ñвоем меÑÑе."
"\xCC\xED\xE5 \xEA\xE0\xE6\xE5\xF2\xF1\xFF, %s \xED\xE5 \xED\xE0 \xF1\xE2\xEE\xE5\xEC \xEC\xE5\xF1\xF2\xE5."
},
+ // Hebrew
{
"\"\xE0\xF4\xFA\xE5\xF8 \xE0\xFA \xE4\xE7\xE9\xE3\xE4 \xE4\xE6\xE5 \xE0\xE7\xF8 \xEB\xEA.\"",
"\"\xEB\xEF, \xE0\xF9\xEE\xE7 \xEC\xF8\xEE\xE6 \xE1\xE1\xF7\xF9\xE4.\"",
@@ -950,6 +1035,28 @@ const IntroDialogue introDialogueCave1[][4] = {
"immaginazione."
} },
// -----------------------------------------------------
+ { { // Spanish
+ 0, // cave voice 0
+ ""
+ ""
+ },
+ {
+ 1, // cave voice 1
+ ""
+ ""
+ },
+ {
+ 2, // cave voice 2
+ ""
+ ""
+ },
+ {
+ 3, // cave voice 3
+ ""
+ ""
+ ""
+ } },
+ // -----------------------------------------------------
{ { // French fan translation
0, // cave voice 0
"Nous voyons le ciel, nous voyons les terres, "
@@ -1000,7 +1107,7 @@ const IntroDialogue introDialogueCave1[][4] = {
"\x89\xE4\x81X\x82\xCC\x91z\x91\x9C\x82\xF0\x89z\x82\xA6\x82\xBD\x91\xBD\x82\xAD\x82\xCC\x94\xE9\x96\xA7\x82\xF0\x92m\x82\xC1\x82\xC4\x82\xA2\x82\xBD\x82\xCC\x82\xC5\x82\xB7\x81\x42"
} },
// -----------------------------------------------------
- { {// Russian fan translation
+ { { // Russian fan translation
0, // cave voice 0
// "ÐÑ Ð²Ð¸Ð´Ð¸Ð¼ небо, видим землÑ, видим Ð²Ð¾Ð´Ñ "
"\xCC\xFB \xE2\xE8\xE4\xE8\xEC \xED\xE5\xE1\xEE, \xE2\xE8\xE4\xE8\xEC \xE7\xE5\xEC\xEB\xFE, \xE2\xE8\xE4\xE8\xEC \xE2\xEE\xE4\xF3 "
@@ -1098,7 +1205,24 @@ const IntroDialogue introDialogueCave2[][3] = {
6, // cave voice 6
"Siamo i loro figli."
} },
- { { // Fench fan translation
+ // -----------------------------------------------------
+ { { // Spanish
+ 4, // cave voice 4
+ ""
+ ""
+
+ },
+ {
+ 5, // cave voice 5
+ ""
+
+ },
+ {
+ 6, // cave voice 6
+ ""
+ } },
+ // -----------------------------------------------------
+ { { // French fan translation
4, // cave voice 4
"Les humains connaissaient aussi le secret de "
"la Vie, et l'utilis\212rent pour nous offrir "
@@ -1205,7 +1329,6 @@ const IntroDialogue introDialogueCave3[][3] = {
{ { // Italian fan translation
7, // cave voice 7
"Ci insegnarono come usare le mani e come parlare. "
-
},
{
8, // cave voice 8
@@ -1218,6 +1341,23 @@ const IntroDialogue introDialogueCave3[][3] = {
"sicuramente svelato il Segreto della Felicit\205."
} },
+ // -----------------------------------------------------
+ { { // Spanish
+ 7, // cave voice 7
+ ""
+ },
+ {
+ 8, // cave voice 8
+ ""
+ ""
+ },
+ {
+ 9, // cave voice 9
+ ""
+ ""
+
+ } },
+ // -----------------------------------------------------
{ { // French fan translation
7, // cave voice 7
"Ils nous apprirent \205 utiliser nos mains, et \205 "
@@ -1253,7 +1393,7 @@ const IntroDialogue introDialogueCave3[][3] = {
// "幸ç¦ã®ç§å¯ãæãã¦ããã¦ãããã¨ã§ãããã"
"\x8DK\x95\x9F\x82\xCC\x94\xE9\x96\xA7\x82\xE0\x8B\xB3\x82\xA6\x82\xC4\x82\xAD\x82\xEA\x82\xC4\x82\xA2\x82\xBD\x82\xB1\x82\xC6\x82\xC5\x82\xB5\x82\xE5\x82\xA4\x81\x42"
} },
- { {// Russian fan translation
+ { { // Russian fan translation
7, // cave voice 7
// "Ðни наÑÑили Ð½Ð°Ñ Ð¿Ð¾Ð»ÑзоваÑÑÑÑ "
"\xCE\xED\xE8 \xED\xE0\xF3\xF7\xE8\xEB\xE8 \xED\xE0\xF1 \xEF\xEE\xEB\xFC\xE7\xEE\xE2\xE0\xF2\xFC\xF1\xFF "
@@ -1350,6 +1490,28 @@ const IntroDialogue introDialogueCave4[][4] = {
"E un giorno, condivideremo anche noi lo stesso "
"destino?"
} },
+ // -----------------------------------------------------
+ { { // Spanish
+ 10, // cave voice 10
+ ""
+ ""
+
+ },
+ {
+ 11, // cave voice 11
+ ""
+ ""
+ },
+ {
+ 12, // cave voice 12
+ ""
+ },
+ {
+ 13, // cave voice 13
+ ""
+ ""
+ } },
+ // -----------------------------------------------------
{ { // French fan translation
10, // cave voice 10
"Aujourd'hui nous voyons le ciel, les terres, et "
@@ -1399,7 +1561,7 @@ const IntroDialogue introDialogueCave4[][4] = {
// "ããæ¥åãéå½ã«å°ãããã®ã ãããï¼"
"\x82\xA0\x82\xE9\x93\xFA\x93\xAF\x82\xB6\x89^\x96\xBD\x82\xC9\x93\xB1\x82\xA9\x82\xEA\x82\xE9\x82\xCC\x82\xBE\x82\xEB\x82\xA4\x82\xA9\x81H"
} },
- { {// Russian fan translation
+ { { // Russian fan translation
10, // cave voice 10
// "ТепеÑÑ Ð¼Ñ Ð²Ð¸Ð´Ð¸Ð¼ небо, Ð·ÐµÐ¼Ð»Ñ "
"\xD2\xE5\xEF\xE5\xF0\xFC \xEC\xFB \xE2\xE8\xE4\xE8\xEC \xED\xE5\xE1\xEE, \xE7\xE5\xEC\xEB\xFE "
diff --git a/engines/saga/puzzle.cpp b/engines/saga/puzzle.cpp
index 82cc5aa9cdd..3fbf419bc98 100644
--- a/engines/saga/puzzle.cpp
+++ b/engines/saga/puzzle.cpp
@@ -66,21 +66,7 @@ enum rifOptions {
};
Puzzle::Puzzle(SagaEngine *vm) : _vm(vm), _solved(false), _active(false) {
- _lang = 0;
-
- if (_vm->getLanguage() == Common::DE_DEU)
- _lang = 1;
- else if (_vm->getLanguage() == Common::IT_ITA)
- _lang = 2;
- else if (_vm->getLanguage() == Common::FR_FRA)
- _lang = 3;
- else if (_vm->getLanguage() == Common::JA_JPN)
- _lang = 4;
- else if (_vm->getLanguage() == Common::RU_RUS)
- _lang = 5;
- else if (_vm->getLanguage() == Common::HE_ISR)
- _lang = 6;
-
+ _lang = _vm->getLanguageIndex();
_hintRqState = kRQNoHint;
_hintOffer = 0;
_hintCount = 0;
diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp
index 9cbe7a97c15..143658e12f9 100644
--- a/engines/saga/saga.cpp
+++ b/engines/saga/saga.cpp
@@ -470,36 +470,32 @@ const char *SagaEngine::getObjectName(uint16 objectId) const {
return NULL;
}
-const char *SagaEngine::getTextString(int textStringId) {
- const char *string;
- int lang = 0;
-
+int SagaEngine::getLanguageIndex() {
switch (getLanguage()) {
- case Common::DE_DEU:
- lang = 1;
- break;
- case Common::IT_ITA:
- lang = 2;
- break;
- case Common::ES_ESP:
- lang = 3;
- break;
- case Common::RU_RUS:
- lang = 4;
- break;
- case Common::FR_FRA:
- lang = 5;
- break;
- case Common::JA_JPN:
- lang = 6;
- break;
- case Common::HE_ISR:
- lang = 7;
- break;
- default:
- lang = 0;
- break;
+ case Common::EN_ANY:
+ return 0;
+ case Common::DE_DEU:
+ return 1;
+ case Common::IT_ITA:
+ return 2;
+ case Common::ES_ESP:
+ return 3;
+ case Common::FR_FRA:
+ return 4;
+ case Common::JA_JPN:
+ return 5;
+ case Common::RU_RUS:
+ return 6;
+ case Common::HE_ISR:
+ return 7;
+ default:
+ return 0;
}
+}
+
+const char *SagaEngine::getTextString(int textStringId) {
+ const char *string;
+ int lang = getLanguageIndex();
if (getLanguage() == Common::RU_RUS && textStringId == 43) {
if (getGameId() == GID_ITE)
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index 550c3142a32..497170fa440 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -557,6 +557,7 @@ public:
bool canSaveGameStateCurrently() override;
const GameDisplayInfo &getDisplayInfo();
+ int getLanguageIndex();
const char *getTextString(int textStringId);
void getExcuseInfo(int verb, const char *&textString, int &soundResourceId);
More information about the Scummvm-git-logs
mailing list