diff options
author | Paul Gilbert | 2016-08-19 23:41:19 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-08-19 23:41:19 -0400 |
commit | 3c2c82fcd593e7b358f359de69070b6dd0e92150 (patch) | |
tree | 53251f5642b35626c606633cfe7baa1ce87b1fea /engines/titanic/game/emma_control.cpp | |
parent | 449d8a02e05754e889e13ff721ff2c0cb995c486 (diff) | |
download | scummvm-rg350-3c2c82fcd593e7b358f359de69070b6dd0e92150.tar.gz scummvm-rg350-3c2c82fcd593e7b358f359de69070b6dd0e92150.tar.bz2 scummvm-rg350-3c2c82fcd593e7b358f359de69070b6dd0e92150.zip |
TITANIC: Implemented more game classes
Diffstat (limited to 'engines/titanic/game/emma_control.cpp')
-rw-r--r-- | engines/titanic/game/emma_control.cpp | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/engines/titanic/game/emma_control.cpp b/engines/titanic/game/emma_control.cpp index 814cb44d79..e3ba7cc42c 100644 --- a/engines/titanic/game/emma_control.cpp +++ b/engines/titanic/game/emma_control.cpp @@ -21,27 +21,46 @@ */ #include "titanic/game/emma_control.h" +#include "titanic/core/room_item.h" +#include "titanic/sound/auto_music_player.h" namespace Titanic { -int CEmmaControl::_v1; +BEGIN_MESSAGE_MAP(CEmmaControl, CBackground) + ON_MESSAGE(EnterViewMsg) + ON_MESSAGE(StatusChangeMsg) +END_MESSAGE_MAP() void CEmmaControl::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_v1, indent); - file->writeQuotedLine(_wavFile1, indent); - file->writeQuotedLine(_wavFile2, indent); + file->writeNumberLine(_flag, indent); + file->writeQuotedLine(_hiddenSoundName, indent); + file->writeQuotedLine(_visibleSoundName, indent); CBackground::save(file, indent); } void CEmmaControl::load(SimpleFile *file) { file->readNumber(); - _v1 = file->readNumber(); - _wavFile1 = file->readString(); - _wavFile2 = file->readString(); + _flag = file->readNumber(); + _hiddenSoundName = file->readString(); + _visibleSoundName = file->readString(); CBackground::load(file); } +bool CEmmaControl::EnterViewMsg(CEnterViewMsg *msg) { + setVisible(_flag); + return true; +} + +bool CEmmaControl::StatusChangeMsg(CStatusChangeMsg *msg) { + _flag = !_flag; + setVisible(_flag); + CChangeMusicMsg changeMsg(_flag ? _visibleSoundName : _hiddenSoundName, 0); + changeMsg.execute(findRoom(), CAutoMusicPlayer::_type, + MSGFLAG_SCAN | MSGFLAG_BREAK_IF_HANDLED | MSGFLAG_CLASS_DEF); + return true; +} + } // End of namespace Titanic |