diff options
Diffstat (limited to 'engines/titanic/pet_control')
-rw-r--r-- | engines/titanic/pet_control/pet_control.cpp | 60 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_control.h | 30 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_element.cpp | 4 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_element.h | 2 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_frame.cpp | 4 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_frame.h | 4 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_section.h | 16 |
7 files changed, 62 insertions, 58 deletions
diff --git a/engines/titanic/pet_control/pet_control.cpp b/engines/titanic/pet_control/pet_control.cpp index fbb9efc0f1..5bc3edc7a6 100644 --- a/engines/titanic/pet_control/pet_control.cpp +++ b/engines/titanic/pet_control/pet_control.cpp @@ -27,6 +27,18 @@ namespace Titanic { +BEGIN_MESSAGE_MAP(CPetControl, CGameObject) + ON_MESSAGE(MouseButtonDownMsg) + ON_MESSAGE(MouseDragStartMsg) + ON_MESSAGE(MouseDragMoveMsg) + ON_MESSAGE(MouseDragEndMsg) + ON_MESSAGE(MouseButtonUpMsg) + ON_MESSAGE(MouseDoubleClickMsg) + ON_MESSAGE(KeyCharMsg) + ON_MESSAGE(VirtualKeyCharMsg) + ON_MESSAGE(TimerMsg) +END_MESSAGE_MAP() + CPetControl::CPetControl() : CGameObject(), _currentArea(PET_CONVERSATION), _fieldC0(0), _locked(0), _fieldC8(0), _treeItem1(nullptr), _treeItem2(nullptr), _hiddenRoom(nullptr), @@ -233,74 +245,74 @@ bool CPetControl::getC0() const { return _fieldC0 > 0; } -bool CPetControl::handleMessage(CMouseButtonDownMsg &msg) { - if (!containsPt(msg._mousePos) || getC0()) +bool CPetControl::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { + if (!containsPt(msg->_mousePos) || getC0()) return false; bool result = false; if (isUnlocked()) - result = _frame.handleMessage(msg); + result = _frame.MouseButtonDownMsg(msg); if (!result) { - result = _sections[_currentArea]->handleMessage(msg); + result = _sections[_currentArea]->MouseButtonDownMsg(msg); } makeDirty(); return result; } -bool CPetControl::handleMessage(CMouseDragStartMsg &msg) { - if (!containsPt(msg._mousePos) || getC0()) +bool CPetControl::MouseDragStartMsg(CMouseDragStartMsg *msg) { + if (!containsPt(msg->_mousePos) || getC0()) return false; - return _sections[_currentArea]->handleMessage(msg); + return _sections[_currentArea]->MouseDragStartMsg(msg); } -bool CPetControl::handleMessage(CMouseDragMoveMsg &msg) { - return _sections[_currentArea]->handleMessage(msg); +bool CPetControl::MouseDragMoveMsg(CMouseDragMoveMsg *msg) { + return _sections[_currentArea]->MouseDragMoveMsg(msg); } -bool CPetControl::handleMessage(CMouseDragEndMsg &msg) { - return _sections[_currentArea]->handleMessage(msg); +bool CPetControl::MouseDragEndMsg(CMouseDragEndMsg *msg) { + return _sections[_currentArea]->MouseDragEndMsg(msg); } -bool CPetControl::handleMessage(CMouseButtonUpMsg &msg) { - if (!containsPt(msg._mousePos) || getC0()) +bool CPetControl::MouseButtonUpMsg(CMouseButtonUpMsg *msg) { + if (!containsPt(msg->_mousePos) || getC0()) return false; bool result = false; if (isUnlocked()) - result = _frame.handleMessage(msg); + result = _frame.MouseButtonUpMsg(msg); if (!result) - result = _sections[_currentArea]->handleMessage(msg); + result = _sections[_currentArea]->MouseButtonUpMsg(msg); makeDirty(); return result; } -bool CPetControl::handleMessage(CMouseDoubleClickMsg &msg) { - if (!containsPt(msg._mousePos) || getC0()) +bool CPetControl::MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) { + if (!containsPt(msg->_mousePos) || getC0()) return false; - return _sections[_currentArea]->handleMessage(msg); + return _sections[_currentArea]->MouseDoubleClickMsg(msg); } -bool CPetControl::handleMessage(CKeyCharMsg &msg) { +bool CPetControl::KeyCharMsg(CKeyCharMsg *msg) { if (getC0()) return false; - return _sections[_currentArea]->handleMessage(msg); + return _sections[_currentArea]->KeyCharMsg(msg); } -bool CPetControl::handleMessage(CVirtualKeyCharMsg &msg) { +bool CPetControl::VirtualKeyCharMsg(CVirtualKeyCharMsg *msg) { if (getC0()) return false; - bool result = _sections[_currentArea]->handleMessage(msg); + bool result = _sections[_currentArea]->VirtualKeyCharMsg(msg); if (!result) { - switch (msg._keyState.keycode) { + switch (msg->_keyState.keycode) { case Common::KEYCODE_F1: result = true; setArea(PET_INVENTORY); @@ -329,7 +341,7 @@ bool CPetControl::handleMessage(CVirtualKeyCharMsg &msg) { return result; } -bool CPetControl::handleMessage(CTimerMsg &msg) { +bool CPetControl::TimerMsg(CTimerMsg *msg) { warning("TODO: CPetControl::CTimerMsg"); return true; } diff --git a/engines/titanic/pet_control/pet_control.h b/engines/titanic/pet_control/pet_control.h index 6f5b7948e3..172cec9bf7 100644 --- a/engines/titanic/pet_control/pet_control.h +++ b/engines/titanic/pet_control/pet_control.h @@ -39,16 +39,8 @@ namespace Titanic { -class CPetControl : public CGameObject, - public CMouseButtonDownMsgTarget, - public CMouseDragStartMsgTarget, - public CMouseDragMoveMsgTarget, - public CMouseDragEndMsgTarget, - public CMouseButtonUpMsgTarget, - public CMouseDoubleClickMsgTarget, - public CKeyCharMsgTarget, - public CVirtualKeyCharMsgTarget, - public CTimerMsgTarget { +class CPetControl : public CGameObject { + DECLARE_MESSAGE_MAP private: int _fieldC0; int _locked; @@ -102,15 +94,15 @@ private: bool getC0() const; protected: - bool handleMessage(CMouseButtonDownMsg &msg); - bool handleMessage(CMouseDragStartMsg &msg); - bool handleMessage(CMouseDragMoveMsg &msg); - bool handleMessage(CMouseDragEndMsg &msg); - bool handleMessage(CMouseButtonUpMsg &msg); - bool handleMessage(CMouseDoubleClickMsg &msg); - bool handleMessage(CKeyCharMsg &msg); - bool handleMessage(CVirtualKeyCharMsg &msg); - bool handleMessage(CTimerMsg &msg); + bool MouseButtonDownMsg(CMouseButtonDownMsg *msg); + bool MouseDragStartMsg(CMouseDragStartMsg *msg); + bool MouseDragMoveMsg(CMouseDragMoveMsg *msg); + bool MouseDragEndMsg(CMouseDragEndMsg *msg); + bool MouseButtonUpMsg(CMouseButtonUpMsg *msg); + bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg); + bool KeyCharMsg(CKeyCharMsg *msg); + bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg); + bool TimerMsg(CTimerMsg *msg); public: PetArea _currentArea; public: diff --git a/engines/titanic/pet_control/pet_element.cpp b/engines/titanic/pet_control/pet_element.cpp index 423c79af8b..68c258c0fb 100644 --- a/engines/titanic/pet_control/pet_element.cpp +++ b/engines/titanic/pet_control/pet_element.cpp @@ -40,8 +40,8 @@ bool CPetElement::proc6(const Common::Point &pt) { return result; } -bool CPetElement::handleMessage(CMouseButtonDownMsg &msg) { - bool result = _bounds.contains(msg._mousePos); +bool CPetElement::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { + bool result = _bounds.contains(msg->_mousePos); if (result) setMode(MODE_UNSELECTED); return result; diff --git a/engines/titanic/pet_control/pet_element.h b/engines/titanic/pet_control/pet_element.h index 2d56b57c66..a53715ddb9 100644 --- a/engines/titanic/pet_control/pet_element.h +++ b/engines/titanic/pet_control/pet_element.h @@ -70,7 +70,7 @@ public: virtual void getBounds(Rect *rect); virtual bool proc6(const Common::Point &pt); - virtual bool handleMessage(CMouseButtonDownMsg &msg); + virtual bool MouseButtonDownMsg(CMouseButtonDownMsg *msg); /** * Returns whether the passed point falls inside the item diff --git a/engines/titanic/pet_control/pet_frame.cpp b/engines/titanic/pet_control/pet_frame.cpp index 6e3ff4f62c..1859b0d39f 100644 --- a/engines/titanic/pet_control/pet_frame.cpp +++ b/engines/titanic/pet_control/pet_frame.cpp @@ -63,9 +63,9 @@ bool CPetFrame::setup() { return true; } -bool CPetFrame::handleMessage(CMouseButtonDownMsg &msg) { +bool CPetFrame::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { for (int idx = 0; idx < 5; ++idx) { - if (_modeButtons[idx].handleMessage(msg)) { + if (_modeButtons[idx].MouseButtonDownMsg(msg)) { _petControl->setArea(PET_AREAS[idx]); resetArea(); _modeButtons[idx].setMode(MODE_SELECTED); diff --git a/engines/titanic/pet_control/pet_frame.h b/engines/titanic/pet_control/pet_frame.h index f26a2bf48e..ec8bd1e1d8 100644 --- a/engines/titanic/pet_control/pet_frame.h +++ b/engines/titanic/pet_control/pet_frame.h @@ -62,8 +62,8 @@ public: /** * Handles mouse down messages */ - virtual bool handleMessage(CMouseButtonDownMsg &msg); - virtual bool handleMessage(CMouseButtonUpMsg &msg) { return false; } + virtual bool MouseButtonDownMsg(CMouseButtonDownMsg *msg); + virtual bool MouseButtonUpMsg(CMouseButtonUpMsg *msg) { return false; } /** * Returns true if the object is in a valid state diff --git a/engines/titanic/pet_control/pet_section.h b/engines/titanic/pet_control/pet_section.h index 169f0c0e20..e20c03c3d5 100644 --- a/engines/titanic/pet_control/pet_section.h +++ b/engines/titanic/pet_control/pet_section.h @@ -80,14 +80,14 @@ public: * Following are handlers for the various messages that the PET can * pass onto the currently active section/area */ - virtual bool handleMessage(CMouseButtonDownMsg &msg) { return false; } - virtual bool handleMessage(CMouseDragStartMsg &msg) { return false; } - virtual bool handleMessage(CMouseDragMoveMsg &msg) { return false; } - virtual bool handleMessage(CMouseDragEndMsg &msg) { return false; } - virtual bool handleMessage(CMouseButtonUpMsg &msg) { return false; } - virtual bool handleMessage(CMouseDoubleClickMsg &msg) { return false; } - virtual bool handleMessage(CKeyCharMsg &msg) { return false; } - virtual bool handleMessage(CVirtualKeyCharMsg &msg) { return false; } + virtual bool MouseButtonDownMsg(CMouseButtonDownMsg *msg) { return false; } + virtual bool MouseDragStartMsg(CMouseDragStartMsg *msg) { return false; } + virtual bool MouseDragMoveMsg(CMouseDragMoveMsg *msg) { return false; } + virtual bool MouseDragEndMsg(CMouseDragEndMsg *msg) { return false; } + virtual bool MouseButtonUpMsg(CMouseButtonUpMsg *msg) { return false; } + virtual bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) { return false; } + virtual bool KeyCharMsg(CKeyCharMsg *msg) { return false; } + virtual bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg) { return false; } virtual int proc14() { return 0; } virtual int proc15() { return 0; } |