diff options
Diffstat (limited to 'engines/titanic')
131 files changed, 323 insertions, 60 deletions
diff --git a/engines/titanic/carry/brain.cpp b/engines/titanic/carry/brain.cpp index a60e652bda..1fe0c1b5d8 100644 --- a/engines/titanic/carry/brain.cpp +++ b/engines/titanic/carry/brain.cpp @@ -123,7 +123,7 @@ bool CBrain::PassOnDragStartMsg(CPassOnDragStartMsg *msg) { bool CBrain::PETGainedObjectMsg(CPETGainedObjectMsg *msg) { if (!_field138) { if (getName() == "Perch") { - incState38(); + stateInc38(); _field138 = 1; } } diff --git a/engines/titanic/carry/feathers.cpp b/engines/titanic/carry/feathers.cpp index a738d74249..e89f33564b 100644 --- a/engines/titanic/carry/feathers.cpp +++ b/engines/titanic/carry/feathers.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CFeathers, CCarry) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CFeathers, CCarry) CFeathers::CFeathers() : CCarry() { } diff --git a/engines/titanic/carry/hose_end.cpp b/engines/titanic/carry/hose_end.cpp index 97d75b0ac4..6f15d5be1b 100644 --- a/engines/titanic/carry/hose_end.cpp +++ b/engines/titanic/carry/hose_end.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CHoseEnd, CHose) + CHoseEnd::CHoseEnd() : CHose() { _string6 = "Connection refused by remote hose."; } diff --git a/engines/titanic/carry/hose_end.h b/engines/titanic/carry/hose_end.h index d9efb594bc..796191e12f 100644 --- a/engines/titanic/carry/hose_end.h +++ b/engines/titanic/carry/hose_end.h @@ -28,6 +28,7 @@ namespace Titanic { class CHoseEnd : public CHose { + DECLARE_MESSAGE_MAP public: CLASSDEF CHoseEnd(); diff --git a/engines/titanic/carry/parcel.cpp b/engines/titanic/carry/parcel.cpp index 275c982d63..d532bac92b 100644 --- a/engines/titanic/carry/parcel.cpp +++ b/engines/titanic/carry/parcel.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CParcel, CCarry) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CParcel, CCarry) CParcel::CParcel() : CCarry() { } diff --git a/engines/titanic/core/dont_save_file_item.cpp b/engines/titanic/core/dont_save_file_item.cpp index 389cef5a9c..00b7dd22ce 100644 --- a/engines/titanic/core/dont_save_file_item.cpp +++ b/engines/titanic/core/dont_save_file_item.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CDontSaveFileItem, CFileItem) + void CDontSaveFileItem::save(SimpleFile *file, int indent) const { file->writeNumberLine(0, indent); } diff --git a/engines/titanic/core/dont_save_file_item.h b/engines/titanic/core/dont_save_file_item.h index d4d5da2e4b..7517976825 100644 --- a/engines/titanic/core/dont_save_file_item.h +++ b/engines/titanic/core/dont_save_file_item.h @@ -28,6 +28,7 @@ namespace Titanic { class CDontSaveFileItem : public CFileItem { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/core/file_item.cpp b/engines/titanic/core/file_item.cpp index 0d3316dbf3..566f9104a9 100644 --- a/engines/titanic/core/file_item.cpp +++ b/engines/titanic/core/file_item.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CFileItem, CTreeItem) + void CFileItem::save(SimpleFile *file, int indent) const { file->writeNumberLine(0, indent); CTreeItem::save(file, indent); diff --git a/engines/titanic/core/file_item.h b/engines/titanic/core/file_item.h index 34ba0ae683..e8e4935de0 100644 --- a/engines/titanic/core/file_item.h +++ b/engines/titanic/core/file_item.h @@ -30,6 +30,7 @@ namespace Titanic { class CFileItem: public CTreeItem { + DECLARE_MESSAGE_MAP private: CString _filename; public: diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp index 66417ac630..d1f3a32493 100644 --- a/engines/titanic/core/game_object.cpp +++ b/engines/titanic/core/game_object.cpp @@ -35,8 +35,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CGameObject, CNamedItem) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CGameObject, CNamedItem) CCreditText *CGameObject::_credits; @@ -424,6 +423,10 @@ void CGameObject::soundFn5(int v1, int v2, int v3) { warning("CGameObject::soundFn5"); } +void CGameObject::sound8(bool flag) const { + getGameManager()->_sound.managerProc8(flag ? 3 : 0); +} + void CGameObject::setVisible(bool val) { if (val != _visible) { _visible = val; @@ -582,10 +585,6 @@ int CGameObject::getSurface45() const { return _surface ? _surface->proc45() : 0; } -void CGameObject::sound8(bool flag) const { - getGameManager()->_sound.managerProc8(flag ? 3 : 0); -} - void CGameObject::loadSound(const CString &name) { CGameManager *gameManager = getGameManager(); if (gameManager) { @@ -855,15 +854,11 @@ void CGameObject::moveToView(const CString &name) { view->addUnder(this); } -void CGameObject::incState38() { - getGameManager()->_gameState.inc38(); -} - void CGameObject::stateInc14() { getGameManager()->_gameState.inc14(); } -int CGameObject::stateGet14() { +int CGameObject::stateGet14() const { return getGameManager()->_gameState._field14; } @@ -871,10 +866,22 @@ void CGameObject::stateSet24() { getGameManager()->_gameState.set24(1); } -int CGameObject::stateGet24() { +int CGameObject::stateGet24() const { return getGameManager()->_gameState.get24(); } +void CGameObject::stateInc38() { + getGameManager()->_gameState.inc38(); +} + +int CGameObject::stateGet38() const { + return getGameManager()->_gameState._field38; +} + +void CGameObject::quitGame() { + getGameManager()->_gameState._quitGame = true; +} + void CGameObject::inc54() { getGameManager()->inc54(); } diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h index 145b81ee65..ade8800e5d 100644 --- a/engines/titanic/core/game_object.h +++ b/engines/titanic/core/game_object.h @@ -201,6 +201,8 @@ protected: void soundFn5(int v1, int v2, int v3); + void sound8(bool flag) const; + /** * Adds a timer */ @@ -287,8 +289,6 @@ protected: */ Point getControid() const; - void sound8(bool flag) const; - /** * Plays a movie */ @@ -440,11 +440,17 @@ protected: void petUnlockInput(); void setState1C(bool flag); - void incState38(); void stateInc14(); - int stateGet14(); + int stateGet14() const; void stateSet24(); - int stateGet24(); + int stateGet24() const; + void stateInc38(); + int stateGet38() const; + + /** + * Flag to quit the game + */ + void quitGame(); void surface39(int v1, int v2); diff --git a/engines/titanic/core/link_item.cpp b/engines/titanic/core/link_item.cpp index b172b9b4d0..a0460bd2c6 100644 --- a/engines/titanic/core/link_item.cpp +++ b/engines/titanic/core/link_item.cpp @@ -27,6 +27,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CLinkItem, CNamedItem) + CLinkItem::CLinkItem() : CNamedItem() { _roomNumber = -1; _nodeNumber = -1; diff --git a/engines/titanic/core/link_item.h b/engines/titanic/core/link_item.h index 25de74104b..9c376396f7 100644 --- a/engines/titanic/core/link_item.h +++ b/engines/titanic/core/link_item.h @@ -34,6 +34,7 @@ class CNodeItem; class CRoomItem; class CLinkItem : public CNamedItem { + DECLARE_MESSAGE_MAP private: /** * Returns a new name for the link item, based on the diff --git a/engines/titanic/core/message_target.h b/engines/titanic/core/message_target.h index 0f43bcd2c5..e5bdf3e08a 100644 --- a/engines/titanic/core/message_target.h +++ b/engines/titanic/core/message_target.h @@ -68,6 +68,21 @@ protected: \ return &messageMap; \ } +#define EMPTY_MESSAGE_MAP(theClass, baseClass) \ + const MSGMAP *theClass::getMessageMap() const \ + { return getThisMessageMap(); } \ + const MSGMAP *theClass::getThisMessageMap() \ + { \ + typedef theClass ThisClass; \ + typedef baseClass TheBaseClass; \ + static const MSGMAP_ENTRY _messageEntries[] = { \ + { (PMSG)nullptr, nullptr } \ + }; \ + static const MSGMAP messageMap = \ + { &TheBaseClass::getThisMessageMap, &_messageEntries[0] }; \ + return &messageMap; \ + } + class CMessageTarget: public CSaveableObject { DECLARE_MESSAGE_MAP public: diff --git a/engines/titanic/core/named_item.cpp b/engines/titanic/core/named_item.cpp index 72d3fd9f42..981627a280 100644 --- a/engines/titanic/core/named_item.cpp +++ b/engines/titanic/core/named_item.cpp @@ -27,8 +27,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CNamedItem, CTreeItem) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CNamedItem, CTreeItem) CString CNamedItem::dumpItem(int indent) const { CString result = CTreeItem::dumpItem(indent); diff --git a/engines/titanic/core/node_item.cpp b/engines/titanic/core/node_item.cpp index 6b7d6452cb..57acbdb3b8 100644 --- a/engines/titanic/core/node_item.cpp +++ b/engines/titanic/core/node_item.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CNodeItem, CNamedItem) + CNodeItem::CNodeItem() : CNamedItem(), _nodeNumber(0) { } diff --git a/engines/titanic/core/node_item.h b/engines/titanic/core/node_item.h index 32db1c1401..85003bf97c 100644 --- a/engines/titanic/core/node_item.h +++ b/engines/titanic/core/node_item.h @@ -28,6 +28,7 @@ namespace Titanic { class CNodeItem : public CNamedItem { + DECLARE_MESSAGE_MAP public: int _nodeNumber; Point _nodePos; diff --git a/engines/titanic/core/project_item.cpp b/engines/titanic/core/project_item.cpp index c6a5c2eb61..586301b9f4 100644 --- a/engines/titanic/core/project_item.cpp +++ b/engines/titanic/core/project_item.cpp @@ -41,6 +41,8 @@ namespace Titanic { static const char *const SAVEGAME_STR = "TNIC"; #define SAVEGAME_STR_SIZE 4 +EMPTY_MESSAGE_MAP(CProjectItem, CFileItem) + void CFileListItem::save(SimpleFile *file, int indent) const { file->writeNumberLine(0, indent); file->writeQuotedLine(_name, indent); diff --git a/engines/titanic/core/project_item.h b/engines/titanic/core/project_item.h index 213fa9d638..d0b8d77598 100644 --- a/engines/titanic/core/project_item.h +++ b/engines/titanic/core/project_item.h @@ -73,11 +73,10 @@ public: * Filename list */ class CFileList: public List<CFileListItem> { -public: }; - class CProjectItem : public CFileItem { + DECLARE_MESSAGE_MAP private: CString _filename; CFileList _files; diff --git a/engines/titanic/core/room_item.cpp b/engines/titanic/core/room_item.cpp index e33d0c41dd..b3a3fe41cc 100644 --- a/engines/titanic/core/room_item.cpp +++ b/engines/titanic/core/room_item.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CRoomItem, CNamedItem) + CRoomItem::CRoomItem() : CNamedItem(), _roomNumber(0), _roomDimensionX(0.0), _roomDimensionY(0.0) { } diff --git a/engines/titanic/core/room_item.h b/engines/titanic/core/room_item.h index 4692318419..f44a525b60 100644 --- a/engines/titanic/core/room_item.h +++ b/engines/titanic/core/room_item.h @@ -32,6 +32,7 @@ namespace Titanic { class CRoomItem : public CNamedItem { + DECLARE_MESSAGE_MAP private: /** * Handles post-load processing diff --git a/engines/titanic/core/static_image.cpp b/engines/titanic/core/static_image.cpp index 54a041fff5..cc8e1ddc1a 100644 --- a/engines/titanic/core/static_image.cpp +++ b/engines/titanic/core/static_image.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CStaticImage, CGameObject) + void CStaticImage::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CGameObject::save(file, indent); diff --git a/engines/titanic/core/static_image.h b/engines/titanic/core/static_image.h index 2b0a3ad071..953cf4d6bf 100644 --- a/engines/titanic/core/static_image.h +++ b/engines/titanic/core/static_image.h @@ -28,6 +28,7 @@ namespace Titanic { class CStaticImage : public CGameObject { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/core/tree_item.cpp b/engines/titanic/core/tree_item.cpp index 190dc997e7..21496ee8a5 100644 --- a/engines/titanic/core/tree_item.cpp +++ b/engines/titanic/core/tree_item.cpp @@ -38,8 +38,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CTreeItem, CMessageTarget) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CTreeItem, CMessageTarget) CTreeItem::CTreeItem() : _parent(nullptr), _firstChild(nullptr), _nextSibling(nullptr), _priorSibling(nullptr), _field14(0) { diff --git a/engines/titanic/game/arb_background.cpp b/engines/titanic/game/arb_background.cpp index 54e9c17e3c..07558157f0 100644 --- a/engines/titanic/game/arb_background.cpp +++ b/engines/titanic/game/arb_background.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CArbBackground, CBackground) + CArbBackground::CArbBackground() : CBackground(), _fieldE0(0), _fieldE4(61), _fieldE8(62), _fieldEC(118) { } diff --git a/engines/titanic/game/arb_background.h b/engines/titanic/game/arb_background.h index 50a9075750..a5850afc0f 100644 --- a/engines/titanic/game/arb_background.h +++ b/engines/titanic/game/arb_background.h @@ -28,6 +28,7 @@ namespace Titanic { class CArbBackground : public CBackground { + DECLARE_MESSAGE_MAP public: int _fieldE0; int _fieldE4; diff --git a/engines/titanic/game/broken_pell_base.cpp b/engines/titanic/game/broken_pell_base.cpp index 2d11e544e2..8b8e0b9db5 100644 --- a/engines/titanic/game/broken_pell_base.cpp +++ b/engines/titanic/game/broken_pell_base.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CBrokenPellBase, CBackground) + int CBrokenPellBase::_v1; int CBrokenPellBase::_v2; diff --git a/engines/titanic/game/broken_pell_base.h b/engines/titanic/game/broken_pell_base.h index 46e7a70581..45b6594301 100644 --- a/engines/titanic/game/broken_pell_base.h +++ b/engines/titanic/game/broken_pell_base.h @@ -28,6 +28,7 @@ namespace Titanic { class CBrokenPellBase : public CBackground { + DECLARE_MESSAGE_MAP private: static int _v1; static int _v2; diff --git a/engines/titanic/game/leave_sec_class_state.cpp b/engines/titanic/game/leave_sec_class_state.cpp index cbeb872dc8..922bd98c70 100644 --- a/engines/titanic/game/leave_sec_class_state.cpp +++ b/engines/titanic/game/leave_sec_class_state.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CLeaveSecClassState, CGameObject) + void CLeaveSecClassState::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CGameObject::save(file, indent); diff --git a/engines/titanic/game/leave_sec_class_state.h b/engines/titanic/game/leave_sec_class_state.h index 34ba31b6c0..5f77436ed1 100644 --- a/engines/titanic/game/leave_sec_class_state.h +++ b/engines/titanic/game/leave_sec_class_state.h @@ -28,6 +28,7 @@ namespace Titanic { class CLeaveSecClassState : public CGameObject { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/game/music_room_phonograph.cpp b/engines/titanic/game/music_room_phonograph.cpp index 7fa30f5dcf..c08b23006f 100644 --- a/engines/titanic/game/music_room_phonograph.cpp +++ b/engines/titanic/game/music_room_phonograph.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CMusicRoomPhonograph, CRestaurantPhonograph) + void CMusicRoomPhonograph::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); file->writeNumberLine(_field118, indent); diff --git a/engines/titanic/game/music_room_phonograph.h b/engines/titanic/game/music_room_phonograph.h index 6660503616..cad59f35b3 100644 --- a/engines/titanic/game/music_room_phonograph.h +++ b/engines/titanic/game/music_room_phonograph.h @@ -28,6 +28,7 @@ namespace Titanic { class CMusicRoomPhonograph : public CRestaurantPhonograph { + DECLARE_MESSAGE_MAP private: int _field118; public: diff --git a/engines/titanic/game/musical_instrument.cpp b/engines/titanic/game/musical_instrument.cpp index 6695104aba..6480f9f8d1 100644 --- a/engines/titanic/game/musical_instrument.cpp +++ b/engines/titanic/game/musical_instrument.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CMusicalInstrument, CBackground) + void CMusicalInstrument::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CBackground::save(file, indent); diff --git a/engines/titanic/game/musical_instrument.h b/engines/titanic/game/musical_instrument.h index b4abe4fdb2..5bc7446f13 100644 --- a/engines/titanic/game/musical_instrument.h +++ b/engines/titanic/game/musical_instrument.h @@ -28,6 +28,7 @@ namespace Titanic { class CMusicalInstrument : public CBackground { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/game/navigation_computer.cpp b/engines/titanic/game/navigation_computer.cpp index be2f189083..7e04f848fc 100644 --- a/engines/titanic/game/navigation_computer.cpp +++ b/engines/titanic/game/navigation_computer.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CNavigationComputer, CGameObject) + void CNavigationComputer::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CGameObject::save(file, indent); diff --git a/engines/titanic/game/navigation_computer.h b/engines/titanic/game/navigation_computer.h index a7077f7dcd..5315c882cf 100644 --- a/engines/titanic/game/navigation_computer.h +++ b/engines/titanic/game/navigation_computer.h @@ -28,6 +28,7 @@ namespace Titanic { class CNavigationComputer : public CGameObject { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/game/null_port_hole.cpp b/engines/titanic/game/null_port_hole.cpp index c437dfea10..93dd7eb64e 100644 --- a/engines/titanic/game/null_port_hole.cpp +++ b/engines/titanic/game/null_port_hole.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CNullPortHole, CClickResponder) + CNullPortHole::CNullPortHole() : CClickResponder() { _string1 = "For a better view, why not visit the Promenade Deck?"; _string2 = "b#48.wav"; diff --git a/engines/titanic/game/null_port_hole.h b/engines/titanic/game/null_port_hole.h index fb07462ea8..be335ef47c 100644 --- a/engines/titanic/game/null_port_hole.h +++ b/engines/titanic/game/null_port_hole.h @@ -28,6 +28,7 @@ namespace Titanic { class CNullPortHole : public CClickResponder { + DECLARE_MESSAGE_MAP public: CLASSDEF CNullPortHole(); diff --git a/engines/titanic/game/parrot/parrot_lobby_object.cpp b/engines/titanic/game/parrot/parrot_lobby_object.cpp index 137f3e2ff9..8090a1d46c 100644 --- a/engines/titanic/game/parrot/parrot_lobby_object.cpp +++ b/engines/titanic/game/parrot/parrot_lobby_object.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CParrotLobbyObject, CGameObject) + int CParrotLobbyObject::_v1; int CParrotLobbyObject::_v2; int CParrotLobbyObject::_v3; diff --git a/engines/titanic/game/parrot/parrot_lobby_object.h b/engines/titanic/game/parrot/parrot_lobby_object.h index 9cc979cd26..5b53276eb0 100644 --- a/engines/titanic/game/parrot/parrot_lobby_object.h +++ b/engines/titanic/game/parrot/parrot_lobby_object.h @@ -28,6 +28,7 @@ namespace Titanic { class CParrotLobbyObject : public CGameObject { + DECLARE_MESSAGE_MAP public: static int _v1; static int _v2; diff --git a/engines/titanic/game/pet/pet_class1.cpp b/engines/titanic/game/pet/pet_class1.cpp index 4bd25560fb..b0407ef6e5 100644 --- a/engines/titanic/game/pet/pet_class1.cpp +++ b/engines/titanic/game/pet/pet_class1.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CPETClass1, CGameObject) + void CPETClass1::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CGameObject::save(file, indent); diff --git a/engines/titanic/game/pet/pet_class1.h b/engines/titanic/game/pet/pet_class1.h index 12dfb322b2..e22b2148b5 100644 --- a/engines/titanic/game/pet/pet_class1.h +++ b/engines/titanic/game/pet/pet_class1.h @@ -28,6 +28,7 @@ namespace Titanic { class CPETClass1 : public CGameObject { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/game/pet/pet_class2.cpp b/engines/titanic/game/pet/pet_class2.cpp index 8399468489..8809f84214 100644 --- a/engines/titanic/game/pet/pet_class2.cpp +++ b/engines/titanic/game/pet/pet_class2.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CPETClass2, CGameObject) + void CPETClass2::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CGameObject::save(file, indent); diff --git a/engines/titanic/game/pet/pet_class2.h b/engines/titanic/game/pet/pet_class2.h index 5b96118c7c..529f9534e2 100644 --- a/engines/titanic/game/pet/pet_class2.h +++ b/engines/titanic/game/pet/pet_class2.h @@ -28,6 +28,7 @@ namespace Titanic { class CPETClass2 : public CGameObject { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/game/pet/pet_class3.cpp b/engines/titanic/game/pet/pet_class3.cpp index 96ce66461f..81ddf8adf8 100644 --- a/engines/titanic/game/pet/pet_class3.cpp +++ b/engines/titanic/game/pet/pet_class3.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CPETClass3, CGameObject) + void CPETClass3::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CGameObject::save(file, indent); diff --git a/engines/titanic/game/pet/pet_class3.h b/engines/titanic/game/pet/pet_class3.h index d68cb098ec..d34c9d335e 100644 --- a/engines/titanic/game/pet/pet_class3.h +++ b/engines/titanic/game/pet/pet_class3.h @@ -28,6 +28,7 @@ namespace Titanic { class CPETClass3 : public CGameObject { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/game/splash_animation.cpp b/engines/titanic/game/splash_animation.cpp index 16cf067629..3d35929e2d 100644 --- a/engines/titanic/game/splash_animation.cpp +++ b/engines/titanic/game/splash_animation.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CSplashAnimation, CGameObject) + void CSplashAnimation::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CGameObject::save(file, indent); diff --git a/engines/titanic/game/splash_animation.h b/engines/titanic/game/splash_animation.h index 2f4056231b..9b6322e175 100644 --- a/engines/titanic/game/splash_animation.h +++ b/engines/titanic/game/splash_animation.h @@ -28,6 +28,7 @@ namespace Titanic { class CSplashAnimation : public CGameObject { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/game/transport/transport.cpp b/engines/titanic/game/transport/transport.cpp index ef31a07367..e00375975b 100644 --- a/engines/titanic/game/transport/transport.cpp +++ b/engines/titanic/game/transport/transport.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CTransport, CMobile) + CTransport::CTransport() : CMobile(), _string1("*.*.*") { } diff --git a/engines/titanic/game/transport/transport.h b/engines/titanic/game/transport/transport.h index faa00b4dd9..b7540add0e 100644 --- a/engines/titanic/game/transport/transport.h +++ b/engines/titanic/game/transport/transport.h @@ -28,6 +28,7 @@ namespace Titanic { class CTransport : public CMobile { + DECLARE_MESSAGE_MAP public: CString _string1; CString _string2; diff --git a/engines/titanic/gfx/chev_left_off.cpp b/engines/titanic/gfx/chev_left_off.cpp index 736cc0d6c4..0ce2d62af3 100644 --- a/engines/titanic/gfx/chev_left_off.cpp +++ b/engines/titanic/gfx/chev_left_off.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CChevLeftOff, CToggleSwitch) + CChevLeftOff::CChevLeftOff() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/chev_left_off.h b/engines/titanic/gfx/chev_left_off.h index 753aba3be0..36a9d2c3ad 100644 --- a/engines/titanic/gfx/chev_left_off.h +++ b/engines/titanic/gfx/chev_left_off.h @@ -28,6 +28,7 @@ namespace Titanic { class CChevLeftOff : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CChevLeftOff(); diff --git a/engines/titanic/gfx/chev_left_on.cpp b/engines/titanic/gfx/chev_left_on.cpp index f233c53a43..c3264b794b 100644 --- a/engines/titanic/gfx/chev_left_on.cpp +++ b/engines/titanic/gfx/chev_left_on.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CChevLeftOn, CToggleSwitch) + CChevLeftOn::CChevLeftOn() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/chev_left_on.h b/engines/titanic/gfx/chev_left_on.h index 99126d792c..0de814bfcc 100644 --- a/engines/titanic/gfx/chev_left_on.h +++ b/engines/titanic/gfx/chev_left_on.h @@ -28,6 +28,7 @@ namespace Titanic { class CChevLeftOn : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CChevLeftOn(); diff --git a/engines/titanic/gfx/chev_right_off.cpp b/engines/titanic/gfx/chev_right_off.cpp index 7cf3b11d19..60ed2de30c 100644 --- a/engines/titanic/gfx/chev_right_off.cpp +++ b/engines/titanic/gfx/chev_right_off.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CChevRightOff, CToggleSwitch) + CChevRightOff::CChevRightOff() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/chev_right_off.h b/engines/titanic/gfx/chev_right_off.h index 1a31007f19..3714c2b386 100644 --- a/engines/titanic/gfx/chev_right_off.h +++ b/engines/titanic/gfx/chev_right_off.h @@ -28,6 +28,7 @@ namespace Titanic { class CChevRightOff : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CChevRightOff(); diff --git a/engines/titanic/gfx/chev_right_on.cpp b/engines/titanic/gfx/chev_right_on.cpp index 848abfc005..ac55100ed6 100644 --- a/engines/titanic/gfx/chev_right_on.cpp +++ b/engines/titanic/gfx/chev_right_on.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CChevRightOn, CToggleSwitch) + CChevRightOn::CChevRightOn() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/chev_right_on.h b/engines/titanic/gfx/chev_right_on.h index 084b02ea08..d72c34a895 100644 --- a/engines/titanic/gfx/chev_right_on.h +++ b/engines/titanic/gfx/chev_right_on.h @@ -28,6 +28,7 @@ namespace Titanic { class CChevRightOn : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CChevRightOn(); diff --git a/engines/titanic/gfx/chev_send_rec_switch.cpp b/engines/titanic/gfx/chev_send_rec_switch.cpp index affe9bce8f..d0d4a819a3 100644 --- a/engines/titanic/gfx/chev_send_rec_switch.cpp +++ b/engines/titanic/gfx/chev_send_rec_switch.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CChevSendRecSwitch, CToggleSwitch) + CChevSendRecSwitch::CChevSendRecSwitch() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/chev_send_rec_switch.h b/engines/titanic/gfx/chev_send_rec_switch.h index 29d6e7ab82..2f51bae259 100644 --- a/engines/titanic/gfx/chev_send_rec_switch.h +++ b/engines/titanic/gfx/chev_send_rec_switch.h @@ -28,6 +28,7 @@ namespace Titanic { class CChevSendRecSwitch : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CChevSendRecSwitch(); diff --git a/engines/titanic/gfx/elevator_button.cpp b/engines/titanic/gfx/elevator_button.cpp index 81c9598b03..2a599ca491 100644 --- a/engines/titanic/gfx/elevator_button.cpp +++ b/engines/titanic/gfx/elevator_button.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CElevatorButton, CSTButton) + CElevatorButton::CElevatorButton() : CSTButton() { } diff --git a/engines/titanic/gfx/elevator_button.h b/engines/titanic/gfx/elevator_button.h index dddb7077b3..d6bf5dc3d6 100644 --- a/engines/titanic/gfx/elevator_button.h +++ b/engines/titanic/gfx/elevator_button.h @@ -28,6 +28,7 @@ namespace Titanic { class CElevatorButton : public CSTButton { + DECLARE_MESSAGE_MAP public: CLASSDEF CElevatorButton(); diff --git a/engines/titanic/gfx/get_from_succ.cpp b/engines/titanic/gfx/get_from_succ.cpp index ad7b5dc2e8..c7a59fd97d 100644 --- a/engines/titanic/gfx/get_from_succ.cpp +++ b/engines/titanic/gfx/get_from_succ.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CGetFromSucc, CToggleSwitch) + CGetFromSucc::CGetFromSucc() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/get_from_succ.h b/engines/titanic/gfx/get_from_succ.h index f0b028afa0..dc611f140f 100644 --- a/engines/titanic/gfx/get_from_succ.h +++ b/engines/titanic/gfx/get_from_succ.h @@ -28,6 +28,7 @@ namespace Titanic { class CGetFromSucc : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CGetFromSucc(); diff --git a/engines/titanic/gfx/helmet_on_off.cpp b/engines/titanic/gfx/helmet_on_off.cpp index e1c698932e..29131778cb 100644 --- a/engines/titanic/gfx/helmet_on_off.cpp +++ b/engines/titanic/gfx/helmet_on_off.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CHelmetOnOff, CToggleSwitch) + CHelmetOnOff::CHelmetOnOff() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/helmet_on_off.h b/engines/titanic/gfx/helmet_on_off.h index 41621f340e..f607b47c0c 100644 --- a/engines/titanic/gfx/helmet_on_off.h +++ b/engines/titanic/gfx/helmet_on_off.h @@ -28,6 +28,7 @@ namespace Titanic { class CHelmetOnOff : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CHelmetOnOff(); diff --git a/engines/titanic/gfx/home_photo.cpp b/engines/titanic/gfx/home_photo.cpp index 48661fc70d..303e56d1ca 100644 --- a/engines/titanic/gfx/home_photo.cpp +++ b/engines/titanic/gfx/home_photo.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CHomePhoto, CToggleSwitch) + CHomePhoto::CHomePhoto() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/home_photo.h b/engines/titanic/gfx/home_photo.h index 6e6f4976a2..db0be89a77 100644 --- a/engines/titanic/gfx/home_photo.h +++ b/engines/titanic/gfx/home_photo.h @@ -28,6 +28,7 @@ namespace Titanic { class CHomePhoto : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CHomePhoto(); diff --git a/engines/titanic/gfx/icon_nav_action.cpp b/engines/titanic/gfx/icon_nav_action.cpp index f8aaa72396..e66c345bf5 100644 --- a/engines/titanic/gfx/icon_nav_action.cpp +++ b/engines/titanic/gfx/icon_nav_action.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavAction, CToggleSwitch) + CIconNavAction::CIconNavAction() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/icon_nav_action.h b/engines/titanic/gfx/icon_nav_action.h index cb8fae932a..189ea357e4 100644 --- a/engines/titanic/gfx/icon_nav_action.h +++ b/engines/titanic/gfx/icon_nav_action.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavAction : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CIconNavAction(); diff --git a/engines/titanic/gfx/icon_nav_butt.cpp b/engines/titanic/gfx/icon_nav_butt.cpp index 85eb1304c2..820a4270d4 100644 --- a/engines/titanic/gfx/icon_nav_butt.cpp +++ b/engines/titanic/gfx/icon_nav_butt.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavButt, CPetGraphic) + void CIconNavButt::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CPetGraphic::save(file, indent); diff --git a/engines/titanic/gfx/icon_nav_butt.h b/engines/titanic/gfx/icon_nav_butt.h index b2db4c7794..0cb2f1a3b1 100644 --- a/engines/titanic/gfx/icon_nav_butt.h +++ b/engines/titanic/gfx/icon_nav_butt.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavButt : public CPetGraphic { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/gfx/icon_nav_down.cpp b/engines/titanic/gfx/icon_nav_down.cpp index 947aa4c4f0..78727a3e8b 100644 --- a/engines/titanic/gfx/icon_nav_down.cpp +++ b/engines/titanic/gfx/icon_nav_down.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavDown, CToggleSwitch) + CIconNavDown::CIconNavDown() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/icon_nav_down.h b/engines/titanic/gfx/icon_nav_down.h index b7759e059d..3eef9ef7f1 100644 --- a/engines/titanic/gfx/icon_nav_down.h +++ b/engines/titanic/gfx/icon_nav_down.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavDown : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CIconNavDown(); diff --git a/engines/titanic/gfx/icon_nav_image.cpp b/engines/titanic/gfx/icon_nav_image.cpp index 1e8a1ca2c3..d0c6239dcd 100644 --- a/engines/titanic/gfx/icon_nav_image.cpp +++ b/engines/titanic/gfx/icon_nav_image.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavImage, CPetGraphic) + void CIconNavImage::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CPetGraphic::save(file, indent); diff --git a/engines/titanic/gfx/icon_nav_image.h b/engines/titanic/gfx/icon_nav_image.h index 295ffe7d3b..8460733a12 100644 --- a/engines/titanic/gfx/icon_nav_image.h +++ b/engines/titanic/gfx/icon_nav_image.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavImage : public CPetGraphic { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/gfx/icon_nav_left.cpp b/engines/titanic/gfx/icon_nav_left.cpp index 5ec50904d2..803818f19f 100644 --- a/engines/titanic/gfx/icon_nav_left.cpp +++ b/engines/titanic/gfx/icon_nav_left.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavLeft, CToggleSwitch) + CIconNavLeft::CIconNavLeft() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/icon_nav_left.h b/engines/titanic/gfx/icon_nav_left.h index e507d2c2dd..5fd7b65a83 100644 --- a/engines/titanic/gfx/icon_nav_left.h +++ b/engines/titanic/gfx/icon_nav_left.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavLeft : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CIconNavLeft(); diff --git a/engines/titanic/gfx/icon_nav_receive.cpp b/engines/titanic/gfx/icon_nav_receive.cpp index ad7e0e7160..554656cf0a 100644 --- a/engines/titanic/gfx/icon_nav_receive.cpp +++ b/engines/titanic/gfx/icon_nav_receive.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavReceive, CPetGraphic) + void CIconNavReceive::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CPetGraphic::save(file, indent); diff --git a/engines/titanic/gfx/icon_nav_receive.h b/engines/titanic/gfx/icon_nav_receive.h index 36eed5376b..f181439289 100644 --- a/engines/titanic/gfx/icon_nav_receive.h +++ b/engines/titanic/gfx/icon_nav_receive.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavReceive : public CPetGraphic { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/gfx/icon_nav_right.cpp b/engines/titanic/gfx/icon_nav_right.cpp index d133ed3b81..1553c9127c 100644 --- a/engines/titanic/gfx/icon_nav_right.cpp +++ b/engines/titanic/gfx/icon_nav_right.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavRight, CToggleSwitch) + CIconNavRight::CIconNavRight() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/icon_nav_right.h b/engines/titanic/gfx/icon_nav_right.h index db3bab4bb8..c088a2334a 100644 --- a/engines/titanic/gfx/icon_nav_right.h +++ b/engines/titanic/gfx/icon_nav_right.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavRight : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CIconNavRight(); diff --git a/engines/titanic/gfx/icon_nav_send.cpp b/engines/titanic/gfx/icon_nav_send.cpp index 856560c175..64d2a8660e 100644 --- a/engines/titanic/gfx/icon_nav_send.cpp +++ b/engines/titanic/gfx/icon_nav_send.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavSend, CPetGraphic) + void CIconNavSend::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CPetGraphic::save(file, indent); diff --git a/engines/titanic/gfx/icon_nav_send.h b/engines/titanic/gfx/icon_nav_send.h index d25d0b9149..41c747edad 100644 --- a/engines/titanic/gfx/icon_nav_send.h +++ b/engines/titanic/gfx/icon_nav_send.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavSend : public CPetGraphic { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/gfx/icon_nav_up.cpp b/engines/titanic/gfx/icon_nav_up.cpp index 5b5d5ec9f0..a8f4f552b5 100644 --- a/engines/titanic/gfx/icon_nav_up.cpp +++ b/engines/titanic/gfx/icon_nav_up.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CIconNavUp, CToggleSwitch) + CIconNavUp::CIconNavUp() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/icon_nav_up.h b/engines/titanic/gfx/icon_nav_up.h index 7eeeb773b1..691e6652e7 100644 --- a/engines/titanic/gfx/icon_nav_up.h +++ b/engines/titanic/gfx/icon_nav_up.h @@ -28,6 +28,7 @@ namespace Titanic { class CIconNavUp : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CIconNavUp(); diff --git a/engines/titanic/gfx/keybrd_butt.cpp b/engines/titanic/gfx/keybrd_butt.cpp index 3e7f5c19de..4a18d99f0a 100644 --- a/engines/titanic/gfx/keybrd_butt.cpp +++ b/engines/titanic/gfx/keybrd_butt.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CKeybrdButt, CToggleSwitch) + CKeybrdButt::CKeybrdButt() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/keybrd_butt.h b/engines/titanic/gfx/keybrd_butt.h index a4f233b209..33ff418c56 100644 --- a/engines/titanic/gfx/keybrd_butt.h +++ b/engines/titanic/gfx/keybrd_butt.h @@ -28,6 +28,7 @@ namespace Titanic { class CKeybrdButt : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CKeybrdButt(); diff --git a/engines/titanic/gfx/music_slider.cpp b/engines/titanic/gfx/music_slider.cpp new file mode 100644 index 0000000000..f065ae6729 --- /dev/null +++ b/engines/titanic/gfx/music_slider.cpp @@ -0,0 +1,39 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "titanic/gfx/music_slider.h" + +namespace Titanic { + +EMPTY_MESSAGE_MAP(CMusicSlider, CMusicControl) + +void CMusicSlider::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CMusicControl::save(file, indent); +} + +void CMusicSlider::load(SimpleFile *file) { + file->readNumber(); + CMusicControl::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/gfx/music_slider.h b/engines/titanic/gfx/music_slider.h index 3fd0ab341e..b396074b00 100644 --- a/engines/titanic/gfx/music_slider.h +++ b/engines/titanic/gfx/music_slider.h @@ -28,24 +28,19 @@ namespace Titanic { class CMusicSlider : public CMusicControl { + DECLARE_MESSAGE_MAP public: CLASSDEF /** * Save the data for the class to file */ - virtual void save(SimpleFile *file, int indent) const { - file->writeNumberLine(1, indent); - CMusicControl::save(file, indent); - } + virtual void save(SimpleFile *file, int indent) const; /** * Load the data for the class from file */ - virtual void load(SimpleFile *file) { - file->readNumber(); - CMusicControl::load(file); - } + virtual void load(SimpleFile *file); }; } // End of namespace Titanic diff --git a/engines/titanic/gfx/music_switch.cpp b/engines/titanic/gfx/music_switch.cpp new file mode 100644 index 0000000000..69e8f2eb4c --- /dev/null +++ b/engines/titanic/gfx/music_switch.cpp @@ -0,0 +1,39 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "titanic/gfx/music_switch.h" + +namespace Titanic { + +EMPTY_MESSAGE_MAP(CMusicSwitch, CMusicControl) + +void CMusicSwitch::save(SimpleFile *file, int indent) const { + file->writeNumberLine(1, indent); + CMusicControl::save(file, indent); +} + +void CMusicSwitch::load(SimpleFile *file) { + file->readNumber(); + CMusicControl::load(file); +} + +} // End of namespace Titanic diff --git a/engines/titanic/gfx/music_switch.h b/engines/titanic/gfx/music_switch.h index 534eb251de..bd9397e041 100644 --- a/engines/titanic/gfx/music_switch.h +++ b/engines/titanic/gfx/music_switch.h @@ -28,24 +28,19 @@ namespace Titanic { class CMusicSwitch : public CMusicControl { + DECLARE_MESSAGE_MAP public: CLASSDEF /** * Save the data for the class to file */ - virtual void save(SimpleFile *file, int indent) const { - file->writeNumberLine(1, indent); - CMusicControl::save(file, indent); - } + virtual void save(SimpleFile *file, int indent) const; /** * Load the data for the class from file */ - virtual void load(SimpleFile *file) { - file->readNumber(); - CMusicControl::load(file); - } + virtual void load(SimpleFile *file); }; } // End of namespace Titanic diff --git a/engines/titanic/gfx/send_to_succ.cpp b/engines/titanic/gfx/send_to_succ.cpp index 82c923c045..938fa7c3a9 100644 --- a/engines/titanic/gfx/send_to_succ.cpp +++ b/engines/titanic/gfx/send_to_succ.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CSendToSucc, CToggleSwitch) + CSendToSucc::CSendToSucc() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/send_to_succ.h b/engines/titanic/gfx/send_to_succ.h index fb237f206d..65868cd83d 100644 --- a/engines/titanic/gfx/send_to_succ.h +++ b/engines/titanic/gfx/send_to_succ.h @@ -28,6 +28,7 @@ namespace Titanic { class CSendToSucc : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CSendToSucc(); diff --git a/engines/titanic/gfx/sgt_selector.cpp b/engines/titanic/gfx/sgt_selector.cpp index 7ad126b60a..170b0f4712 100644 --- a/engines/titanic/gfx/sgt_selector.cpp +++ b/engines/titanic/gfx/sgt_selector.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CSGTSelector, CPetGraphic) + void CSGTSelector::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CPetGraphic::save(file, indent); diff --git a/engines/titanic/gfx/sgt_selector.h b/engines/titanic/gfx/sgt_selector.h index 8ebd7ae255..82757fa3b9 100644 --- a/engines/titanic/gfx/sgt_selector.h +++ b/engines/titanic/gfx/sgt_selector.h @@ -28,6 +28,7 @@ namespace Titanic { class CSGTSelector : public CPetGraphic { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/gfx/small_chev_left_off.cpp b/engines/titanic/gfx/small_chev_left_off.cpp index 8614e336e1..8647ad8fe4 100644 --- a/engines/titanic/gfx/small_chev_left_off.cpp +++ b/engines/titanic/gfx/small_chev_left_off.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CSmallChevLeftOff, CToggleSwitch) + CSmallChevLeftOff::CSmallChevLeftOff() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/small_chev_left_off.h b/engines/titanic/gfx/small_chev_left_off.h index fc500cee69..27c40017ad 100644 --- a/engines/titanic/gfx/small_chev_left_off.h +++ b/engines/titanic/gfx/small_chev_left_off.h @@ -28,6 +28,7 @@ namespace Titanic { class CSmallChevLeftOff : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CSmallChevLeftOff(); diff --git a/engines/titanic/gfx/small_chev_left_on.cpp b/engines/titanic/gfx/small_chev_left_on.cpp index 7f6a4ee3db..b5031e922e 100644 --- a/engines/titanic/gfx/small_chev_left_on.cpp +++ b/engines/titanic/gfx/small_chev_left_on.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CSmallChevLeftOn, CToggleSwitch) + CSmallChevLeftOn::CSmallChevLeftOn() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/small_chev_left_on.h b/engines/titanic/gfx/small_chev_left_on.h index 8ab9417468..7b60857e67 100644 --- a/engines/titanic/gfx/small_chev_left_on.h +++ b/engines/titanic/gfx/small_chev_left_on.h @@ -28,6 +28,7 @@ namespace Titanic { class CSmallChevLeftOn : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CSmallChevLeftOn(); diff --git a/engines/titanic/gfx/small_chev_right_off.cpp b/engines/titanic/gfx/small_chev_right_off.cpp index 1a3051bb4d..6d0c08eb8e 100644 --- a/engines/titanic/gfx/small_chev_right_off.cpp +++ b/engines/titanic/gfx/small_chev_right_off.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CSmallChevRightOff, CToggleSwitch) + CSmallChevRightOff::CSmallChevRightOff() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/small_chev_right_off.h b/engines/titanic/gfx/small_chev_right_off.h index fae9c3c674..0dadae1e07 100644 --- a/engines/titanic/gfx/small_chev_right_off.h +++ b/engines/titanic/gfx/small_chev_right_off.h @@ -28,6 +28,7 @@ namespace Titanic { class CSmallChevRightOff : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CSmallChevRightOff(); diff --git a/engines/titanic/gfx/small_chev_right_on.cpp b/engines/titanic/gfx/small_chev_right_on.cpp index 714b6b314b..552990d0b8 100644 --- a/engines/titanic/gfx/small_chev_right_on.cpp +++ b/engines/titanic/gfx/small_chev_right_on.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CSmallChevRightOn, CToggleSwitch) + CSmallChevRightOn::CSmallChevRightOn() : CToggleSwitch() { } diff --git a/engines/titanic/gfx/small_chev_right_on.h b/engines/titanic/gfx/small_chev_right_on.h index c5cb4d792d..ea042d30ee 100644 --- a/engines/titanic/gfx/small_chev_right_on.h +++ b/engines/titanic/gfx/small_chev_right_on.h @@ -28,6 +28,7 @@ namespace Titanic { class CSmallChevRightOn : public CToggleSwitch { + DECLARE_MESSAGE_MAP public: CLASSDEF CSmallChevRightOn(); diff --git a/engines/titanic/gfx/text_down.cpp b/engines/titanic/gfx/text_down.cpp index d4bdfdb72f..967d60f495 100644 --- a/engines/titanic/gfx/text_down.cpp +++ b/engines/titanic/gfx/text_down.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CTextDown, CPetGraphic) + void CTextDown::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CPetGraphic::save(file, indent); diff --git a/engines/titanic/gfx/text_down.h b/engines/titanic/gfx/text_down.h index 189f795650..920ea8c958 100644 --- a/engines/titanic/gfx/text_down.h +++ b/engines/titanic/gfx/text_down.h @@ -28,6 +28,7 @@ namespace Titanic { class CTextDown : public CPetGraphic { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/gfx/text_skrew.cpp b/engines/titanic/gfx/text_skrew.cpp index 8d1f026913..30cc7f407b 100644 --- a/engines/titanic/gfx/text_skrew.cpp +++ b/engines/titanic/gfx/text_skrew.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CTextSkrew, CPetGraphic) + void CTextSkrew::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CPetGraphic::save(file, indent); diff --git a/engines/titanic/gfx/text_skrew.h b/engines/titanic/gfx/text_skrew.h index aa6c375098..6e86e70825 100644 --- a/engines/titanic/gfx/text_skrew.h +++ b/engines/titanic/gfx/text_skrew.h @@ -28,6 +28,7 @@ namespace Titanic { class CTextSkrew : public CPetGraphic { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/gfx/text_up.cpp b/engines/titanic/gfx/text_up.cpp index ce3ff100dc..0cb4153f25 100644 --- a/engines/titanic/gfx/text_up.cpp +++ b/engines/titanic/gfx/text_up.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CTextUp, CPetGraphic) + void CTextUp::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CPetGraphic::save(file, indent); diff --git a/engines/titanic/gfx/text_up.h b/engines/titanic/gfx/text_up.h index 103f62159c..05a54bc45a 100644 --- a/engines/titanic/gfx/text_up.h +++ b/engines/titanic/gfx/text_up.h @@ -28,6 +28,7 @@ namespace Titanic { class CTextUp : public CPetGraphic { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/gfx/toggle_button.cpp b/engines/titanic/gfx/toggle_button.cpp index 8284d35aac..3bb2e967e9 100644 --- a/engines/titanic/gfx/toggle_button.cpp +++ b/engines/titanic/gfx/toggle_button.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CToggleButton, CBackground) + void CToggleButton::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); file->writeNumberLine(_fieldE0, indent); diff --git a/engines/titanic/gfx/toggle_button.h b/engines/titanic/gfx/toggle_button.h index a98a94df9e..ac0bb69b9d 100644 --- a/engines/titanic/gfx/toggle_button.h +++ b/engines/titanic/gfx/toggle_button.h @@ -28,6 +28,7 @@ namespace Titanic { class CToggleButton : public CBackground { + DECLARE_MESSAGE_MAP private: int _fieldE0; public: diff --git a/engines/titanic/module.mk b/engines/titanic/module.mk index 28be2495c3..3985ebfa81 100644 --- a/engines/titanic/module.mk +++ b/engines/titanic/module.mk @@ -298,6 +298,8 @@ MODULE_OBJS := \ gfx/keybrd_butt.o \ gfx/move_object_button.o \ gfx/music_control.o \ + gfx/music_slider.o \ + gfx/music_switch.o \ gfx/send_to_succ.o \ gfx/sgt_selector.o \ gfx/slider_button.o \ diff --git a/engines/titanic/npcs/mobile.cpp b/engines/titanic/npcs/mobile.cpp index 37c1d13fee..55b37f52f1 100644 --- a/engines/titanic/npcs/mobile.cpp +++ b/engines/titanic/npcs/mobile.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CMobile, CCharacter) + CMobile::CMobile() : CCharacter(), _fieldDC(0) { } diff --git a/engines/titanic/npcs/mobile.h b/engines/titanic/npcs/mobile.h index 4979d54fc3..3ec19a4371 100644 --- a/engines/titanic/npcs/mobile.h +++ b/engines/titanic/npcs/mobile.h @@ -28,6 +28,7 @@ namespace Titanic { class CMobile : public CCharacter { + DECLARE_MESSAGE_MAP private: Point _pos1; int _fieldDC; diff --git a/engines/titanic/npcs/true_talk_npc.cpp b/engines/titanic/npcs/true_talk_npc.cpp index c989aa3bd7..0eaf21359e 100644 --- a/engines/titanic/npcs/true_talk_npc.cpp +++ b/engines/titanic/npcs/true_talk_npc.cpp @@ -22,6 +22,7 @@ #include "titanic/npcs/true_talk_npc.h" #include "titanic/core/view_item.h" +#include "titanic/pet_control/pet_control.h" #include "titanic/titanic.h" namespace Titanic { @@ -221,5 +222,16 @@ void CTrueTalkNPC::startTalker(CViewItem *view) { gameManager->getTalkManager()->start4(this, view); } +void CTrueTalkNPC::performAction(bool startTalking, CViewItem *view) { + CPetControl *pet = getPetControl(); + if (pet) + pet->resetActiveNPC(); + + if (startTalking) + startTalker(view); + + if (pet) + pet->convResetNPC(); +} } // End of namespace Titanic diff --git a/engines/titanic/npcs/true_talk_npc.h b/engines/titanic/npcs/true_talk_npc.h index 23613041d0..3126d92d3e 100644 --- a/engines/titanic/npcs/true_talk_npc.h +++ b/engines/titanic/npcs/true_talk_npc.h @@ -72,6 +72,11 @@ protected: * Stop an animation timer */ void stopAnimTimer(int id); + + /** + * Perform an action + */ + void performAction(bool startTalking, CViewItem *view); public: CLASSDEF CTrueTalkNPC(); diff --git a/engines/titanic/pet_control/pet_graphic.cpp b/engines/titanic/pet_control/pet_graphic.cpp index 797c560ab0..25a77397c3 100644 --- a/engines/titanic/pet_control/pet_graphic.cpp +++ b/engines/titanic/pet_control/pet_graphic.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CPetGraphic, CGameObject) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CPetGraphic, CGameObject) void CPetGraphic::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); diff --git a/engines/titanic/pet_control/pet_graphic2.cpp b/engines/titanic/pet_control/pet_graphic2.cpp index ef898194e8..a33a1c7d93 100644 --- a/engines/titanic/pet_control/pet_graphic2.cpp +++ b/engines/titanic/pet_control/pet_graphic2.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CPetGraphic2, CGameObject) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CPetGraphic2, CGameObject) void CPetGraphic2::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); diff --git a/engines/titanic/pet_control/pet_leaf.cpp b/engines/titanic/pet_control/pet_leaf.cpp index 77b0d426a5..833f4ed8b9 100644 --- a/engines/titanic/pet_control/pet_leaf.cpp +++ b/engines/titanic/pet_control/pet_leaf.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(PETLeaf, CGameObject) + void PETLeaf::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CGameObject::save(file, indent); diff --git a/engines/titanic/pet_control/pet_leaf.h b/engines/titanic/pet_control/pet_leaf.h index 073374970c..b9c516f6cb 100644 --- a/engines/titanic/pet_control/pet_leaf.h +++ b/engines/titanic/pet_control/pet_leaf.h @@ -28,6 +28,7 @@ namespace Titanic { class PETLeaf : public CGameObject { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/pet_control/pet_mode_off.cpp b/engines/titanic/pet_control/pet_mode_off.cpp index 3d3eb376c8..a1c9f3dd34 100644 --- a/engines/titanic/pet_control/pet_mode_off.cpp +++ b/engines/titanic/pet_control/pet_mode_off.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CPetModeOff, CToggleSwitch) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CPetModeOff, CToggleSwitch) CPetModeOff::CPetModeOff() : CToggleSwitch() { } diff --git a/engines/titanic/pet_control/pet_mode_on.cpp b/engines/titanic/pet_control/pet_mode_on.cpp index bde318bfcf..1a7c2c26e7 100644 --- a/engines/titanic/pet_control/pet_mode_on.cpp +++ b/engines/titanic/pet_control/pet_mode_on.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CPetModeOn, CToggleSwitch) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CPetModeOn, CToggleSwitch) CPetModeOn::CPetModeOn() : CToggleSwitch() { } diff --git a/engines/titanic/pet_control/pet_mode_panel.cpp b/engines/titanic/pet_control/pet_mode_panel.cpp index 1890f9a30a..87351bed24 100644 --- a/engines/titanic/pet_control/pet_mode_panel.cpp +++ b/engines/titanic/pet_control/pet_mode_panel.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CPetModePanel, CToggleSwitch) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CPetModePanel, CToggleSwitch) CPetModePanel::CPetModePanel() : CToggleSwitch() { } diff --git a/engines/titanic/pet_control/pet_pannel1.cpp b/engines/titanic/pet_control/pet_pannel1.cpp index 01e2b930dd..527841f883 100644 --- a/engines/titanic/pet_control/pet_pannel1.cpp +++ b/engines/titanic/pet_control/pet_pannel1.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CPetPannel1, CPetGraphic) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CPetPannel1, CPetGraphic) void CPetPannel1::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); diff --git a/engines/titanic/pet_control/pet_pannel2.cpp b/engines/titanic/pet_control/pet_pannel2.cpp index e55468d492..48675a7384 100644 --- a/engines/titanic/pet_control/pet_pannel2.cpp +++ b/engines/titanic/pet_control/pet_pannel2.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CPetPannel2, CPetGraphic) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CPetPannel2, CPetGraphic) void CPetPannel2::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); diff --git a/engines/titanic/pet_control/pet_pannel3.cpp b/engines/titanic/pet_control/pet_pannel3.cpp index ea623a33a8..a0b693872a 100644 --- a/engines/titanic/pet_control/pet_pannel3.cpp +++ b/engines/titanic/pet_control/pet_pannel3.cpp @@ -24,8 +24,7 @@ namespace Titanic { -BEGIN_MESSAGE_MAP(CPetPannel3, CPetGraphic) -END_MESSAGE_MAP() +EMPTY_MESSAGE_MAP(CPetPannel3, CPetGraphic) void CPetPannel3::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); diff --git a/engines/titanic/sound/dome_from_top_of_well.cpp b/engines/titanic/sound/dome_from_top_of_well.cpp index 6e31937af0..f8d946a1e3 100644 --- a/engines/titanic/sound/dome_from_top_of_well.cpp +++ b/engines/titanic/sound/dome_from_top_of_well.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CDomeFromTopOfWell, CViewAutoSoundPlayer) + void CDomeFromTopOfWell::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); CViewAutoSoundPlayer::save(file, indent); diff --git a/engines/titanic/sound/dome_from_top_of_well.h b/engines/titanic/sound/dome_from_top_of_well.h index bb8ab6372a..24c165028a 100644 --- a/engines/titanic/sound/dome_from_top_of_well.h +++ b/engines/titanic/sound/dome_from_top_of_well.h @@ -28,6 +28,7 @@ namespace Titanic { class CDomeFromTopOfWell : public CViewAutoSoundPlayer { + DECLARE_MESSAGE_MAP public: CLASSDEF diff --git a/engines/titanic/sound/water_lapping_sounds.cpp b/engines/titanic/sound/water_lapping_sounds.cpp index b3f5d23a2c..f5a69e6eed 100644 --- a/engines/titanic/sound/water_lapping_sounds.cpp +++ b/engines/titanic/sound/water_lapping_sounds.cpp @@ -24,6 +24,8 @@ namespace Titanic { +EMPTY_MESSAGE_MAP(CWaterLappingSounds, CRoomAutoSoundPlayer) + void CWaterLappingSounds::save(SimpleFile *file, int indent) const { file->writeNumberLine(1, indent); file->writeQuotedLine(_string1, indent); diff --git a/engines/titanic/sound/water_lapping_sounds.h b/engines/titanic/sound/water_lapping_sounds.h index 0d885bedd4..cf6c72146b 100644 --- a/engines/titanic/sound/water_lapping_sounds.h +++ b/engines/titanic/sound/water_lapping_sounds.h @@ -28,6 +28,7 @@ namespace Titanic { class CWaterLappingSounds : public CRoomAutoSoundPlayer { + DECLARE_MESSAGE_MAP public: int _value; public: |