aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2016-05-02 22:50:08 -0400
committerPaul Gilbert2016-07-10 16:38:16 -0400
commit77feb9d8c888444a89132113c282ee3c7766f7f1 (patch)
tree9afd8fb01f30c619f1ac8ebf534c806c0594f50d /engines
parent6166c33734efdeabca0fa9d3eeda34389af6b79b (diff)
downloadscummvm-rg350-77feb9d8c888444a89132113c282ee3c7766f7f1.tar.gz
scummvm-rg350-77feb9d8c888444a89132113c282ee3c7766f7f1.tar.bz2
scummvm-rg350-77feb9d8c888444a89132113c282ee3c7766f7f1.zip
TITANIC: Implement remaining PET Remote glyphs
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/pet_control/pet_remote.cpp35
-rw-r--r--engines/titanic/pet_control/pet_remote_glyphs.cpp16
-rw-r--r--engines/titanic/pet_control/pet_remote_glyphs.h67
3 files changed, 92 insertions, 26 deletions
diff --git a/engines/titanic/pet_control/pet_remote.cpp b/engines/titanic/pet_control/pet_remote.cpp
index f2062aff25..aac0dc8146 100644
--- a/engines/titanic/pet_control/pet_remote.cpp
+++ b/engines/titanic/pet_control/pet_remote.cpp
@@ -61,7 +61,7 @@ static const byte REMOTE_DATA[] = {
0x0F, 0x01,
GLYPH_TELEVISION_CONTROL,
0x10, 0x03,
- GLYPH_BOTTOM_OF_WELL, 0x14, 0x13,
+ GLYPH_GOTO_BOTTOM_OF_WELL, GLYPH_GOTO_STATEROOM, GLYPH_GOTO_TOP_OF_WELL,
0x11, 0x01,
GLYPH_SUCCUBUS_DELIVERY,
0x12, 0x00,
@@ -69,7 +69,7 @@ static const byte REMOTE_DATA[] = {
GLYPH_SUMMON_PELLERATOR, GLYPH_SUCCUBUS_DELIVERY,
0x14, 0x00,
0x15, 0x02,
- 0x10, GLYPH_TELEVISION_CONTROL,
+ GLYPH_SUCCUBUS_DELIVERY, GLYPH_TELEVISION_CONTROL,
0x16, 0x00,
0x17, 0x02,
GLYPH_SUMMON_PELLERATOR, GLYPH_SUCCUBUS_DELIVERY,
@@ -396,8 +396,35 @@ bool CPetRemote::loadGlyph(int glyphIndex) {
glyph = new CNavigationControllerGlyph();
break;
- case GLYPH_BOTTOM_OF_WELL:
- glyph = new CBottomOfWellGlyph();
+ case GLYPH_GOTO_BOTTOM_OF_WELL:
+ glyph = new CGotoBottomOfWellGlyph();
+ break;
+
+ case GLYPH_GOTO_TOP_OF_WELL:
+ glyph = new CGotoTopOfWellGlyph();
+ break;
+
+ case GLYPH_GOTO_STATEROOM:
+ glyph = new CGotoStateroomGlyph();
+ break;
+
+ case GLYPH_GOTO_BAR:
+ glyph = new CGotoBarGlyph();
+
+ case GLYPH_GOTO_PROMENADE:
+ glyph = new CGotoPromenadeDeckGlyph();
+ break;
+
+ case GLYPH_GOTO_ARBORETUM:
+ glyph = new CGotoArboretumGlyph();
+ break;
+
+ case GLYPH_GOTO_MUSIC_ROOM:
+ glyph = new CGotoMusicRoomGlyph();
+ break;
+
+ case GLYPH_GOTO_RESTAURANT:
+ glyph = new CGotoRestaurantGlyph();
break;
default:
diff --git a/engines/titanic/pet_control/pet_remote_glyphs.cpp b/engines/titanic/pet_control/pet_remote_glyphs.cpp
index 00ddf421cf..e42e0825b0 100644
--- a/engines/titanic/pet_control/pet_remote_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_remote_glyphs.cpp
@@ -121,6 +121,7 @@ bool CToggleRemoteGlyph::elementMouseButtonUpMsg(const Point &pt, int petNum) {
bool CRemoteGotoGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
CPetRemoteGlyph::setup(petControl, owner);
+ setDefaults(_gfxName, petControl);
if (owner)
_gfxElement = getElement(7);
@@ -158,6 +159,10 @@ bool CRemoteGotoGlyph::MouseButtonUpMsg(const Point &pt) {
return true;
}
+void CRemoteGotoGlyph::getTooltip(CPetText *text) {
+ text->setText(_tooltip);
+}
+
/*------------------------------------------------------------------------*/
bool CTelevisionControlGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
@@ -554,15 +559,4 @@ void CNavigationControllerGlyph::getTooltip(CPetText *text) {
/*------------------------------------------------------------------------*/
-bool CBottomOfWellGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
- CPetRemoteGlyph::setup(petControl, owner);
- setDefaults("3PetBotOfWell", petControl);
-
- return true;
-}
-
-void CBottomOfWellGlyph::getTooltip(CPetText *text) {
- text->setText("Go to the Bottom of the Well");
-}
-
} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_remote_glyphs.h b/engines/titanic/pet_control/pet_remote_glyphs.h
index e6dfc115c0..d3541d6a94 100644
--- a/engines/titanic/pet_control/pet_remote_glyphs.h
+++ b/engines/titanic/pet_control/pet_remote_glyphs.h
@@ -38,7 +38,10 @@ enum RemoteGlyph {
GLYPH_DEPLOY_WORK_SURFACE = 12, GLYPH_DEPLOY_MINOR_RELAXATION = 13,
GLYPH_DEPLOY_SINK = 14, GLYPH_DEPLOY_MAJOR_STORAGE = 15,
GLYPH_SUCCUBUS_DELIVERY = 16, GLYPH_NAVIGATION_CONTROLLER = 17,
- GLYPH_BOTTOM_OF_WELL = 18
+ GLYPH_GOTO_BOTTOM_OF_WELL = 18, GLYPH_GOTO_TOP_OF_WELL = 19,
+ GLYPH_GOTO_STATEROOM = 20, GLYPH_GOTO_BAR = 21,
+ GLYPH_GOTO_PROMENADE = 22, GLYPH_GOTO_ARBORETUM = 23,
+ GLYPH_GOTO_MUSIC_ROOM = 24, GLYPH_GOTO_RESTAURANT = 25
};
enum RemoteMessage {
@@ -148,8 +151,12 @@ class CRemoteGotoGlyph : public CPetRemoteGlyph {
protected:
int _roomIndex;
CPetGfxElement *_gfxElement;
+ CString _gfxName, _tooltip;
public:
CRemoteGotoGlyph() : CPetRemoteGlyph(), _gfxElement(nullptr), _roomIndex(21) {}
+ CRemoteGotoGlyph(const CString &gfxName, const CString &tooltip) :
+ CPetRemoteGlyph(), _gfxElement(nullptr), _roomIndex(21),
+ _gfxName(gfxName), _tooltip(tooltip) {}
/**
* Setup the glyph
@@ -170,6 +177,11 @@ public:
* Handles mouse button up messages
*/
virtual bool MouseButtonUpMsg(const Point &pt);
+
+ /**
+ * Returns the tooltip text for when the glyph is selected
+ */
+ virtual void getTooltip(CPetText *text);
};
class CSummonElevatorGlyph : public CBasicRemoteGlyph {
@@ -650,19 +662,52 @@ public:
virtual void getTooltip(CPetText *text);
};
-class CBottomOfWellGlyph : public CRemoteGotoGlyph {
+class CGotoBottomOfWellGlyph : public CRemoteGotoGlyph {
public:
- CBottomOfWellGlyph() : CRemoteGotoGlyph() {}
+ CGotoBottomOfWellGlyph() : CRemoteGotoGlyph("3PetBotOfWell",
+ "Go to the Bottom of the Well") {}
+};
- /**
- * Setup the glyph
- */
- virtual bool setup(CPetControl *petControl, CPetGlyphs *owner);
+class CGotoTopOfWellGlyph : public CRemoteGotoGlyph {
+public:
+ CGotoTopOfWellGlyph() : CRemoteGotoGlyph("3PetTopOfWell",
+ "Go to the Top of the Well") {}
+};
- /**
- * Returns the tooltip text for when the glyph is selected
- */
- virtual void getTooltip(CPetText *text);
+class CGotoStateroomGlyph : public CRemoteGotoGlyph {
+public:
+ CGotoStateroomGlyph() : CRemoteGotoGlyph("3PetRoom",
+ "Go to your stateroom") {}
+};
+
+class CGotoBarGlyph : public CRemoteGotoGlyph {
+public:
+ CGotoBarGlyph() : CRemoteGotoGlyph("3PetBar",
+ "Go to the Bar") {}
+};
+
+class CGotoPromenadeDeckGlyph : public CRemoteGotoGlyph {
+public:
+ CGotoPromenadeDeckGlyph() : CRemoteGotoGlyph("3PetPromDeck",
+ "Go to the Promenade Deck") {}
+};
+
+class CGotoArboretumGlyph : public CRemoteGotoGlyph {
+public:
+ CGotoArboretumGlyph() : CRemoteGotoGlyph("3PetArboretum",
+ "Go to the Arboretum") {}
+};
+
+class CGotoMusicRoomGlyph : public CRemoteGotoGlyph {
+public:
+ CGotoMusicRoomGlyph() : CRemoteGotoGlyph("3PetMusicRoom",
+ "Go to the Music Room") {}
+};
+
+class CGotoRestaurantGlyph : public CRemoteGotoGlyph {
+public:
+ CGotoRestaurantGlyph() : CRemoteGotoGlyph("3Pet1stClassRest",
+ "Go to the First Class Restaurant") {}
};
} // End of namespace Titanic