aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova
diff options
context:
space:
mode:
Diffstat (limited to 'engines/supernova')
-rw-r--r--engines/supernova/msn_def.h13
-rw-r--r--engines/supernova/rooms.cpp73
-rw-r--r--engines/supernova/rooms.h56
-rw-r--r--engines/supernova/state.cpp4
-rw-r--r--engines/supernova/state.h1
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);