mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-01 06:58:34 +00:00
223 lines
7.5 KiB
C++
223 lines
7.5 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#include "sherlock/sherlock.h"
|
|
#include "sherlock/fixed_text.h"
|
|
#include "sherlock/scalpel/scalpel_fixed_text.h"
|
|
#include "sherlock/tattoo/tattoo_fixed_text.h"
|
|
|
|
namespace Sherlock {
|
|
|
|
static const char *const fixedJournalTextEN[] = {
|
|
// Holmes asked/said...
|
|
"Holmes asked me, ",
|
|
"Holmes asked the Inspector, ",
|
|
"Holmes asked %s, ",
|
|
"Holmes said to me, ",
|
|
"Holmes said to the Inspector, ",
|
|
"Holmes said to %s, ",
|
|
// I asked/said...
|
|
"I replied, ",
|
|
"The reply was, ",
|
|
// Holmes/I/The Inspector/Person asked/said (without "Then" prefix)
|
|
"Holmes asked, ",
|
|
"Holmes said, ",
|
|
"I asked, ",
|
|
"I said, ",
|
|
"The Inspector asked, ",
|
|
"The Inspector said, ",
|
|
"%s asked, ",
|
|
"%s said, ",
|
|
// Then Holmes/I/The Inspector/Person asked/said
|
|
"Then Holmes asked, ",
|
|
"Then Holmes said, ",
|
|
"Then I asked, ",
|
|
"Then I said, ",
|
|
"Then the Inspector asked, ",
|
|
"Then the Inspector said, ",
|
|
"Then %s asked, ",
|
|
"Then %s said, "
|
|
};
|
|
|
|
static const char *const fixedJournalTextDE[] = {
|
|
// Holmes asked/said...
|
|
"Holmes fragte mich, ",
|
|
"Holmes fragte Inspektor Lestrade, ",
|
|
"Holmes fragte %s, ",
|
|
"Holmes sagte mir, ",
|
|
"Holmes sagte Inspektor Lestrade, ",
|
|
"Holmes sagte %s, ",
|
|
// I asked/said...
|
|
"Ich antwortete, ",
|
|
"Die Antwort lautete, ",
|
|
// Holmes/I/The Inspector/Person asked/said (without "Then" prefix)
|
|
"Holmes fragte, ", // original: "fragte Holmes"
|
|
"Holmes sagte, ", // original: "sagte Holmes"
|
|
"Ich fragte, ", // original: "fragte Ich"
|
|
"Ich sagte, ", // original: "sagte Ich"
|
|
"Der Inspektor fragte, ",
|
|
"Der Inspektor sagte, ",
|
|
"%s fragte, ",
|
|
"%s sagte, ",
|
|
// Then Holmes/I/The Inspector/Person asked/said
|
|
"Dann fragte Holmes, ",
|
|
"Dann sagte Holmes, ",
|
|
"Dann fragte ich, ", // original: "Dann sagte Ich"
|
|
"Dann sagte ich, ", // original: "Dann sagte Ich"
|
|
"Dann fragte der Inspektor, ",
|
|
"Dann sagte der Inspektor, ",
|
|
"Dann fragte %s, ",
|
|
"Dann sagte %s, "
|
|
};
|
|
|
|
// Only used for Sherlock Holmes 2, so special characters should use the SH2 charset
|
|
// small a w/ accent grave: 0x85 / octal 205
|
|
// small e w/ accent acute: 0x82 / octal 202
|
|
// small e w/ accent grave: 0x8A / octal 212
|
|
// small e w/ circonflexe: 0x88 / octal 210
|
|
// small cedilla: 0x87 / octal 207
|
|
static const char *const fixedJournalTextFR[] = {
|
|
// Holmes asked/said...
|
|
"Holmes me demanda, ", // original: "Holmes m'a demand\202, "
|
|
"Holmes demanda \205 l'inspecteur, ", // original: "Holmes a demand\202 \205 l'inspecteur, "
|
|
"Holmes demanda \205 %s, ", // original: "Holmes a demand\202 \205 %s, "
|
|
"Holmes me dit, ", // original: "Holmes m'a dit, "
|
|
"Holmes dit \205 l'inspecteur, ", // original: "Holmes a dit \205 l'inspecteur, "
|
|
"Holmes dit \205 %s, ", // original: "Holmes a dit \205 %s, "
|
|
// I asked/said...
|
|
"Je r\202pondis, ", // original: "J'ai r\202pondu, ",
|
|
"La r\202ponse fut, ",
|
|
// Holmes/I/The Inspector/Person asked/said (without "Then" prefix)
|
|
"Holmes demanda, ", // original: "Holmes a demand\202, "
|
|
"Holmes dit, ",
|
|
"Je demandai, ", // original: "J'ai demand\202, "
|
|
"Je dis, ", // original: "J'ai dit, "
|
|
"L'inspecteur demanda, ", // original: ""L'inspecteur a demand\202, "
|
|
"L'inspecteur dit, ",
|
|
"%s demanda, ", // original: "%s a demand\202, "
|
|
"%s dit, ",
|
|
// Then Holmes/I/The Inspector/Person asked/said
|
|
"Alors Holmes demanda, ", // original: it seems "puis"/"then" was not used/removed. They instead added a space character, so sentences looked weird
|
|
"Alors Holmes dit, ",
|
|
"Alors je demandai, ",
|
|
"Alors je dis, ",
|
|
"Alors l'inspecteur demanda, ",
|
|
"Alors l'inspecteur dit, ",
|
|
"Alors %s demanda, ",
|
|
"Alors %s dit, "
|
|
};
|
|
|
|
// Sherlock Holmes 1+2:
|
|
// small e w/ accent bottom to top : 0x82 / octal 202
|
|
// big E w/ accent bottom to top : 0x90 / octal 220
|
|
// small a w/ accent bottom to top : 0xA0 / octal 240
|
|
// small i w/ accent bottom to top : 0xA1 / octal 241
|
|
// small o w/ accent bottom to top : 0xA2 / octal 242
|
|
// small u w/ accent bottom to top : 0xA3 / octal 243
|
|
// small n w/ wavy line : 0xA4 / octal 244
|
|
// big N w/ wavy line : 0xA5 / octal 245
|
|
// small a w/ under line : 0xA6 / octal 246
|
|
// small o w/ under line : 0xA7 / octal 247
|
|
// inverted question mark : 0xA8 / octal 250
|
|
static const char *const fixedJournalTextES[] = {
|
|
// Holmes asked/said...
|
|
"Holmes me pregunt\242, ", // original: "Holmes me pidi\242, ",
|
|
"Holmes pregunt\242 al Inspector, ", // original: "el inspector"?
|
|
"Holmes pregunt\242 %s, ",
|
|
"Holmes me dijo, ",
|
|
"Holmes dijo al Inspector, ", // original: "el inspector"?
|
|
"Holmes dijo a %s, ", // original: "Holmes dijo a %s, "
|
|
// I asked/said...
|
|
"Yo content\202, ", // original: "Yo respond\241, ",
|
|
"La respuesta fue, ",
|
|
// Holmes/I/The Inspector/Person asked/said (without "Then" prefix)
|
|
"Holmes pregunt\242, ",
|
|
"Holmes dijo, ",
|
|
"Yo pregunt\202, ", // original: "Yo pregunt\242, ",
|
|
"Yo dije, ",
|
|
"El Inspector pregunt\242, ",
|
|
"El Inspector dijo, ",
|
|
"%s pregunt\242, ",
|
|
"%s dijo, ",
|
|
// Then Holmes/I/The Inspector/Person asked/said
|
|
"Despu\202s Holmes pregunt\242, ", // original: added "Entonces" instead of "Despues"
|
|
"Despu\202s Holmes dijo, ",
|
|
"Despu\202s yo pregunt\202, ", // "pregunt\242, "
|
|
"Despu\202s yo dije, ",
|
|
"Despu\202s el Inspector pregunt\242, ",
|
|
"Despu\202s el Inspector dijo, ",
|
|
"Despu\202s %s pregunt\242, ",
|
|
"Despu\202s %s dijo, "
|
|
};
|
|
|
|
FixedText::FixedText(SherlockEngine *vm) {
|
|
_vm = vm;
|
|
|
|
// Figure out which fixed texts to use
|
|
Common::Language curLanguage = _vm->getLanguage();
|
|
|
|
switch (curLanguage) {
|
|
case Common::EN_ANY:
|
|
// Used by Sherlock Holmes 1+2
|
|
_fixedJournalTextArray = fixedJournalTextEN;
|
|
_fixedObjectPickedUpText = "Picked up %s";
|
|
break;
|
|
case Common::DE_DEU:
|
|
// Used by Sherlock Holmes 1+2
|
|
_fixedJournalTextArray = fixedJournalTextDE;
|
|
_fixedObjectPickedUpText = "%s eingesteckt";
|
|
break;
|
|
case Common::FR_FRA:
|
|
// Used by Sherlock Holmes 2
|
|
_fixedJournalTextArray = fixedJournalTextFR;
|
|
_fixedObjectPickedUpText = ""; // Not used, because there is no French Sherlock Holmes 1
|
|
break;
|
|
case Common::ES_ESP:
|
|
// Used by Sherlock Holmes 1+2
|
|
_fixedJournalTextArray = fixedJournalTextES;
|
|
_fixedObjectPickedUpText = "Cogido/a %s";
|
|
break;
|
|
default:
|
|
// Default to English
|
|
_fixedJournalTextArray = fixedJournalTextEN;
|
|
_fixedObjectPickedUpText = "Picked up %s";
|
|
break;
|
|
}
|
|
}
|
|
|
|
FixedText *FixedText::init(SherlockEngine *vm) {
|
|
if (vm->getGameID() == GType_SerratedScalpel)
|
|
return new Scalpel::ScalpelFixedText(vm);
|
|
else
|
|
return new Tattoo::TattooFixedText(vm);
|
|
}
|
|
|
|
const char *FixedText::getJournalText(int fixedJournalTextId) {
|
|
return _fixedJournalTextArray[fixedJournalTextId];
|
|
}
|
|
|
|
const char *FixedText::getObjectPickedUpText() {
|
|
return _fixedObjectPickedUpText;
|
|
}
|
|
|
|
} // End of namespace Sherlock
|