aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/game/head_smash_lever.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-08-22 20:22:41 -0400
committerPaul Gilbert2016-08-22 20:22:41 -0400
commit8b3829549a2c82a09f7475c35173238f7470d587 (patch)
treec0965bfcae7153af1f831be1204726644d99da9e /engines/titanic/game/head_smash_lever.cpp
parent65bc8cb83c01cc1e7e6c8c093b8f42080800718d (diff)
downloadscummvm-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.cpp63
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