aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2016-04-07 00:13:22 -0400
committerPaul Gilbert2016-04-07 00:13:22 -0400
commitcdfd9f3703050a36e16455f4bf8c343b36dd4b39 (patch)
tree2562615bf1c4250e24f7d028f900b968bc0d58f2 /engines
parentbc7a7deb775568cdbe205e3f8c4f5ebd03e34141 (diff)
downloadscummvm-rg350-cdfd9f3703050a36e16455f4bf8c343b36dd4b39.tar.gz
scummvm-rg350-cdfd9f3703050a36e16455f4bf8c343b36dd4b39.tar.bz2
scummvm-rg350-cdfd9f3703050a36e16455f4bf8c343b36dd4b39.zip
TITANIC: Fix message map for CTelevision
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/game/television.cpp62
-rw-r--r--engines/titanic/game/television.h27
2 files changed, 53 insertions, 36 deletions
diff --git a/engines/titanic/game/television.cpp b/engines/titanic/game/television.cpp
index 610a3f0596..5585cfc429 100644
--- a/engines/titanic/game/television.cpp
+++ b/engines/titanic/game/television.cpp
@@ -25,6 +25,22 @@
namespace Titanic {
+BEGIN_MESSAGE_MAP(CTelevision, CGameObject)
+ ON_MESSAGE(LeaveViewMsg)
+ ON_MESSAGE(ChangeSeasonMsg)
+ ON_MESSAGE(EnterViewMsg)
+ ON_MESSAGE(PETUpMsg)
+ ON_MESSAGE(PETDownMsg)
+ ON_MESSAGE(StatusChangeMsg)
+ ON_MESSAGE(ActMsg)
+ ON_MESSAGE(PETActivateMsg)
+ ON_MESSAGE(MovieEndMsg)
+ ON_MESSAGE(ShipSettingMsg)
+ ON_MESSAGE(TurnOff)
+ ON_MESSAGE(TurnOn)
+ ON_MESSAGE(LightsMsg)
+END_MESSAGE_MAP()
+
int CTelevision::_v1;
bool CTelevision::_turnOn;
int CTelevision::_v3;
@@ -82,7 +98,7 @@ void CTelevision::load(SimpleFile *file) {
CBackground::load(file);
}
-bool CTelevision::handleMessage(CLeaveViewMsg &msg) {
+bool CTelevision::LeaveViewMsg(CLeaveViewMsg *msg) {
clearPet();
if (_isOn) {
if (soundFn1(_fieldF0))
@@ -102,17 +118,17 @@ bool CTelevision::handleMessage(CLeaveViewMsg &msg) {
return true;
}
-bool CTelevision::handleMessage(CChangeSeasonMsg &msg) {
- if (msg._season.compareTo("Autumn")) {
+bool CTelevision::ChangeSeasonMsg(CChangeSeasonMsg *msg) {
+ if (msg->_season.compareTo("Autumn")) {
_v1 = 545;
_v3 = 0;
- } else if (msg._season.compareTo("Winter")) {
+ } else if (msg->_season.compareTo("Winter")) {
_v1 = 503;
_v3 = 0;
- } else if (msg._season.compareTo("Spring")) {
+ } else if (msg->_season.compareTo("Spring")) {
_v1 = 517;
_v3 = 0;
- } else if (msg._season.compareTo("Winter")) {
+ } else if (msg->_season.compareTo("Winter")) {
_v1 = 531;
_v3 = 0;
}
@@ -120,7 +136,7 @@ bool CTelevision::handleMessage(CChangeSeasonMsg &msg) {
return true;
}
-bool CTelevision::handleMessage(CEnterViewMsg &msg) {
+bool CTelevision::EnterViewMsg(CEnterViewMsg *msg) {
setPetArea(PET_REMOTE);
petFn2(2);
petFn3(0);
@@ -133,8 +149,8 @@ bool CTelevision::handleMessage(CEnterViewMsg &msg) {
static const int FRAMES1[9] = { 0, 0, 56, 112, 168, 224, 280, 336, 392 };
static const int FRAMES2[8] = { 0, 55, 111, 167, 223, 279, 335, 391 };
-bool CTelevision::handleMessage(CPETUpMsg &msg) {
- if (msg._name == "Television" && _isOn) {
+bool CTelevision::PETUpMsg(CPETUpMsg *msg) {
+ if (msg->_name == "Television" && _isOn) {
if (soundFn1(_fieldF0))
soundFn2(_fieldF0, 0);
@@ -146,8 +162,8 @@ bool CTelevision::handleMessage(CPETUpMsg &msg) {
return true;
}
-bool CTelevision::handleMessage(CPETDownMsg &msg) {
- if (msg._name == "Television" && _isOn) {
+bool CTelevision::PETDownMsg(CPETDownMsg *msg) {
+ if (msg->_name == "Television" && _isOn) {
if (soundFn1(_fieldF0))
soundFn2(_fieldF0, 0);
if (--_fieldE0 < 1)
@@ -161,7 +177,7 @@ bool CTelevision::handleMessage(CPETDownMsg &msg) {
return true;
}
-bool CTelevision::handleMessage(CStatusChangeMsg &msg) {
+bool CTelevision::StatusChangeMsg(CStatusChangeMsg *msg) {
if (_isOn) {
stopMovie();
changeStatus(0);
@@ -170,8 +186,8 @@ bool CTelevision::handleMessage(CStatusChangeMsg &msg) {
return true;
}
-bool CTelevision::handleMessage(CActMsg &msg) {
- if (msg._action == "TurnTVOnOff") {
+bool CTelevision::ActMsg(CActMsg *msg) {
+ if (msg->_action == "TurnTVOnOff") {
_isOn = !_isOn;
if (_isOn) {
setVisible(true);
@@ -186,8 +202,8 @@ bool CTelevision::handleMessage(CActMsg &msg) {
return true;
}
-bool CTelevision::handleMessage(CPETActivateMsg &msg) {
- if (msg._name == "Television") {
+bool CTelevision::PETActivateMsg(CPETActivateMsg *msg) {
+ if (msg->_name == "Television") {
CVisibleMsg visibleMsg(_isOn);
_isOn = !_isOn;
@@ -210,32 +226,32 @@ bool CTelevision::handleMessage(CPETActivateMsg &msg) {
return true;
}
-bool CTelevision::handleMessage(CMovieEndMsg &msg) {
+bool CTelevision::MovieEndMsg(CMovieEndMsg *msg) {
warning("TODO: CMovieEndMsg");
return true;
}
-bool CTelevision::handleMessage(CShipSettingMsg &msg) {
- _v4 = msg._value;
+bool CTelevision::ShipSettingMsg(CShipSettingMsg *msg) {
+ _v4 = msg->_value;
return true;
}
-bool CTelevision::handleMessage(CTurnOff &msg) {
+bool CTelevision::TurnOff(CTurnOff *msg) {
_turnOn = false;
return true;
}
-bool CTelevision::handleMessage(CTurnOn &msg) {
+bool CTelevision::TurnOn(CTurnOn *msg) {
_turnOn = true;
return true;
}
-bool CTelevision::handleMessage(CLightsMsg &msg) {
+bool CTelevision::LightsMsg(CLightsMsg *msg) {
CPetControl *pet = getPetControl();
if (pet)
pet->fn4();
- if (msg._field8 || !_turnOn)
+ if (msg->_field8 || !_turnOn)
_turnOn = true;
return true;
diff --git a/engines/titanic/game/television.h b/engines/titanic/game/television.h
index 9fb33943c0..54e86636d0 100644
--- a/engines/titanic/game/television.h
+++ b/engines/titanic/game/television.h
@@ -30,6 +30,7 @@
namespace Titanic {
class CTelevision : public CBackground {
+ DECLARE_MESSAGE_MAP
private:
static int _v1;
static bool _turnOn;
@@ -44,19 +45,19 @@ private:
int _fieldEC;
int _fieldF0;
protected:
- virtual bool handleMessage(CLeaveViewMsg &msg);
- virtual bool handleMessage(CChangeSeasonMsg &msg);
- virtual bool handleMessage(CEnterViewMsg &msg);
- virtual bool handleMessage(CPETUpMsg &msg);
- virtual bool handleMessage(CPETDownMsg &msg);
- virtual bool handleMessage(CStatusChangeMsg &msg);
- virtual bool handleMessage(CActMsg &msg);
- virtual bool handleMessage(CPETActivateMsg &msg);
- virtual bool handleMessage(CMovieEndMsg &msg);
- virtual bool handleMessage(CShipSettingMsg &msg);
- virtual bool handleMessage(CTurnOff &msg);
- virtual bool handleMessage(CTurnOn &msg);
- virtual bool handleMessage(CLightsMsg &msg);
+ virtual bool LeaveViewMsg(CLeaveViewMsg *msg);
+ virtual bool ChangeSeasonMsg(CChangeSeasonMsg *msg);
+ virtual bool EnterViewMsg(CEnterViewMsg *msg);
+ virtual bool PETUpMsg(CPETUpMsg *msg);
+ virtual bool PETDownMsg(CPETDownMsg *msg);
+ virtual bool StatusChangeMsg(CStatusChangeMsg *msg);
+ virtual bool ActMsg(CActMsg *msg);
+ virtual bool PETActivateMsg(CPETActivateMsg *msg);
+ virtual bool MovieEndMsg(CMovieEndMsg *msg);
+ virtual bool ShipSettingMsg(CShipSettingMsg *msg);
+ virtual bool TurnOff(CTurnOff *msg);
+ virtual bool TurnOn(CTurnOn *msg);
+ virtual bool LightsMsg(CLightsMsg *msg);
public:
CLASSDEF
CTelevision();