From 77feb9d8c888444a89132113c282ee3c7766f7f1 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 2 May 2016 22:50:08 -0400 Subject: TITANIC: Implement remaining PET Remote glyphs --- engines/titanic/pet_control/pet_remote.cpp | 35 ++++++++++-- engines/titanic/pet_control/pet_remote_glyphs.cpp | 16 ++---- engines/titanic/pet_control/pet_remote_glyphs.h | 67 +++++++++++++++++++---- 3 files changed, 92 insertions(+), 26 deletions(-) (limited to 'engines') 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 -- cgit v1.2.3