diff options
author | Paul Gilbert | 2016-09-10 23:16:15 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-09-10 23:16:15 -0400 |
commit | 8eaf094bf59a30255f6e981bd9e1c593fc17b2fb (patch) | |
tree | 261f0fad2c6db5d75da682d9c7f43a74fee24a77 | |
parent | cb33eca327414837d9095b7797a1996705fd768f (diff) | |
download | scummvm-rg350-8eaf094bf59a30255f6e981bd9e1c593fc17b2fb.tar.gz scummvm-rg350-8eaf094bf59a30255f6e981bd9e1c593fc17b2fb.tar.bz2 scummvm-rg350-8eaf094bf59a30255f6e981bd9e1c593fc17b2fb.zip |
TITANIC: Move text messages to DAT file
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 */ |