diff options
author | Strangerke | 2017-10-18 19:02:16 +0200 |
---|---|---|
committer | Thierry Crozat | 2018-01-23 02:15:35 +0000 |
commit | 4d7d8023333cf64d77810f097fd4b72392bda5a7 (patch) | |
tree | cf33c4f256afb9e1caf8993bc426345d1404fddb | |
parent | 49e3dd5864b59fdd966de382a74d4ed1044d0d21 (diff) | |
download | scummvm-rg350-4d7d8023333cf64d77810f097fd4b72392bda5a7.tar.gz scummvm-rg350-4d7d8023333cf64d77810f097fd4b72392bda5a7.tar.bz2 scummvm-rg350-4d7d8023333cf64d77810f097fd4b72392bda5a7.zip |
SUPERNOVA: Change the signature of dialog(), fix calls, extract some more strings
-rw-r--r-- | devtools/create_supernova/gametext.h | 60 | ||||
-rw-r--r-- | engines/supernova/msn_def.h | 9 | ||||
-rw-r--r-- | engines/supernova/rooms.cpp | 69 | ||||
-rw-r--r-- | engines/supernova/rooms.h | 72 | ||||
-rw-r--r-- | engines/supernova/state.cpp | 2 | ||||
-rw-r--r-- | engines/supernova/state.h | 2 |
6 files changed, 129 insertions, 85 deletions
diff --git a/devtools/create_supernova/gametext.h b/devtools/create_supernova/gametext.h index b4e94a1f98..10e1507916 100644 --- a/devtools/create_supernova/gametext.h +++ b/devtools/create_supernova/gametext.h @@ -569,97 +569,121 @@ const char *gameText[] = { "Ja? Komisch.", // kStringArsanoRoger13 "Jetzt wei\341 ich's. Sie sind Roger W. !", // kStringArsanoRoger14 "Pssst, nicht so laut, sonst will|gleich jeder ein Autogramm von mir.", // kStringArsanoRoger15 - // 415 + // 445 "Ich habe extra eine Maske auf, damit|ich nicht von jedem angelabert werde.", // kStringArsanoRoger16 "\216h ... ach so.", // kStringArsanoRoger17 "Wann kommt denn das n\204chste SQ-Abenteuer raus?", // kStringArsanoRoger18 "SQ 127 m\201\341te in einem Monat erscheinen.", // kStringArsanoRoger19 "Was, Teil 127 ??", // kStringArsanoRoger20 - // 420 + // 450 "Bei uns ist gerade Teil 8 erschienen.", // kStringArsanoRoger21 "Hmm ... von welchem Planeten sind Sie denn?", // kStringArsanoRoger22 "Von der Erde.", // kStringArsanoRoger23 "Erde? Nie geh\224rt.", // kStringArsanoRoger24 "Wahrscheinlich irgendein Kaff, wo Neuerungen|erst hundert Jahre sp\204ter hingelangen.", // kStringArsanoRoger25 - // 425 + // 455 "\216h ... kann sein.", // kStringArsanoRoger26 "Aber eins m\201ssen Sie mir erkl\204ren!", // kStringArsanoRoger27 "Wieso sehen Sie mir so verdammt \204hnlich, wenn|Sie nicht von Xenon stammen, wie ich?", // kStringArsanoRoger28 "Keine Ahnung. Bis jetzt dachte ich immer, Sie w\201ren ein|von Programmierern auf der Erde erfundenes Computersprite.", // kStringArsanoRoger29 "Was? Lachhaft!", // kStringArsanoRoger30 - // 430 + // 460 "Wie erkl\204ren Sie sich dann,|da\341 ich ihnen gegen\201bersitze?", // kStringArsanoRoger31 "Ja, das ist in der Tat seltsam.", // kStringArsanoRoger32 "Halt, jetzt wei\341 ich es. Sie sind von der Konkurrenz,|von \"Georgefilm Games\" und wollen mich verunsichern.", // kStringArsanoRoger33 "Nein, ich bin nur ein Ahnungsloser Koch von der Erde.", // kStringArsanoRoger34 "Na gut, ich glaube Ihnen. Lassen wir jetzt|dieses Thema, langsam wird es mir zu bunt!", // kStringArsanoRoger35 - // 435 + // 465 "Eine Partie Schach! Das ist eine gute Idee.", // kStringArsanoRoger36 "Schach? Was ist das denn?", // kStringArsanoRoger37 "Schach ist ein interessantes Spiel.|Ich werde es Ihnen erkl\204ren.", // kStringArsanoRoger38 "Knapp zwei Stunden sp\204ter ...", // kStringArsanoRoger39 "Roger W. steht kurz vor dem Schachmatt|und gr\201belt nach einem Ausweg.", // kStringArsanoRoger40 - // 440 + // 470 "Du tippst auf den Tasten herum,|aber es passiert nichts.", // kStringArsanoGlider1 "Alle Raumschiffe haben|den Planeten verlassen.", // kStringArsanoMeetup2_1 "Alle Raumschiffe haben den Planeten|verlassen, bis auf eins ...", // kStringArsanoMeetup2_2 "Was wollen Sie denn schon wieder?", // kStringArsanoMeetup2_3 "Nein.", // kStringArsanoMeetup2_4 - // 445 + // 475 "Haben Sie zuf\204llig meine Brieftasche gesehen?|Ich mu\341 Sie irgendwo verloren haben.", // kStringArsanoMeetup2_5 "Ohne die Brieftasche kann ich nicht|starten, weil meine Keycard darin ist.", // kStringArsanoMeetup2_6 "Oh! Vielen Dank.", // kStringArsanoMeetup2_7 "Wo ist denn Ihr Raumschiff?|Soll ich Sie ein St\201ck mitnehmen?", // kStringArsanoMeetup2_8 "Wo wollen Sie denn hin?", // kStringArsanoMeetup2_9 - // 450 + // 480 "Ok, steigen Sie ein!", // kStringArsanoMeetup2_10 "Wie Sie wollen.", // kStringArsanoMeetup2_11 "Huch, du lebst ja noch!", // kStringArsanoMeetup2_12 "Das w\201rde ich jetzt nicht tun, schlie\341lich|steht Roger W. neben seinem Schiff.", // kStringArsanoMeetup2_13 "Ich glaube, er wacht auf.", // kStringArsanoMeetup3_1 - // 455 + // 485 "Ja, sieht so aus.", // kStringArsanoMeetup3_2 "Sie befinden sich im Raumschiff \"Dexxa\".", // kStringArsanoMeetup3_3 "Wir kommen vom Planeten Axacuss und|sind aus dem gleichen Grund hier wie Sie,|n?mlich zur Erforschung der Supernova.", // kStringArsanoMeetup3_4 "Sie k\224nnen beruhigt sein, wir wollen Ihnen nur helfen.", // kStringArsanoMeetup3_5 "Und wieso hat der Typ im Raumanzug|eben auf mich geschossen?", // kStringArsanoMeetup3_6 - // 460 + // 490 "Das war eine Schreckreaktion.", // kStringArsanoMeetup3_7 "Schlie\341lich ist es f\201r uns das erste Mal,|da\341 wir auf eine fremde Intelligenz treffen.", // kStringArsanoMeetup3_8 "Wie wir festgestellt haben, ist|Ihr Raumschiff v\224llig zerst\224rt.", // kStringArsanoMeetup3_9 "Wahrscheinlich k\224nnen Sie nicht|mehr auf ihren Heimatplaneten zur\201ck.", // kStringArsanoMeetup3_10 "Wir bieten Ihnen an, Sie|mit nach Axacuss zu nehmen.", // kStringArsanoMeetup3_11 - // 465 + // 495 "Sind Sie sich da wirklich sicher?", // kStringArsanoMeetup3_12 "Wenn ich es mir genau \201berlege,|fliege ich doch lieber mit.", // kStringArsanoMeetup3_13 "Gut, wir nehmen Sie unter der|Bedingung mit, da\341 wir Sie jetzt|sofort in Tiefschlaf versetzen d\201rfen.", // kStringArsanoMeetup3_14 "Diese Art des Reisens ist Ihnen|ja scheinbar nicht unbekannt.", // kStringArsanoMeetup3_15 "Sie werden in vier Jahren nach der|Landung der \"Dexxa\" wieder aufgeweckt.", // kStringArsanoMeetup3_16 - // 470 + // 500 "Sind Sie damit einverstanden?", // kStringArsanoMeetup3_17 "Gut, haben Sie noch irgendwelche Fragen?", // kStringArsanoMeetup3_18 "Keine Panik!", // kStringArsanoMeetup3_19 "Wir tun Ihnen nichts.", // kStringArsanoMeetup3_20 "Wir sprechen nicht ihre Sprache,|sondern Sie sprechen unsere.", // kStringArsanoMeetup3_21 - // 475 + // 505 "Nach einer Gehirnanalyse konnten|wir Ihr Gehirn an unsere Sprache anpassen.", // kStringArsanoMeetup3_22 "Was? Sie haben in mein Gehirn eingegriffen?", // kStringArsanoMeetup3_23 "Keine Angst, wir haben sonst nichts ver\204ndert.", // kStringArsanoMeetup3_24 "Ohne diesen Eingriff w\204ren|Sie verloren gewesen.", // kStringArsanoMeetup3_25 "Ich habe keine weiteren Fragen mehr.", // kStringArsanoMeetup3_26 - // 480 + // 510 "Gut, dann versetzen wir Sie jetzt in Tiefschlaf.", // kStringArsanoMeetup3_27 "Gute Nacht!", // kStringArsanoMeetup3_28 "Du wachst auf und findest dich in|einem geschlossenen Raum wieder.", // kStringAxacussCell_1 "Du dr\201ckst den Knopf,|aber nichts passiert.", // kStringAxacussCell_2 "Das ist befestigt.", // kStringAxacussCell_3 - // 485 + // 515 "Bei deinem Fluchtversuch hat|dich der Roboter erschossen.", // kStringAxacussCell_4 "Du i\341t etwas, aber|es schmeckt scheu\341lich.", // kStringAxacussCell_5 "Ok.", // kStringOk - "", // - "", // - // 490 + "Ach, Ihnen geh\224rt die. Ich habe sie eben im Sand gefunden.", // kStringDialogArsanoMeetup2_1 + "Nein, tut mir leid.", // kStringDialogArsanoMeetup2_2 + // 520 + "Nein, danke. Ich bleibe lieber hier.", // kStringDialogArsanoMeetup2_3 + "Ja, das w\204re gut.", // kStringDialogArsanoMeetup2_4 + "Zur Erde.", // kStringDialogArsanoMeetup2_5 + "Zum Pr\204sident der Galaxis.", // kStringDialogArsanoMeetup2_6 + "Nach Xenon.", // kStringDialogArsanoMeetup2_7 + // 525 + "Mir egal, setzen Sie mich irgendwo ab!", // kStringDialogArsanoMeetup2_8 + "Ich habe gerade Ihre Brieftasche gefunden!", // kStringDialogArsanoMeetup2_9 + "Sie lag da dr\201ben hinter einem Felsen.", // kStringDialogArsanoMeetup2_10 + "Ich wollte nur wissen, ob Sie die Brieftasche wiederhaben.", // kStringDialogArsanoMeetup2_11 + "\216h ... nein, mein Name ist M\201ller.", // kStringDialogAxacussCorridor5_1 + // 530 + "Oh, ich habe mich im Gang vertan.", // kStringDialogAxacussCorridor5_2 + "W\201rden Sie mich bitte zum Fahrstuhl lassen?", // kStringDialogAxacussCorridor5_3 + "Ich gehe wieder.", // kStringDialogAxacussCorridor5_4 + "Dann gehe ich eben wieder.", // kStringDialogAxacussCorridor5_5 + "Ach, halten Sie's Maul, ich gehe trotzdem!", // kStringDialogAxacussCorridor5_6 + // 535 + "Wenn Sie mich durchlassen gebe ich Ihnen ", // kStringDialogAxacussCorridor5_7 + "Hallo!", // kStringDialogX1 + "Guten Tag!", // kStringDialogX2 + "Ich bin's, Horst Hummel.", // kStringDialogX3 + "", + // 540 NULL }; diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h index 551d07a288..565c1b69ef 100644 --- a/engines/supernova/msn_def.h +++ b/engines/supernova/msn_def.h @@ -464,6 +464,7 @@ enum StringID { kStringOutro3, kStringOutro4, kStringOutro5, kStringOutro6, kStringOutro7, kStringOutro8, kStringOutro9, kStringOutro10, kStringOutro11, kStringOutro12, kStringOutro13, kStringOutro14, kStringWireAndPlug, kStringWireAndClip, kStringWireAndPlug2, + // 275 kStringSignDescription2, kStringCoin, kStringDoorDescription5, kStringDoorDescription6, kStringKeycard2Description2, kSringSpoolAndClip, kStringIntroCutscene1, kStringIntroCutscene2, kStringIntroCutscene3, kStringIntroCutscene4, kStringIntroCutscene5, kStringIntroCutscene6, kStringIntroCutscene7, kStringIntroCutscene8, kStringIntroCutscene9, @@ -517,10 +518,16 @@ enum StringID { kStringArsanoMeetup3_2, kStringArsanoMeetup3_3, kStringArsanoMeetup3_4, kStringArsanoMeetup3_5, kStringArsanoMeetup3_6, kStringArsanoMeetup3_7, kStringArsanoMeetup3_8, kStringArsanoMeetup3_9, kStringArsanoMeetup3_10, kStringArsanoMeetup3_11, kStringArsanoMeetup3_12, kStringArsanoMeetup3_13, kStringArsanoMeetup3_14, kStringArsanoMeetup3_15, kStringArsanoMeetup3_16, + // 500 kStringArsanoMeetup3_17, kStringArsanoMeetup3_18, kStringArsanoMeetup3_19, kStringArsanoMeetup3_20, kStringArsanoMeetup3_21, kStringArsanoMeetup3_22, kStringArsanoMeetup3_23, kStringArsanoMeetup3_24, kStringArsanoMeetup3_25, kStringArsanoMeetup3_26, kStringArsanoMeetup3_27, kStringArsanoMeetup3_28, kStringAxacussCell_1, kStringAxacussCell_2, kStringAxacussCell_3, - kStringAxacussCell_4, kStringAxacussCell_5, kStringOk + kStringAxacussCell_4, kStringAxacussCell_5, kStringOk, kStringDialogArsanoMeetup2_1, kStringDialogArsanoMeetup2_2, + kStringDialogArsanoMeetup2_3, kStringDialogArsanoMeetup2_4, kStringDialogArsanoMeetup2_5, kStringDialogArsanoMeetup2_6, kStringDialogArsanoMeetup2_7, + // 525 + kStringDialogArsanoMeetup2_8, kStringDialogArsanoMeetup2_9, kStringDialogArsanoMeetup2_10, kStringDialogArsanoMeetup2_11, kStringDialogAxacussCorridor5_1, + kStringDialogAxacussCorridor5_2, kStringDialogAxacussCorridor5_3, kStringDialogAxacussCorridor5_4, kStringDialogAxacussCorridor5_5, kStringDialogAxacussCorridor5_6, + kStringDialogAxacussCorridor5_7, kStringDialogX1, kStringDialogX2, kStringDialogX3 }; static StringID guiCommands[] = { diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp index 5126649323..886cd4b785 100644 --- a/engines/supernova/rooms.cpp +++ b/engines/supernova/rooms.cpp @@ -1567,10 +1567,9 @@ void ArsanoEntrance::animation() { } bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { - // TODO: Refactor row/dialog data structure for dialog() - byte zeilen1[5] = {1, 1, 1, 1, 1}; - byte zeilen2[5] = {1, 1, 1, 1, 1}; - byte zeilen3[2] = {1, 1}; + static byte row1[6] = {1, 1, 1, 1, 1, 0}; + static byte row2[6] = {1, 1, 1, 1, 1, 0}; + static byte row3[6] = {1, 1, 0, 0, 0, 0}; char e; @@ -1586,7 +1585,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { } else if (_gm->_state._shoes > 1) { _gm->removeSentence(2, 2); } - switch (e = _gm->dialog(5, nullptr, nullptr, 2)) { // row2, dialog2 + switch (e = _gm->dialog(5, row2, _dialog2, 2)) { case 0: _gm->reply(kStringArsanoEntrance3, 1, _gm->invertSection(1)); _gm->reply(kStringArsanoEntrance4, 1, _gm->invertSection(1)); @@ -1610,10 +1609,8 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { _gm->reply(kStringArsanoEntrance9, 1, _gm->invertSection(1)); } } while (e != 4); - } else { - if (_gm->dialog(5, nullptr, nullptr, 0) != 4) // row2, dialog2 - _gm->reply(kStringArsanoEntrance10, 1, _gm->invertSection(1)); - } + } else if (_gm->dialog(5, row2, _dialog2, 0) != 4) + _gm->reply(kStringArsanoEntrance10, 1, _gm->invertSection(1)); } } else if ((verb == ACTION_WALK) && (obj1._id == STAIRCASE) && (_gm->_state._shoes != 3)) { _gm->drawImage(3); @@ -1638,7 +1635,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { _gm->reply(kStringArsanoEntrance14, 1, _gm->invertSection(1)); e = 0; while ((e < 3) && (_shown[kMaxSection - 1] != 15)) { - switch (e = _gm->dialog(5, nullptr, nullptr, 1)) { // row1, dialog1 + switch (e = _gm->dialog(5, row1, _dialog1, 1)) { case 0: _gm->reply(kStringArsanoEntrance15, 1, 1 + 128); break; @@ -1667,7 +1664,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { _gm->removeSentence(0, 1); } } else { - _gm->dialog(2, nullptr, nullptr, 0); // row3, dialog3 + _gm->dialog(2, row3, _dialog3, 0); _gm->reply(kStringArsanoEntrance10, 1, 1 + 128); } } @@ -1959,7 +1956,7 @@ void ArsanoRoger::animation() { } bool ArsanoRoger::interact(Action verb, Object &obj1, Object &obj2) { - byte zeilen1[4] = {1, 1, 1, 1}; + static byte row1[6] = {1, 1, 1, 1, 0, 0}; if ((verb == ACTION_TAKE) && (obj1._id == WALLET)) { if (isSectionVisible(3)) { @@ -1973,7 +1970,7 @@ bool ArsanoRoger::interact(Action verb, Object &obj1, Object &obj2) { if (isSectionVisible(3)) _vm->renderMessage(kStringArsanoRoger5); else { - switch (_gm->dialog(4, nullptr, nullptr, 1)) { // row1, dialog1 + switch (_gm->dialog(4, row1, _dialog1, 1)) { case 0: _gm->reply(kStringArsanoRoger6, 2, 2 + 128); _gm->reply(kStringArsanoRoger7, 2, 2 + 128); @@ -2144,10 +2141,10 @@ void ArsanoMeetup2::onEntrance() { } bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) { - byte zeilen1[2] = {1, 1}; - byte zeilen2[2] = {1, 1}; - byte zeilen3[4] = {1, 1, 1, 1}; - byte zeilen4[2] = {2, 1}; + static byte row1[6] = {1, 1, 0, 0, 0, 0}; + static byte row2[6] = {1, 1, 0, 0, 0, 0}; + static byte row3[6] = {1, 1, 1, 1, 0, 0}; + static byte row4[6] = {2, 1, 0, 0, 0, 0}; if (((verb == ACTION_WALK) && ((obj1._id == SPACESHIP) || (obj1._id == ROGER_W))) || @@ -2158,13 +2155,13 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) { bool found; if (_gm->_rooms[MEETUP2]->isSectionVisible(kMaxSection - 2)) { _gm->reply(kStringArsanoMeetup2_3, 1, 1 + 128); - found = !_gm->dialog(2, nullptr, nullptr, 0); // row4, dialog4 + found = !_gm->dialog(2, row4, _dialog4, 0); if (!(found)) _gm->reply(kStringArsanoMeetup2_4, 1, 1 + 128); } else { _gm->reply(kStringArsanoMeetup2_5, 1, 1 + 128); _gm->reply(kStringArsanoMeetup2_6, 1, 1 + 128); - found = !_gm->dialog(2, nullptr, nullptr, 0); // row1, dialog1 + found = !_gm->dialog(2, row1, _dialog1, 0); _gm->_rooms[MEETUP2]->setSectionVisible(kMaxSection - 2, true); } if (found) { @@ -2173,10 +2170,10 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) { _gm->_inventory.remove(*_gm->_rooms[ROGER]->getObject(8)); _gm->reply(kStringArsanoMeetup2_7, 1, 1 + 128); _gm->reply(kStringArsanoMeetup2_8, 1, 1 + 128); - bool flight = _gm->dialog(2, nullptr, nullptr, 0); // row2, dialog2 + bool flight = _gm->dialog(2, row2, _dialog2, 0); if (flight) { _gm->reply(kStringArsanoMeetup2_9, 1, 1 + 128); - _gm->dialog(4, nullptr, nullptr, 0); // row3, dialog3 + _gm->dialog(4, row3, _dialog3, 0); _gm->reply(kStringArsanoMeetup2_10, 1, 1 + 128); } else { _gm->reply(kStringArsanoMeetup2_11, 1, 1 + 128); @@ -2246,8 +2243,11 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) { } bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { - byte zeilen2[4] = {1, 1, 1, 1}; - byte zeilen3[2] = {1, 1}; + byte row2[6] = {1, 1, 1, 1, 0, 0}; + byte row3[6] = {1, 1, 0, 0, 0, 0}; + + // TODO: Hack, to be move away and renamed when the other uses are found + byte rowsX[6] = {1, 1, 1, 0, 0, 0}; if ((verb == ACTION_WALK) && (obj1._id == STAR)) _vm->renderMessage(kStringArsanoMeetup2); @@ -2256,11 +2256,12 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { _vm->paletteBrightness(); _gm->getInput(); g_system->fillScreen(kColorBlack); + // CHECKME: Doesn't look complete - check sb_meetup() } else if ((verb == ACTION_WALK) && (obj1._id == UFO)) { g_system->fillScreen(kColorBlack); _vm->renderImage(36, 0); _vm->paletteBrightness(); - _gm->dialog(3, nullptr, nullptr, 0); // rowX, dialogX + _gm->dialog(3, rowsX, _dialogsX, 0); _vm->renderImage(36, 1); _gm->wait2(3); _vm->renderImage(36, 2); @@ -2286,7 +2287,7 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { _gm->reply(kStringArsanoMeetup3_2, 1, 1 + 128); do { - int i = _gm->dialog(4, nullptr, nullptr, 2); // row2, dialog2 + int i = _gm->dialog(4, row2, _dialog2, 2); switch (i) { case 0: _gm->reply(kStringArsanoMeetup3_3, 1, 1 + 128); @@ -2300,7 +2301,7 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { _gm->reply(kStringArsanoMeetup3_9, 2, 2 + 128); _gm->reply(kStringArsanoMeetup3_10, 2, 2 + 128); _gm->reply(kStringArsanoMeetup3_11, 2, 2 + 128); - if (_gm->dialog(2, nullptr, nullptr, 0)) { // row3, dialog3 + if (_gm->dialog(2, row3, _dialog3, 0)) { _gm->reply(kStringArsanoMeetup3_12, 2, 2 + 128); _gm->say(kStringArsanoMeetup3_13); } @@ -2308,7 +2309,7 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { _gm->reply(kStringArsanoMeetup3_15, 2, 2 + 128); _gm->reply(kStringArsanoMeetup3_16, 2, 2 + 128); _gm->reply(kStringArsanoMeetup3_17, 2, 2 + 128); - if (_gm->dialog(2, nullptr, nullptr, 0)) { // row3, dialog3 + if (_gm->dialog(2, row3, _dialog3, 0)) { _gm->reply(kStringArsanoMeetup3_12, 2, 2 + 128); _gm->say(kStringArsanoMeetup3_13); } @@ -2580,8 +2581,7 @@ void AxacussCorridor5::onEntrance() { bool AxacussCorridor5::interact(Action verb, Object &obj1, Object &obj2) { // TODO: needs to be refactored -// static char -// rows[] = {1, 1, 1, 1}, + static byte rows[6] = {1, 1, 1, 1, 0, 0}; int sum; @@ -2595,22 +2595,23 @@ bool AxacussCorridor5::interact(Action verb, Object &obj1, Object &obj2) { } else { _gm->_guiEnabled = true; _gm->reply("Halt! Sie sind doch dieser Hummel.|Bleiben Sie sofort stehen!", 1, 1 + 128); - if (_gm->dialog(2, nullptr, nullptr, 0)) // rows, dialog1 + if (_gm->dialog(2, rows, _dialog1, 0)) _gm->reply("Sehr witzig!", 1, 1 + 128); else { _gm->reply("Kann auch sein, auf jeden Fall|sind Sie der Nicht-Axacussaner.", 1, 1 + 128); bestechen: - if (_gm->dialog(2, nullptr, nullptr, 0) == 0) { // rows, dialog2 + if (_gm->dialog(2, rows, _dialog2, 0) == 0) { _gm->reply("Nein!", 1, 1 + 128); setSectionVisible(kMaxSection - 2, false); if (_gm->_state._money == 0) { _gm->removeSentence(2, 2); _gm->removeSentence(3, 2); } else { - _dialog3[2] += Common::String::format("%d Xa.", _gm->_state._money - 200); - _dialog3[3] += Common::String::format("%d Xa.", _gm->_state._money); + // TODO: Handle string manipulation in dialogs + // _dialog3[2] += Common::String::format("%d Xa.", _gm->_state._money - 200); + // _dialog3[3] += Common::String::format("%d Xa.", _gm->_state._money); } - switch (_gm->dialog(4, nullptr, nullptr, 2)) { // rows, dialog3 + switch (_gm->dialog(4, rows, _dialog3, 2)) { case 1: _gm->wait2(3); _gm->drawImage(1); diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h index 8e857e889e..d609b0d470 100644 --- a/engines/supernova/rooms.h +++ b/engines/supernova/rooms.h @@ -751,31 +751,33 @@ public: _id = MEETUP2; _shown[0] = kShownTrue; - _objectState[0] = Object(_id, kStringRoger,kStringDefaultDescription,ROGER_W,TALK,255,255,0); - _objectState[1] = Object(_id, kStringSpaceshift,kStringDefaultDescription,SPACESHIP,COMBINABLE,255,255,0); - _objectState[2] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22); - - _dialog1[0] = "Ach, Ihnen geh\224rt die. Ich habe sie eben im Sand gefunden."; - _dialog1[1] = "Nein, tut mir leid."; - _dialog2[0] = "Nein, danke. Ich bleibe lieber hier."; - _dialog2[1] = "Ja, das w\204re gut."; - _dialog3[0] = "Zur Erde."; - _dialog3[1] = "Zum Pr\204sident der Galaxis."; - _dialog3[2] = "Nach Xenon."; - _dialog3[3] = "Mir egal, setzen Sie mich irgendwo ab!"; - _dialog4[0] = "Ich habe gerade Ihre Brieftasche gefunden!"; - _dialog4[1] = "Sie lag da dr\201ben hinter einem Felsen."; - _dialog4[2] = "Ich wollte nur wissen, ob Sie die Brieftasche wiederhaben."; + _objectState[0] = Object(_id, kStringRoger, kStringDefaultDescription, ROGER_W, TALK, 255, 255, 0); + _objectState[1] = Object(_id, kStringSpaceshift, kStringDefaultDescription, SPACESHIP, COMBINABLE, 255, 255, 0); + _objectState[2] = Object(_id, kStringCave, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, CAVE, 22); + + _dialog1[0] = kStringDialogArsanoMeetup2_1; + _dialog1[1] = kStringDialogArsanoMeetup2_2; + _dialog2[0] = kStringDialogArsanoMeetup2_3; + _dialog2[1] = kStringDialogArsanoMeetup2_4; + _dialog3[0] = kStringDialogArsanoMeetup2_5; + _dialog3[1] = kStringDialogArsanoMeetup2_6; + _dialog3[2] = kStringDialogArsanoMeetup2_7; + _dialog3[3] = kStringDialogArsanoMeetup2_8; + _dialog4[0] = kStringDialogArsanoMeetup2_9; + _dialog4[1] = kStringDialogArsanoMeetup2_10; + _dialog4[2] = kStringDialogArsanoMeetup2_11; } virtual void onEntrance(); virtual bool interact(Action verb, Object &obj1, Object &obj2); private: - Common::String _dialog1[2]; - Common::String _dialog2[2]; - Common::String _dialog3[4]; - Common::String _dialog4[3]; + // TODO: change to 6, fix initialization + StringID _dialog1[2]; + StringID _dialog2[2]; + StringID _dialog3[4]; + StringID _dialog4[3]; + bool _found; bool _flug; }; @@ -799,6 +801,11 @@ public: _dialog2[3] = kStringDialogArsanoMeetup3_3; _dialog3[0] = kStringDialogArsanoMeetup3_4; _dialog3[1] = kStringDialogArsanoMeetup3_5; + + // TODO: Hack, to be move away and renamed when the other uses are found + _dialogsX[0] = kStringDialogX1; + _dialogsX[1] = kStringDialogX2; + _dialogsX[2] = kStringDialogX3; } virtual bool interact(Action verb, Object &obj1, Object &obj2); @@ -806,6 +813,10 @@ public: private: StringID _dialog2[4]; StringID _dialog3[2]; + + // TODO: Hack, to be move away and renamed when the other uses are found + StringID _dialogsX[6]; + // }; // Axacuss @@ -954,23 +965,24 @@ public: _objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,DOOR,EXIT,2,2,0,NULLROOM,2); _objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR6,22); - _dialog1[0] = "\216h ... nein, mein Name ist M\201ller."; - _dialog1[1] = "Oh, ich habe mich im Gang vertan."; - _dialog2[0] = "W\201rden Sie mich bitte zum Fahrstuhl lassen?"; - _dialog2[1] = "Ich gehe wieder."; - _dialog3[0] = "Dann gehe ich eben wieder."; - _dialog3[1] = "Ach, halten Sie's Maul, ich gehe trotzdem!"; - _dialog3[2] = "Wenn Sie mich durchlassen gebe ich Ihnen "; - _dialog3[3] = "Wenn Sie mich durchlassen gebe ich Ihnen "; + _dialog1[0] = kStringDialogAxacussCorridor5_1; + _dialog1[1] = kStringDialogAxacussCorridor5_2; + _dialog2[0] = kStringDialogAxacussCorridor5_3; + _dialog2[1] = kStringDialogAxacussCorridor5_4; + _dialog3[0] = kStringDialogAxacussCorridor5_5; + _dialog3[1] = kStringDialogAxacussCorridor5_6; + _dialog3[2] = kStringDialogAxacussCorridor5_7; + _dialog3[3] = kStringDialogAxacussCorridor5_7; } virtual void onEntrance(); virtual bool interact(Action verb, Object &obj1, Object &obj2); private: - Common::String _dialog1[2]; - Common::String _dialog2[2]; - Common::String _dialog3[4]; + // TODO: Change to 6, or change struct, and fix initialization + StringID _dialog1[2]; + StringID _dialog2[2]; + StringID _dialog3[4]; }; class AxacussCorridor6 : public Room { public: diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp index 39e086ee56..e95c4ecfef 100644 --- a/engines/supernova/state.cpp +++ b/engines/supernova/state.cpp @@ -799,7 +799,7 @@ void GameManager::reply(const char *text, int aus1, int aus2) { // STUB } -int GameManager::dialog(int num, byte *rowLength[], const char **text[6], int number) { +int GameManager::dialog(int num, byte rowLength[6], StringID text[6], int number) { // STUB return 0; } diff --git a/engines/supernova/state.h b/engines/supernova/state.h index 875a89a01b..d72cd176e6 100644 --- a/engines/supernova/state.h +++ b/engines/supernova/state.h @@ -180,7 +180,7 @@ public: void setAnimationTimer(int ticks); void dead(const char *message); void dead(StringID messageId); - int dialog(int num, byte *rowLength[6], const char **text[6], int number); + int dialog(int num, byte rowLength[6], StringID text[6], int number); void sentence(int number, bool brightness); void removeSentence(int sentence, int number); void addSentence(int sentence, int number); |