aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic')
-rw-r--r--engines/titanic/carry/long_stick.cpp2
-rw-r--r--engines/titanic/carry/napkin.cpp2
-rw-r--r--engines/titanic/carry/vision_centre.cpp4
-rw-r--r--engines/titanic/core/game_object.cpp14
-rw-r--r--engines/titanic/core/game_object.h19
-rw-r--r--engines/titanic/game/chicken_dispensor.cpp6
-rw-r--r--engines/titanic/game/fan_control.cpp2
-rw-r--r--engines/titanic/game/hammer_dispensor_button.cpp2
-rw-r--r--engines/titanic/game/lemon_dispensor.cpp2
-rw-r--r--engines/titanic/game/light.cpp8
-rw-r--r--engines/titanic/game/long_stick_dispenser.cpp7
-rw-r--r--engines/titanic/game/nav_helmet.cpp2
-rw-r--r--engines/titanic/game/parrot/parrot_perch_holder.cpp2
-rw-r--r--engines/titanic/game/pet/pet_lift.cpp4
-rw-r--r--engines/titanic/game/phonograph_lid.cpp2
-rw-r--r--engines/titanic/game/pickup/pick_up_speech_centre.cpp2
-rw-r--r--engines/titanic/game/sauce_dispensor.cpp8
-rw-r--r--engines/titanic/game/seasonal_adjustment.cpp2
-rw-r--r--engines/titanic/game/sgt/sgt_nav.cpp6
-rw-r--r--engines/titanic/game/sgt/sgt_state_room.cpp2
-rw-r--r--engines/titanic/game/speech_dispensor.cpp8
-rw-r--r--engines/titanic/game/sweet_bowl.cpp2
-rw-r--r--engines/titanic/game/third_class_canal.cpp2
-rw-r--r--engines/titanic/game/transport/lift_indicator.cpp9
-rw-r--r--engines/titanic/game/transport/pellerator.cpp4
-rw-r--r--engines/titanic/game/wheel_hotspot.cpp2
-rw-r--r--engines/titanic/module.mk1
-rw-r--r--engines/titanic/moves/call_pellerator.cpp4
-rw-r--r--engines/titanic/moves/enter_exit_first_class_state.cpp5
-rw-r--r--engines/titanic/moves/enter_sec_class_state.cpp2
-rw-r--r--engines/titanic/moves/exit_pellerator.cpp4
-rw-r--r--engines/titanic/moves/exit_tiania.cpp3
-rw-r--r--engines/titanic/moves/restricted_move.cpp4
-rw-r--r--engines/titanic/moves/trip_down_canal.cpp2
-rw-r--r--engines/titanic/npcs/bilge_succubus.cpp10
-rw-r--r--engines/titanic/npcs/deskbot.cpp4
-rw-r--r--engines/titanic/npcs/succubus.cpp12
-rw-r--r--engines/titanic/pet_control/pet_control.cpp8
-rw-r--r--engines/titanic/pet_control/pet_control.h9
-rw-r--r--engines/titanic/pet_control/pet_conversations.cpp2
-rw-r--r--engines/titanic/pet_control/pet_load.cpp2
-rw-r--r--engines/titanic/pet_control/pet_save.cpp4
-rw-r--r--engines/titanic/pet_control/pet_starfield.cpp2
-rw-r--r--engines/titanic/support/strings.cpp35
-rw-r--r--engines/titanic/support/strings.h98
45 files changed, 248 insertions, 88 deletions
diff --git a/engines/titanic/carry/long_stick.cpp b/engines/titanic/carry/long_stick.cpp
index 557b75ab87..16cd69e373 100644
--- a/engines/titanic/carry/long_stick.cpp
+++ b/engines/titanic/carry/long_stick.cpp
@@ -48,7 +48,7 @@ bool CLongStick::UseWithOtherMsg(CUseWithOtherMsg *msg) {
CPuzzleSolvedMsg puzzleMsg;
puzzleMsg.execute(msg->_other);
} else if (msg->_other->isEquals("LongStickDispensor")) {
- petDisplayMessage(1, "You already have one.");
+ petDisplayMessage(1, ALREADY_HAVE_STICK);
} else if (msg->_other->isEquals("Bomb")) {
CActMsg actMsg("Hit");
actMsg.execute("Bomb");
diff --git a/engines/titanic/carry/napkin.cpp b/engines/titanic/carry/napkin.cpp
index d0ee9acc1a..3996ca7c74 100644
--- a/engines/titanic/carry/napkin.cpp
+++ b/engines/titanic/carry/napkin.cpp
@@ -49,7 +49,7 @@ bool CNapkin::UseWithOtherMsg(CUseWithOtherMsg *msg) {
CActMsg actMsg("Clean");
actMsg.execute("Chicken");
} else {
- petDisplayMessage("The Chicken is already quite clean enough, thank you.");
+ petDisplayMessage(CHICKEN_IS_CLEAN);
}
}
diff --git a/engines/titanic/carry/vision_centre.cpp b/engines/titanic/carry/vision_centre.cpp
index fd30089fc5..f81e35fa4f 100644
--- a/engines/titanic/carry/vision_centre.cpp
+++ b/engines/titanic/carry/vision_centre.cpp
@@ -49,7 +49,7 @@ bool CVisionCentre::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
if (_fieldE0) {
return CBrain::MouseButtonDownMsg(msg);
} else {
- petDisplayMessage(1, "It would be nice if you could take that but you can't.");
+ petDisplayMessage(1, NICE_IF_TAKE_BUT_CANT);
return true;
}
}
@@ -58,7 +58,7 @@ bool CVisionCentre::MouseDragStartMsg(CMouseDragStartMsg *msg) {
if (_fieldE0) {
return CBrain::MouseDragStartMsg(msg);
} else {
- petDisplayMessage(1, "It would be nice if you could take that but you can't.");
+ petDisplayMessage(1, NICE_IF_TAKE_BUT_CANT);
return true;
}
}
diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp
index 59ae96138d..a1427b131e 100644
--- a/engines/titanic/core/game_object.cpp
+++ b/engines/titanic/core/game_object.cpp
@@ -1536,14 +1536,24 @@ bool CGameObject::petDoorOrBellbotPresent() const {
return pet ? pet->isDoorOrBellbotPresent() : false;
}
+void CGameObject::petDisplayMessage(int unused, StringId stringId) {
+ petDisplayMessage(stringId);
+}
+
+void CGameObject::petDisplayMessage(StringId stringId, int param) {
+ CPetControl *pet = getPetControl();
+ if (pet)
+ pet->displayMessage(stringId, param);
+}
+
void CGameObject::petDisplayMessage(int unused, const CString &msg) {
petDisplayMessage(msg);
}
-void CGameObject::petDisplayMessage(const CString &msg) {
+void CGameObject::petDisplayMessage(const CString &msg, int param) {
CPetControl *pet = getPetControl();
if (pet)
- pet->displayMessage(msg);
+ pet->displayMessage(msg, param);
}
void CGameObject::petInvChange() {
diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h
index 0da3fad605..b9a55ac008 100644
--- a/engines/titanic/core/game_object.h
+++ b/engines/titanic/core/game_object.h
@@ -25,13 +25,14 @@
#include "audio/mixer.h"
#include "common/stream.h"
+#include "titanic/core/named_item.h"
+#include "titanic/sound/proximity.h"
#include "titanic/support/mouse_cursor.h"
#include "titanic/support/credit_text.h"
#include "titanic/support/movie_range_info.h"
-#include "titanic/sound/proximity.h"
#include "titanic/support/rect.h"
+#include "titanic/support/strings.h"
#include "titanic/support/movie_clip.h"
-#include "titanic/core/named_item.h"
#include "titanic/pet_control/pet_section.h"
#include "titanic/pet_control/pet_text.h"
#include "titanic/game_state.h"
@@ -826,12 +827,22 @@ public:
/**
* Display a message in the PET
*/
- void petDisplayMessage(int unused, const CString &msg);
+ void petDisplayMessage(int unused, StringId stringId);
+
+ /**
+ * Display a message in the PET
+ */
+ void petDisplayMessage(int unused, const CString &str);
+
+ /**
+ * Display a message in the PET
+ */
+ void petDisplayMessage(StringId stringId, int param = 0);
/**
* Display a message in the PET
*/
- void petDisplayMessage(const CString &msg);
+ void petDisplayMessage(const CString &str, int param = 0);
/**
* Gets the entry number used when last arriving at the well
diff --git a/engines/titanic/game/chicken_dispensor.cpp b/engines/titanic/game/chicken_dispensor.cpp
index 7fb8fefcda..17d1e6a515 100644
--- a/engines/titanic/game/chicken_dispensor.cpp
+++ b/engines/titanic/game/chicken_dispensor.cpp
@@ -65,14 +65,14 @@ bool CChickenDispensor::StatusChangeMsg(CStatusChangeMsg *msg) {
for (obj = pet->getFirstObject(); obj; obj = pet->getNextObject(obj)) {
if (obj->isEquals("Chicken")) {
- petDisplayMessage(1, "Chickens are allocated on a one-per-customer basis.");
+ petDisplayMessage(1, ONE_CHICKEN_PER_CUSTOMER);
return true;
}
}
for (obj = getMailManFirstObject(); obj; obj = getNextMail(obj)) {
if (obj->isEquals("Chicken")) {
- petDisplayMessage(1, "Chickens are allocated on a one-per-customer basis.");
+ petDisplayMessage(1, ONE_ALLOCATED_CHICKEN_PER_CUSTOMER);
return true;
}
}
@@ -82,7 +82,7 @@ bool CChickenDispensor::StatusChangeMsg(CStatusChangeMsg *msg) {
switch (v1) {
case 0:
- petDisplayMessage(1, "Only one piece of chicken per passenger. Thank you.");
+ petDisplayMessage(1, ONE_CHICKEN_PER_CUSTOMER);
break;
case 1:
setVisible(true);
diff --git a/engines/titanic/game/fan_control.cpp b/engines/titanic/game/fan_control.cpp
index 56a1e49dec..ad3efc92fb 100644
--- a/engines/titanic/game/fan_control.cpp
+++ b/engines/titanic/game/fan_control.cpp
@@ -137,7 +137,7 @@ bool CFanControl::StatusChangeMsg(CStatusChangeMsg *msg) {
statusMsg._newStatus = _state;
statusMsg.execute("RightFan");
} else {
- petDisplayMessage(1, "Unfortunately this fan controller has blown a fuse.");
+ petDisplayMessage(1, FAN_HAS_BLOWN_A_FUSE);
}
}
diff --git a/engines/titanic/game/hammer_dispensor_button.cpp b/engines/titanic/game/hammer_dispensor_button.cpp
index fbda501a24..89d37a0476 100644
--- a/engines/titanic/game/hammer_dispensor_button.cpp
+++ b/engines/titanic/game/hammer_dispensor_button.cpp
@@ -69,7 +69,7 @@ bool CHammerDispensorButton::PuzzleSolvedMsg(CPuzzleSolvedMsg *msg) {
bool CHammerDispensorButton::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
playSound("z#93.wav");
- petDisplayMessage(1, "In case of emergency hammer requirement, poke with long stick.");
+ petDisplayMessage(1, POKE_WITH_LONG_STICK);
return true;
}
diff --git a/engines/titanic/game/lemon_dispensor.cpp b/engines/titanic/game/lemon_dispensor.cpp
index 31a04cbeca..f84a494c26 100644
--- a/engines/titanic/game/lemon_dispensor.cpp
+++ b/engines/titanic/game/lemon_dispensor.cpp
@@ -80,7 +80,7 @@ bool CLemonDispensor::FrameMsg(CFrameMsg *msg) {
CGameObject *obj = getDraggingObject();
if (obj && getView() == findView()) {
if (obj->isEquals("Perch")) {
- petDisplayMessage(1, "This stick is too short to reach the branches.");
+ petDisplayMessage(1, TOO_SHORT_TO_REACH_BRANCHES);
return true;
}
diff --git a/engines/titanic/game/light.cpp b/engines/titanic/game/light.cpp
index 65e357047e..bc8782a2b1 100644
--- a/engines/titanic/game/light.cpp
+++ b/engines/titanic/game/light.cpp
@@ -101,10 +101,10 @@ bool CLight::StatusChangeMsg(CStatusChangeMsg *msg) {
bool flag = pet ? pet->isRoom59706() : false;
if (_fieldFC == 1 && flag) {
- petDisplayMessage(1, "That light appears to be loose.");
+ petDisplayMessage(1, LIGHT_IS_LOOSE);
playSound("z#144.wav", 70);
} else {
- petDisplayMessage(1, "Lumi-Glow(tm) Lights. They glow in the dark!");
+ petDisplayMessage(1, LUMI_GLOW_LIGHTS);
playSound("z#62.wav", 70);
}
@@ -116,10 +116,10 @@ bool CLight::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
bool flag = pet ? pet->isRoom59706() : false;
if (_fieldFC == 1 && flag) {
- petDisplayMessage(1, "That light appears to be loose.");
+ petDisplayMessage(1, LIGHT_IS_LOOSE);
playSound("z#144.wav", 70);
} else {
- petDisplayMessage(1, "Lumi-Glow(tm) Lights. They glow in the dark!");
+ petDisplayMessage(1, LUMI_GLOW_LIGHTS);
playSound("z#62.wav", 70);
}
diff --git a/engines/titanic/game/long_stick_dispenser.cpp b/engines/titanic/game/long_stick_dispenser.cpp
index 08a29f2e4b..04014e8adf 100644
--- a/engines/titanic/game/long_stick_dispenser.cpp
+++ b/engines/titanic/game/long_stick_dispenser.cpp
@@ -62,7 +62,7 @@ bool CLongStickDispenser::PuzzleSolvedMsg(CPuzzleSolvedMsg *msg) {
loadFrame(19);
} else if (_fieldC0) {
playSound("z#63.wav");
- petDisplayMessage(1, "'This glass is totally and utterly unbreakable.");
+ petDisplayMessage(1, GLASS_IS_UNBREAKABLE);
}
return true;
@@ -92,11 +92,10 @@ bool CLongStickDispenser::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
switch (_fieldBC) {
case 0:
- petDisplayMessage(1, "For emergency long stick, smash glass.");
+ petDisplayMessage(1, FOR_STICK_BREAK_GLASS);
break;
case 1:
- petDisplayMessage(1, "This dispenser has suddenly been fitted with unbreakable glass "
- "to prevent unseemly hoarding of sticks.");
+ petDisplayMessage(1, DISPENSOR_HAS_UNBREAKABLE_GLASS);
break;
default:
break;
diff --git a/engines/titanic/game/nav_helmet.cpp b/engines/titanic/game/nav_helmet.cpp
index 08ff073c26..96411ad6b7 100644
--- a/engines/titanic/game/nav_helmet.cpp
+++ b/engines/titanic/game/nav_helmet.cpp
@@ -54,7 +54,7 @@ bool CNavHelmet::MovieEndMsg(CMovieEndMsg *msg) {
CPetControl *pet = getPetControl();
if (pet) {
pet->setArea(PET_STARFIELD);
- petDisplayMessage(1, "Now would be an excellent opportunity to adjust your viewing apparatus.");
+ petDisplayMessage(1, ADJUST_VIEWING_APPARATUS);
pet->incAreaLocks();
}
diff --git a/engines/titanic/game/parrot/parrot_perch_holder.cpp b/engines/titanic/game/parrot/parrot_perch_holder.cpp
index d594446219..b1a7dabfbf 100644
--- a/engines/titanic/game/parrot/parrot_perch_holder.cpp
+++ b/engines/titanic/game/parrot/parrot_perch_holder.cpp
@@ -47,7 +47,7 @@ void CParrotPerchHolder::load(SimpleFile *file) {
bool CParrotPerchHolder::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
if (CParrot::_v1) {
if (CCage::_open) {
- petDisplayMessage("You cannot take this because the cage is locked shut.");
+ petDisplayMessage(CANNOT_TAKE_CAGE_LOCKED);
} else if (!CParrot::_v4) {
CTrueTalkTriggerActionMsg triggerMsg(280252, 0, 0);
triggerMsg.execute(getRoot(), CParrot::_type,
diff --git a/engines/titanic/game/pet/pet_lift.cpp b/engines/titanic/game/pet/pet_lift.cpp
index afa9dd04cd..a7b48853e6 100644
--- a/engines/titanic/game/pet/pet_lift.cpp
+++ b/engines/titanic/game/pet/pet_lift.cpp
@@ -52,7 +52,7 @@ bool CPETLift::TransportMsg(CTransportMsg *msg) {
} else if (msg->_roomName == "PlayersRoom" && pet) {
int assignedFloor = pet->getAssignedFloorNum();
if (assignedFloor < 1 || assignedFloor > 39) {
- pet->petDisplayMessage("You have not assigned a room to go to.");
+ pet->petDisplayMessage(NO_ROOM_ASSIGNED);
floorNum = -1;
}
}
@@ -61,7 +61,7 @@ bool CPETLift::TransportMsg(CTransportMsg *msg) {
int elevatorNum = pet ? pet->getRoomsElevatorNum() : 0;
if ((elevatorNum == 2 || elevatorNum == 4) && floorNum > 27) {
- petDisplayMessage("Sorry, this elevator does not go below floor 27.");
+ petDisplayMessage(ELEVATOR_NOT_BELOW_27);
} else {
CTrueTalkTriggerActionMsg triggerMsg(2, floorNum, 0);
triggerMsg.execute("Liftbot");
diff --git a/engines/titanic/game/phonograph_lid.cpp b/engines/titanic/game/phonograph_lid.cpp
index 3741749fbf..d1ab478f3d 100644
--- a/engines/titanic/game/phonograph_lid.cpp
+++ b/engines/titanic/game/phonograph_lid.cpp
@@ -58,7 +58,7 @@ bool CPhonographLid::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
_open = !_open;
} else {
- petDisplayMessage(0, "This is the restaurant music system. It appears to be locked.");
+ petDisplayMessage(0, LOCKED_MUSIC_SYSTEM);
}
return true;
diff --git a/engines/titanic/game/pickup/pick_up_speech_centre.cpp b/engines/titanic/game/pickup/pick_up_speech_centre.cpp
index 5e99c0a3b7..941d5cdb28 100644
--- a/engines/titanic/game/pickup/pick_up_speech_centre.cpp
+++ b/engines/titanic/game/pickup/pick_up_speech_centre.cpp
@@ -63,7 +63,7 @@ bool CPickUpSpeechCentre::MouseDragStartMsg(CMouseDragStartMsg *msg) {
CActMsg actMsg("PlayerGetsSpeechCentre");
actMsg.execute("SeasonalAdjust");
} else {
- petDisplayMessage("You can't pick this up on account of it being stuck to the branch.");
+ petDisplayMessage(STUCK_TO_BRANCH);
}
}
diff --git a/engines/titanic/game/sauce_dispensor.cpp b/engines/titanic/game/sauce_dispensor.cpp
index fda7082ba6..410d4a3153 100644
--- a/engines/titanic/game/sauce_dispensor.cpp
+++ b/engines/titanic/game/sauce_dispensor.cpp
@@ -75,7 +75,7 @@ bool CSauceDispensor::Use(CUse *msg) {
playSound("b#15.wav", 50);
if (chicken->_string6 != "None") {
- petDisplayMessage(1, "This foodstuff is already sufficiently garnished.");
+ petDisplayMessage(1, FOODSTUFF_ALREADY_GARNISHED);
msg->execute("Chicken");
} else {
setVisible(true);
@@ -96,7 +96,7 @@ bool CSauceDispensor::Use(CUse *msg) {
endMsg.execute(this);
playSound("z#120.wav");
- petDisplayMessage(1, "Sadly, this dispenser is currently empty.");
+ petDisplayMessage(1, DISPENSOR_IS_EMPTY);
} else if (msg->_item->isEquals("BeerGlass")) {
CGlass *glass = dynamic_cast<CGlass *>(msg->_item);
_field108 = true;
@@ -157,12 +157,12 @@ bool CSauceDispensor::LeaveViewMsg(CLeaveViewMsg *msg) {
}
bool CSauceDispensor::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
- petDisplayMessage(1, "Please place food source beneath dispenser for sauce delivery.");
+ petDisplayMessage(1, PUT_FOOD_UNDER_DISPENSOR);
return true;
}
bool CSauceDispensor::StatusChangeMsg(CStatusChangeMsg *msg) {
- petDisplayMessage(1, "Please place food source beneath dispenser for sauce delivery.");
+ petDisplayMessage(1, PUT_FOOD_UNDER_DISPENSOR);
return true;
}
diff --git a/engines/titanic/game/seasonal_adjustment.cpp b/engines/titanic/game/seasonal_adjustment.cpp
index 1f1cb88afb..d9eb0d6fdf 100644
--- a/engines/titanic/game/seasonal_adjustment.cpp
+++ b/engines/titanic/game/seasonal_adjustment.cpp
@@ -81,7 +81,7 @@ bool CSeasonalAdjustment::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
bool CSeasonalAdjustment::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
playSound("z#42.wav");
if (!_fieldE4) {
- petDisplayMessage(1, "The Seasonal Adjustment switch is not operational at the present time.");
+ petDisplayMessage(1, SEASONAL_SWITCH_NOT_WORKING);
} else if (!_fieldE0) {
playMovie(0, 6, MOVIE_NOTIFY_OBJECT);
playMovie(6, 18, 0);
diff --git a/engines/titanic/game/sgt/sgt_nav.cpp b/engines/titanic/game/sgt/sgt_nav.cpp
index c004f947d2..6e3c88e509 100644
--- a/engines/titanic/game/sgt/sgt_nav.cpp
+++ b/engines/titanic/game/sgt/sgt_nav.cpp
@@ -59,11 +59,9 @@ bool SGTNav::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
changeView("SGTState.Node 2.E");
} else if (_statics->_v1 == "Open") {
- petDisplayMessage(1, "This is your stateroom. It is for sleeping. If you desire "
- "entertainment or relaxation, please visit your local leisure lounge.");
+ petDisplayMessage(1, YOUR_STATEROOM);
} else if (_statics->_v6 == "Closed") {
- petDisplayMessage(1, "The bed will not currently support your weight."
- " We are working on this problem but are unlikely to be able to fix it.");
+ petDisplayMessage(1, BED_NOT_SUPPORT_YOUR_WEIGHT);
}
return true;
diff --git a/engines/titanic/game/sgt/sgt_state_room.cpp b/engines/titanic/game/sgt/sgt_state_room.cpp
index c089e401b8..02f1723d72 100644
--- a/engines/titanic/game/sgt/sgt_state_room.cpp
+++ b/engines/titanic/game/sgt/sgt_state_room.cpp
@@ -105,7 +105,7 @@ bool CSGTStateRoom::ActMsg(CActMsg *msg) {
uint assignedRoom = pet->getAssignedRoomFlags();
if (roomFlags != assignedRoom) {
- petDisplayMessage("This is not your assigned room. Please do not enjoy.");
+ petDisplayMessage(NOT_YOUR_ASSIGNED_ROOM);
} else if (_fieldE0) {
CTurnOn onMsg;
onMsg.execute(this);
diff --git a/engines/titanic/game/speech_dispensor.cpp b/engines/titanic/game/speech_dispensor.cpp
index 20ff3c69e0..3554c48602 100644
--- a/engines/titanic/game/speech_dispensor.cpp
+++ b/engines/titanic/game/speech_dispensor.cpp
@@ -68,7 +68,7 @@ bool CSpeechDispensor::FrameMsg(CFrameMsg *msg) {
CGameObject *dragObject = getDraggingObject();
if (!_dragItem && dragObject && getView() == findView()) {
if (dragObject->isEquals("Perch")) {
- petDisplayMessage(1, "This stick is too short to reach the branches.");
+ petDisplayMessage(1, TOO_SHORT_TO_REACH_BRANCHES);
return true;
}
@@ -86,7 +86,7 @@ bool CSpeechDispensor::FrameMsg(CFrameMsg *msg) {
case 0:
playSound("z#93.wav");
if (_seasonNum == SEASON_WINTER) {
- petDisplayMessage(1, "You cannot get this, it is frozen to the branch.");
+ petDisplayMessage(1, FROZEN_TO_BRANCH);
_fieldE0 = false;
_state = 1;
} else {
@@ -121,9 +121,9 @@ bool CSpeechDispensor::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
if (!_fieldEC) {
playSound("z#93.wav");
if (_fieldF8) {
- petDisplayMessage(1, "Sadly, this is out of your reach.");
+ petDisplayMessage(1, OUT_OF_REACH);
} else {
- petDisplayMessage(1, "You can't pick this up on account of it being stuck to the branch.");
+ petDisplayMessage(1, STUCK_TO_BRANCH);
}
}
diff --git a/engines/titanic/game/sweet_bowl.cpp b/engines/titanic/game/sweet_bowl.cpp
index d0a2525bc4..29d8044a85 100644
--- a/engines/titanic/game/sweet_bowl.cpp
+++ b/engines/titanic/game/sweet_bowl.cpp
@@ -60,7 +60,7 @@ bool CSweetBowl::ActMsg(CActMsg *msg) {
}
petDisplayMessage(isEquals("BowlNutsRustler") ?
- "A bowl of pistachio nuts." : "Not a bowl of pistachio nuts.");
+ BOWL_OF_NUTS : NOT_A_BOWL_OF_NUTS);
return true;
}
diff --git a/engines/titanic/game/third_class_canal.cpp b/engines/titanic/game/third_class_canal.cpp
index 97b559e35d..5bc2ede63c 100644
--- a/engines/titanic/game/third_class_canal.cpp
+++ b/engines/titanic/game/third_class_canal.cpp
@@ -39,7 +39,7 @@ void CThirdClassCanal::load(SimpleFile *file) {
}
bool CThirdClassCanal::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
- petDisplayMessage("This area is off limits to passengers.");
+ petDisplayMessage(AREA_OFF_LIMIT_TO_PASSENGERS);
return true;
}
diff --git a/engines/titanic/game/transport/lift_indicator.cpp b/engines/titanic/game/transport/lift_indicator.cpp
index 7471affc36..10d62a0775 100644
--- a/engines/titanic/game/transport/lift_indicator.cpp
+++ b/engines/titanic/game/transport/lift_indicator.cpp
@@ -74,9 +74,7 @@ bool CLiftindicator::EnterViewMsg(CEnterViewMsg *msg) {
petSetRemoteTarget();
petSetArea(PET_REMOTE);
- CString str = CString::format("You are standing outside Elevator %d",
- petGetRoomsWellEntry());
- petDisplayMessage(-1, str);
+ petDisplayMessage(OUTSIDE_ELEVATOR_NUM, petGetRoomsWellEntry());
debugC(kDebugScripts, "Claiming PET - %d, Multiplier = %f",
_liftNum, multiplier);
@@ -149,14 +147,13 @@ bool CLiftindicator::PETActivateMsg(CPETActivateMsg *msg) {
if (msg->_name == "Lift") {
if (petDoorOrBellbotPresent()) {
- petDisplayMessage(1, "I'm sorry, you cannot enter this elevator at present "
- "as a bot is in the way.");
+ petDisplayMessage(1, BOT_BLOCKING_ELEVATOR);
} else {
_endFrame = pet->getRoomsFloorNum();
if (petGetRoomsWellEntry() == 4 && !CLift::_v6
&& pet->getRoomsFloorNum() != CLift::_elevator4Floor) {
- petDisplayMessage(1, "This elevator is currently in an advanced state of non-functionality.");
+ petDisplayMessage(1, ELEVATOR_NON_FUNCTIONAL);
} else {
_start = _indicatorPos.y + (int)(_startFrame * multiplier);
_end = _indicatorPos.y + (int)(_endFrame * multiplier);
diff --git a/engines/titanic/game/transport/pellerator.cpp b/engines/titanic/game/transport/pellerator.cpp
index e4af40c334..23c61ad0ba 100644
--- a/engines/titanic/game/transport/pellerator.cpp
+++ b/engines/titanic/game/transport/pellerator.cpp
@@ -67,9 +67,9 @@ bool CPellerator::StatusChangeMsg(CStatusChangeMsg *msg) {
int newDest = msg->_newStatus;
if (msg->_newStatus == _destination) {
- petDisplayMessage(1, "You are already at your chosen destination.");
+ petDisplayMessage(1, ALREADY_AT_DESTINATION);
} else if (classNum == 3 || (msg->_newStatus > 4 && classNum != 1)) {
- petDisplayMessage(1, "Passengers of your class are not permitted to enter this area.");
+ petDisplayMessage(1, CLASS_NOT_ALLOWED_AT_DEST);
} else if (newDest > _destination) {
CString name = getName();
changeView(name == "PelleratorObject2" ?
diff --git a/engines/titanic/game/wheel_hotspot.cpp b/engines/titanic/game/wheel_hotspot.cpp
index 544e6f5470..aeca7130b5 100644
--- a/engines/titanic/game/wheel_hotspot.cpp
+++ b/engines/titanic/game/wheel_hotspot.cpp
@@ -69,7 +69,7 @@ bool CWheelHotSpot::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
break;
}
} else if (_fieldE4 == 3) {
- petDisplayMessage("Go where?");
+ petDisplayMessage(GO_WHERE);
}
return true;
diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk
index 01ad617d6c..87f4124df7 100644
--- a/engines/titanic/module.mk
+++ b/engines/titanic/module.mk
@@ -463,6 +463,7 @@ MODULE_OBJS := \
support/font.o \
support/image.o \
support/image_decoders.o \
+ support/strings.o \
support/mouse_cursor.o \
support/movie.o \
support/movie_clip.o \
diff --git a/engines/titanic/moves/call_pellerator.cpp b/engines/titanic/moves/call_pellerator.cpp
index 0dd8195277..75edd50a25 100644
--- a/engines/titanic/moves/call_pellerator.cpp
+++ b/engines/titanic/moves/call_pellerator.cpp
@@ -47,7 +47,7 @@ bool CCallPellerator::EnterViewMsg(CEnterViewMsg *msg) {
CString name = getFullViewName();
if (name == "TopOfWell.Node 6.S") {
- petDisplayMessage(2, "You are standing outside the Pellerator.");
+ petDisplayMessage(2, STANDING_OUTSIDE_PELLERATOR);
}
petSetRemoteTarget();
@@ -64,7 +64,7 @@ bool CCallPellerator::PETActivateMsg(CPETActivateMsg *msg) {
if (msg->_name == "Pellerator") {
if (petDoorOrBellbotPresent()) {
- petDisplayMessage("I'm sorry, you cannot enter this pellerator at present as a bot is in the way.");
+ petDisplayMessage(BOT_BLOCKING_PELLERATOR);
} else if (name == "Bar.Node 1.S") {
changeView("Pellerator.Node 1.S");
} else {
diff --git a/engines/titanic/moves/enter_exit_first_class_state.cpp b/engines/titanic/moves/enter_exit_first_class_state.cpp
index 34e9984aa7..efdead533a 100644
--- a/engines/titanic/moves/enter_exit_first_class_state.cpp
+++ b/engines/titanic/moves/enter_exit_first_class_state.cpp
@@ -52,12 +52,11 @@ bool CEnterExitFirstClassState::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
break;
case 2:
- petDisplayMessage(1, "This room is reserved for the exclusive use of first class passengeres."
- " That does not currently include you");
+ petDisplayMessage(1, ROOM_RESERVED_FOR_FIRST_CLASS);
break;
default:
- petDisplayMessage("No losers.");
+ petDisplayMessage(NO_LOSERS);
break;
}
diff --git a/engines/titanic/moves/enter_sec_class_state.cpp b/engines/titanic/moves/enter_sec_class_state.cpp
index 2a35621003..853a00d590 100644
--- a/engines/titanic/moves/enter_sec_class_state.cpp
+++ b/engines/titanic/moves/enter_sec_class_state.cpp
@@ -50,7 +50,7 @@ void CEnterSecClassState::load(SimpleFile *file) {
bool CEnterSecClassState::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
if (getPassengerClass() > 2) {
playSound("b#105.wav");
- petDisplayMessage(1, "Passengers of your class are not permitted to enter this area.");
+ petDisplayMessage(1, CLASS_NOT_PERMITTED_IN_AREA);
} else if (!compareRoomNameTo("SecClassLittleLift") || _mode == 2) {
CActMsg actMsg(getFullViewName().deleteRight(3) + ".S");
actMsg.execute("SecClassRoomLeaver");
diff --git a/engines/titanic/moves/exit_pellerator.cpp b/engines/titanic/moves/exit_pellerator.cpp
index 12ca2c1e3c..3140d90b4c 100644
--- a/engines/titanic/moves/exit_pellerator.cpp
+++ b/engines/titanic/moves/exit_pellerator.cpp
@@ -94,7 +94,7 @@ bool CExitPellerator::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
changeView(_statics->_isWinter ? "FrozenArboretum.Node 4.S" : "Arboretum.Node 4.W");
break;
default:
- petDisplayMessage(2, "Please exit from the other side.");
+ petDisplayMessage(2, EXIT_FROM_OTHER_SIDE);
CPellerator::_soundHandle = queueSound("z#438.wav", CPellerator::_soundHandle);
}
@@ -116,7 +116,7 @@ bool CExitPellerator::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
if (_statics->_v2 == 2) {
changeView("Bar.Node 1.N");
} else {
- petDisplayMessage(2, "Please exit from the other side.");
+ petDisplayMessage(2, EXIT_FROM_OTHER_SIDE);
CPellerator::_soundHandle = queueSound("z#438.wav", CPellerator::_soundHandle);
}
}
diff --git a/engines/titanic/moves/exit_tiania.cpp b/engines/titanic/moves/exit_tiania.cpp
index fb0f149ba9..63c1cbae4e 100644
--- a/engines/titanic/moves/exit_tiania.cpp
+++ b/engines/titanic/moves/exit_tiania.cpp
@@ -54,8 +54,7 @@ void CExitTiania::load(SimpleFile *file) {
bool CExitTiania::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
if (getPassengerClass() == 4) {
- petDisplayMessage(1, "For mysterious and unknowable reasons, "
- "this transport is temporarily out of order.");
+ petDisplayMessage(1, TRANSPORT_OUT_OF_ORDER);
} else {
lockMouse();
for (int idx = 0; idx < 3; ++idx)
diff --git a/engines/titanic/moves/restricted_move.cpp b/engines/titanic/moves/restricted_move.cpp
index 37cb1c46dc..b1040a3554 100644
--- a/engines/titanic/moves/restricted_move.cpp
+++ b/engines/titanic/moves/restricted_move.cpp
@@ -52,10 +52,10 @@ bool CRestrictedMove::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
// Okay to change to the given destination
changeView(_destination);
} else if (classNum != 4) {
- petDisplayMessage(1, "Passengers of your class are not permitted to enter this area.");
+ petDisplayMessage(1, CLASS_NOT_ALLOWED_AT_DEST);
} else if (compareRoomNameTo("EmbLobby")) {
playSound("a#17.wav");
- petDisplayMessage(1, "Please check in at the reception desk.");
+ petDisplayMessage(1, CHECK_IN_AT_RECEPTION);
} else if (compareViewNameTo("Titania.Node 1.S")) {
playSound("z#226.wav");
changeView(_destination);
diff --git a/engines/titanic/moves/trip_down_canal.cpp b/engines/titanic/moves/trip_down_canal.cpp
index e9818fa96d..010505a510 100644
--- a/engines/titanic/moves/trip_down_canal.cpp
+++ b/engines/titanic/moves/trip_down_canal.cpp
@@ -43,7 +43,7 @@ void CTripDownCanal::load(SimpleFile *file) {
bool CTripDownCanal::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
if (stateGetSeason() == SEASON_WINTER) {
- petDisplayMessage("Sadly, the Grand Canal transport system is closed for the winter.");
+ petDisplayMessage(CANAL_CLOSED_FOR_WINTER);
} else if (getGameManager()) {
changeView(_destination);
}
diff --git a/engines/titanic/npcs/bilge_succubus.cpp b/engines/titanic/npcs/bilge_succubus.cpp
index 16064bf212..d1b89e58b4 100644
--- a/engines/titanic/npcs/bilge_succubus.cpp
+++ b/engines/titanic/npcs/bilge_succubus.cpp
@@ -81,7 +81,7 @@ bool CBilgeSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) {
playSound("z#28.wav", 70);
} else if (!_enabled) {
- petDisplayMessage(2, "The Succ-U-Bus is in Standby, or \"Off\" mode at present.");
+ petDisplayMessage(2, SUCCUBUS_IS_IN_STANDBY);
return false;
} else if (!pet) {
return false;
@@ -96,7 +96,7 @@ bool CBilgeSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) {
if (_startFrame4 >= 0)
playMovie(_startFrame4, _endFrame4, MOVIE_GAMESTATE);
} else {
- petDisplayMessage(2, "There is currently nothing to deliver.");
+ petDisplayMessage(2, NOTHING_TO_DELIVER);
}
}
@@ -112,7 +112,7 @@ bool CBilgeSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) {
CGameObject *mailObject = findMail(petRoomFlags);
if (!mailObject) {
- petDisplayMessage(2, "There is currently nothing in the tray to send.");
+ petDisplayMessage(2, NOTHING_IN_SUCCUBUS_TRAY);
return true;
}
@@ -329,7 +329,7 @@ bool CBilgeSuccUBus::SubAcceptCCarryMsg(CSubAcceptCCarryMsg *msg) {
uint petRoomFlags = pet->getRoomFlags();
if (mailExists(petRoomFlags)) {
- petDisplayMessage(2, "The Succ-U-Bus is a Single Entity Delivery Device.");
+ petDisplayMessage(2, SUCCUBUS_SINGLE_DELIVERY);
item->petAddToInventory();
return true;
}
@@ -387,7 +387,7 @@ bool CBilgeSuccUBus::EnterViewMsg(CEnterViewMsg *msg) {
}
bool CBilgeSuccUBus::LeaveViewMsg(CLeaveViewMsg *msg) {
- petDisplayMessage(2, "");
+ petDisplayMessage(2, BLANK);
petClear();
if (_soundHandle != -1) {
diff --git a/engines/titanic/npcs/deskbot.cpp b/engines/titanic/npcs/deskbot.cpp
index 5b6364f1cb..8f1fc28e20 100644
--- a/engines/titanic/npcs/deskbot.cpp
+++ b/engines/titanic/npcs/deskbot.cpp
@@ -176,12 +176,12 @@ bool CDeskbot::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) {
switch (_classNum) {
case 1:
- petDisplayMessage("You have been upgraded to 1st Class status. Enjoy hugely.");
+ petDisplayMessage(UPGRADED_TO_FIRST_CLASS);
setPassengerClass(_classNum);
petReassignRoom(_classNum);
break;
case 2:
- petDisplayMessage("You have been upgraded to 2nd Class status. Enjoy.");
+ petDisplayMessage(UPGRADED_TO_SECOND_CLASS);
setPassengerClass(_classNum);
petReassignRoom(_classNum);
break;
diff --git a/engines/titanic/npcs/succubus.cpp b/engines/titanic/npcs/succubus.cpp
index 5588d862c3..453f016757 100644
--- a/engines/titanic/npcs/succubus.cpp
+++ b/engines/titanic/npcs/succubus.cpp
@@ -274,7 +274,7 @@ bool CSuccUBus::SubAcceptCCarryMsg(CSubAcceptCCarryMsg *msg) {
if (!_enabled || !pet || !item || !tempRect.contains(item->getControid())) {
item->petAddToInventory();
} else if (mailExists(roomFlags)) {
- petDisplayMessage("The Succ-U-Bus is a Single Entity Delivery Device.");
+ petDisplayMessage(SUCCUBUS_DESCRIPTION);
item->petAddToInventory();
} else {
petContainerRemove(item);
@@ -337,7 +337,7 @@ bool CSuccUBus::EnterViewMsg(CEnterViewMsg *msg) {
}
bool CSuccUBus::LeaveViewMsg(CLeaveViewMsg *msg) {
- petDisplayMessage(2, "");
+ petDisplayMessage(2, BLANK);
if (_startFrame8 >= 0)
loadFrame(_startFrame8);
else if (!_field15C && _startFrame9 >= 0)
@@ -370,7 +370,7 @@ bool CSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) {
return true;
if (!_enabled) {
- petDisplayMessage(2, "The Succ-U-Bus is in Standby, or \"Off\" mode at present.");
+ petDisplayMessage(2, SUCCUBUS_IS_IN_STANDBY);
return true;
}
@@ -394,7 +394,7 @@ bool CSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) {
break;
}
- petDisplayMessage(2, "There is currently nothing in the tray to send.");
+ petDisplayMessage(2, NOTHING_IN_SUCCUBUS_TRAY);
} else {
_field19C = 0;
@@ -458,7 +458,7 @@ bool CSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) {
if (_field1D8 || !pet)
return true;
if (!_enabled) {
- petDisplayMessage(2, "The Succ-U-Bus is in Standby, or \"Off\" mode at present.");
+ petDisplayMessage(2, SUCCUBUS_IS_IN_STANDBY);
return true;
}
@@ -489,7 +489,7 @@ bool CSuccUBus::PETReceiveMsg(CPETReceiveMsg *msg) {
playMovie(_startFrame6, _endFrame6, 0);
playMovie(_startFrame7, _endFrame7, 0);
- petDisplayMessage(2, "There is currently nothing to deliver.");
+ petDisplayMessage(2, NOTHING_TO_DELIVER);
} else {
startTalking(this, 230004, findView());
diff --git a/engines/titanic/pet_control/pet_control.cpp b/engines/titanic/pet_control/pet_control.cpp
index 7ab76ddc1d..2ab30af5de 100644
--- a/engines/titanic/pet_control/pet_control.cpp
+++ b/engines/titanic/pet_control/pet_control.cpp
@@ -376,7 +376,13 @@ bool CPetControl::checkDragEnd(CGameObject *item) const {
return _sections[_currentArea]->checkDragEnd(item);
}
-void CPetControl::displayMessage(const CString &msg) const {
+void CPetControl::displayMessage(StringId stringId, int param) const {
+ CString msg = CString::format(_strings[stringId].c_str(), param);
+ _sections[_currentArea]->displayMessage(msg);
+}
+
+void CPetControl::displayMessage(const CString &str, int param) const {
+ CString msg = CString::format(str.c_str(), param);
_sections[_currentArea]->displayMessage(msg);
}
diff --git a/engines/titanic/pet_control/pet_control.h b/engines/titanic/pet_control/pet_control.h
index 439a94e2d3..c4b65457e2 100644
--- a/engines/titanic/pet_control/pet_control.h
+++ b/engines/titanic/pet_control/pet_control.h
@@ -36,6 +36,7 @@
#include "titanic/pet_control/pet_real_life.h"
#include "titanic/pet_control/pet_remote.h"
#include "titanic/pet_control/pet_rooms.h"
+#include "titanic/support/strings.h"
#include "titanic/room_flags.h"
namespace Titanic {
@@ -67,6 +68,7 @@ private:
CRoomItem *_hiddenRoom;
Rect _drawBounds;
PetEventInfo _timers[2];
+ Strings _strings;
private:
/**
* Returns true if the control is in a valid state
@@ -232,7 +234,12 @@ public:
/**
* Display a message
*/
- void displayMessage(const CString &msg) const;
+ void displayMessage(StringId stringId, int param = 0) const;
+
+ /**
+ * Display a message
+ */
+ void displayMessage(const CString &str, int param = 0) const;
/**
* Get the first game object stored in the PET
diff --git a/engines/titanic/pet_control/pet_conversations.cpp b/engines/titanic/pet_control/pet_conversations.cpp
index dc096afcfe..173c586fc1 100644
--- a/engines/titanic/pet_control/pet_conversations.cpp
+++ b/engines/titanic/pet_control/pet_conversations.cpp
@@ -419,7 +419,7 @@ int CPetConversations::canSummonBot(const CString &name) {
void CPetConversations::summonBot(const CString &name) {
if (_petControl) {
if (_petControl->getPassengerClass() >= 4) {
- _petControl->displayMessage("Sorry, you must be at least 3rd class before you can summon for help.");
+ _petControl->displayMessage(AT_LEAST_3RD_CLASS_FOR_HELP);
} else {
_petControl->summonBot(name, 0);
}
diff --git a/engines/titanic/pet_control/pet_load.cpp b/engines/titanic/pet_control/pet_load.cpp
index 04eec54f25..8e2afc727f 100644
--- a/engines/titanic/pet_control/pet_load.cpp
+++ b/engines/titanic/pet_control/pet_load.cpp
@@ -63,7 +63,7 @@ void CPetLoad::execute() {
// WORKAROUND: Schedule the savegame to be loaded after frame rendering ends
window->loadGame(_savegameSlotNum);
} else if (pet) {
- pet->displayMessage("You must select a game to load first.");
+ pet->displayMessage(SELECT_GAME_TO_LOAD);
}
}
diff --git a/engines/titanic/pet_control/pet_save.cpp b/engines/titanic/pet_control/pet_save.cpp
index 9305759117..6d0733f534 100644
--- a/engines/titanic/pet_control/pet_save.cpp
+++ b/engines/titanic/pet_control/pet_save.cpp
@@ -76,10 +76,10 @@ void CPetSave::execute() {
if (project) {
project->saveGame(_savegameSlotNum, _slotNames[_savegameSlotNum].getText());
- pet->displayMessage("");
+ pet->displayMessage(BLANK);
}
} else if (pet) {
- pet->displayMessage("You must select a game to save first.");
+ pet->displayMessage(SELECT_GAME_TO_SAVE);
}
}
diff --git a/engines/titanic/pet_control/pet_starfield.cpp b/engines/titanic/pet_control/pet_starfield.cpp
index 34d696e09c..3287f98817 100644
--- a/engines/titanic/pet_control/pet_starfield.cpp
+++ b/engines/titanic/pet_control/pet_starfield.cpp
@@ -91,7 +91,7 @@ bool CPetStarfield::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
CPETPhotoOnOffMsg photoMsg;
photoMsg.execute(_petControl->_remoteTarget);
} else {
- _petControl->displayMessage("Please supply Galactic reference material.");
+ _petControl->displayMessage(SUPPLY_GALACTIC_REFERENCE);
}
} else if (!_btnSetDest.MouseButtonDownMsg(msg->_mousePos)) {
return elementsMouseDown(msg);
diff --git a/engines/titanic/support/strings.cpp b/engines/titanic/support/strings.cpp
new file mode 100644
index 0000000000..7664b6849b
--- /dev/null
+++ b/engines/titanic/support/strings.cpp
@@ -0,0 +1,35 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/support/strings.h"
+#include "titanic/titanic.h"
+
+namespace Titanic {
+
+Strings::Strings() {
+ Common::SeekableReadStream *r = g_vm->_filesManager->getResource("TEXT/STRINGS");
+ while (r->pos() < r->size())
+ push_back(readStringFromStream(r));
+ delete r;
+}
+
+} // End of namespace Titanic
diff --git a/engines/titanic/support/strings.h b/engines/titanic/support/strings.h
new file mode 100644
index 0000000000..1f7187bdee
--- /dev/null
+++ b/engines/titanic/support/strings.h
@@ -0,0 +1,98 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TITANIC_STRINGS_H
+#define TITANIC_STRINGS_H
+
+#include "common/str-array.h"
+
+namespace Titanic {
+
+enum StringId {
+ BLANK,
+ STANDING_OUTSIDE_PELLERATOR,
+ BOT_BLOCKING_PELLERATOR,
+ SUCCUBUS_IS_IN_STANDBY,
+ NOTHING_TO_DELIVER,
+ NOTHING_IN_SUCCUBUS_TRAY,
+ SUCCUBUS_SINGLE_DELIVERY,
+ ONE_ALLOCATED_CHICKEN_PER_CUSTOMER,
+ ONE_CHICKEN_PER_CUSTOMER,
+ UPGRADED_TO_FIRST_CLASS,
+ UPGRADED_TO_SECOND_CLASS,
+ ROOM_RESERVED_FOR_FIRST_CLASS,
+ NO_LOSERS,
+ CLASS_NOT_PERMITTED_IN_AREA,
+ EXIT_FROM_OTHER_SIDE,
+ TRANSPORT_OUT_OF_ORDER,
+ FAN_HAS_BLOWN_A_FUSE,
+ POKE_WITH_LONG_STICK,
+ TOO_SHORT_TO_REACH_BRANCHES,
+ OUTSIDE_ELEVATOR_NUM,
+ BOT_BLOCKING_ELEVATOR,
+ ELEVATOR_NON_FUNCTIONAL,
+ LIGHT_IS_LOOSE,
+ LUMI_GLOW_LIGHTS,
+ ALREADY_HAVE_STICK,
+ GLASS_IS_UNBREAKABLE,
+ FOR_STICK_BREAK_GLASS,
+ DISPENSOR_HAS_UNBREAKABLE_GLASS,
+ CHICKEN_IS_CLEAN,
+ ADJUST_VIEWING_APPARATUS,
+ CANNOT_TAKE_CAGE_LOCKED,
+ ALREADY_AT_DESTINATION,
+ CLASS_NOT_ALLOWED_AT_DEST,
+ AT_LEAST_3RD_CLASS_FOR_HELP,
+ NO_ROOM_ASSIGNED,
+ ELEVATOR_NOT_BELOW_27,
+ SELECT_GAME_TO_LOAD,
+ SELECT_GAME_TO_SAVE,
+ SUPPLY_GALACTIC_REFERENCE,
+ LOCKED_MUSIC_SYSTEM,
+ STUCK_TO_BRANCH,
+ FROZEN_TO_BRANCH,
+ CHECK_IN_AT_RECEPTION,
+ FOODSTUFF_ALREADY_GARNISHED,
+ DISPENSOR_IS_EMPTY,
+ PUT_FOOD_UNDER_DISPENSOR,
+ SEASONAL_SWITCH_NOT_WORKING,
+ YOUR_STATEROOM,
+ BED_NOT_SUPPORT_YOUR_WEIGHT,
+ NOT_YOUR_ASSIGNED_ROOM,
+ OUT_OF_REACH,
+ SUCCUBUS_DESCRIPTION,
+ CANAL_CLOSED_FOR_WINTER,
+ AREA_OFF_LIMIT_TO_PASSENGERS,
+ GO_WHERE,
+ NICE_IF_TAKE_BUT_CANT,
+ BOWL_OF_NUTS,
+ NOT_A_BOWL_OF_NUTS
+};
+
+class Strings : public Common::StringArray {
+public:
+ Strings();
+};
+
+} // End of namespace Titanic
+
+#endif /* TITANIC_STRINGS_H */