diff options
author | Paul Gilbert | 2016-08-22 20:22:41 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-08-22 20:22:41 -0400 |
commit | 8b3829549a2c82a09f7475c35173238f7470d587 (patch) | |
tree | c0965bfcae7153af1f831be1204726644d99da9e /engines/titanic/game/head_smash_lever.cpp | |
parent | 65bc8cb83c01cc1e7e6c8c093b8f42080800718d (diff) | |
download | scummvm-rg350-8b3829549a2c82a09f7475c35173238f7470d587.tar.gz scummvm-rg350-8b3829549a2c82a09f7475c35173238f7470d587.tar.bz2 scummvm-rg350-8b3829549a2c82a09f7475c35173238f7470d587.zip |
TITANIC: Cleanup of engine references
Diffstat (limited to 'engines/titanic/game/head_smash_lever.cpp')
-rw-r--r-- | engines/titanic/game/head_smash_lever.cpp | 63 |
1 files changed, 58 insertions, 5 deletions
diff --git a/engines/titanic/game/head_smash_lever.cpp b/engines/titanic/game/head_smash_lever.cpp index 5a2fe1f4c2..d5c2eaf8c4 100644 --- a/engines/titanic/game/head_smash_lever.cpp +++ b/engines/titanic/game/head_smash_lever.cpp @@ -24,25 +24,78 @@ namespace Titanic { +BEGIN_MESSAGE_MAP(CHeadSmashLever, CBackground) + ON_MESSAGE(MouseButtonDownMsg) + ON_MESSAGE(ActMsg) + ON_MESSAGE(FrameMsg) + ON_MESSAGE(LoadSuccessMsg) +END_MESSAGE_MAP() + CHeadSmashLever::CHeadSmashLever() : CBackground(), - _fieldE0(0), _fieldE4(0), _fieldE8(0) {} + _enabled(false), _fieldE4(false), _ticksCount(0) {} void CHeadSmashLever::save(SimpleFile *file, int indent) { file->writeNumberLine(1, indent); - file->writeNumberLine(_fieldE0, indent); + file->writeNumberLine(_enabled, indent); file->writeNumberLine(_fieldE4, indent); - file->writeNumberLine(_fieldE8, indent); + file->writeNumberLine(_ticksCount, indent); CBackground::save(file, indent); } void CHeadSmashLever::load(SimpleFile *file) { file->readNumber(); - _fieldE0 = file->readNumber(); + _enabled = file->readNumber(); _fieldE4 = file->readNumber(); - _fieldE8 = file->readNumber(); + _ticksCount = file->readNumber(); CBackground::load(file); } +bool CHeadSmashLever::MouseButtonDownMsg(CMouseButtonDownMsg *msg) { + if (_enabled) { + playMovie(0, 14, 0); + playSound("z#54.wav"); + int soundHandle = playSound("z#45.wav"); + queueSound("z#49.wav", soundHandle); + _ticksCount = getTicksCount(); + _fieldE4 = true; + } else { + playMovie(0); + playSound("z#56.wav"); + } + + return true; +} + +bool CHeadSmashLever::ActMsg(CActMsg *msg) { + if (msg->_action == "EnableObject") + _enabled = true; + else if (msg->_action == "DisableObject") + _enabled = false; + + return true; +} + +bool CHeadSmashLever::FrameMsg(CFrameMsg *msg) { + if (_fieldE4 && msg->_ticks > (_ticksCount + 750)) { + CActMsg actMsg1("CreatorsChamber.Node 1.S"); + actMsg1.execute("MoveToCreators"); + CActMsg actMsg2("PlayToEnd"); + actMsg2.execute("SmashingStatue"); + + playSound("b#16.wav"); + _fieldE4 = false; + } + + return true; +} + +bool CHeadSmashLever::LoadSuccessMsg(CLoadSuccessMsg *msg) { + if (_fieldE4) + _ticksCount = getTicksCount(); + + return true; +} + } // End of namespace Titanic |