diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/supernova/msn_def.h | 14 | ||||
-rw-r--r-- | engines/supernova/rooms.cpp | 111 |
2 files changed, 68 insertions, 57 deletions
diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h index 91d3be33fb..551d07a288 100644 --- a/engines/supernova/msn_def.h +++ b/engines/supernova/msn_def.h @@ -505,10 +505,22 @@ enum StringID { kStringArsanoRoger6, kStringArsanoRoger7, kStringArsanoRoger8, kStringArsanoRoger9, kStringArsanoRoger10, kStringArsanoRoger11, kStringArsanoRoger12, kStringArsanoRoger13, kStringArsanoRoger14, kStringArsanoRoger15, kStringArsanoRoger16, kStringArsanoRoger17, kStringArsanoRoger18, kStringArsanoRoger19, kStringArsanoRoger20, + // 450 kStringArsanoRoger21, kStringArsanoRoger22, kStringArsanoRoger23, kStringArsanoRoger24, kStringArsanoRoger25, kStringArsanoRoger26, kStringArsanoRoger27, kStringArsanoRoger28, kStringArsanoRoger29, kStringArsanoRoger30, kStringArsanoRoger31, kStringArsanoRoger32, kStringArsanoRoger33, kStringArsanoRoger34, kStringArsanoRoger35, - kStringArsanoRoger36, kStringArsanoRoger37, kStringArsanoRoger38, kStringArsanoRoger39, kStringArsanoRoger40 + kStringArsanoRoger36, kStringArsanoRoger37, kStringArsanoRoger38, kStringArsanoRoger39, kStringArsanoRoger40, + kStringArsanoGlider1, kStringArsanoMeetup2_1, kStringArsanoMeetup2_2, kStringArsanoMeetup2_3, kStringArsanoMeetup2_4, + // 475 + kStringArsanoMeetup2_5, kStringArsanoMeetup2_6, kStringArsanoMeetup2_7, kStringArsanoMeetup2_8, kStringArsanoMeetup2_9, + kStringArsanoMeetup2_10, kStringArsanoMeetup2_11, kStringArsanoMeetup2_12, kStringArsanoMeetup2_13, kStringArsanoMeetup3_1, + 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, + 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 }; static StringID guiCommands[] = { diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp index 9272d632ec..5126649323 100644 --- a/engines/supernova/rooms.cpp +++ b/engines/supernova/rooms.cpp @@ -1141,7 +1141,7 @@ bool ShipHold::interact(Action verb, Object &obj1, Object &obj2) { _gm->_inventory.remove(*getObject(2)); _gm->_state._terminalStripConnected = true; _gm->_state._terminalStripWire = true; - _vm->renderMessage("Ok."); + _vm->renderMessage(kStringOk); } else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, HOLD_WIRE, SPOOL)) { if (!_gm->_state._terminalStripConnected) _vm->renderMessage(kStringCable3); @@ -2121,25 +2121,24 @@ bool ArsanoGlider::interact(Action verb, Object &obj1, Object &obj2) { _gm->wait2(4); _gm->drawImage(_gm->invertSection(i)); } else if ((verb == ACTION_USE) && (obj1._id == GLIDER_BUTTONS)) { - _vm->renderMessage("Du tippst auf den Tasten herum,|aber es passiert nichts."); - } else { + _vm->renderMessage(kStringArsanoGlider1); + } else return false; - } return true; } void ArsanoMeetup2::onEntrance() { - // We use 1, 2, 3 because those are dialog status and not "real" _shown + // We don't use the enum because those are dialog status and not "real" _shown switch (_shown[kMaxSection - 1]) { case 1: _gm->shipStart(); break; case 2: - _vm->renderMessage("Alle Raumschiffe haben|den Planeten verlassen."); // All spaceships have left the planet + _vm->renderMessage(kStringArsanoMeetup2_1); // All spaceships have left the planet break; case 3: - _vm->renderMessage("Alle Raumschiffe haben den Planeten|verlassen, bis auf eins ..."); // All spaceships have left the planet, except one ... + _vm->renderMessage(kStringArsanoMeetup2_2); // All spaceships have left the planet, except one ... } _shown[kMaxSection - 1] = 0; } @@ -2158,13 +2157,13 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) { _vm->paletteBrightness(); bool found; if (_gm->_rooms[MEETUP2]->isSectionVisible(kMaxSection - 2)) { - _gm->reply("Was wollen Sie denn schon wieder?", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_3, 1, 1 + 128); found = !_gm->dialog(2, nullptr, nullptr, 0); // row4, dialog4 if (!(found)) - _gm->reply("Nein.", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_4, 1, 1 + 128); } else { - _gm->reply("Haben Sie zuf\204llig meine Brieftasche gesehen?|Ich mu\341 Sie irgendwo verloren haben.", 1, 1 + 128); - _gm->reply("Ohne die Brieftasche kann ich nicht|starten, weil meine Keycard darin ist.", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_5, 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_6, 1, 1 + 128); found = !_gm->dialog(2, nullptr, nullptr, 0); // row1, dialog1 _gm->_rooms[MEETUP2]->setSectionVisible(kMaxSection - 2, true); } @@ -2172,15 +2171,15 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) { _gm->_inventory.remove(*_gm->_rooms[ROGER]->getObject(3)); _gm->_inventory.remove(*_gm->_rooms[ROGER]->getObject(7)); _gm->_inventory.remove(*_gm->_rooms[ROGER]->getObject(8)); - _gm->reply("Oh! Vielen Dank.", 1, 1 + 128); - _gm->reply("Wo ist denn Ihr Raumschiff?|Soll ich Sie ein St\201ck mitnehmen?", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_7, 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_8, 1, 1 + 128); bool flight = _gm->dialog(2, nullptr, nullptr, 0); // row2, dialog2 if (flight) { - _gm->reply("Wo wollen Sie denn hin?", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_9, 1, 1 + 128); _gm->dialog(4, nullptr, nullptr, 0); // row3, dialog3 - _gm->reply("Ok, steigen Sie ein!", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_10, 1, 1 + 128); } else { - _gm->reply("Wie Sie wollen.", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup2_11, 1, 1 + 128); } _gm->changeRoom(MEETUP2); _gm->_rooms[MEETUP2]->setSectionVisible(12, false); @@ -2221,7 +2220,7 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) { _vm->renderImage(11, 0); _vm->paletteFadeIn(); _gm->wait2(18); - _vm->renderMessage("Huch, du lebst ja noch!"); + _vm->renderMessage(kStringArsanoMeetup2_12); _gm->great(0); _gm->mouseWait(_gm->_timer1); _vm->removeMessage(); @@ -2239,7 +2238,7 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) { _gm->changeRoom(MEETUP2); } } else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, KEYCARD_R, SPACESHIP)) - _vm->renderMessage("Das w\201rde ich jetzt nicht tun, schlie\341lich|steht Roger W. neben seinem Schiff."); + _vm->renderMessage(kStringArsanoMeetup2_13); else return false; @@ -2270,67 +2269,67 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { _gm->wait2(6); _vm->renderImage(36, 4); _vm->playSound(kAudioGunShot); - // TODO: wait until audio finshed playing + // TODO: wait until audio finished playing _vm->renderImage(36, 5); _gm->wait2(3); _vm->renderImage(36, 4); _vm->playSound(kAudioGunShot); - // TODO: wait until audio finshed playing + // TODO: wait until audio finished playing _vm->renderImage(36, 5); _vm->paletteFadeOut(); _gm->wait2(12); _vm->renderImage(0, 0); _vm->paletteFadeIn(); _gm->wait2(18); - _gm->reply("Ich glaube, er wacht auf.", 2, 2 + 128); + _gm->reply(kStringArsanoMeetup3_1, 2, 2 + 128); _gm->wait2(10); - _gm->reply("Ja, sieht so aus.", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup3_2, 1, 1 + 128); do { int i = _gm->dialog(4, nullptr, nullptr, 2); // row2, dialog2 switch (i) { case 0: - _gm->reply("Sie befinden sich im Raumschiff \"Dexxa\".", 1, 1 + 128); - _gm->reply("Wir kommen vom Planeten Axacuss und|sind aus dem gleichen Grund hier wie Sie,|n„mlich zur Erforschung der Supernova.", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup3_3, 1, 1 + 128); + _gm->reply(kStringArsanoMeetup3_4, 1, 1 + 128); break; case 1: - _gm->reply("Sie k\224nnen beruhigt sein, wir wollen Ihnen nur helfen.", 2, 2 + 128); - _gm->say("Und wieso hat der Typ im Raumanzug|eben auf mich geschossen?"); - _gm->reply("Das war eine Schreckreaktion.", 2, 2 + 128); - _gm->reply("Schlie\341lich ist es f\201r uns das erste Mal,|da\341 wir auf eine fremde Intelligenz treffen.", 2, 2 + 128); - _gm->reply("Wie wir festgestellt haben, ist|Ihr Raumschiff v\224llig zerst\224rt.", 2, 2 + 128); - _gm->reply("Wahrscheinlich k\224nnen Sie nicht|mehr auf ihren Heimatplaneten zur\201ck.", 2, 2 + 128); - _gm->reply("Wir bieten Ihnen an, Sie|mit nach Axacuss zu nehmen.", 2, 2 + 128); + _gm->reply(kStringArsanoMeetup3_5, 2, 2 + 128); + _gm->say(kStringArsanoMeetup3_6); + _gm->reply(kStringArsanoMeetup3_7, 2, 2 + 128); + _gm->reply(kStringArsanoMeetup3_8, 2, 2 + 128); + _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 - _gm->reply("Sind Sie sich da wirklich sicher?", 2, 2 + 128); - _gm->say("Wenn ich es mir genau \201berlege,|fliege ich doch lieber mit."); + _gm->reply(kStringArsanoMeetup3_12, 2, 2 + 128); + _gm->say(kStringArsanoMeetup3_13); } - _gm->reply("Gut, wir nehmen Sie unter der|Bedingung mit, da\341 wir Sie jetzt|sofort in Tiefschlaf versetzen d\201rfen.", 2, 2 + 128); - _gm->reply("Diese Art des Reisens ist Ihnen|ja scheinbar nicht unbekannt.", 2, 2 + 128); - _gm->reply("Sie werden in vier Jahren nach der|Landung der \"Dexxa\" wieder aufgeweckt.", 2, 2 + 128); - _gm->reply("Sind Sie damit einverstanden?", 2, 2 + 128); + _gm->reply(kStringArsanoMeetup3_14, 2, 2 + 128); + _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 - _gm->reply("Sind Sie sich da wirklich sicher?", 2, 2 + 128); - _gm->say("Wenn ich es mir genau \201berlege,|fliege ich doch lieber mit."); + _gm->reply(kStringArsanoMeetup3_12, 2, 2 + 128); + _gm->say(kStringArsanoMeetup3_13); } - _gm->reply("Gut, haben Sie noch irgendwelche Fragen?", 2, 2 + 128); + _gm->reply(kStringArsanoMeetup3_18, 2, 2 + 128); break; case 2: - _gm->reply("Keine Panik!", 2, 2 + 128); - _gm->reply("Wir tun Ihnen nichts.", 2, 2 + 128); + _gm->reply(kStringArsanoMeetup3_19, 2, 2 + 128); + _gm->reply(kStringArsanoMeetup3_20, 2, 2 + 128); break; case 3: - _gm->reply("Wir sprechen nicht ihre Sprache,|sondern Sie sprechen unsere.", 1, 1 + 128); - _gm->reply("Nach einer Gehirnanalyse konnten|wir Ihr Gehirn an unsere Sprache anpassen.", 1, 1 + 128); - _gm->say("Was? Sie haben in mein Gehirn eingegriffen?"); - _gm->reply("Keine Angst, wir haben sonst nichts ver\204ndert.", 1, 1 + 128); - _gm->reply("Ohne diesen Eingriff w\204ren|Sie verloren gewesen.", 1, 1 + 128); + _gm->reply(kStringArsanoMeetup3_21, 1, 1 + 128); + _gm->reply(kStringArsanoMeetup3_22, 1, 1 + 128); + _gm->say(kStringArsanoMeetup3_23); + _gm->reply(kStringArsanoMeetup3_24, 1, 1 + 128); + _gm->reply(kStringArsanoMeetup3_25, 1, 1 + 128); } _gm->removeSentence(2, 2); } while (_shown[kMaxSection - 2] != 15); - _gm->say("Ich habe keine weiteren Fragen mehr."); - _gm->reply("Gut, dann versetzen wir Sie jetzt in Tiefschlaf.", 1, 1 + 128); - _gm->reply("Gute Nacht!", 1, 1 + 128); + _gm->say(kStringArsanoMeetup3_26); + _gm->reply(kStringArsanoMeetup3_27, 1, 1 + 128); + _gm->reply(kStringArsanoMeetup3_28, 1, 1 + 128); _vm->paletteFadeOut(); _gm->_inventory.clear(); _gm->_inventory.add(*_gm->_rooms[INTRO]->getObject(1)); // Knife @@ -2348,7 +2347,7 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { void AxacussCell::onEntrance() { if (_gm->_state._dream) { - _vm->renderMessage("Du wachst auf und findest dich in|einem geschlossenen Raum wieder."); + _vm->renderMessage(kStringAxacussCell_1); _gm->_state._time = ticksToMsec(500000); _gm->_state._alarmOn = (_gm->_state._timeAlarm > _gm->_state._time); _gm->_state._powerOff = false; @@ -2423,7 +2422,7 @@ void AxacussCell::animation() { bool AxacussCell::interact(Action verb, Object &obj1, Object &obj2) { if ((verb == ACTION_PRESS) && (obj1._id == CELL_BUTTON)) - _vm->renderMessage("Du dr\201ckst den Knopf,|aber nichts passiert."); + _vm->renderMessage(kStringAxacussCell_2); else if ((verb == ACTION_PULL) && (obj1._id == CELL_WIRE) && !isSectionVisible(2) && !isSectionVisible(3) && @@ -2498,7 +2497,7 @@ bool AxacussCell::interact(Action verb, Object &obj1, Object &obj2) { _gm->drawImage(_gm->invertSection(5)); _gm->takeObject(obj1); } else { - _vm->renderMessage("Das ist befestigt."); + _vm->renderMessage(kStringAxacussCell_3); } } else if ((verb == ACTION_WALK) && (obj1._id == CELL_DOOR) && (obj1.hasProperty(OPENED))) { @@ -2508,14 +2507,14 @@ bool AxacussCell::interact(Action verb, Object &obj1, Object &obj2) { // TODO: wait till sound is played _vm->playSound(kAudioGunShot); _vm->playSound(kAudioGunShot); - _gm->dead("Bei deinem Fluchtversuch hat|dich der Roboter erschossen."); + _gm->dead(kStringAxacussCell_4); } else if ((verb == ACTION_USE) && (obj1._id == TRAY)) - _vm->renderMessage("Du i\341t etwas, aber|es schmeckt scheu\341lich."); + _vm->renderMessage(kStringAxacussCell_5); else if ((verb == ACTION_TAKE) && (obj1._id == MAGNET)) { if (isSectionVisible(6)) _gm->shock(); _gm->takeObject(obj1); - _vm->renderMessage("Ok."); + _vm->renderMessage(kStringOk); } else return false; |