aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devtools/create_supernova/gametext.h44
-rw-r--r--engines/supernova/msn_def.h9
-rw-r--r--engines/supernova/state.cpp104
3 files changed, 102 insertions, 55 deletions
diff --git a/devtools/create_supernova/gametext.h b/devtools/create_supernova/gametext.h
index ab6189b63e..b0c1ef6560 100644
--- a/devtools/create_supernova/gametext.h
+++ b/devtools/create_supernova/gametext.h
@@ -735,9 +735,51 @@ const char *gameText[] = {
"Es ist eine Art elektronische Zeitung.", // kStringGenericInteract_10
"Halt, hier ist ein interessanter Artikel.", // kStringGenericInteract_11
"Hmm, irgendwie komme|ich mir verarscht vor.", // kStringGenericInteract_12
+ " an ", // kPhrasalVerbParticleGiveTo
+ " mit ", // kPhrasalVerbParticleUseWith
+ // 585
+ "Es ist eine Uhr mit extra|lautem Wecker. Sie hat einen|Knopf zum Verstellen der Alarmzeit.|Uhrzeit: %s Alarmzeit: %s", // kStringGenericInteract_13
+ "Neue Alarmzeit (hh:mm) :", // kStringGenericInteract_14
+ "Die Luft hier ist atembar,|du ziehst den Anzug aus.", // kStringGenericInteract_15
+ "Hier drinnen brauchtst du deinen Anzug nicht.", // kStringGenericInteract_16
+ "Du mu\341t erst den Helm abnehmen.", // kStringGenericInteract_17
+ // 590
+ "Du mu\341t erst den Versorgungsteil abnehmen.", // kStringGenericInteract_18
+ "Du ziehst den Raumanzug aus.", // kStringGenericInteract_19
+ "Du ziehst den Raumanzug an.", // kStringGenericInteract_20
+ "Die Luft hier ist atembar,|du ziehst den Anzug aus.", // kStringGenericInteract_21
+ "Hier drinnen brauchtst du deinen Anzug nicht.", // kStringGenericInteract_22
+ // 595
+ "Den Helm h\204ttest du|besser angelassen!", // kStringGenericInteract_23
+ "Du ziehst den Helm ab.", // kStringGenericInteract_24
+ "Du ziehst den Helm auf.", // kStringGenericInteract_25
+ "Du mu\341t erst den Anzug anziehen.", // kStringGenericInteract_26
+ "Den Versorgungsteil h\204ttest du|besser nicht abgenommen!", // kStringGenericInteract_27
+ // 600
+ "Du nimmst den Versorgungsteil ab.", // kStringGenericInteract_28
+ "Du ziehst den Versorgungsteil an.", // kStringGenericInteract_29
+ "Die Leitung ist hier unn\201tz.", // kStringGenericInteract_30
+ "Stark, das ist ja die Fortsetzung zum \"Anhalter\":|\"Das Restaurant am Ende des Universums\".", // kStringGenericInteract_31
+ "Moment mal, es ist ein Lesezeichen drin,|auf dem \"Zweiundvierzig\" steht.", // kStringGenericInteract_32
+ // 605
+ "Das tr\204gst du doch bei dir.", // kStringGenericInteract_33
+ "Du bist doch schon da.", // kStringGenericInteract_34
+ "Das hast du doch schon.", // kStringGenericInteract_35
+ "Das brauchst du nicht.", // kStringGenericInteract_36
+ "Das kannst du nicht nehmen.", // kStringGenericInteract_37
+ // 610
+ "Das l\204\341t sich nicht \224ffnen.", // kStringGenericInteract_38
+ "Das ist schon offen.", // kStringGenericInteract_39
+ "Das ist verschlossen.", // kStringGenericInteract_40
+ "Das l\204\341t sich nicht schlie\341en.", // kStringGenericInteract_41
+ "Behalt es lieber!", // kStringGenericInteract_42
+ // 615
+ "Das geht nicht.", // kStringGenericInteract_43
"",
"",
- // 585
+ "",
+ "",
+ // 620
NULL
};
diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h
index a3d45bc3f9..f463755275 100644
--- a/engines/supernova/msn_def.h
+++ b/engines/supernova/msn_def.h
@@ -536,7 +536,14 @@ enum StringID {
kStringAxacussElevator_2, kStringAxacussElevator_3, kStringShock, kStringShot, kStringCloseLocker_1,
kStringIsHelmetOff_1, kStringGenericInteract_1, kStringGenericInteract_2, kStringGenericInteract_3, kStringGenericInteract_4,
kStringGenericInteract_5, kStringGenericInteract_6, kStringGenericInteract_7, kStringGenericInteract_8, kStringGenericInteract_9,
- kStringGenericInteract_10, kStringGenericInteract_11, kStringGenericInteract_12
+ kStringGenericInteract_10, kStringGenericInteract_11, kStringGenericInteract_12, kPhrasalVerbParticleGiveTo, kPhrasalVerbParticleUseWith,
+ kStringGenericInteract_13, kStringGenericInteract_14, kStringGenericInteract_15, kStringGenericInteract_16, kStringGenericInteract_17,
+ kStringGenericInteract_18, kStringGenericInteract_19, kStringGenericInteract_20, kStringGenericInteract_21, kStringGenericInteract_22,
+ kStringGenericInteract_23, kStringGenericInteract_24, kStringGenericInteract_25, kStringGenericInteract_26, kStringGenericInteract_27,
+ kStringGenericInteract_28, kStringGenericInteract_29, kStringGenericInteract_30, kStringGenericInteract_31, kStringGenericInteract_32,
+ kStringGenericInteract_33, kStringGenericInteract_34, kStringGenericInteract_35, kStringGenericInteract_36, kStringGenericInteract_37,
+ kStringGenericInteract_38, kStringGenericInteract_39, kStringGenericInteract_40, kStringGenericInteract_41, kStringGenericInteract_42,
+ kStringGenericInteract_43
};
static StringID guiCommands[] = {
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index f40b1fcb06..646bdaa0b4 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -218,7 +218,7 @@ void GuiElement::setHighlight(bool isHighlighted) {
}
}
-
+// Used by Look Watch (when it's fixed). Do not remove.
static Common::String timeToString(int msec) {
char s[9] = " 0:00:00";
msec /= 1000;
@@ -1197,11 +1197,10 @@ void GameManager::drawStatus() {
_vm->renderText(_currentInputObject->_name);
} else {
_vm->renderText(_inputObject[0]->_name);
- if (_inputVerb == ACTION_GIVE) {
- _vm->renderText(" an ");
- } else if (_inputVerb == ACTION_USE) {
- _vm->renderText(" mit ");
- }
+ if (_inputVerb == ACTION_GIVE)
+ _vm->renderText(kPhrasalVerbParticleGiveTo);
+ else if (_inputVerb == ACTION_USE)
+ _vm->renderText(kPhrasalVerbParticleUseWith);
_vm->renderText(_currentInputObject->_name);
}
@@ -1365,10 +1364,10 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
_vm->renderMessage(obj1._description);
obj1._description = kStringKeycard2Description2;
} else if ((verb == ACTION_LOOK) && (obj1._id == WATCH)) {
- _vm->renderMessage(Common::String::format(
- "Es ist eine Uhr mit extra|lautem Wecker. Sie hat einen|Knopf zum Verstellen der Alarmzeit.|Uhrzeit: %s Alarmzeit: %s",
- timeToString(_state._time).c_str(),
- timeToString(_state._timeAlarm).c_str()).c_str());
+ // FIXME: kStringGenericInteract_13 requires 2 string parameters in order to format the string properly
+ _vm->renderMessage(kStringGenericInteract_13, kMessageNormal);
+ // timeToString(_state._time).c_str(),
+ // timeToString(_state._timeAlarm).c_str());
} else if ((verb == ACTION_PRESS) && (obj1._id == WATCH)) {
bool validInput = true;
int hours = 0;
@@ -1377,7 +1376,7 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
animationOff();
_vm->saveScreen(88, 87, 144, 24);
_vm->renderBox(88, 87, 144, 24, kColorWhite35);
- _vm->renderText("Neue Alarmzeit (hh:mm) :", 91, 90, kColorWhite99);
+ _vm->renderText(kStringGenericInteract_14, 91, 90, kColorWhite99);
do {
validInput = true;
input.clear();
@@ -1440,7 +1439,7 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
_inventory.remove(*r->getObject(2));
_state._terminalStripConnected = true;
_state._terminalStripWire = true;
- _vm->renderMessage("Ok.");
+ _vm->renderMessage(kStringOk);
}
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, SPOOL)) {
r = _rooms[CABIN_L2];
@@ -1449,12 +1448,12 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
r = _rooms[HOLD];
_inventory.remove(*r->getObject(2));
_state._terminalStripConnected = true;
- _vm->renderMessage("Ok.");
+ _vm->renderMessage(kStringOk);
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, WIRE, SPOOL)) {
r = _rooms[CABIN_L3];
if (!_state._terminalStripConnected) {
if (r->isSectionVisible(26))
- _vm->renderMessage("Womit denn?");
+ _vm->renderMessage(kStringCable3);
else
return false;
} else {
@@ -1468,60 +1467,60 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
r = _rooms[CABIN_L2];
_inventory.remove(*r->getObject(9));
_state._cableConnected = true;
- _vm->renderMessage("Ok.");
+ _vm->renderMessage(kStringOk);
}
}
} else if ((verb == ACTION_USE) && (obj1._id == SUIT)) {
takeObject(obj1);
if ((_currentRoom->getId() >= ENTRANCE) && (_currentRoom->getId() <= ROGER)) {
if (obj1.hasProperty(WORN)) {
- _vm->renderMessage("Die Luft hier ist atembar,|du ziehst den Anzug aus.");
+ _vm->renderMessage(kStringGenericInteract_15);
_rooms[AIRLOCK]->getObject(4)->disableProperty(WORN);
_rooms[AIRLOCK]->getObject(5)->disableProperty(WORN);
_rooms[AIRLOCK]->getObject(6)->disableProperty(WORN);
} else
- _vm->renderMessage("Hier drinnen brauchtst du deinen Anzug nicht.");
+ _vm->renderMessage(kStringGenericInteract_16);
} else {
if (obj1.hasProperty(WORN)) {
r = _rooms[AIRLOCK];
if (r->getObject(4)->hasProperty(WORN)) {
- _vm->renderMessage("Du mu\341t erst den Helm abnehmen.");
+ _vm->renderMessage(kStringGenericInteract_17);
} else if (r->getObject(6)->hasProperty(WORN)) {
- _vm->renderMessage("Du mu\341t erst den Versorgungsteil abnehmen.");
+ _vm->renderMessage(kStringGenericInteract_18);
} else {
obj1.disableProperty(WORN);
- _vm->renderMessage("Du ziehst den Raumanzug aus.");
+ _vm->renderMessage(kStringGenericInteract_19);
}
} else {
obj1.setProperty(WORN);
- _vm->renderMessage("Du ziehst den Raumanzug an.");
+ _vm->renderMessage(kStringGenericInteract_20);
}
}
} else if ((verb == ACTION_USE) && (obj1._id == HELMET)) {
takeObject(obj1);
if ((_currentRoom->getId() >= ENTRANCE) && (_currentRoom->getId() <= ROGER)) {
if (obj1.hasProperty(WORN)) {
- _vm->renderMessage("Die Luft hier ist atembar,|du ziehst den Anzug aus.");
+ _vm->renderMessage(kStringGenericInteract_21);
_rooms[AIRLOCK]->getObject(4)->disableProperty(WORN);
_rooms[AIRLOCK]->getObject(5)->disableProperty(WORN);
_rooms[AIRLOCK]->getObject(6)->disableProperty(WORN);
} else {
- _vm->renderMessage("Hier drinnen brauchtst du deinen Anzug nicht.");
+ _vm->renderMessage(kStringGenericInteract_22);
}
} else {
if (obj1.hasProperty(WORN)) {
if (airless()) {
- dead("Den Helm h\204ttest du|besser angelassen!");
+ dead(kStringGenericInteract_23);
}
obj1.disableProperty(WORN);
- _vm->renderMessage("Du ziehst den Helm ab.");
+ _vm->renderMessage(kStringGenericInteract_24);
} else {
r = _rooms[AIRLOCK];
if (r->getObject(5)->hasProperty(WORN)) {
obj1.setProperty(WORN);
- _vm->renderMessage("Du ziehst den Helm auf.");
+ _vm->renderMessage(kStringGenericInteract_25);
} else {
- _vm->renderMessage("Du mu\341t erst den Anzug anziehen.");
+ _vm->renderMessage(kStringGenericInteract_26);
}
}
}
@@ -1529,39 +1528,38 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
takeObject(obj1);
if ((_currentRoom->getId() >= ENTRANCE) && (_currentRoom->getId() <= ROGER)) {
if (obj1.hasProperty(WORN)) {
- _vm->renderMessage("Die Luft hier ist atembar,|du ziehst den Anzug aus.");
+ _vm->renderMessage(kStringGenericInteract_21);
_rooms[AIRLOCK]->getObject(4)->disableProperty(WORN);
_rooms[AIRLOCK]->getObject(5)->disableProperty(WORN);
_rooms[AIRLOCK]->getObject(6)->disableProperty(WORN);
} else
- _vm->renderMessage("Hier drinnen brauchtst du deinen Anzug nicht.");
+ _vm->renderMessage(kStringGenericInteract_22);
} else {
if (obj1.hasProperty(WORN)) {
- if (airless()) {
- dead("Den Versorgungsteil h\204ttest du|besser nicht abgenommen!");
- }
+ if (airless())
+ dead(kStringGenericInteract_27);
+
obj1.disableProperty(WORN);
- _vm->renderMessage("Du nimmst den Versorgungsteil ab.");
+ _vm->renderMessage(kStringGenericInteract_28);
} else {
r = _rooms[AIRLOCK];
if (r->getObject(5)->hasProperty(WORN)) {
obj1.setProperty(WORN);
- _vm->renderMessage("Du ziehst den Versorgungsteil an.");
- } else {
- _vm->renderMessage("Du mu\341t erst den Anzug anziehen.");
- }
+ _vm->renderMessage(kStringGenericInteract_29);
+ } else
+ _vm->renderMessage(kStringGenericInteract_26);
}
}
} else if ((verb == ACTION_WALK) && (obj1._id == BATHROOM_DOOR)) {
// *bathroom = current_room;
return false;
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, WIRE, SOCKET))
- _vm->renderMessage("Die Leitung ist hier unn\201tz.");
+ _vm->renderMessage(kStringGenericInteract_30);
else if ((verb == ACTION_LOOK) && (obj1._id == BOOK2)) {
- _vm->renderMessage("Stark, das ist ja die Fortsetzung zum \"Anhalter\":|\"Das Restaurant am Ende des Universums\".");
+ _vm->renderMessage(kStringGenericInteract_31);
mouseWait(_timer1);
_vm->removeMessage();
- _vm->renderMessage("Moment mal, es ist ein Lesezeichen drin,|auf dem \"Zweiundvierzig\" steht.");
+ _vm->renderMessage(kStringGenericInteract_32);
} else {
return false;
}
@@ -1582,13 +1580,13 @@ void GameManager::handleInput() {
case ACTION_WALK:
if (_inputObject[0]->hasProperty(CARRIED)) {
// You already carry this.
- _vm->renderMessage("Das tr\204gst du doch bei dir.");
+ _vm->renderMessage(kStringGenericInteract_33);
} else if (!_inputObject[0]->hasProperty(EXIT)) {
// You're already there.
- _vm->renderMessage("Du bist doch schon da.");
+ _vm->renderMessage(kStringGenericInteract_34);
} else if (_inputObject[0]->hasProperty(OPENABLE) && !_inputObject[0]->hasProperty(OPENED)) {
// This is closed
- _vm->renderMessage("Das ist geschlossen.");
+ _vm->renderMessage(kStringShipHold9);
} else {
changeRoom(_inputObject[0]->_exitRoom);
}
@@ -1597,13 +1595,13 @@ void GameManager::handleInput() {
case ACTION_TAKE:
if (_inputObject[0]->hasProperty(OPENED)) {
// You already have that
- _vm->renderMessage("Das hast du doch schon.");
+ _vm->renderMessage(kStringGenericInteract_35);
} else if (_inputObject[0]->hasProperty(UNNECESSARY)) {
// You do not need that.
- _vm->renderMessage("Das brauchst du nicht.");
+ _vm->renderMessage(kStringGenericInteract_36);
} else if (!_inputObject[0]->hasProperty(TAKE)) {
// You can't take that.
- _vm->renderMessage("Das kannst du nicht nehmen.");
+ _vm->renderMessage(kStringGenericInteract_37);
} else {
takeObject(*_inputObject[0]);
}
@@ -1612,13 +1610,13 @@ void GameManager::handleInput() {
case ACTION_OPEN:
if (!_inputObject[0]->hasProperty(OPENABLE)) {
// This can't be opened
- _vm->renderMessage("Das l\204\341t sich nicht \224ffnen.");
+ _vm->renderMessage(kStringGenericInteract_38);
} else if (_inputObject[0]->hasProperty(OPENED)) {
// This is already opened.
- _vm->renderMessage("Das ist schon offen.");
+ _vm->renderMessage(kStringGenericInteract_39);
} else if (_inputObject[0]->hasProperty(CLOSED)) {
// This is locked.
- _vm->renderMessage("Das ist verschlossen.");
+ _vm->renderMessage(kStringGenericInteract_40);
} else {
drawImage(_inputObject[0]->_section);
_inputObject[0]->setProperty(OPENED);
@@ -1634,10 +1632,10 @@ void GameManager::handleInput() {
(_inputObject[0]->hasProperty(CLOSED) &&
_inputObject[0]->hasProperty(OPENED))) {
// This can't be closed.
- _vm->renderMessage("Das l\204\341t sich nicht schlie\341en.");
+ _vm->renderMessage(kStringGenericInteract_41);
} else if (!_inputObject[0]->hasProperty(OPENED)) {
// This is already closed.
- _vm->renderMessage("Das ist schon geschlossen.");
+ _vm->renderMessage(kStringCloseLocker_1);
} else {
drawImage(invertSection(_inputObject[0]->_section));
_inputObject[0]->disableProperty(OPENED);
@@ -1651,13 +1649,13 @@ void GameManager::handleInput() {
case ACTION_GIVE:
if (_inputObject[0]->hasProperty(CARRIED)) {
// Better keep it!
- _vm->renderMessage("Behalt es lieber!");
+ _vm->renderMessage(kStringGenericInteract_42);
}
break;
default:
// This is not possible.
- _vm->renderMessage("Das geht nicht.");
+ _vm->renderMessage(kStringGenericInteract_43);
}
}
}