diff options
Diffstat (limited to 'engines/supernova')
-rw-r--r-- | engines/supernova/msn_def.h | 13 | ||||
-rw-r--r-- | engines/supernova/rooms.cpp | 73 | ||||
-rw-r--r-- | engines/supernova/rooms.h | 56 | ||||
-rw-r--r-- | engines/supernova/state.cpp | 4 | ||||
-rw-r--r-- | engines/supernova/state.h | 1 |
5 files changed, 82 insertions, 65 deletions
diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h index ba9eff361b..d30aec1fe9 100644 --- a/engines/supernova/msn_def.h +++ b/engines/supernova/msn_def.h @@ -489,7 +489,18 @@ enum StringID { kStringShipHold5, kStringShipHold6, kStringShipHold7, kStringShipHold8, kStringShipHold9, // 375 kStringShipHold10, kStringShipHold11, kStringShipHold12, kStringShipHold13, kStringShipHold14, - kStringShipHold15, kStringShipHold16 + kStringShipHold15, kStringShipHold16, kStringArsanoMeetup1, kStringArsanoMeetup2, kStringArsanoMeetup3, + kStringArsanoEntrance1, kStringArsanoEntrance2, kStringArsanoEntrance3, kStringArsanoEntrance4, kStringArsanoEntrance5, + kStringArsanoEntrance6, kStringArsanoEntrance7, kStringArsanoEntrance8, kStringArsanoEntrance9, kStringArsanoEntrance10, + kStringArsanoEntrance11, kStringArsanoEntrance12, kStringArsanoEntrance13, kStringArsanoEntrance14, kStringArsanoEntrance15, + // 400 + kStringArsanoEntrance16, kStringArsanoEntrance17, kStringArsanoEntrance18, kStringArsanoEntrance19, kStringArsanoEntrance20, + kStringArsanoEntrance21, kStringArsanoEntrance22, kStringArsanoEntrance23, kStringArsanoEntrance24, kStringArsanoEntrance25, + kStringArsanoEntrance26, kStringArsanoEntrance27, kStringArsanoDialog1, kStringArsanoDialog2, kStringArsanoDialog3, + kStringArsanoDialog4, kStringArsanoDialog5, kStringArsanoDialog6, kStringArsanoDialog7, kStringArsanoDialog8, + kStringArsanoDialog9, kStringDialogSeparator, kStringDialogArsanoRoger1, kStringDialogArsanoRoger2, kStringDialogArsanoRoger3, + // 425 + kStringDialogArsanoMeetup3_1, kStringDialogArsanoMeetup3_2, kStringDialogArsanoMeetup3_3, kStringDialogArsanoMeetup3_4, kStringDialogArsanoMeetup3_5 }; static StringID guiCommands[] = { diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp index 77d6efaa3f..cdcc29592e 100644 --- a/engines/supernova/rooms.cpp +++ b/engines/supernova/rooms.cpp @@ -1489,12 +1489,12 @@ bool ArsanoMeetup::interact(Action verb, Object &obj1, Object &obj2) { if ((verb == ACTION_WALK) && ((obj1._id == SPACESHIPS) || ((obj1._id == SPACESHIP) && !obj1.hasProperty(OPENED)))) { - _vm->renderMessage("Die Raumschifft sind alle verschlossen."); + _vm->renderMessage(kStringArsanoMeetup1); } else if ((verb == ACTION_WALK) && (obj1._id == SPACESHIP)) { _gm->changeRoom(GLIDER); _gm->_newRoom = true; } else if ((verb == ACTION_WALK) && (obj1._id == STAR)) { - _vm->renderMessage("Unsinn!"); + _vm->renderMessage(kStringArsanoMeetup2); } else if ((verb == ACTION_LOOK) && (obj1._id == STAR)) { _vm->renderImage(26, 0); _vm->paletteBrightness(); @@ -1515,7 +1515,7 @@ bool ArsanoMeetup::interact(Action verb, Object &obj1, Object &obj2) { return false; } else if ((verb == ACTION_LOOK) && (obj1._id == MEETUP_SIGN) && _gm->_state._language) { if (_gm->_state._language == 2) - _vm->renderMessage("Komisch! Auf einmal kannst du|das Schild lesen! Darauf steht:|\"Treffpunkt Galactica\"."); + _vm->renderMessage(kStringArsanoMeetup3); obj1._description = kStringSignDescription2; if (_gm->_state._language == 1) @@ -1576,43 +1576,43 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { if ((verb == ACTION_TALK) && (obj1._id == PORTER)) { if (_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) { - _vm->renderMessage("Durch deinen Helm kannst|du nicht sprechen."); + _vm->renderMessage(kStringArsanoEntrance1); } else { if (_gm->_state._language) { do { if (_gm->_state._shoes == 1) { - _dialog2[2] = "Wo soll ich die Schuhe ablegen?"; + _dialog2[2] = kStringArsanoEntrance2; _gm->addSentence(2, 2); } else if (_gm->_state._shoes > 1) { _gm->removeSentence(2, 2); } switch (e = _gm->dialog(5, nullptr, nullptr, 2)) { // row2, dialog2 case 0: - _gm->reply("Was, das wissen Sie nicht?", 1, _gm->invertSection(1)); - _gm->reply("Sie befinden sich im Restaurant|\"Treffpunkt Galactica\".", 1, _gm->invertSection(1)); - _gm->reply("Wir sind bei den interessantesten|Ereignissen in der Galaxis|immer zur Stelle.", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance3, 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance4, 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance5, 1, _gm->invertSection(1)); _gm->removeSentence(1, 1); break; case 1: - _gm->reply("Wenn Sie meinen.", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance6, 1, _gm->invertSection(1)); _gm->addSentence(1, 2); break; case 2: if (_gm->_state._shoes == 1) { - _gm->reply("In der Toilette gibt es|Schlie\341f\204cher f\201r Schuhe.", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance7, 1, _gm->invertSection(1)); _gm->_state._shoes = 2; } else { - _gm->reply("Wenn Sie das Lokal betreten|wollen, m\201ssen Sie erst|ihre Schuhe ausziehen.", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance8, 1, _gm->invertSection(1)); _gm->_state._shoes = 1; } break; case 3: - _gm->reply("Wollen Sie, da\341 ich Sie rau\341schmei\341e?", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance9, 1, _gm->invertSection(1)); } } while (e != 4); } else { if (_gm->dialog(5, nullptr, nullptr, 0) != 4) // row2, dialog2 - _gm->reply("Hhius otgfh Dgfdrkjlh Fokj gf.", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance10, 1, _gm->invertSection(1)); } } } else if ((verb == ACTION_WALK) && (obj1._id == STAIRCASE) && (_gm->_state._shoes != 3)) { @@ -1623,9 +1623,9 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { if (_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) _gm->reply("|", 1, _gm->invertSection(1)); else if (_gm->_state._language) - _gm->reply("Halt!", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance11, 1, _gm->invertSection(1)); else - _gm->reply("Uhwdejkt!", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance12, 1, _gm->invertSection(1)); _gm->drawImage(3); setSectionVisible(4, false); _gm->wait2(2); @@ -1633,23 +1633,23 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { if (!_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) { if (_gm->_state._language) { if (_gm->_state._shoes) - _gm->reply("Sie m\201ssen erst ihre Schuhe ausziehen, Sie Trottel!", 1, _gm->invertSection(1)); + _gm->reply(kStringArsanoEntrance13, 1, _gm->invertSection(1)); else - _gm->reply("Was f\204llt ihnen ein!|Sie k\224nnen doch ein Lokal|nicht mit Schuhen betreten!", 1, _gm->invertSection(1)); + _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 case 0: - _gm->reply("Fragen Sie nicht so doof!", 1, 1 + 128); + _gm->reply(kStringArsanoEntrance15, 1, 1 + 128); break; case 1: - _gm->reply("Was, das wissen Sie nicht?", 1, 1 + 128); - _gm->reply("Sie befinden sich im Restaurant|\"Treffpunkt Galactica\".", 1, 1 + 128); - _gm->reply("Wir sind bei den interessantesten|Ereignissen in der Galaxis|immer zur Stelle.", 1, 1 + 128); + _gm->reply(kStringArsanoEntrance3, 1, 1 + 128); + _gm->reply(kStringArsanoEntrance4, 1, 1 + 128); + _gm->reply(kStringArsanoEntrance5, 1, 1 + 128); _gm->removeSentence(0, 2); break; case 2: - _gm->reply("In der Toilette gibt es|Schlie\341f\204cher f\201r Schuhe.", 1, 1 + 128); + _gm->reply(kStringArsanoEntrance7, 1, 1 + 128); _gm->_state._shoes = 2; break; case 3: @@ -1657,7 +1657,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { _gm->wait2(2); _gm->drawImage(4); setSectionVisible(3, false); - _gm->reply("Das w\201rde ich an ihrer|Stelle nicht versuchen!", 1, 1 + 128); + _gm->reply(kStringArsanoEntrance16, 1, 1 + 128); _gm->drawImage(3); setSectionVisible(4, false); _gm->wait2(2); @@ -1668,7 +1668,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { } } else { _gm->dialog(2, nullptr, nullptr, 0); // row3, dialog3 - _gm->reply("Hhius otgfh Dgfdrkjlh Fokj gf.", 1, 1 + 128); + _gm->reply(kStringArsanoEntrance10, 1, 1 + 128); } } } else if ((verb == ACTION_PRESS) && (obj1._id == BATHROOM_BUTTON)) { @@ -1690,23 +1690,23 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { } else if ((verb == ACTION_WALK) && (obj1._id == ARSANO_BATHROOM)) { if (_gm->_state._coins) { if (_gm->_state._shoes == 2) { - _vm->renderMessage("Du ziehst deine Schuhe|aus und legst sie in|eins der Schlie\341f\204cher."); + _vm->renderMessage(kStringArsanoEntrance17); _gm->_state._shoes = 3; _gm->removeSentence(2, 2); _gm->removeSentence(3, 2); } else if (_gm->_state._shoes == 3) { - _vm->renderMessage("Du ziehst deine Schuhe wieder an."); + _vm->renderMessage(kStringArsanoEntrance18); _gm->_state._shoes = 2; } else - _vm->renderMessage("Du durchsuchst die Klos nach|anderen brauchbaren Sachen,|findest aber nichts."); + _vm->renderMessage(kStringArsanoEntrance19); } else { if (_gm->_rooms[AIRLOCK]->getObject(5)->hasProperty(WORN)) - _vm->renderMessage("Bevor du aufs Klo gehst,|solltest du besser deinen|Raumanzug ausziehen."); + _vm->renderMessage(kStringArsanoEntrance20); else { - _vm->renderMessage("Du gehst seit sieben Jahren das|erste Mal wieder aufs Klo!"); + _vm->renderMessage(kStringArsanoEntrance21); _gm->mouseWait(_gm->_timer1); _vm->removeMessage(); - _vm->renderMessage("In einem der Schlie\341f\204cher,|die sich auch im Raum befinden,|findest du einige M\201nzen."); + _vm->renderMessage(kStringArsanoEntrance22); _gm->takeObject(*getObject(16)); _gm->_state._coins = 5; } @@ -1716,7 +1716,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { _shown[kMaxSection - 5] = kShownTrue; } else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, COINS, CAR_SLOT)) { if ((_gm->_state._coins < 5) && (getObject(7 - _gm->_state._coins)->_click == 7)) - _vm->renderMessage("Mach doch zuerst das Fach leer!"); + _vm->renderMessage(kStringArsanoEntrance23); else { _gm->drawImage(15 - _gm->_state._coins); getObject(8 - _gm->_state._coins)->_click = 7; @@ -1731,14 +1731,14 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { } } else if ((verb == ACTION_LOOK) && (obj1._id == KITCHEN_SIGN) && _gm->_state._language) { if (_gm->_state._language == 2) - _vm->renderMessage("Komisch! Auf einmal kannst du|das Schild lesen! Darauf steht:|\"Zutritt nur f\201r Personal\"."); + _vm->renderMessage(kStringArsanoEntrance24); obj1._description = kStringDoorDescription5; if (_gm->_state._language == 1) return false; _gm->_state._language = 1; } else if ((verb == ACTION_LOOK) && (obj1._id == BATHROOM_SIGN) && _gm->_state._language) { if (_gm->_state._language == 2) - _vm->renderMessage("Komisch! Auf einmal kannst|du das Schild lesen!|Darauf steht:\"Toilette\"."); + _vm->renderMessage(kStringArsanoEntrance25); obj1._description = kStringDoorDescription6; if (_gm->_state._language == 1) return false; @@ -1747,7 +1747,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { if (!((_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) && (_gm->_rooms[AIRLOCK]->getObject(5)->hasProperty(WORN)) && (_gm->_rooms[AIRLOCK]->getObject(6)->hasProperty(WORN)))) { - _vm->renderMessage("Du ziehst den Raumanzug wieder an."); + _vm->renderMessage(kStringArsanoEntrance26); getObject(4)->setProperty(WORN); getObject(5)->setProperty(WORN); getObject(6)->setProperty(WORN); @@ -1756,9 +1756,10 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) { } return false; } else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, KNIFE, PORTER)) - _vm->renderMessage("Nicht so gewaltt\204tig!"); + _vm->renderMessage(kStringArsanoEntrance27); else return false; + return true; } @@ -2251,7 +2252,7 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) { byte zeilen3[2] = {1, 1}; if ((verb == ACTION_WALK) && (obj1._id == STAR)) - _vm->renderMessage("Unsinn!"); + _vm->renderMessage(kStringArsanoMeetup2); else if ((verb == ACTION_LOOK) && (obj1._id == STAR)) { _vm->renderImage(26, 0); _vm->paletteBrightness(); diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h index 6e570efac7..8e857e889e 100644 --- a/engines/supernova/rooms.h +++ b/engines/supernova/rooms.h @@ -625,20 +625,20 @@ public: _objectState[16] = Object(_id, kStringCoins,kStringCoinsDescription,COINS,TAKE|COMBINABLE,255,255,0); _objectState[17] = Object(_id, kStringTabletPackage,kStringTabletPackageDescription,PILL_HULL,TAKE,255,255,0); - _dialog1[0] = "Wieso das denn nicht?"; - _dialog1[1] = "Wo bin ich hier?"; - _dialog1[2] = "Wo soll ich die Schuhe ablegen?"; - _dialog1[3] = "Schwachsinn! Ich gehe jetzt nach oben!"; - _dialog1[4] = "|"; + _dialog1[0] = kStringArsanoDialog7; + _dialog1[1] = kStringArsanoDialog1; + _dialog1[2] = kStringArsanoDialog8; + _dialog1[3] = kStringArsanoDialog9; + _dialog1[4] = kStringDialogSeparator; - _dialog2[0] = "Wo bin ich hier?"; - _dialog2[1] = "Sch\224nes Wetter heute, nicht wahr?"; - _dialog2[2] = "W\201rden Sie mich bitte durchlassen."; - _dialog2[3] = "Hey Alter, la\341 mich durch!"; - _dialog2[4] = "|"; + _dialog2[0] = kStringArsanoDialog1; + _dialog2[1] = kStringArsanoDialog2; + _dialog2[2] = kStringArsanoDialog3; + _dialog2[3] = kStringArsanoDialog4; + _dialog2[4] = kStringDialogSeparator; - _dialog3[0] = "Was haben Sie gesagt?"; - _dialog3[1] = "Sprechen Sie bitte etwas deutlicher!"; + _dialog3[0] = kStringArsanoDialog5; + _dialog3[1] = kStringArsanoDialog6; _eyewitness = 5; } @@ -647,9 +647,9 @@ public: virtual void animation(); private: - Common::String _dialog1[5]; - Common::String _dialog2[5]; - Common::String _dialog3[5]; + StringID _dialog1[5]; + StringID _dialog2[5]; + StringID _dialog3[5]; byte _eyewitness; }; class ArsanoRemaining : public Room { @@ -695,10 +695,10 @@ public: _objectState[7] = Object(_id, kStringBill,kStringBillDescription,NULLOBJECT,TAKE|COMBINABLE,255,255,0); _objectState[8] = Object(_id, kStringKeycard3,kStringDefaultDescription,KEYCARD_R,TAKE|COMBINABLE,255,255,0); - _dialog1[0] = "K\224nnten Sie mir ein Gericht empfehlen?"; - _dialog1[1] = "Wie lange dauert es denn noch bis zur Supernova?"; - _dialog1[2] = "Sie kommen mir irgendwie bekannt vor."; - _dialog1[3] = "|"; + _dialog1[0] = kStringDialogArsanoRoger1; + _dialog1[1] = kStringDialogArsanoRoger2; + _dialog1[2] = kStringDialogArsanoRoger3; + _dialog1[3] = kStringDialogSeparator; _eyewitness = 5; } @@ -708,7 +708,7 @@ public: virtual bool interact(Action verb, Object &obj1, Object &obj2); private: - Common::String _dialog1[4]; + StringID _dialog1[4]; byte _eyewitness; byte _hands; }; @@ -793,19 +793,19 @@ public: _objectState[1] = Object(_id, kStringStar,kStringDefaultDescription,STAR,NULLTYPE,1,1,0); _objectState[2] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22); - _dialog2[0] = "Wo bin ich hier?"; - _dialog2[1] = "Was wollen Sie von mir?"; - _dialog2[2] = "Hilfe!!"; - _dialog2[3] = "Warum sprechen Sie meine Sprache?"; - _dialog3[0] = "Ja, ich bin einverstanden."; - _dialog3[1] = "Nein, lieber bleibe ich hier, als mit Ihnen zu fliegen."; + _dialog2[0] = kStringArsanoDialog1; + _dialog2[1] = kStringDialogArsanoMeetup3_1; + _dialog2[2] = kStringDialogArsanoMeetup3_2; + _dialog2[3] = kStringDialogArsanoMeetup3_3; + _dialog3[0] = kStringDialogArsanoMeetup3_4; + _dialog3[1] = kStringDialogArsanoMeetup3_5; } virtual bool interact(Action verb, Object &obj1, Object &obj2); private: - Common::String _dialog2[4]; - Common::String _dialog3[2]; + StringID _dialog2[4]; + StringID _dialog3[2]; }; // Axacuss diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp index 2bbcb0a6b3..293f3d410e 100644 --- a/engines/supernova/state.cpp +++ b/engines/supernova/state.cpp @@ -787,6 +787,10 @@ void GameManager::say(const char *text) { // STUB } +void GameManager::reply(StringID textId, int aus1, int aus2) { + // STUB +} + void GameManager::reply(const char *text, int aus1, int aus2) { // STUB } diff --git a/engines/supernova/state.h b/engines/supernova/state.h index c4d1cf4166..f294f14f7c 100644 --- a/engines/supernova/state.h +++ b/engines/supernova/state.h @@ -185,6 +185,7 @@ public: void removeSentence(int sentence, int number); void addSentence(int sentence, int number); void say(const char *text); + void reply(StringID textId, int aus1, int aus2); void reply(const char *text, int aus1, int aus2); void shipStart(); void shot(int a, int b); |