diff options
-rw-r--r-- | devtools/create_supernova/gametext.h | 84 | ||||
-rw-r--r-- | engines/supernova/msn_def.h | 11 | ||||
-rw-r--r-- | engines/supernova/rooms.cpp | 94 | ||||
-rw-r--r-- | engines/supernova/rooms.h | 4 |
4 files changed, 102 insertions, 91 deletions
diff --git a/devtools/create_supernova/gametext.h b/devtools/create_supernova/gametext.h index 83867d266f..99cdb1d58a 100644 --- a/devtools/create_supernova/gametext.h +++ b/devtools/create_supernova/gametext.h @@ -373,56 +373,56 @@ const char *gameText[] = { "Es ist die Keycard des Commanders.", // kStringKeycard2Description2 // 280 "Kabelrolle mit L\201sterklemme", // kSringSpoolAndClip - "", // - "", // - "", // - "", // + "Zwei Tage nach dem Start|im Cockpit der \"Supernova\" ...", // kStringIntroCutscene1 + "Entferung von der Sonne: 1 500 000 km.|Gehen Sie auf 8000 hpm, Captain!", // kStringIntroCutscene2 + "Ok, Sir.", // kStringIntroCutscene3 + "Geschwindigkeit:", // kStringIntroCutscene4 // 285 - "", // - "", // - "", // - "", // - "", // + "Zweitausend hpm", // kStringIntroCutscene5 + "Dreitausend", // kStringIntroCutscene6 + "Viertausend", // kStringIntroCutscene7 + "F\201nftausend", // kStringIntroCutscene8 + "Sechstausend", // kStringIntroCutscene9 // 290 - "", // - "", // - "", // - "", // - "", // + "Siebentausend", // kStringIntroCutscene10 + "Achttau...", // kStringIntroCutscene11 + "Was war das?", // kStringIntroCutscene12 + "Keine Ahnung, Sir.", // kStringIntroCutscene13 + "Ingenieur an Commander, bitte kommen!", // kStringIntroCutscene14 // 295 - "", // - "", // - "", // - "", // - "", // + "Was ist los?", // kStringIntroCutscene15 + "Wir haben einen Druckabfall im Hauptantriebssystem, Sir.|Einen Moment, ich schaue sofort nach, woran es liegt.", // kStringIntroCutscene16 + "Schei\341e, der Ionenantrieb ist explodiert!|Die Teile sind \201ber den ganzen|Maschinenraum verstreut.", // kStringIntroCutscene17 + "Ach, du meine G\201te!|Gibt es irgendeine M\224glichkeit,|den Schaden schnell zu beheben?", // kStringIntroCutscene18 + "Nein, Sir. Es sieht schlecht aus.", // kStringIntroCutscene19 // 300 - "", // - "", // - "", // - "", // - "", // + "Hmm, die Erde zu alarmieren, w\201rde zu lange dauern.", // kStringIntroCutscene20 + "Ich darf kein Risiko eingehen.|Captain, geben Sie sofort Alarm!", // kStringIntroCutscene21 + "Commander an alle! Achtung, Achtung!|Begeben Sie sich sofort zum Notraumschiff!", // kStringIntroCutscene22 + "Ich wiederhole:|Begeben Sie sich sofort zum Notraumschiff!", // kStringIntroCutscene23 + "Captain, bereiten Sie alles für den Start vor!|Wir m\201ssen zur\201ck zur Erde!", // kStringIntroCutscene24 // 305 - "", // - "", // - "", // - "", // - "", // + "Eine Stunde sp\204ter ...", // kStringIntroCutscene25 + "Die Besatzung hat die \"Supernova\" verlassen.", // kStringIntroCutscene26 + "Das Schiff wird zwar in acht Jahren sein Ziel|erreichen, allerdings ohne Mannschaft.", // kStringIntroCutscene27 + "Das ist das kl\204gliche Ende|der Mission Supernova.", // kStringIntroCutscene28 + "Sie k\224nnen jetzt ihren Computer ausschalten.", // kStringIntroCutscene29 // 310 - "", // - "", // - "", // - "", // - "", // + "Halt!", // kStringIntroCutscene30 + "Warten Sie!", // kStringIntroCutscene31 + "Es regt sich etwas im Schiff.", // kStringIntroCutscene32 + "Uuuuaaaahhhhh", // kStringIntroCutscene33 + "Huch, ich bin ja gefesselt!|Wo bin ich?", // kStringIntroCutscene34 // 315 - "", // - "", // - "", // - "", // - "", // + "Ach so, das sind ja die Sicherheitsgurte.|Ich arbeite ja jetzt in diesem Raumschiff hier.", // kStringIntroCutscene35 + "Was? Schon zwei Uhr! Wieso|hat mich denn noch keiner|aus dem Bett geschmissen?", // kStringIntroCutscene36 + "Ich werde mal nachsehen.", // kStringIntroCutscene37 + "Autsch!", // kStringIntroCutscene38 + "Schei\341etagenbett!", // kStringIntroCutscene39 // 320 - "", // - "", // - "", // + "Erst mal den Lichtschalter finden.", // kStringIntroCutscene40 + "Hmm, gar nicht so einfach|bei Schwerelosigkeit.", // kStringIntroCutscene41 + "Ah, hier ist er.", // kStringIntroCutscene42 "", // "", // // 325 diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h index 84c08647cd..ad51db305d 100644 --- a/engines/supernova/msn_def.h +++ b/engines/supernova/msn_def.h @@ -464,7 +464,16 @@ enum StringID { kStringOutro8, kStringOutro9, kStringOutro10, kStringOutro11, kStringOutro12, kStringOutro13, kStringOutro14, kStringWireAndPlug, kStringWireAndClip, kStringWireAndPlug2, kStringSignDescription2, kStringCoin, kStringDoorDescription5, kStringDoorDescription6, kStringKeycard2Description2, - kSringSpoolAndClip + kSringSpoolAndClip, kStringIntroCutscene1, kStringIntroCutscene2, kStringIntroCutscene3, kStringIntroCutscene4, + kStringIntroCutscene5, kStringIntroCutscene6, kStringIntroCutscene7, kStringIntroCutscene8, kStringIntroCutscene9, + kStringIntroCutscene10, kStringIntroCutscene11, kStringIntroCutscene12, kStringIntroCutscene13, kStringIntroCutscene14, + kStringIntroCutscene15, kStringIntroCutscene16, kStringIntroCutscene17, kStringIntroCutscene18, kStringIntroCutscene19, + // 300 + kStringIntroCutscene20, kStringIntroCutscene21, kStringIntroCutscene22, kStringIntroCutscene23, kStringIntroCutscene24, + kStringIntroCutscene25, kStringIntroCutscene26, kStringIntroCutscene27, kStringIntroCutscene28, kStringIntroCutscene29, + kStringIntroCutscene30, kStringIntroCutscene31, kStringIntroCutscene32, kStringIntroCutscene33, kStringIntroCutscene34, + kStringIntroCutscene35, kStringIntroCutscene36, kStringIntroCutscene37, kStringIntroCutscene38, kStringIntroCutscene39, + kStringIntroCutscene40, kStringIntroCutscene41, kStringIntroCutscene42 }; static StringID guiCommands[] = { diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp index b326840b43..fde692e317 100644 --- a/engines/supernova/rooms.cpp +++ b/engines/supernova/rooms.cpp @@ -198,9 +198,10 @@ void Intro::animate(int filenumber, int section1, int section2, int duration) { } void Intro::animate(int filenumber, int section1, int section2, int duration, - MessagePosition position, const char *text) { + MessagePosition position, StringID textId) { + const Common::String& text = _vm->getGameString(textId); _vm->renderMessage(text, position); - int delay = (Common::strnlen(text, 512) + 20) * (10 - duration) * _vm->_textSpeed / 400; + int delay = (MIN(text.size(), (uint)512) + 20) * (10 - duration) * _vm->_textSpeed / 400; while (delay) { if (section1) _vm->renderImage(filenumber, section1); @@ -214,10 +215,11 @@ void Intro::animate(int filenumber, int section1, int section2, int duration, } void Intro::animate(int filenumber, int section1, int section2, int section3, int section4, - int duration, MessagePosition position, const char *text) { + int duration, MessagePosition position, StringID textId) { + const Common::String& text = _vm->getGameString(textId); _vm->renderMessage(text, position); if (duration == 0) - duration = (Common::strnlen(text, 512) + 20) * _vm->_textSpeed / 40; + duration = (MIN(text.size(), (uint)512) + 20) * _vm->_textSpeed / 40; while(duration) { _vm->renderImage(filenumber, section1); @@ -241,7 +243,7 @@ void Intro::cutscene() { _vm->_system->fillScreen(kColorBlack); _vm->_menuBrightness = 255; _vm->paletteBrightness(); - animate(31, 0, 0, 0, kMessageNormal, "Zwei Tage nach dem Start|im Cockpit der \"Supernova\" ..."); + animate(31, 0, 0, 0, kMessageNormal, kStringIntroCutscene1); _vm->_menuBrightness = 0; _vm->paletteBrightness(); exitOnEscape(1); @@ -250,13 +252,13 @@ void Intro::cutscene() { _vm->renderImage(9, 1); _vm->renderImage(9, 9); _vm->paletteFadeIn(); - animate(9,11,10,6,kMessageRight,"Entferung von der Sonne: 1 500 000 km.|Gehen Sie auf 8000 hpm, Captain!"); + animate(9,11,10,6,kMessageRight,kStringIntroCutscene2); _vm->renderImage(9, 3); exitOnEscape(4); _vm->renderImage(9, 4); animate(9, 11,10,3); // test duration _vm->removeMessage(); - animate(9, 5,4,0,kMessageLeft,"Ok, Sir."); + animate(9, 5,4,0,kMessageLeft,kStringIntroCutscene3); _vm->renderImage(9, 3); exitOnEscape(3); _vm->renderImage(9, 2); @@ -265,16 +267,16 @@ void Intro::cutscene() { exitOnEscape(6); _vm->renderImage(9, 6); exitOnEscape(6); - animate(9, 0,0,0,kMessageLeft,"Geschwindigkeit:"); - _vm->renderMessage("Zweitausend hpm", kMessageLeft); + animate(9, 0,0,0,kMessageLeft,kStringIntroCutscene4); + _vm->renderMessage(kStringIntroCutscene5, kMessageLeft); exitOnEscape(28); _vm->removeMessage(); - _vm->renderMessage("Dreitausend", kMessageLeft); + _vm->renderMessage(kStringIntroCutscene6, kMessageLeft); exitOnEscape(28); _vm->removeMessage(); - const char *textCounting[4] = - {"Viertausend","F\201nftausend","Sechstausend","Siebentausend"}; + StringID textCounting[4] = + {kStringIntroCutscene7,kStringIntroCutscene8,kStringIntroCutscene9,kStringIntroCutscene10}; _vm->renderImage(31, 0); _vm->paletteBrightness(); for (int i = 0; i < 4; ++i){ @@ -285,7 +287,7 @@ void Intro::cutscene() { } _vm->removeMessage(); } - _vm->renderMessage("Achttau...", kMessageLeft); + _vm->renderMessage(kStringIntroCutscene11, kMessageLeft); _vm->renderImage(31, 6); exitOnEscape(3); _vm->renderImage(31, 3); @@ -304,29 +306,29 @@ void Intro::cutscene() { _vm->paletteBrightness(); _vm->renderBox(0, 138, 320, 62, kColorBlack); _vm->paletteBrightness(); - animate(9, 11,10,0,kMessageRight,"Was war das?"); + animate(9, 11,10,0,kMessageRight,kStringIntroCutscene12); _vm->renderImage(9, 3); exitOnEscape(3); _vm->renderImage(9, 4); - animate(9, 5,4,0,kMessageLeft,"Keine Ahnung, Sir."); - animate(9, 0,0,0,kMessageCenter,"Ingenieur an Commander, bitte kommen!"); + animate(9, 5,4,0,kMessageLeft,kStringIntroCutscene13); + animate(9, 0,0,0,kMessageCenter,kStringIntroCutscene14); _vm->renderImage(9, 12); exitOnEscape(2); _vm->renderImage(9, 13); exitOnEscape(2); _vm->renderImage(9, 14); - animate(9, 19,20,0,kMessageRight,"Was ist los?"); - animate(9, 0,0,0,kMessageCenter,"Wir haben einen Druckabfall im Hauptantriebssystem, Sir.|Einen Moment, ich schaue sofort nach, woran es liegt."); + animate(9, 19,20,0,kMessageRight,kStringIntroCutscene15); + animate(9, 0,0,0,kMessageCenter,kStringIntroCutscene16); exitOnEscape(20); - animate(9, 0,0,0,kMessageCenter,"Schei\341e, der Ionenantrieb ist explodiert!|Die Teile sind \201ber den ganzen|Maschinenraum verstreut."); - animate(9, 19,20,0,kMessageRight,"Ach, du meine G\201te!|Gibt es irgendeine M\224glichkeit,|den Schaden schnell zu beheben?"); - animate(9, 0,0,0,kMessageCenter,"Nein, Sir. Es sieht schlecht aus."); + animate(9, 0,0,0,kMessageCenter,kStringIntroCutscene17); + animate(9, 19,20,0,kMessageRight,kStringIntroCutscene18); + animate(9, 0,0,0,kMessageCenter,kStringIntroCutscene19); _vm->renderImage(9, 16); exitOnEscape(3); _vm->renderImage(9, 17); - animate(9, 19,20,18,17,0,kMessageRight,"Hmm, die Erde zu alarmieren, w\201rde zu lange dauern."); - animate(9, 19,20,18,17,0,kMessageRight,"Ich darf kein Risiko eingehen.|Captain, geben Sie sofort Alarm!"); - animate(9, 5,4,0,kMessageLeft,"Ok, Sir."); + animate(9, 19,20,18,17,0,kMessageRight,kStringIntroCutscene20); + animate(9, 19,20,18,17,0,kMessageRight,kStringIntroCutscene21); + animate(9, 5,4,0,kMessageLeft,kStringIntroCutscene3); _vm->renderImage(9, 3); exitOnEscape(3); _vm->renderImage(9, 2); @@ -343,16 +345,16 @@ void Intro::cutscene() { _vm->renderImage(9, 16); exitOnEscape(3); _vm->renderImage(9, 15); - animate(9, 19,20,0,kMessageRight,"Commander an alle! Achtung, Achtung!|Begeben Sie sich sofort zum Notraumschiff!"); - animate(9, 19,20,0,kMessageRight,"Ich wiederhole:|Begeben Sie sich sofort zum Notraumschiff!"); + animate(9, 19,20,0,kMessageRight,kStringIntroCutscene22); + animate(9, 19,20,0,kMessageRight,kStringIntroCutscene23); exitOnEscape(10); _vm->renderImage(9, 13); exitOnEscape(2); _vm->renderImage(9, 12); exitOnEscape(2); _vm->renderImage(9, 9); - animate(9, 11,10,0,kMessageRight,"Captain, bereiten Sie alles für den Start vor!|Wir m\201ssen zur\201ck zur Erde!"); - animate(9, 5,4,0,kMessageLeft,"Ok, Sir."); + animate(9, 11,10,0,kMessageRight,kStringIntroCutscene24); + animate(9, 5,4,0,kMessageLeft,kStringIntroCutscene3); _vm->paletteFadeOut(); while (_vm->_mixer->isSoundHandleActive(_vm->_soundHandle)) @@ -361,20 +363,20 @@ void Intro::cutscene() { _vm->_system->fillScreen(kColorBlack); _vm->_menuBrightness = 255; _vm->paletteBrightness(); - animate(9,0,0,0,kMessageNormal,"Eine Stunde sp\204ter ..."); + animate(9,0,0,0,kMessageNormal,kStringIntroCutscene25); _vm->_menuBrightness = 5; _vm->paletteBrightness(); _vm->renderImage(31, 0); _vm->paletteFadeIn(); - animate(31, 0,0,0,kMessageNormal,"Die Besatzung hat die \"Supernova\" verlassen."); - animate(31, 0,0,0,kMessageNormal,"Das Schiff wird zwar in acht Jahren sein Ziel|erreichen, allerdings ohne Mannschaft."); - animate(31, 0,0,0,kMessageNormal,"Das ist das kl\204gliche Ende|der Mission Supernova."); - animate(31, 0,0,0,kMessageNormal,"Sie k\224nnen jetzt ihren Computer ausschalten."); + animate(31, 0,0,0,kMessageNormal,kStringIntroCutscene26); + animate(31, 0,0,0,kMessageNormal,kStringIntroCutscene27); + animate(31, 0,0,0,kMessageNormal,kStringIntroCutscene28); + animate(31, 0,0,0,kMessageNormal,kStringIntroCutscene29); exitOnEscape(54); - animate(31, 0,0,0,kMessageNormal,"Halt!"); - animate(31, 0,0,0,kMessageNormal,"Warten Sie!"); - animate(31, 0,0,0,kMessageNormal,"Es regt sich etwas im Schiff."); + animate(31, 0,0,0,kMessageNormal,kStringIntroCutscene30); + animate(31, 0,0,0,kMessageNormal,kStringIntroCutscene31); + animate(31, 0,0,0,kMessageNormal,kStringIntroCutscene32); _vm->_brightness = 0; _vm->paletteBrightness(); @@ -391,20 +393,20 @@ void Intro::cutscene() { while (_vm->_mixer->isSoundHandleActive(_vm->_soundHandle)) ; exitOnEscape(30); - animate(22, 0,0,0,kMessageNormal,"Uuuuaaaahhhhh"); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene33); exitOnEscape(18); - animate(22, 0,0,0,kMessageNormal,"Huch, ich bin ja gefesselt!|Wo bin ich?"); - animate(22, 0,0,0,kMessageNormal,"Ach so, das sind ja die Sicherheitsgurte.|Ich arbeite ja jetzt in diesem Raumschiff hier."); - animate(22, 0,0,0,kMessageNormal,"Was? Schon zwei Uhr! Wieso|hat mich denn noch keiner|aus dem Bett geschmissen?"); - animate(22, 0,0,0,kMessageNormal,"Ich werde mal nachsehen."); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene34); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene35); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene36); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene37); exitOnEscape(18); - animate(22, 0,0,0,kMessageNormal,"Autsch!"); - animate(22, 0,0,0,kMessageNormal,"Schei\341etagenbett!"); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene38); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene39); exitOnEscape(18); - animate(22, 0,0,0,kMessageNormal,"Erst mal den Lichtschalter finden."); - animate(22, 0,0,0,kMessageNormal,"Hmm, gar nicht so einfach|bei Schwerelosigkeit."); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene40); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene41); exitOnEscape(36); - animate(22, 0,0,0,kMessageNormal,"Ah, hier ist er."); + animate(22, 0,0,0,kMessageNormal,kStringIntroCutscene42); _vm->removeMessage(); #undef exitOnEscape diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h index 9b8b4e291d..11d36b10d9 100644 --- a/engines/supernova/rooms.h +++ b/engines/supernova/rooms.h @@ -94,9 +94,9 @@ public: private: void animate(int filenumber, int section1, int section2, int duration); void animate(int filenumber, int section1, int section2, int duration, MessagePosition position, - const char *text); + StringID text); void animate(int filenumber, int section1, int section2, int section3, int section4, int duration, - MessagePosition position, const char *text); + MessagePosition position, StringID text); void titleScreen(); void titleFadeIn(); |