aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/pet_control
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/pet_control')
-rw-r--r--engines/titanic/pet_control/pet_control.cpp60
-rw-r--r--engines/titanic/pet_control/pet_control.h30
-rw-r--r--engines/titanic/pet_control/pet_element.cpp4
-rw-r--r--engines/titanic/pet_control/pet_element.h2
-rw-r--r--engines/titanic/pet_control/pet_frame.cpp4
-rw-r--r--engines/titanic/pet_control/pet_frame.h4
-rw-r--r--engines/titanic/pet_control/pet_section.h16
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; }