diff options
author | Paul Gilbert | 2016-04-13 22:45:32 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-10 16:11:02 -0400 |
commit | 18a38c84e9ddeeb063621c290b8be6dce72daaf1 (patch) | |
tree | 22ee09d99c0a3634956a01782daf9a0828514e8c /engines/titanic/carry | |
parent | fdbb1868e4838248cc69302046c04700635beb55 (diff) | |
download | scummvm-rg350-18a38c84e9ddeeb063621c290b8be6dce72daaf1.tar.gz scummvm-rg350-18a38c84e9ddeeb063621c290b8be6dce72daaf1.tar.bz2 scummvm-rg350-18a38c84e9ddeeb063621c290b8be6dce72daaf1.zip |
TITANIC: Implementing CCarry classes msg handlers
Diffstat (limited to 'engines/titanic/carry')
-rw-r--r-- | engines/titanic/carry/chicken.h | 2 | ||||
-rw-r--r-- | engines/titanic/carry/napkin.cpp | 21 | ||||
-rw-r--r-- | engines/titanic/carry/napkin.h | 3 | ||||
-rw-r--r-- | engines/titanic/carry/note.cpp | 8 | ||||
-rw-r--r-- | engines/titanic/carry/note.h | 3 | ||||
-rw-r--r-- | engines/titanic/carry/parcel.cpp | 3 | ||||
-rw-r--r-- | engines/titanic/carry/parcel.h | 1 |
7 files changed, 40 insertions, 1 deletions
diff --git a/engines/titanic/carry/chicken.h b/engines/titanic/carry/chicken.h index a81c27c7e1..bbc46f8464 100644 --- a/engines/titanic/carry/chicken.h +++ b/engines/titanic/carry/chicken.h @@ -30,7 +30,7 @@ namespace Titanic { class CChicken : public CCarry { private: static int _v1; -private: +public: int _field12C; CString _string6; int _field13C; diff --git a/engines/titanic/carry/napkin.cpp b/engines/titanic/carry/napkin.cpp index 48d03819ee..c998c132fc 100644 --- a/engines/titanic/carry/napkin.cpp +++ b/engines/titanic/carry/napkin.cpp @@ -21,9 +21,14 @@ */ #include "titanic/carry/napkin.h" +#include "titanic/carry/chicken.h" namespace Titanic { +BEGIN_MESSAGE_MAP(CNapkin, CCarry) + ON_MESSAGE(UseWithOtherMsg) +END_MESSAGE_MAP() + CNapkin::CNapkin() : CCarry() { } @@ -37,4 +42,20 @@ void CNapkin::load(SimpleFile *file) { CCarry::load(file); } +bool CNapkin::UseWithOtherMsg(CUseWithOtherMsg *msg) { + CChicken *chicken = static_cast<CChicken *>(msg->_other); + if (chicken) { + if (chicken->_string6 == "None" || chicken->_field12C) { + CActMsg actMsg("Clean"); + actMsg.execute("Chicken"); + } else { + petDisplayMsg("The Chicken is already quite clean enough, thank you."); + } + } + + dropOnPet(); + return CCarry::UseWithOtherMsg(msg); +} + + } // End of namespace Titanic diff --git a/engines/titanic/carry/napkin.h b/engines/titanic/carry/napkin.h index 144189be5c..ac14b70efa 100644 --- a/engines/titanic/carry/napkin.h +++ b/engines/titanic/carry/napkin.h @@ -24,10 +24,13 @@ #define TITANIC_NAPKIN_H #include "titanic/carry/carry.h" +#include "titanic/messages/messages.h" namespace Titanic { class CNapkin : public CCarry { + DECLARE_MESSAGE_MAP + bool UseWithOtherMsg(CUseWithOtherMsg *msg); public: CLASSDEF CNapkin(); diff --git a/engines/titanic/carry/note.cpp b/engines/titanic/carry/note.cpp index e8400126ac..78286d71bd 100644 --- a/engines/titanic/carry/note.cpp +++ b/engines/titanic/carry/note.cpp @@ -24,6 +24,10 @@ namespace Titanic { +BEGIN_MESSAGE_MAP(CNote, CCarry) + ON_MESSAGE(MouseDoubleClickMsg) +END_MESSAGE_MAP() + CNote::CNote() : CCarry(), _field138(1) { } @@ -43,4 +47,8 @@ void CNote::load(SimpleFile *file) { CCarry::load(file); } +bool CNote::MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) { + return true; +} + } // End of namespace Titanic diff --git a/engines/titanic/carry/note.h b/engines/titanic/carry/note.h index b96e2cf855..22a95b0bd3 100644 --- a/engines/titanic/carry/note.h +++ b/engines/titanic/carry/note.h @@ -24,10 +24,13 @@ #define TITANIC_NOTE_H #include "titanic/carry/carry.h" +#include "titanic/messages/messages.h" namespace Titanic { class CNote : public CCarry { + DECLARE_MESSAGE_MAP + bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg); private: CString _string6; int _field138; diff --git a/engines/titanic/carry/parcel.cpp b/engines/titanic/carry/parcel.cpp index b450d887c5..275c982d63 100644 --- a/engines/titanic/carry/parcel.cpp +++ b/engines/titanic/carry/parcel.cpp @@ -24,6 +24,9 @@ namespace Titanic { +BEGIN_MESSAGE_MAP(CParcel, CCarry) +END_MESSAGE_MAP() + CParcel::CParcel() : CCarry() { } diff --git a/engines/titanic/carry/parcel.h b/engines/titanic/carry/parcel.h index 59f3ed9d6c..cb36bed23d 100644 --- a/engines/titanic/carry/parcel.h +++ b/engines/titanic/carry/parcel.h @@ -28,6 +28,7 @@ namespace Titanic { class CParcel : public CCarry { + DECLARE_MESSAGE_MAP public: CLASSDEF CParcel(); |