From d236ddca4db10b0c9c477da06eed1089ce67db15 Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Thu, 8 Oct 2015 17:19:36 +0200 Subject: SHERLOCK: RT: multilingual cleanup + French text Moved people names to fixed text class Changed order of inventory names + inventory descriptions Fixed German umlauts Added French text --- engines/sherlock/tattoo/tattoo.cpp | 9 +- engines/sherlock/tattoo/tattoo_fixed_text.cpp | 507 +++++++++++++++++++++++--- engines/sherlock/tattoo/tattoo_fixed_text.h | 120 +++++- engines/sherlock/tattoo/tattoo_resources.cpp | 394 +++++--------------- engines/sherlock/tattoo/tattoo_resources.h | 9 +- 5 files changed, 674 insertions(+), 365 deletions(-) (limited to 'engines/sherlock/tattoo') diff --git a/engines/sherlock/tattoo/tattoo.cpp b/engines/sherlock/tattoo/tattoo.cpp index bfb35565bc..3131df7649 100644 --- a/engines/sherlock/tattoo/tattoo.cpp +++ b/engines/sherlock/tattoo/tattoo.cpp @@ -65,10 +65,15 @@ void TattooEngine::initialize() { _res->addToCache("walk.lib"); // Set up list of people + TattooFixedText &fixedText = *(TattooFixedText *)_fixedText; + const char *peopleNamePtr = nullptr; + for (int idx = 0; idx < TATTOO_MAX_PEOPLE; ++idx) { + peopleNamePtr = fixedText.getText(PEOPLE_DATA[idx].fixedTextId); + _people->_characters.push_back(PersonData( - getLanguage() == Common::FR_FRA ? FRENCH_NAMES[idx] : ENGLISH_NAMES[idx], - PORTRAITS[idx], nullptr, nullptr)); + peopleNamePtr, + PEOPLE_DATA[idx].portrait, nullptr, nullptr)); } // Load the inventory diff --git a/engines/sherlock/tattoo/tattoo_fixed_text.cpp b/engines/sherlock/tattoo/tattoo_fixed_text.cpp index c9345e44d1..571a697153 100644 --- a/engines/sherlock/tattoo/tattoo_fixed_text.cpp +++ b/engines/sherlock/tattoo/tattoo_fixed_text.cpp @@ -27,23 +27,22 @@ namespace Sherlock { namespace Tattoo { -static const char *const FIXED_TEXT_ENGLISH[] = { +static const char *const fixedTextEN[] = { "Money", - "Card", - "Tobacco", - "Timetable", - "Summons", - "Foolscap", - "Damp Paper", - "Bull's Eye", - "Money", "Card", + "Card", + "Tobacco", "Tobacco", "Timetable", + "Timetable", + "Summons", "Summons", "Foolscap", "Foolscap", + "Damp Paper", + "Foolscap", + "Bull's Eye", "Bull's Eye Lantern", "Open", @@ -71,19 +70,19 @@ static const char *const FIXED_TEXT_ENGLISH[] = { "Holmes", "Jock", "Bull", - "Round", - "Turn Total", - "Dart", + "Round: %d", + "Turn Total: %d", + "Dart # %d", "to start", "Hit a key", "Press a key", - "bullseye", + "bullseye", // ?? "GAME OVER", "BUSTED", "Wins", - "Scored", - "points", - "Hit", + "Scored %d points", + "points", // ?? + "Hit %s %d", "Double", "Triple", @@ -106,65 +105,167 @@ static const char *const FIXED_TEXT_ENGLISH[] = { "Yes", "No", "Enter Password", - "Going East" + "Going East", // correct password, was not and should not to be translated + // SH2: People names + "Sherlock Holmes", + "Dr. Watson", + "Mrs. Hudson", + "Stanley Forbes", + "Mycroft Holmes", + "Wiggins", + "Police Constable Burns", + "Augustus Trimble", + "Police Constable Daley", + "Matron", + "Sister Grace", + "Preston McCabe", + "Bob Colleran", + "Jonas Rigby", + "Police Constable Roach", + "James Dewar", + "Sergeant Jeremy Duncan", + "Inspector Gregson", + "Inspector Lestrade", + "Jesse Needhem", + "Arthur Fleming", + "Mr. Thomas Pratt", + "Mathilda (Tillie) Mason", + "Adrian Russell", + "Eldridge Whitney", + "Hepplethwaite", + "Horace Silverbridge", + "Old Sherman", + "Maxwell Verner", + "Millicent Redding", + "Virgil Silverbridge", + "George O'Keeffe", + "Lord Denys Lawton", + "Jenkins", + "Jock Mahoney", + "Bartender", + "Lady Cordelia Lockridge", + "Pettigrew", + "Sir Avery Fanshawe", + "Hodgkins", + "Wilbur \"Birdy\" Heywood", + "Jacob Farthington", + "Philip Bledsoe", + "Sidney Fowler", + "Professor Theodore Totman", + "Rose Hinchem", + "Tallboy", + "Ethlebert \"Stitch\" Rumsey", + "Charles Freedman", + "Nigel Hemmings", + "Fairfax Carter", + "Wilhelm II", + "Wachthund", + "Jonathan Wilson", + "David Lloyd-Jones", + "Edward Hargrove", + "Misteray", + "The Lascar", + "Parrot", + "Vincent Scarrett", + "Alexandra", + "Queen Victoria", + "John Brown", + "A Patient", + "A Patient", + "Patron", + "Queen Victoria", + "Patient in white", + "Lush", + "Drunk", + "Prostitute", + "Mudlark", + "Grinder", + "Bouncer", + "Agnes Ratchet", + "Aloysius Ratchet", + "Real Estate Agent", + "Candy Clerk", + "Beadle", + "Prussian", + "Mrs. Rowbottom", + "Miss Lloyd-Jones", + "Tavern patron", + "User", + "Toby", + "Stationer", + "Law Clerk", + "Ministry Clerk", + "Bather", + "Maid", + "Lady Fanshawe", + "Sidney Ratchet", + "Boy", + "Patron", + "Constable Brit", + "Wagon Driver" }; -static const char *const FIXED_TEXT_GERMAN[] = { +// sharp-s : 0xE1 / octal 341 +// small a-umlaut: 0x84 / octal 204 +// small o-umlaut: 0x94 / octal 224 +// small u-umlaut: 0x81 / octal 201 +// large O-umlaut: 0x99 / octal 231 +static const char *const fixedTextDE[] = { "Geld", - "S. Holmes", - "Tabak", - "Plan", - "Aufforderg.", - "Blatt pap.", - "Dunstig pap", - "Handlampe", - "Geld", "S. Holmes", + "S. Holmes", + "Tabak", "Tabak", "Plan", + "Plan", + "Aufforderg.", "Aufforderg.", + "Blatt pap.", "Pergament", "Dunstig pap", + "Dunstig pap", + "Handlampe", "Handlampe", - "ffne", + "\231ffne", "Schau", "Rede", "Benutze", - "Journal", - "Inventory", - "Options", - "Losen", + "Tagebuch", + "Tasche", + "Optionen", + "L\224osen", "mit", "Keine Wirkung...", - "Diese Person weic im Augenblick nichts zu berichten.", + "Diese Person wei\341 im Augenblick nichts zu berichten.", + "Picked up", // <-- ?? "Seite %d", - "Schliecen", - "Lessen", + "Schlie\341en", + "Lessen", // <-- "In Datei sichern", "Suche abbrechen", - "Rbckwarts suchen ", + "R\201ckw\204rts suchen ", "Vorwarts suchen ", "Text nicht gefunden", "Holmes", "Jock", "Bull", - "Runde", - "Gesamt", - "Pfeil", + "Runde: %d", + "Gesamt: %d", + "Pfeil # %d", "zum Starten", - "Taste dracken", - "Taste dracken", - "Bullseye", - "SPIEL BEENDET", - "VERLOREN", - "Gewinnt", - "Erzielte", - "Punkte", - "Treffer", + "Taste dr\201cken", + "Taste dr\201cken", + "Bullseye", // ?? + "SPIEL BEENDET!", + "VERLOREN!", + "Gewinnt!", // "Holmes Gewinnt!", "%s Gewinnt!" + "Erzielte %d Punkte", + "Punkte", // ?? + "Treffer %s %d", "Doppel", "Dreifach", @@ -177,7 +278,7 @@ static const char *const FIXED_TEXT_GERMAN[] = { "Soundeffekte", "Voices", "Textfenster", - "Transparente Menbs", + "Transparente Men\201s", "Schriftart andern", "Aus", "An", @@ -186,19 +287,315 @@ static const char *const FIXED_TEXT_GERMAN[] = { "Sind Sie sicher ?", "Ja", "Nein", - "Pacwort eingeben", - "Going East" + "Pa\341wort eingeben", + "Going East", // correct password, was not and should not to be translated + // SH2: People names + "Sherlock Holmes", // note: People names were not translated in the German interpreter + "Dr. Watson", + "Mrs. Hudson", + "Stanley Forbes", + "Mycroft Holmes", + "Wiggins", + "Police Constable Burns", + "Augustus Trimble", + "Police Constable Daley", + "Matron", + "Sister Grace", + "Preston McCabe", + "Bob Colleran", + "Jonas Rigby", + "Police Constable Roach", + "James Dewar", + "Sergeant Jeremy Duncan", + "Inspector Gregson", + "Inspector Lestrade", + "Jesse Needhem", + "Arthur Fleming", + "Mr. Thomas Pratt", + "Mathilda (Tillie) Mason", + "Adrian Russell", + "Eldridge Whitney", + "Hepplethwaite", + "Horace Silverbridge", + "Old Sherman", + "Maxwell Verner", + "Millicent Redding", + "Virgil Silverbridge", + "George O'Keeffe", + "Lord Denys Lawton", + "Jenkins", + "Jock Mahoney", + "Bartender", + "Lady Cordelia Lockridge", + "Pettigrew", + "Sir Avery Fanshawe", + "Hodgkins", + "Wilbur \"Birdy\" Heywood", + "Jacob Farthington", + "Philip Bledsoe", + "Sidney Fowler", + "Professor Theodore Totman", + "Rose Hinchem", + "Tallboy", + "Ethlebert \"Stitch\" Rumsey", + "Charles Freedman", + "Nigel Hemmings", + "Fairfax Carter", + "Wilhelm II", + "Wachthund", + "Jonathan Wilson", + "David Lloyd-Jones", + "Edward Hargrove", + "Misteray", + "The Lascar", + "Parrot", + "Vincent Scarrett", + "Alexandra", + "Queen Victoria", + "John Brown", + "A Patient", + "A Patient", + "Patron", + "Queen Victoria", + "Patient in white", + "Lush", + "Drunk", + "Prostitute", + "Mudlark", + "Grinder", + "Bouncer", + "Agnes Ratchet", + "Aloysius Ratchet", + "Real Estate Agent", + "Candy Clerk", + "Beadle", + "Prussian", + "Mrs. Rowbottom", + "Miss Lloyd-Jones", + "Tavern patron", + "User", + "Toby", + "Stationer", + "Law Clerk", + "Ministry Clerk", + "Bather", + "Maid", + "Lady Fanshawe", + "Sidney Ratchet", + "Boy", + "Patron", + "Constable Brit", + "Wagon Driver" +}; + +// 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 fixedTextFR[] = { + "Argent", + "Argent", + "S. Holmes", + "S. Holmes", + "Tabac", + "Tabac", + "Horaire", + "Horaire", + "Convocation", + "Convocation", + "Feuille", + "Feuille", + "F. humide", + "Feuille", + "Lanterne", + "Lanterne", + + "Ouvrir", + "Regarder", + "Parler", + "Utiliser", + "Journal", // <-- + "Inventaire", + "Options", + "R\202soudre", + "avec", + "Sans effet...", + "Cette personne n'a rien \205 ajouter pour le moment.", + "Picked up", // <-- ?? + + "Page %d", + "Fermer", + "Lessen", // <-- + "Sauvegarder", + "Annuler ", + "Chercher avant", + "Chercher apr\212s", + "Texte introuvable !", + + "Holmes", + "Jock", + "Bull", + "Tour: %d", + "Total: %d", + "Fl\202chette # %d", + "pour commencer", + "Appuyez sur C", + "Appuyez sur C", + "Bullseye", // ?? + "FIN DE LA PARTIE!", // original: "Fin de la partie!" + "FIASCO!", + "Gagnant!", // "Holmes Gagnant!", "%s Gagnant!" + "Total des points: %d", + "Punkte", // ?? + "Treffer %s %d", + "double", + "triple", + + "Mouillez", + "Puis", + "Chauffez", + "Charger", + "Sauvegarder", + "Musique", + "Sons", + "Voix", + "Fen\210tres de texte", // 0x88 + "Menu Transparent", + "Changer la fonte", + "Aus", // ??? + "An", // ??? + "Quitter", + "Voulez-vous quitter?", + "Sind Sie sicher ?", // ??? + "Oui", + "Non", + "Entrez le mot de passe", + "Going East", // correct password, was not and should not to be translated + // SH2: People names + "Sherlock Holmes", + "Dr. Watson", + "Mme. Hudson", + "Stanley Forbes", + "Mycroft Holmes", + "Wiggins", + "Sergent Burns", + "Augustus Trimble", + "Sergent Daley", + "Infirmi\212re chef", + "Mme. Grace", + "Preston McCabe", + "Bob Colleran", + "Jonas Rigby", + "Sergent Roach", + "James Dewar", + "Sergent Jeremy Duncan", + "Inspecteur Gregson", + "Inspecteur Lestrade", + "Jesse Needhem", + "Arthur Fleming", + "M. Thomas Pratt", + "Mathilda (Tillie) Mason", + "Adrian Russell", + "Eldridge Whitney", + "Hepplethwaite", + "Horace Silverbridge", + "Sherman", + "Maxwell Verner", + "Millicent Redding", + "Virgil Silverbridge", + "George O'Keeffe", + "Lord Denys Lawton", + "Jenkins", + "Jock Mahoney", + "Serveur", + "Lady Cordelia Lockridge", + "Pettigrew", + "Sir Avery Fanshawe", + "Hodgkins", + "Wilbur \"Birdy\" Heywood", + "Jacob Farthington", + "Philip Bledsoe", + "Sidney Fowler", + "Professeur Theodore Totman", + "Rose Hinchem", + "Tallboy", + "Ethlebert \"Stitch\" Rumsey", + "Charles Freedman", + "Nigel Hemmings", + "Fairfax Carter", + "Wilhelm II", + "Wachthund", + "Jonathan Wilson", + "David Lloyd-Jones", + "Edward Hargrove", + "Misteray", + "Le Lascar", + "Oiseau", + "Vincent Scarrett", + "Alexandra", + "Queen Victoria", + "John Brown", + "Patient", + "Patient", + "Client", + "Queen Victoria", + "Patient en blanc", + "Ivrogne", + "Ivrogne", + "Belle femme", + "Mudlark", + "Broyeur", + "Videur", + "Agnes Ratchet", + "Aloysius Ratchet", + "Immobilier", + "Gar\207on", + "Beadle", + "Prussian", + "Mme. Rowbottom", + "Mme Lloyd-Jones", + "Tavern Client", + "User", + "Toby", + "Papeterie", + "Law Clerc", + "Ministry Employ\202", + "Clint du thermes", + "Bonne", + "Lady Fanshawe", + "Sidney Ratchet", + "Gar\207on", + "Client", + "Sergent Brit", + "Wagon Driver" +}; + +// TODO: There also was a Spanish version of Sherlock Holmes 2 +static const FixedTextLanguageEntry fixedTextLanguages[] = { + { Common::DE_DEU, fixedTextDE }, + // { Common::ES_ESP, fixedTextES }, + { Common::EN_ANY, fixedTextEN }, + { Common::FR_FRA, fixedTextFR }, + { Common::UNK_LANG, fixedTextEN } }; TattooFixedText::TattooFixedText(SherlockEngine *vm) : FixedText(vm) { - if (vm->getLanguage() == Common::DE_DEU) - _fixedText = FIXED_TEXT_GERMAN; - else - _fixedText = FIXED_TEXT_ENGLISH; + // Figure out which fixed texts to use + Common::Language curLanguage = _vm->getLanguage(); + + const FixedTextLanguageEntry *curLanguageEntry = fixedTextLanguages; + + while (curLanguageEntry->language != Common::UNK_LANG) { + if (curLanguageEntry->language == curLanguage) + break; // found current language + curLanguageEntry++; + } + _curLanguageEntry = curLanguageEntry; } const char *TattooFixedText::getText(int fixedTextId) { - return _fixedText[fixedTextId]; + return _curLanguageEntry->fixedTextArray[fixedTextId]; } const Common::String TattooFixedText::getActionMessage(FixedTextActionId actionId, int messageIndex) { diff --git a/engines/sherlock/tattoo/tattoo_fixed_text.h b/engines/sherlock/tattoo/tattoo_fixed_text.h index 3f43678ca2..48d237db3c 100644 --- a/engines/sherlock/tattoo/tattoo_fixed_text.h +++ b/engines/sherlock/tattoo/tattoo_fixed_text.h @@ -31,20 +31,20 @@ namespace Tattoo { enum FixedTextId { kFixedText_Inv1, - kFixedText_Inv2, - kFixedText_Inv3, - kFixedText_Inv4, - kFixedText_Inv5, - kFixedText_Inv6, - kFixedText_Inv7, - kFixedText_Inv8, kFixedText_InvDesc1, + kFixedText_Inv2, kFixedText_InvDesc2, + kFixedText_Inv3, kFixedText_InvDesc3, + kFixedText_Inv4, kFixedText_InvDesc4, + kFixedText_Inv5, kFixedText_InvDesc5, + kFixedText_Inv6, kFixedText_InvDesc6, + kFixedText_Inv7, kFixedText_InvDesc7, + kFixedText_Inv8, kFixedText_InvDesc8, kFixedText_Open, kFixedText_Look, @@ -106,12 +106,114 @@ enum FixedTextId { kFixedText_Yes, kFixedText_No, kFixedText_EnterPassword, - kFixedText_CorrectPassword + kFixedText_CorrectPassword, + // SH2: People names + kFixedText_People_SherlockHolmes, + kFixedText_People_DrWatson, + kFixedText_People_MrsHudson, + kFixedText_People_StanleyForbes, + kFixedText_People_MycroftHolmes, + kFixedText_People_Wiggins, + kFixedText_People_PoliceConstableBurns, + kFixedText_People_AugustusTrimble, + kFixedText_People_PoliceConstableDaley, + kFixedText_People_Matron, + kFixedText_People_SisterGrace, + kFixedText_People_PrestonMcCabe, + kFixedText_People_BobColleran, + kFixedText_People_JonasRigby, + kFixedText_People_PoliceConstableRoach, + kFixedText_People_JamesDewar, + kFixedText_People_SergeantJeremyDuncan, + kFixedText_People_InspectorGregson, + kFixedText_People_InspectorLestrade, + kFixedText_People_JesseNeedhem, + kFixedText_People_ArthurFleming, + kFixedText_People_MrThomasPratt, + kFixedText_People_MathildaTillieMason, + kFixedText_People_AdrianRussell, + kFixedText_People_EldridgeWhitney, + kFixedText_People_Hepplethwaite, + kFixedText_People_HoraceSilverbridge, + kFixedText_People_OldSherman, + kFixedText_People_MaxwellVerner, + kFixedText_People_MillicentRedding, + kFixedText_People_VirgilSilverbridge, + kFixedText_People_GeorgeOKeeffe, + kFixedText_People_LordDenysLawton, + kFixedText_People_Jenkins, + kFixedText_People_JockMahoney, + kFixedText_People_Bartender, + kFixedText_People_LadyCordeliaLockridge, + kFixedText_People_Pettigrew, + kFixedText_People_SirAveryFanshawe, + kFixedText_People_Hodgkins, + kFixedText_People_WilburBirdyHeywood, + kFixedText_People_JacobFarthington, + kFixedText_People_PhilipBledsoe, + kFixedText_People_SidneyFowler, + kFixedText_People_ProfessorTheodoreTotman, + kFixedText_People_RoseHinchem, + kFixedText_People_Tallboy, + kFixedText_People_EthlebertStitchRumsey, + kFixedText_People_CharlesFreedman, + kFixedText_People_NigelHemmings, + kFixedText_People_FairfaxCarter, + kFixedText_People_WilhelmII, + kFixedText_People_Wachthund, + kFixedText_People_JonathanWilson, + kFixedText_People_DavidLloydJones, + kFixedText_People_EdwardHargrove, + kFixedText_People_Misteray, + kFixedText_People_TheLascar, + kFixedText_People_Parrot, + kFixedText_People_VincentScarrett, + kFixedText_People_Alexandra, + kFixedText_People_QueenVictoria, + kFixedText_People_JohnBrown, + kFixedText_People_APatient1, + kFixedText_People_APatient2, + kFixedText_People_Patron, + kFixedText_People_QueenVictoria2, + kFixedText_People_PatientInWhite, + kFixedText_People_Lush, + kFixedText_People_Drunk, + kFixedText_People_Prostitute, + kFixedText_People_Mudlark, + kFixedText_People_Grinder, + kFixedText_People_Bouncer, + kFixedText_People_AgnesRatchet, + kFixedText_People_AloysiusRatchet, + kFixedText_People_RealEstateAgent, + kFixedText_People_CandyClerk, + kFixedText_People_Beadle, + kFixedText_People_Prussian, + kFixedText_People_MrsRowbottom, + kFixedText_People_MissLloydJones, + kFixedText_People_TavernPatron, + kFixedText_People_User, + kFixedText_People_Toby, + kFixedText_People_Stationer, + kFixedText_People_LawClerk, + kFixedText_People_MinistryClerk, + kFixedText_People_Bather, + kFixedText_People_Maid, + kFixedText_People_LadyFanshawe, + kFixedText_People_SidneyRatchet, + kFixedText_People_Boy, + kFixedText_People_Patron2, + kFixedText_People_ConstableBrit, + kFixedText_People_WagonDriver +}; + +struct FixedTextLanguageEntry { + Common::Language language; + const char *const *fixedTextArray; }; class TattooFixedText: public FixedText { private: - const char *const *_fixedText; + const FixedTextLanguageEntry *_curLanguageEntry; public: TattooFixedText(SherlockEngine *vm); virtual ~TattooFixedText() {} diff --git a/engines/sherlock/tattoo/tattoo_resources.cpp b/engines/sherlock/tattoo/tattoo_resources.cpp index 3be41e2650..4b73356d58 100644 --- a/engines/sherlock/tattoo/tattoo_resources.cpp +++ b/engines/sherlock/tattoo/tattoo_resources.cpp @@ -21,309 +21,111 @@ */ #include "sherlock/tattoo/tattoo_resources.h" +#include "sherlock/tattoo/tattoo_fixed_text.h" namespace Sherlock { namespace Tattoo { -const char PORTRAITS[TATTOO_MAX_PEOPLE][5] = { - { "HOLM" }, // Sherlock Holmes - { "WATS" }, // Dr. Watson - { "HUDS" }, // Mrs. Hudson - { "FORB" }, // Stanley Forbes - { "MYCR" }, // Mycroft Holmes - { "WIGG" }, // Wiggins - { "BURN" }, // Police Constable Burns - { "TRIM" }, // Augustus Trimble - { "DALE" }, // Police Constable Daley - { "MATR" }, // Matron - { "GRAC" }, // Sister Grace - { "MCCA" }, // Preston McCabe - { "COLL" }, // Bob Colleran - { "JONA" }, // Jonas Rigby - { "ROAC" }, // Police Constable Roach - { "DEWA" }, // James Dewar - { "JERE" }, // Sergeant Jeremy Duncan - { "GREG" }, // Inspector Gregson - { "LEST" }, // Inspector Lestrade - { "NEED" }, // Jesse Needhem - { "FLEM" }, // Arthur Fleming - { "PRAT" }, // Mr. Thomas Pratt - { "TILL" }, // Mathilda (Tillie) Mason - { "RUSS" }, // Adrian Russell - { "WHIT" }, // Eldridge Whitney - { "HEPP" }, // Hepplethwaite - { "HORA" }, // Horace Silverbridge - { "SHER" }, // Old Sherman - { "VERN" }, // Maxwell Verner - { "REDD" }, // Millicent Redding - { "VIRG" }, // Virgil Silverbridge - { "GEOR" }, // George O'Keeffe - { "LAWT" }, // Lord Denys Lawton - { "JENK" }, // Jenkins - { "JOCK" }, // Jock Mahoney - { "BART" }, // Bartender - { "LADY" }, // Lady Cordelia Lockridge - { "PETT" }, // Pettigrew - { "FANS" }, // Sir Avery Fanshawe - { "HODG" }, // Hodgkins - { "WILB" }, // Wilbur "Birdy" Heywood - { "JACO" }, // Jacob Farthington - { "BLED" }, // Philip Bledsoe - { "FOWL" }, // Sidney Fowler - { "PROF" }, // Professor Theodore Totman - { "ROSE" }, // Rose Hinchem - { "TALL" }, // Tallboy - { "STIT" }, // Ethlebert "Stitch" Rumsey - { "FREE" }, // Charles Freedman - { "HEMM" }, // Nigel Hemmings - { "CART" }, // Fairfax Carter - { "WILH" }, // Wilhelm II - { "WACH" }, // Wachthund - { "WILS" }, // Jonathan Wilson - { "DAVE" }, // David Lloyd-Jones - { "HARG" }, // Edward Hargrove - { "MORI" }, // Professor James Moriarty - { "LASC" }, // The Lascar - { "PARR" }, // Parrot - { "SCAR" }, // Vincent Scarrett - { "ALEX" }, // Alexandra - { "QUEE" }, // Queen Victoria - { "JOHN" }, // John Brown - { "PAT1" }, // Patient #1 - { "PAT2" }, // Patient #2 - { "PATR" }, // Patron - { "QUEN" }, // Queen Victoria - { "WITE" }, // Patient in White - { "LUSH" }, // Lush - { "DRNK" }, // Drunk - { "PROS" }, // Prostitute - { "MUDL" }, // Mudlark - { "GRIN" }, // Grinder - { "BOUN" }, // Bouncer - { "RATC" }, // Agnes Ratchet - { "ALOY" }, // Aloysius Ratchet - { "REAL" }, // Real Estate Agent - { "CAND" }, // Candy Clerk - { "BEAD" }, // Beadle - { "PRUS" }, // Prussian - { "ROWB" }, // Mrs. Rowbottom - { "MSLJ" }, // Miss Lloyd-Jones - { "TPAT" }, // Tavern patron - { "USER" }, // User - { "TOBY" }, // Toby - { "STAT" }, // Stationer - { "CLRK" }, // Law Clerk - { "CLER" }, // Ministry Clerk - { "BATH" }, // Bather - { "MAID" }, // Maid - { "LADF" }, // Lady Fanshawe - { "SIDN" }, // Sidney Ratchet - { "BOYO" }, // Boy - { "PTR2" }, // Second Patron - { "BRIT" }, // Constable Brit - { "DROV" } // Wagon Driver +const PeopleData PEOPLE_DATA[TATTOO_MAX_PEOPLE] = { + { "HOLM", kFixedText_People_SherlockHolmes }, + { "WATS", kFixedText_People_DrWatson }, + { "HUDS", kFixedText_People_MrsHudson }, + { "FORB", kFixedText_People_StanleyForbes }, + { "MYCR", kFixedText_People_MycroftHolmes }, + { "WIGG", kFixedText_People_Wiggins }, + { "BURN", kFixedText_People_PoliceConstableBurns }, + { "TRIM", kFixedText_People_AugustusTrimble }, + { "DALE", kFixedText_People_PoliceConstableDaley }, + { "MATR", kFixedText_People_Matron }, + { "GRAC", kFixedText_People_SisterGrace }, + { "MCCA", kFixedText_People_PrestonMcCabe }, + { "COLL", kFixedText_People_BobColleran }, + { "JONA", kFixedText_People_JonasRigby }, + { "ROAC", kFixedText_People_PoliceConstableRoach }, + { "DEWA", kFixedText_People_JamesDewar }, + { "JERE", kFixedText_People_SergeantJeremyDuncan }, + { "GREG", kFixedText_People_InspectorGregson }, + { "LEST", kFixedText_People_InspectorLestrade }, + { "NEED", kFixedText_People_JesseNeedhem }, + { "FLEM", kFixedText_People_ArthurFleming }, + { "PRAT", kFixedText_People_MrThomasPratt }, + { "TILL", kFixedText_People_MathildaTillieMason }, + { "RUSS", kFixedText_People_AdrianRussell }, + { "WHIT", kFixedText_People_EldridgeWhitney }, + { "HEPP", kFixedText_People_Hepplethwaite }, + { "HORA", kFixedText_People_HoraceSilverbridge }, + { "SHER", kFixedText_People_OldSherman }, + { "VERN", kFixedText_People_MaxwellVerner }, + { "REDD", kFixedText_People_MillicentRedding }, + { "VIRG", kFixedText_People_VirgilSilverbridge }, + { "GEOR", kFixedText_People_GeorgeOKeeffe }, + { "LAWT", kFixedText_People_LordDenysLawton }, + { "JENK", kFixedText_People_Jenkins }, + { "JOCK", kFixedText_People_JockMahoney }, + { "BART", kFixedText_People_Bartender }, + { "LADY", kFixedText_People_LadyCordeliaLockridge }, + { "PETT", kFixedText_People_Pettigrew }, + { "FANS", kFixedText_People_SirAveryFanshawe }, + { "HODG", kFixedText_People_Hodgkins }, + { "WILB", kFixedText_People_WilburBirdyHeywood }, + { "JACO", kFixedText_People_JacobFarthington }, + { "BLED", kFixedText_People_PhilipBledsoe }, + { "FOWL", kFixedText_People_SidneyFowler }, + { "PROF", kFixedText_People_ProfessorTheodoreTotman }, + { "ROSE", kFixedText_People_RoseHinchem }, + { "TALL", kFixedText_People_Tallboy }, + { "STIT", kFixedText_People_EthlebertStitchRumsey }, + { "FREE", kFixedText_People_CharlesFreedman }, + { "HEMM", kFixedText_People_NigelHemmings }, + { "CART", kFixedText_People_FairfaxCarter }, + { "WILH", kFixedText_People_WilhelmII }, + { "WACH", kFixedText_People_Wachthund }, + { "WILS", kFixedText_People_JonathanWilson }, + { "DAVE", kFixedText_People_DavidLloydJones }, + { "HARG", kFixedText_People_EdwardHargrove }, + { "MORI", kFixedText_People_Misteray }, + { "LASC", kFixedText_People_TheLascar }, + { "PARR", kFixedText_People_Parrot }, + { "SCAR", kFixedText_People_VincentScarrett }, + { "ALEX", kFixedText_People_Alexandra }, + { "QUEE", kFixedText_People_QueenVictoria }, + { "JOHN", kFixedText_People_JohnBrown }, + { "PAT1", kFixedText_People_APatient1 }, + { "PAT2", kFixedText_People_APatient2 }, + { "PATR", kFixedText_People_Patron }, + { "QUEN", kFixedText_People_QueenVictoria }, + { "WITE", kFixedText_People_PatientInWhite }, + { "LUSH", kFixedText_People_Lush }, + { "DRNK", kFixedText_People_Drunk }, + { "PROS", kFixedText_People_Prostitute }, + { "MUDL", kFixedText_People_Mudlark }, + { "GRIN", kFixedText_People_Grinder }, + { "BOUN", kFixedText_People_Bouncer }, + { "RATC", kFixedText_People_AgnesRatchet }, + { "ALOY", kFixedText_People_AloysiusRatchet }, + { "REAL", kFixedText_People_RealEstateAgent }, + { "CAND", kFixedText_People_CandyClerk }, + { "BEAD", kFixedText_People_Beadle }, + { "PRUS", kFixedText_People_Prussian }, + { "ROWB", kFixedText_People_MrsRowbottom }, + { "MSLJ", kFixedText_People_MissLloydJones }, + { "TPAT", kFixedText_People_TavernPatron }, + { "USER", kFixedText_People_User }, + { "TOBY", kFixedText_People_Toby }, + { "STAT", kFixedText_People_Stationer }, + { "CLRK", kFixedText_People_LawClerk }, + { "CLER", kFixedText_People_MinistryClerk }, + { "BATH", kFixedText_People_Bather }, + { "MAID", kFixedText_People_Maid }, + { "LADF", kFixedText_People_LadyFanshawe }, + { "SIDN", kFixedText_People_SidneyRatchet }, + { "BOYO", kFixedText_People_Boy }, + { "PTR2", kFixedText_People_Patron2 }, + { "BRIT", kFixedText_People_ConstableBrit }, + { "DROV", kFixedText_People_WagonDriver } }; -const char *const FRENCH_NAMES[TATTOO_MAX_PEOPLE] = { - "Sherlock Holmes", - "Dr. Watson", - "Mme. Hudson", - "Stanley Forbes", - "Mycroft Holmes", - "Wiggins", - "Sergent Burns", - "Augustus Trimble", - "Sergent Daley", - "Infirmi?re chef", - "Mme. Grace", - "Preston McCabe", - "Bob Colleran", - "Jonas Rigby", - "Sergent Roach", - "James Dewar", - "Sergent Jeremy Duncan", - "Inspecteur Gregson", - "Inspecteur Lestrade", - "Jesse Needhem", - "Arthur Fleming", - "M. Thomas Pratt", - "Mathilda (Tillie) Mason", - "Adrian Russell", - "Eldridge Whitney", - "Hepplethwaite", - "Horace Silverbridge", - "Sherman", - "Maxwell Verner", - "Millicent Redding", - "Virgil Silverbridge", - "George O'Keeffe", - "Lord Denys Lawton", - "Jenkins", - "Jock Mahoney", - "Serveur", - "Lady Cordelia Lockridge", - "Pettigrew", - "Sir Avery Fanshawe", - "Hodgkins", - "Wilbur \"Birdy\" Heywood", - "Jacob Farthington", - "Philip Bledsoe", - "Sidney Fowler", - "Professeur Theodore Totman", - "Rose Hinchem", - "Tallboy", - "Ethlebert \"Stitch\" Rumsey", - "Charles Freedman", - "Nigel Hemmings", - "Fairfax Carter", - "Wilhelm II", - "Wachthund", - "Jonathan Wilson", - "David Lloyd-Jones", - "Edward Hargrove", - "Misteray", - "Le Lascar", - "Oiseau", - "Vincent Scarrett", - "Alexandra", - "Queen Victoria", - "John Brown", - "Patient", - "Patient", - "Client", - "Queen Victoria", - "Patient en blanc", - "Ivrogne", - "Ivrogne", - "Belle femme", - "Mudlark", - "Broyeur", - "Videur", - "Agnes Ratchet", - "Aloysius Ratchet", - "Immobilier", - "Gar?on", - "Beadle", - "Prussian", - "Mme. Rowbottom", - "Mme Lloyd-Jones", - "Tavern Client", - "User", - "Toby", - "Papeterie", - "Law Clerc", - "Ministry Employ?", - "Clint du thermes", - "Bonne", - "Lady Fanshawe", - "Sidney Ratchet", - "Gar?on", - "Client", - "Sergent Brit", - "Wagon Driver" -}; - -const char *const ENGLISH_NAMES[TATTOO_MAX_PEOPLE] = { - "Sherlock Holmes", - "Dr. Watson", - "Mrs. Hudson", - "Stanley Forbes", - "Mycroft Holmes", - "Wiggins", - "Police Constable Burns", - "Augustus Trimble", - "Police Constable Daley", - "Matron", - "Sister Grace", - "Preston McCabe", - "Bob Colleran", - "Jonas Rigby", - "Police Constable Roach", - "James Dewar", - "Sergeant Jeremy Duncan", - "Inspector Gregson", - "Inspector Lestrade", - "Jesse Needhem", - "Arthur Fleming", - "Mr. Thomas Pratt", - "Mathilda (Tillie) Mason", - "Adrian Russell", - "Eldridge Whitney", - "Hepplethwaite", - "Horace Silverbridge", - "Old Sherman", - "Maxwell Verner", - "Millicent Redding", - "Virgil Silverbridge", - "George O'Keeffe", - "Lord Denys Lawton", - "Jenkins", - "Jock Mahoney", - "Bartender", - "Lady Cordelia Lockridge", - "Pettigrew", - "Sir Avery Fanshawe", - "Hodgkins", - "Wilbur \"Birdy\" Heywood", - "Jacob Farthington", - "Philip Bledsoe", - "Sidney Fowler", - "Professor Theodore Totman", - "Rose Hinchem", - "Tallboy", - "Ethlebert \"Stitch\" Rumsey", - "Charles Freedman", - "Nigel Hemmings", - "Fairfax Carter", - "Wilhelm II", - "Wachthund", - "Jonathan Wilson", - "David Lloyd-Jones", - "Edward Hargrove", - "Misteray", - "The Lascar", - "Parrot", - "Vincent Scarrett", - "Alexandra", - "Queen Victoria", - "John Brown", - "A Patient", - "A Patient", - "Patron", - "Queen Victoria", - "Patient in white", - "Lush", - "Drunk", - "Prostitute", - "Mudlark", - "Grinder", - "Bouncer", - "Agnes Ratchet", - "Aloysius Ratchet", - "Real Estate Agent", - "Candy Clerk", - "Beadle", - "Prussian", - "Mrs. Rowbottom", - "Miss Lloyd-Jones", - "Tavern patron", - "User", - "Toby", - "Stationer", - "Law Clerk", - "Ministry Clerk", - "Bather", - "Maid", - "Lady Fanshawe", - "Sidney Ratchet", - "Boy", - "Patron", - "Constable Brit", - "Wagon Driver" -}; - - } // End of namespace Tattoo } // End of namespace Sherlock diff --git a/engines/sherlock/tattoo/tattoo_resources.h b/engines/sherlock/tattoo/tattoo_resources.h index b706d90f2d..85a78734b9 100644 --- a/engines/sherlock/tattoo/tattoo_resources.h +++ b/engines/sherlock/tattoo/tattoo_resources.h @@ -31,9 +31,12 @@ namespace Tattoo { #define TATTOO_MAX_PEOPLE 96 -extern const char PORTRAITS[TATTOO_MAX_PEOPLE][5]; -extern const char *const FRENCH_NAMES[TATTOO_MAX_PEOPLE]; -extern const char *const ENGLISH_NAMES[TATTOO_MAX_PEOPLE]; +struct PeopleData { + const char *portrait; + int fixedTextId; +}; + +extern const PeopleData PEOPLE_DATA[TATTOO_MAX_PEOPLE]; } // End of namespace Tattoo -- cgit v1.2.3