SUPERNOVA: Change the signature of dialog(), fix calls, extract some more strings

This commit is contained in:
Strangerke 2017-10-18 19:02:16 +02:00 committed by Thierry Crozat
parent 49e3dd5864
commit 4d7d802333
6 changed files with 128 additions and 84 deletions

View File

@ -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
};

View File

@ -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[] = {

View File

@ -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);

View File

@ -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);
_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.";
_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:

View File

@ -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;
}

View File

@ -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);