diff options
30 files changed, 828 insertions, 81 deletions
diff --git a/devtools/create_titanic/create_titanic_dat.cpp b/devtools/create_titanic/create_titanic_dat.cpp index cacc77fa24..88ff97fb20 100644 --- a/devtools/create_titanic/create_titanic_dat.cpp +++ b/devtools/create_titanic/create_titanic_dat.cpp @@ -57,7 +57,7 @@ */ #define VERSION_NUMBER 3 -#define HEADER_SIZE 0x1380 +#define HEADER_SIZE 0x1480 Common::File inputFile, outputFile; Common::PEResources resEng, resGer; @@ -1713,7 +1713,15 @@ void writeGermanData() { writeStringArray("TEXT/REPLACEMENTS3/DE", 0x2413B0 + GERMAN_DIFF, 608); writeStringArray("TEXT/REPLACEMENTS4/DE", 0x241D38 + GERMAN_DIFF, 195); writeStringArray("TEXT/PRONOUNS/DE", 0x248610 + GERMAN_DIFF, 15); + + writeSentenceMappings("Mappings/Barbot/DE", 0x1BA388 + GERMAN_DIFF, 8); + writeSentenceMappings("Mappings/Bellbot/DE", 0x1E1D20 + GERMAN_DIFF, 1); + writeSentenceMappings("Mappings/Deskbot/DE", 0x1F5A18 + GERMAN_DIFF, 4); writeSentenceMappings("Mappings/Doorbot/DE", 0x214E00 + GERMAN_DIFF, 4); + writeSentenceMappings("Mappings/Liftbot/DE", 0x224AE0 + GERMAN_DIFF, 4); + writeSentenceMappings("Mappings/MaitreD/DE", 0x232E30 + GERMAN_DIFF, 1); + writeSentenceMappings("Mappings/Parrot/DE", 0x235FA8 + GERMAN_DIFF, 1); + writeSentenceMappings("Mappings/SuccUBus/DE", 0x2399C8 + GERMAN_DIFF, 1); const int SENTENCES_BARBOT[2] = { 0x5B00C0, 0x5C5AC8 }; const int SENTENCES_BELLBOT[20] = { 0x5CACF8, 0x5D1670 }; diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp index 738f2acfd0..c2f041af72 100644 --- a/engines/sci/engine/script_patches.cpp +++ b/engines/sci/engine/script_patches.cpp @@ -1054,6 +1054,64 @@ static const uint16 gk1Day5PhoneFreezePatch[] = { PATCH_END }; +// When Gabriel is grabbing a vine 'vineSwing::changeState(1)', +// him saying "I can't believe I'm doing this..." is cut off. +// We change it so the scripts wait for the audio. +// This is not supposed to be applied to the Floppy version. +// +// Applies to at lesat: English PC-CD, German PC-CD, Spanish PC-CD +static const uint16 gk1Day9VineSwingSignature[] = { + 0x38, SIG_UINT16(4), // pushi $4 + 0x51, 0x17, // class CT + 0x36, // push + 0x39, 0x0b, // pushi $b + 0x78, // push1 + 0x7c, // pushSelf + 0x81, 0x00, // lag global[$0] + 0x4a, SIG_UINT16(0x20), // send $20 + 0x38, SIG_SELECTOR16(setMotion), // pushi setMotion + 0x78, // push1 + 0x76, // push0 + 0x72, SIG_UINT16(0x0412), // lofsa guard1 + 0x4a, SIG_UINT16(0x06), // send $6 + 0x38, SIG_SELECTOR16(say), // pushi say + 0x38, SIG_UINT16(0x04), // pushi $4 + SIG_MAGICDWORD, + 0x39, 0x07, // pushi $7 + 0x39, 0x08, // pushi $8 + 0x39, 0x10, // pushi $10 + 0x78, // push1 + 0x81, 0x5b, // lsg global[$5b] + 0x4a, SIG_UINT16(0x000c), // send $c + SIG_END +}; + +static const uint16 gk1Day9VineSwingPatch[] = { + 0x38, SIG_UINT16(3), // pushi $3 + 0x51, 0x17, // class CT + 0x36, // push + 0x39, 0x0b, // pushi $b + 0x78, // push1 + 0x81, 0x00, // lag global[$0] + 0x4a, SIG_UINT16(0x1e), // send $20 + 0x38, SIG_SELECTOR16(setMotion), // pushi setMotion + 0x78, // push1 + 0x76, // push0 + 0x72, SIG_UINT16(0x0412), // lofsa guard1 + 0x4a, SIG_UINT16(0x06), // send $6 + 0x38, SIG_SELECTOR16(say), // pushi say + 0x38, SIG_UINT16(0x05), // pushi $5 + 0x39, 0x07, // pushi $7 + 0x39, 0x08, // pushi $8 + 0x39, 0x10, // pushi $10 + 0x78, // push1 + 0x7c, // pushSelf + 0x81, 0x5b, // lsg global[$5b] + 0x4a, SIG_UINT16(0x000e), // send $c + PATCH_END +}; + + // In GK1, the `view` selector is used to store view numbers in some cases and // object references to Views in other cases. `Interrogation::dispose` compares // an object stored in the `view` selector with a number (which is not valid) @@ -1120,6 +1178,7 @@ static const SciScriptPatcherEntry gk1Signatures[] = { { true, 230, "fix day 6 police beignet timer issue (1/2)", 1, gk1Day6PoliceBeignetSignature1, gk1Day6PoliceBeignetPatch1 }, { true, 230, "fix day 6 police beignet timer issue (2/2)", 1, gk1Day6PoliceBeignetSignature2, gk1Day6PoliceBeignetPatch2 }, { true, 230, "fix day 6 police sleep timer issue", 1, gk1Day6PoliceSleepSignature, gk1Day6PoliceSleepPatch }, + { true, 710, "fix day 9 vine swing speech playing", 1, gk1Day9VineSwingSignature, gk1Day9VineSwingPatch }, { true, 64908, "disable video benchmarking", 1, sci2BenchmarkSignature, sci2BenchmarkPatch }, { true, 64990, "increase number of save games (1/2)", 1, sci2NumSavesSignature1, sci2NumSavesPatch1 }, { true, 64990, "increase number of save games (2/2)", 1, sci2NumSavesSignature2, sci2NumSavesPatch2 }, @@ -3993,25 +4052,74 @@ static const uint16 phant2InvOffsetPatch[] = { PATCH_END }; -// script, description, signature patch +// The text placement of "File" and "Note" content inside DocuStore File +// Retrieval System makes some letters especially "g" overlap the +// corresponding box. Set by 'WynNetDoco::open'. +// We fix this by changing the position of those 2 inside the heap of +// subclass 'WynNetDoco' slightly. +// Applies to at least: English CD, Japanese CD, German CD +static const uint16 phant2DocuStoreFileNotePlacementSignature[] = { + SIG_MAGICDWORD, + SIG_UINT16(0x0046), // nameX + SIG_UINT16(0x000a), // nameY + SIG_ADDTOOFFSET(+10), // skip over nameMsg* + SIG_UINT16(0x0046), // noteX + SIG_UINT16(0x001e), // noteY + SIG_END +}; + +static const uint16 phant2DocuStoreFileNotePlacementPatch[] = { + PATCH_ADDTOOFFSET(+2), + PATCH_UINT16(0x0006), // new nameY + PATCH_ADDTOOFFSET(+12), + PATCH_UINT16(0x001b), // new noteY + PATCH_END +}; + +// The text placement of "From" and "Subject" content inside DocuStore. +// We fix this by changing the position inside the heap of subclass +// 'WynNetEmail' slightly. +// For this one, we also fix the horizontal placement. +static const uint16 phant2DocuStoreEmailPlacementSignature[] = { + SIG_MAGICDWORD, + SIG_UINT16(0x0049), // nameX + SIG_UINT16(0x0008), // nameY + SIG_ADDTOOFFSET(+10), // skip over nameMsg* + SIG_UINT16(0x0049), // noteX + SIG_UINT16(0x001c), // noteY + SIG_END +}; + +static const uint16 phant2DocuStoreEmailPlacementPatch[] = { + PATCH_UINT16(0x0050), // new nameX + PATCH_UINT16(0x0006), // new nameY + SIG_ADDTOOFFSET(+10), + PATCH_UINT16(0x0050), // new noteX + PATCH_UINT16(0x001b), // new noteY + PATCH_END +}; + +// script, description, signature patch static const SciScriptPatcherEntry phantasmagoria2Signatures[] = { - { true, 0, "speed up interface fades", 3, phant2SlowIFadeSignature, phant2SlowIFadePatch }, - { true, 0, "fix bad arguments to get game version", 1, phant2GetVersionSignature, phant2GetVersionPatch }, - { true, 3000, "replace spin loop in alien password window", 1, phant2WaitParam1Signature, phant2WaitParam1Patch }, - { true, 4081, "replace spin loop after ratboy puzzle", 1, phant2RatboySignature, phant2RatboyPatch }, - { true, 63001, "fix inventory left scroll delta", 1, phant2InvLeftDeltaSignature, phant2InvLeftDeltaPatch }, - { true, 63001, "fix inventory right scroll delta", 1, phant2InvRightDeltaSignature, phant2InvRightDeltaPatch }, - { true, 63001, "fix inventory wrong initial offset", 1, phant2InvOffsetSignature, phant2InvOffsetPatch }, - { true, 63004, "limit in-game audio volume", 1, phant2AudioVolumeSignature, phant2AudioVolumePatch }, - { true, 63016, "replace spin loop during music fades", 1, phant2Wait4FadeSignature, phant2Wait4FadePatch }, - { true, 63019, "replace spin loop during computer load", 1, phant2WaitParam1Signature, phant2WaitParam1Patch }, - { true, 63019, "replace spin loop during computer scrolling", 1, phant2SlowScrollSignature, phant2SlowScrollPatch }, - { true, 63019, "fix bad doc/email name & memo positioning", 2, phant2BadPositionSignature, phant2BadPositionPatch }, - { true, 63019, "fix bad folder/doc icon refresh", 2, phant2BadIconSignature, phant2BadIconPatch }, - { true, 64990, "remove save game name mangling (1/2)", 1, phant2SaveNameSignature1, phant2SaveNamePatch1 }, - { true, 64990, "increase number of save games (1/2)", 1, phant2NumSavesSignature1, phant2NumSavesPatch1 }, - { true, 64990, "increase number of save games (2/2)", 2, phant2NumSavesSignature2, phant2NumSavesPatch2 }, - { true, 64994, "remove save game name mangling (2/2)", 1, phant2SaveNameSignature2, phant2SaveNamePatch2 }, + { true, 0, "speed up interface fades", 3, phant2SlowIFadeSignature, phant2SlowIFadePatch }, + { true, 0, "fix bad arguments to get game version", 1, phant2GetVersionSignature, phant2GetVersionPatch }, + { true, 3000, "replace spin loop in alien password window", 1, phant2WaitParam1Signature, phant2WaitParam1Patch }, + { true, 4081, "replace spin loop after ratboy puzzle", 1, phant2RatboySignature, phant2RatboyPatch }, + { true, 63001, "fix inventory left scroll delta", 1, phant2InvLeftDeltaSignature, phant2InvLeftDeltaPatch }, + { true, 63001, "fix inventory right scroll delta", 1, phant2InvRightDeltaSignature, phant2InvRightDeltaPatch }, + { true, 63001, "fix inventory wrong initial offset", 1, phant2InvOffsetSignature, phant2InvOffsetPatch }, + { true, 63004, "limit in-game audio volume", 1, phant2AudioVolumeSignature, phant2AudioVolumePatch }, + { true, 63016, "replace spin loop during music fades", 1, phant2Wait4FadeSignature, phant2Wait4FadePatch }, + { true, 63019, "replace spin loop during computer load", 1, phant2WaitParam1Signature, phant2WaitParam1Patch }, + { true, 63019, "replace spin loop during computer scrolling", 1, phant2SlowScrollSignature, phant2SlowScrollPatch }, + { true, 63019, "fix bad doc/email name & memo positioning", 2, phant2BadPositionSignature, phant2BadPositionPatch }, + { true, 63019, "fix bad folder/doc icon refresh", 2, phant2BadIconSignature, phant2BadIconPatch }, + { true, 63019, "fix file and note content placement", 1, phant2DocuStoreFileNotePlacementSignature, phant2DocuStoreFileNotePlacementPatch }, + { true, 63019, "fix email content placement", 1, phant2DocuStoreEmailPlacementSignature, phant2DocuStoreEmailPlacementPatch }, + { true, 64990, "remove save game name mangling (1/2)", 1, phant2SaveNameSignature1, phant2SaveNamePatch1 }, + { true, 64990, "increase number of save games (1/2)", 1, phant2NumSavesSignature1, phant2NumSavesPatch1 }, + { true, 64990, "increase number of save games (2/2)", 2, phant2NumSavesSignature2, phant2NumSavesPatch2 }, + { true, 64994, "remove save game name mangling (2/2)", 1, phant2SaveNameSignature2, phant2SaveNamePatch2 }, SCI_SIGNATUREENTRY_TERMINATOR }; diff --git a/engines/titanic/game/cdrom_tray.cpp b/engines/titanic/game/cdrom_tray.cpp index d6aa32c702..0215b58f43 100644 --- a/engines/titanic/game/cdrom_tray.cpp +++ b/engines/titanic/game/cdrom_tray.cpp @@ -23,6 +23,7 @@ #include "titanic/core/room_item.h" #include "titanic/game/cdrom_tray.h" #include "titanic/messages/messages.h" +#include "titanic/translation.h" namespace Titanic { @@ -59,7 +60,7 @@ bool CCDROMTray::ActMsg(CActMsg *msg) { if (_insertedCD == "None") { // No CD in tray playMovie(55, 65, 0); - playSound("a#35.wav", 50, 0, 0); + playSound(TRANSLATE("a#35.wav", "a#30.wav"), 50, 0, 0); _isOpened = false; } else { // Ejecting tray with CD @@ -85,19 +86,19 @@ bool CCDROMTray::ActMsg(CActMsg *msg) { } else if (_insertedCD == "newSTCD") { // Opening tray with Starship Titanic CD playMovie(0, 10, 0); - playSound("a#34.wav", 50, 0, 0); + playSound(TRANSLATE("a#34.wav", "a#29.wav"), 50, 0, 0); _isOpened = true; } } else if (_isOpened) { if (msg->_action == "newCD1" || msg->_action == "newCD2") { // Standard CD dropped on CDROM Tray playMovie(33, 43, MOVIE_NOTIFY_OBJECT); - playSound("a#35.wav", 50, 0, 0); + playSound(TRANSLATE("a#35.wav", "a#30.wav"), 50, 0, 0); } else if (msg->_action == "newSTCD") { // Starship Titanic CD dropped on CDROM Tray disableMouse(); playMovie(11, 21, MOVIE_NOTIFY_OBJECT); - playSound("a#35.wav", 50, 0, 0); + playSound(TRANSLATE("a#35.wav", "a#30.wav"), 50, 0, 0); } else { return true; } diff --git a/engines/titanic/game/computer_screen.cpp b/engines/titanic/game/computer_screen.cpp index ad4c025136..dee469af1c 100644 --- a/engines/titanic/game/computer_screen.cpp +++ b/engines/titanic/game/computer_screen.cpp @@ -22,7 +22,7 @@ #include "titanic/game/computer_screen.h" #include "titanic/messages/messages.h" -#include "titanic/titanic.h" +#include "titanic/translation.h" namespace Titanic { @@ -90,20 +90,20 @@ bool CComputerScreen::TimerMsg(CTimerMsg *msg) { switch (msg->_actionVal) { case 0: - if (!g_vm->isGerman()) { - loadSound("a#32.wav"); - loadSound("a#31.wav"); - loadSound("a#33.wav"); - loadSound("a#30.wav"); - loadSound("a#29.wav"); - playSound("a#25.wav"); - } else { + if (g_language == Common::DE_DEU) { loadSound("a#27.wav"); loadSound("a#26.wav"); loadSound("a#28.wav"); loadSound("a#25.wav"); loadSound("a#24.wav"); playSound("a#20.wav"); + } else { + loadSound("a#32.wav"); + loadSound("a#31.wav"); + loadSound("a#33.wav"); + loadSound("a#30.wav"); + loadSound("a#29.wav"); + playSound("a#25.wav"); } addTimer(1, 2000, 0); break; @@ -140,7 +140,7 @@ bool CComputerScreen::TimerMsg(CTimerMsg *msg) { setSoundVolume(handle, 10, 2); playClip(392, 450); startTalking("Doorbot", 0x3611A); - sleep(8000); + sleep(TRANSLATE(8000, 7000)); playClip(450, 492); startTalking("Doorbot", 0x36121); diff --git a/engines/titanic/game/credits.cpp b/engines/titanic/game/credits.cpp index 8333343cde..ddb44f127c 100644 --- a/engines/titanic/game/credits.cpp +++ b/engines/titanic/game/credits.cpp @@ -21,6 +21,7 @@ */ #include "titanic/game/credits.h" +#include "titanic/translation.h" namespace Titanic { @@ -58,13 +59,13 @@ bool CCredits::SignalObject(CSignalObject *msg) { bool CCredits::TimerMsg(CTimerMsg *msg) { stopGlobalSound(true, -1); setVisible(true); - loadSound("a#16.wav"); - loadSound("a#24.wav"); + loadSound(TRANSLATE("a#16.wav", "a#11.wav")); + loadSound(TRANSLATE("a#24.wav", "a#19.wav")); if (playCutscene(0, 18)) { - playGlobalSound("a#16.wav", VOL_NORMAL, false, false, 0); + playGlobalSound(TRANSLATE("a#16.wav", "a#11.wav"), VOL_NORMAL, false, false, 0); if (playCutscene(19, 642)) { - playSound("a#24.wav"); + playSound(TRANSLATE("a#24.wav", "a#19.wav")); playCutscene(643, 750); } } diff --git a/engines/titanic/game/credits_button.cpp b/engines/titanic/game/credits_button.cpp index ee8f7bb329..2296a4e1e8 100644 --- a/engines/titanic/game/credits_button.cpp +++ b/engines/titanic/game/credits_button.cpp @@ -21,6 +21,7 @@ */ #include "titanic/game/credits_button.h" +#include "titanic/translation.h" namespace Titanic { @@ -50,7 +51,7 @@ bool CCreditsButton::MouseButtonUpMsg(CMouseButtonUpMsg *msg) { bool CCreditsButton::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { if (_fieldE0) { - playSound("a#20.wav"); + playSound(TRANSLATE("a#20.wav", "a#15.wav")); CSignalObject signalMsg; signalMsg._numValue = 1; signalMsg.execute("CreditsPlayer"); diff --git a/engines/titanic/game/transport/service_elevator.cpp b/engines/titanic/game/transport/service_elevator.cpp index dbd4e5d74f..1e76c63e01 100644 --- a/engines/titanic/game/transport/service_elevator.cpp +++ b/engines/titanic/game/transport/service_elevator.cpp @@ -23,6 +23,7 @@ #include "titanic/game/transport/service_elevator.h" #include "titanic/core/room_item.h" #include "titanic/npcs/doorbot.h" +#include "titanic/translation.h" namespace Titanic { @@ -107,7 +108,7 @@ bool CServiceElevator::ServiceElevatorMsg(CServiceElevatorMsg *msg) { if (!_string1.empty()) { if (_string1 == "DeepSpace") { disableMouse(); - _soundHandle1 = playSound("z#413.wav", 50); + _soundHandle1 = playSound(TRANSLATE("z#413.wav", "z#157.wav"), 50); _timerId = addTimer(1, 1000, 500); } else { changeView(_string1); @@ -119,9 +120,9 @@ bool CServiceElevator::ServiceElevatorMsg(CServiceElevatorMsg *msg) { // Reaching destination floor _fieldF8 = false; _fieldDC = _v3; - loadSound("z#423.wav"); + loadSound(TRANSLATE("z#423.wav", "z#168.wav")); stopSound(_soundHandle2); - _soundHandle2 = playSound("z#423.wav", 80); + _soundHandle2 = playSound(TRANSLATE("z#423.wav", "z#168.wav"), 80); switch (_fieldDC) { case 0: @@ -132,12 +133,12 @@ bool CServiceElevator::ServiceElevatorMsg(CServiceElevatorMsg *msg) { case 1: _string1 = _v2 ? "BilgeRoomWith.Node 2.N" : "BilgeRoom.Node 1.N"; - queueSound("z#421.wav", _soundHandle2, 50); + queueSound(TRANSLATE("z#421.wav", "z#165.wav"), _soundHandle2, 50); break; case 2: _string1 = _v1 ? "MoonEmbLobby.Node 1.NE" : "EmbLobby.Node 1.NE"; - queueSound("z#411.wav", _soundHandle2, 50); + queueSound(TRANSLATE("z#411.wav", "z#155.wav"), _soundHandle2, 50); break; default: @@ -169,7 +170,7 @@ bool CServiceElevator::TimerMsg(CTimerMsg *msg) { _fieldF8 = true; CServiceElevatorFloorChangeMsg changeMsg(_fieldDC, _v3); changeMsg.execute(getRoom(), nullptr, MSGFLAG_SCAN); - _soundHandle2 = playSound("z#424.wav"); + _soundHandle2 = playSound(TRANSLATE("z#424.wav", "z#169.wav")); if (doorbot) { CActMsg actMsg("DoorbotPlayerPressedTopButton"); @@ -209,21 +210,21 @@ bool CServiceElevator::ServiceElevatorFloorRequestMsg(CServiceElevatorFloorReque CDoorbot *doorbot = dynamic_cast<CDoorbot *>(findRoom()->findByName("Doorbot")); if (doorbot && _v3 == 0) { - _soundHandle1 = playSound("z#415.wav", 50); + _soundHandle1 = playSound(TRANSLATE("z#415.wav", "z#159.wav"), 50); _timerId = addTimer(1, 1000, 500); } else if (doorbot && _v3 == 1) { - _soundHandle1 = playSound("z#417.wav", 50); + _soundHandle1 = playSound(TRANSLATE("z#417.wav", "z#161.wav"), 50); _timerId = addTimer(1, 1000, 500); } else if (_fieldDC == _v3) { switch (_v3) { case 0: - _soundHandle1 = playSound("z#415.wav", 50); + _soundHandle1 = playSound(TRANSLATE("z#415.wav", "z#159.wav"), 50); break; case 1: - _soundHandle1 = playSound("z#420.wav", 50); + _soundHandle1 = playSound(TRANSLATE("z#420.wav", "z#164.wav"), 50); break; case 2: - _soundHandle1 = playSound("z#410.wav", 50); + _soundHandle1 = playSound(TRANSLATE("z#410.wav", "z#154.wav"), 50); break; default: break; @@ -233,13 +234,14 @@ bool CServiceElevator::ServiceElevatorFloorRequestMsg(CServiceElevatorFloorReque } else { switch (_v3) { case 0: - _soundHandle1 = playSound("z#414.wav", 50); + _soundHandle1 = playSound(TRANSLATE("z#414.wav", "z#158.wav"), 50); break; case 1: - _soundHandle1 = playSound(_fieldDC ? "z#419.wav" : "z#418.wav", 50); + _soundHandle1 = playSound(_fieldDC ? TRANSLATE("z#419.wav", "z#163.wav") + : TRANSLATE("z#418.wav", "z#162.wav"), 50); break; case 2: - _soundHandle1 = playSound("z#409.wav", 50); + _soundHandle1 = playSound(TRANSLATE("z#409.wav", "z#153.wav"), 50); break; default: break; diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk index 617e262396..395805933d 100644 --- a/engines/titanic/module.mk +++ b/engines/titanic/module.mk @@ -484,6 +484,14 @@ MODULE_OBJS := \ support/text_cursor.o \ support/time_event_info.o \ support/video_surface.o \ + true_talk/german/deskbot_script.o \ + true_talk/german/bellbot_script.o \ + true_talk/german/deskbot_script.o \ + true_talk/german/doorbot_script.o \ + true_talk/german/liftbot_script.o \ + true_talk/german/maitred_script.o \ + true_talk/german/parrot_script.o \ + true_talk/german/succubus_script.o \ true_talk/barbot_script.o \ true_talk/bellbot_script.o \ true_talk/deskbot_script.o \ diff --git a/engines/titanic/npcs/doorbot.cpp b/engines/titanic/npcs/doorbot.cpp index 8ee1e3220c..d1bf662189 100644 --- a/engines/titanic/npcs/doorbot.cpp +++ b/engines/titanic/npcs/doorbot.cpp @@ -24,6 +24,7 @@ #include "titanic/core/room_item.h" #include "titanic/debugger.h" #include "titanic/pet_control/pet_control.h" +#include "titanic/translation.h" namespace Titanic { @@ -424,27 +425,27 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg) if (_npcFlags & NPCFLAG_DOORBOT_INTRO) { // Initial speech by Doorbot in - switch (msg->_dialogueId) { - case 10552: + switch (msg->_dialogueId - TRANSLATE(10552, 10563)) { + case 0: playClip("SE Try Buttons", MOVIE_NOTIFY_OBJECT); _introMovieNum = 9; break; - case 10553: + case 1: enableMouse(); break; - case 10557: + case 5: playClip("SE Move To Right", MOVIE_NOTIFY_OBJECT); _introMovieNum = 11; break; - case 10559: + case 7: stopAnimTimer(_timerId); _timerId = addTimer(0, 2500, 0); break; - case 10560: + case 8: petShow(); petSetArea(PET_CONVERSATION); petIncAreaLocks(); @@ -452,31 +453,31 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg) _timerId = addTimer(1, 1000, 0); break; - case 10561: + case 9: enableMouse(); _introMovieNum = 1; stopAnimTimer(_timerId); _timerId = addTimer(2, 10000, 0); break; - case 10562: + case 10: if (_introMovieNum == 1) { stopAnimTimer(_timerId); _timerId = addTimer(2, getRandomNumber(5000) + 5000, 0); } break; - case 10563: - case 10564: + case 11: + case 12: disableMouse(); startTalking(this, 221480); break; - case 10565: + case 13: startTalking(this, 221481); break; - case 10566: + case 14: stopAnimTimer(_timerId); _timerId = 0; if (_field110 == 2) { @@ -487,7 +488,7 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg) } break; - case 10567: { + case 15: { CActMsg actMsg("BecomeGettable"); actMsg.execute("Photograph"); enableMouse(); @@ -496,26 +497,26 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg) break; } - case 10568: + case 16: // Start moving cursor to photograph mouseDisableControl(); mouseSetPosition(Point(600, 250), 2500); _timerId = addTimer(6, 2500, 0); break; - case 10569: + case 17: if (_field110 != 2) { stopAnimTimer(_timerId); _timerId = addTimer(5, 3000, 0); } break; - case 10570: + case 18: mouseSetPosition(Point(200, 430), 2500); _timerId = addTimer(7, 3000, 0); break; - case 10571: + case 19: playClip("Cloak On", MOVIE_NOTIFY_OBJECT); _introMovieNum = 6; break; diff --git a/engines/titanic/titanic.cpp b/engines/titanic/titanic.cpp index 5af822a235..e0e4a07ce6 100644 --- a/engines/titanic/titanic.cpp +++ b/engines/titanic/titanic.cpp @@ -56,10 +56,12 @@ namespace Titanic { TitanicEngine *g_vm; +Common::Language g_language; TitanicEngine::TitanicEngine(OSystem *syst, const TitanicGameDescription *gameDesc) : _gameDescription(gameDesc), Engine(syst), _randomSource("Titanic") { g_vm = this; + g_language = getLanguage(); _debugger = nullptr; _events = nullptr; _filesManager = nullptr; diff --git a/engines/titanic/titanic.h b/engines/titanic/titanic.h index 1708df7d78..5efefe41bd 100644 --- a/engines/titanic/titanic.h +++ b/engines/titanic/titanic.h @@ -63,8 +63,6 @@ namespace Titanic { #define MAX_SAVES 99 -#define TRANSLATE(enVal, deVal) (g_vm->isGerman() ? deVal : enVal) - // If enabled, fixes an original bug where dispensed chickens weren't // meant to be hot unless the Yellow fuse was left in the Fusebox. // This is being left disabled for now, since most walkthroughs for diff --git a/engines/titanic/translation.h b/engines/titanic/translation.h new file mode 100644 index 0000000000..c34e557208 --- /dev/null +++ b/engines/titanic/translation.h @@ -0,0 +1,36 @@ +/* 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. + * + */ + +#ifndef TITANIC_TRANSLATION_H +#define TITANIC_TRANSLATION_H + +#include "common/language.h" + +namespace Titanic { + +#define TRANSLATE(enVal, deVal) (g_language == Common::DE_DEU ? deVal : enVal) + +extern Common::Language g_language; + +} // End of namespace Titanic + +#endif /* TITANIC_TRANSLATION_H */ diff --git a/engines/titanic/true_talk/doorbot_script.cpp b/engines/titanic/true_talk/doorbot_script.cpp index 84c0548871..ab50eca0c6 100644 --- a/engines/titanic/true_talk/doorbot_script.cpp +++ b/engines/titanic/true_talk/doorbot_script.cpp @@ -24,6 +24,7 @@ #include "titanic/true_talk/doorbot_script.h" #include "titanic/true_talk/tt_room_script.h" #include "titanic/true_talk/true_talk_manager.h" +#include "titanic/translation.h" #include "titanic/titanic.h" namespace Titanic { @@ -546,10 +547,10 @@ ScriptChangedResult DoorbotScript::scriptChanged(const TTroomScript *roomScript, CTrueTalkManager::setFlags(39, 0); } - if (id >= 220000 && id <= TRANSLATE(222418, 222430)) { + if (id >= 220000 && id <= (uint)TRANSLATE(222418, 222430)) { addResponse(getDialogueId(id)); applyResponse(); - } else if (id >= 10000 && id <= TRANSLATE(11986, 11999)) { + } else if (id >= 10000 && id <= (uint)TRANSLATE(11986, 11999)) { addResponse(id); applyResponse(); } diff --git a/engines/titanic/true_talk/german/barbot_script.cpp b/engines/titanic/true_talk/german/barbot_script.cpp new file mode 100644 index 0000000000..616653d9cb --- /dev/null +++ b/engines/titanic/true_talk/german/barbot_script.cpp @@ -0,0 +1,29 @@ +/* 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 "titanic/true_talk/german/deskbot_script.h" + +namespace Titanic { +namespace German { + +} // End of namespace German +} // End of namespace Titanic diff --git a/engines/titanic/true_talk/german/barbot_script.h b/engines/titanic/true_talk/german/barbot_script.h new file mode 100644 index 0000000000..2d1c25d6b2 --- /dev/null +++ b/engines/titanic/true_talk/german/barbot_script.h @@ -0,0 +1,41 @@ +/* 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. + * + */ + +#ifndef TITANIC_BARBOT_SCRIPT_DE_H +#define TITANIC_BARBOT_SCRIPT_DE_H + +#include "titanic/true_talk/barbot_script.h" + +namespace Titanic { +namespace German { + +class BarbotScript : public ::Titanic::BarbotScript { +public: + BarbotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : + ::Titanic::BarbotScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {} +}; + +} // End of namespace German +} // End of namespace Titanic + +#endif /* TITANIC_BARBOT_SCRIPT_DE_H */ diff --git a/engines/titanic/true_talk/german/bellbot_script.cpp b/engines/titanic/true_talk/german/bellbot_script.cpp new file mode 100644 index 0000000000..c6ff9f6a50 --- /dev/null +++ b/engines/titanic/true_talk/german/bellbot_script.cpp @@ -0,0 +1,29 @@ +/* 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 "titanic/true_talk/german/bellbot_script.h" + +namespace Titanic { +namespace German { + +} // End of namespace German +} // End of namespace Titanic diff --git a/engines/titanic/true_talk/german/bellbot_script.h b/engines/titanic/true_talk/german/bellbot_script.h new file mode 100644 index 0000000000..42f6e5d7cf --- /dev/null +++ b/engines/titanic/true_talk/german/bellbot_script.h @@ -0,0 +1,41 @@ +/* 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. + * + */ + +#ifndef TITANIC_BELLBOT_SCRIPT_DE_H +#define TITANIC_BELLBOT_SCRIPT_DE_H + +#include "titanic/true_talk/bellbot_script.h" + +namespace Titanic { +namespace German { + +class BellbotScript : public ::Titanic::BellbotScript { +public: + BellbotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2) : + ::Titanic::BellbotScript(val1, charClass, v2, charName, v3, val2) {} +}; + +} // End of namespace German +} // End of namespace Titanic + +#endif /* TITANIC_BELLBOT_SCRIPT_DE_H */ diff --git a/engines/titanic/true_talk/german/deskbot_script.cpp b/engines/titanic/true_talk/german/deskbot_script.cpp new file mode 100644 index 0000000000..616653d9cb --- /dev/null +++ b/engines/titanic/true_talk/german/deskbot_script.cpp @@ -0,0 +1,29 @@ +/* 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 "titanic/true_talk/german/deskbot_script.h" + +namespace Titanic { +namespace German { + +} // End of namespace German +} // End of namespace Titanic diff --git a/engines/titanic/true_talk/german/deskbot_script.h b/engines/titanic/true_talk/german/deskbot_script.h new file mode 100644 index 0000000000..1987fb7302 --- /dev/null +++ b/engines/titanic/true_talk/german/deskbot_script.h @@ -0,0 +1,41 @@ +/* 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. + * + */ + +#ifndef TITANIC_DESKBOT_SCRIPT_DE_H +#define TITANIC_DESKBOT_SCRIPT_DE_H + +#include "titanic/true_talk/deskbot_script.h" + +namespace Titanic { +namespace German { + +class DeskbotScript : public ::Titanic::DeskbotScript { +public: + DeskbotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2) : + ::Titanic::DeskbotScript(val1, charClass, v2, charName, v3, val2) {} +}; + +} // End of namespace German +} // End of namespace Titanic + +#endif /* TITANIC_DESKBOT_SCRIPT_DE_H */ diff --git a/engines/titanic/true_talk/german/doorbot_script.cpp b/engines/titanic/true_talk/german/doorbot_script.cpp new file mode 100644 index 0000000000..616653d9cb --- /dev/null +++ b/engines/titanic/true_talk/german/doorbot_script.cpp @@ -0,0 +1,29 @@ +/* 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 "titanic/true_talk/german/deskbot_script.h" + +namespace Titanic { +namespace German { + +} // End of namespace German +} // End of namespace Titanic diff --git a/engines/titanic/true_talk/german/doorbot_script.h b/engines/titanic/true_talk/german/doorbot_script.h new file mode 100644 index 0000000000..1653f42d40 --- /dev/null +++ b/engines/titanic/true_talk/german/doorbot_script.h @@ -0,0 +1,41 @@ +/* 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. + * + */ + +#ifndef TITANIC_DOORBOT_SCRIPT_DE_H +#define TITANIC_DOORBOT_SCRIPT_DE_H + +#include "titanic/true_talk/doorbot_script.h" + +namespace Titanic { +namespace German { + +class DoorbotScript : public ::Titanic::DoorbotScript { +public: + DoorbotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : + ::Titanic::DoorbotScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {} +}; + +} // End of namespace German +} // End of namespace Titanic + +#endif /* TITANIC_DOORBOT_SCRIPT_DE_H */ diff --git a/engines/titanic/true_talk/german/liftbot_script.cpp b/engines/titanic/true_talk/german/liftbot_script.cpp new file mode 100644 index 0000000000..fade9968c4 --- /dev/null +++ b/engines/titanic/true_talk/german/liftbot_script.cpp @@ -0,0 +1,29 @@ +/* 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 "titanic/true_talk/german/liftbot_script.h" + +namespace Titanic { +namespace German { + +} // End of namespace German +} // End of namespace Titanic diff --git a/engines/titanic/true_talk/german/liftbot_script.h b/engines/titanic/true_talk/german/liftbot_script.h new file mode 100644 index 0000000000..650a45201d --- /dev/null +++ b/engines/titanic/true_talk/german/liftbot_script.h @@ -0,0 +1,41 @@ +/* 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. + * + */ + +#ifndef TITANIC_LIFTBOT_SCRIPT_DE_H +#define TITANIC_LIFTBOT_SCRIPT_DE_H + +#include "titanic/true_talk/liftbot_script.h" + +namespace Titanic { +namespace German { + +class LiftbotScript : public ::Titanic::LiftbotScript { +public: + LiftbotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : + ::Titanic::LiftbotScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {} +}; + +} // End of namespace German +} // End of namespace Titanic + +#endif /* TITANIC_LIFTBOT_SCRIPT_DE_H */ diff --git a/engines/titanic/true_talk/german/maitred_script.cpp b/engines/titanic/true_talk/german/maitred_script.cpp new file mode 100644 index 0000000000..f670cdf58b --- /dev/null +++ b/engines/titanic/true_talk/german/maitred_script.cpp @@ -0,0 +1,29 @@ +/* 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 "titanic/true_talk/german/maitred_script.h" + +namespace Titanic { +namespace German { + +} // End of namespace German +} // End of namespace Titanic diff --git a/engines/titanic/true_talk/german/maitred_script.h b/engines/titanic/true_talk/german/maitred_script.h new file mode 100644 index 0000000000..2bd2ce8e14 --- /dev/null +++ b/engines/titanic/true_talk/german/maitred_script.h @@ -0,0 +1,41 @@ +/* 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. + * + */ + +#ifndef TITANIC_MAITRED_SCRIPT_DE_H +#define TITANIC_MAITRED_SCRIPT_DE_H + +#include "titanic/true_talk/maitred_script.h" + +namespace Titanic { +namespace German { + +class MaitreDScript : public ::Titanic::MaitreDScript { +public: + MaitreDScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2) : + ::Titanic::MaitreDScript(val1, charClass, v2, charName, v3, val2) {} +}; + +} // End of namespace German +} // End of namespace Titanic + +#endif /* TITANIC_MAITRED_SCRIPT_DE_H */ diff --git a/engines/titanic/true_talk/german/parrot_script.cpp b/engines/titanic/true_talk/german/parrot_script.cpp new file mode 100644 index 0000000000..3e241c8683 --- /dev/null +++ b/engines/titanic/true_talk/german/parrot_script.cpp @@ -0,0 +1,29 @@ +/* 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 "titanic/true_talk/german/parrot_script.h" + +namespace Titanic { +namespace German { + +} // End of namespace German +} // End of namespace Titanic diff --git a/engines/titanic/true_talk/german/parrot_script.h b/engines/titanic/true_talk/german/parrot_script.h new file mode 100644 index 0000000000..b34e6b112f --- /dev/null +++ b/engines/titanic/true_talk/german/parrot_script.h @@ -0,0 +1,41 @@ +/* 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. + * + */ + +#ifndef TITANIC_PARROT_SCRIPT_DE_H +#define TITANIC_PARROT_SCRIPT_DE_H + +#include "titanic/true_talk/parrot_script.h" + +namespace Titanic { +namespace German { + +class ParrotScript : public ::Titanic::ParrotScript { +public: + ParrotScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : + ::Titanic::ParrotScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {} +}; + +} // End of namespace German +} // End of namespace Titanic + +#endif /* TITANIC_PARROT_SCRIPT_DE_H */ diff --git a/engines/titanic/true_talk/german/succubus_script.cpp b/engines/titanic/true_talk/german/succubus_script.cpp new file mode 100644 index 0000000000..a4963a8a59 --- /dev/null +++ b/engines/titanic/true_talk/german/succubus_script.cpp @@ -0,0 +1,29 @@ +/* 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 "titanic/true_talk/german/succubus_script.h" + +namespace Titanic { +namespace German { + +} // End of namespace German +} // End of namespace Titanic diff --git a/engines/titanic/true_talk/german/succubus_script.h b/engines/titanic/true_talk/german/succubus_script.h new file mode 100644 index 0000000000..f9ad25c36e --- /dev/null +++ b/engines/titanic/true_talk/german/succubus_script.h @@ -0,0 +1,41 @@ +/* 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. + * + */ + +#ifndef TITANIC_SUCCUBUS_SCRIPT_DE_H +#define TITANIC_SUCCUBUS_SCRIPT_DE_H + +#include "titanic/true_talk/succubus_script.h" + +namespace Titanic { +namespace German { + +class SuccUBusScript : public ::Titanic::SuccUBusScript { +public: + SuccUBusScript(int val1, const char *charClass, int v2, + const char *charName, int v3, int val2, int v4, int v5, int v6, int v7) : + ::Titanic::SuccUBusScript(val1, charClass, v2, charName, v3, val2, v4, v5, v6, v7) {} +}; + +} // End of namespace German +} // End of namespace Titanic + +#endif /* TITANIC_SUCCUBUS_SCRIPT_DE_H */ diff --git a/engines/titanic/true_talk/tt_scripts.cpp b/engines/titanic/true_talk/tt_scripts.cpp index b1f18771fe..4c103ed457 100644 --- a/engines/titanic/true_talk/tt_scripts.cpp +++ b/engines/titanic/true_talk/tt_scripts.cpp @@ -30,6 +30,15 @@ #include "titanic/true_talk/maitred_script.h" #include "titanic/true_talk/parrot_script.h" #include "titanic/true_talk/succubus_script.h" +#include "titanic/true_talk/german/barbot_script.h" +#include "titanic/true_talk/german/bellbot_script.h" +#include "titanic/true_talk/german/deskbot_script.h" +#include "titanic/true_talk/german/doorbot_script.h" +#include "titanic/true_talk/german/liftbot_script.h" +#include "titanic/true_talk/german/maitred_script.h" +#include "titanic/true_talk/german/parrot_script.h" +#include "titanic/true_talk/german/succubus_script.h" +#include "titanic/translation.h" namespace Titanic { @@ -63,14 +72,25 @@ TTscripts::TTscripts() { addScript(new TTroomScript(scriptNum)); // Load npc scripts - addScript(new DoorbotScript(104, "Doorbot", 0, "Fentible", 11, 1, -1, -1, -1, 0), 100); - addScript(new BellbotScript(101, "Bellbot", 0, "Krage", 8, 1), 110); - addScript(new LiftbotScript(105, "LiftBot", 0, "Nobby", 11, 1, -1, -1, -1, 0), 103); - addScript(new DeskbotScript(103, "DeskBot", 0, "Marsinta", 11, 2), 110); - addScript(new BarbotScript(100, "Barbot", 0, "Fortillian", 9, 1, -1, -1, -1, 0), 112); - addScript(new ParrotScript(107, "Parrot", 0, "The Parrot", 5, 1, -1, -1, -1, 0), 111); - addScript(new MaitreDScript(112, "MaitreDBot", 0, "Dastrogaaar", 8, 1), 132); - addScript(new SuccUBusScript(111, "Succubus", 0, "Shorbert", 9, 1, -1, -1, -1, 0), 110); + if (g_language == Common::DE_DEU) { + addScript(new German::BarbotScript(100, "Barbot", 0, "Fortillian", 9, 1, -1, -1, -1, 0), 112); + addScript(new German::BellbotScript(101, "Bellbot", 0, "Krage", 8, 1), 110); + addScript(new German::DeskbotScript(103, "DeskBot", 0, "Marsinta", 11, 2), 110); + addScript(new German::DoorbotScript(104, "Doorbot", 0, "Fentible", 11, 1, -1, -1, -1, 0), 100); + addScript(new German::LiftbotScript(105, "LiftBot", 0, "Nobby", 11, 1, -1, -1, -1, 0), 103); + addScript(new German::ParrotScript(107, "Parrot", 0, "The Parrot", 5, 1, -1, -1, -1, 0), 111); + addScript(new German::SuccUBusScript(111, "Succubus", 0, "Shorbert", 9, 1, -1, -1, -1, 0), 110); + addScript(new German::MaitreDScript(112, "MaitreDBot", 0, "Dastrogaaar", 8, 1), 132); + } else { + addScript(new BarbotScript(100, "Barbot", 0, "Fortillian", 9, 1, -1, -1, -1, 0), 112); + addScript(new BellbotScript(101, "Bellbot", 0, "Krage", 8, 1), 110); + addScript(new DeskbotScript(103, "DeskBot", 0, "Marsinta", 11, 2), 110); + addScript(new DoorbotScript(104, "Doorbot", 0, "Fentible", 11, 1, -1, -1, -1, 0), 100); + addScript(new LiftbotScript(105, "LiftBot", 0, "Nobby", 11, 1, -1, -1, -1, 0), 103); + addScript(new ParrotScript(107, "Parrot", 0, "The Parrot", 5, 1, -1, -1, -1, 0), 111); + addScript(new SuccUBusScript(111, "Succubus", 0, "Shorbert", 9, 1, -1, -1, -1, 0), 110); + addScript(new MaitreDScript(112, "MaitreDBot", 0, "Dastrogaaar", 8, 1), 132); + } } void TTscripts::addScript(TTnpcScript *script, int scriptId) { |