aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/core
diff options
context:
space:
mode:
authorPaul Gilbert2016-08-28 14:39:59 -0400
committerPaul Gilbert2016-08-28 14:39:59 -0400
commit4933b59e8e039ae346f650c044e5fe0ba6310ead (patch)
tree805e33ea6fa6109e42d8f8b267ed2b6e5c2a00e2 /engines/titanic/core
parent1760fb3e0d25704685e9b44f0792536da962082d (diff)
downloadscummvm-rg350-4933b59e8e039ae346f650c044e5fe0ba6310ead.tar.gz
scummvm-rg350-4933b59e8e039ae346f650c044e5fe0ba6310ead.tar.bz2
scummvm-rg350-4933b59e8e039ae346f650c044e5fe0ba6310ead.zip
TITANIC: Implemented remaining game classes
Diffstat (limited to 'engines/titanic/core')
-rw-r--r--engines/titanic/core/turn_on_play_sound.cpp25
-rw-r--r--engines/titanic/core/turn_on_play_sound.h8
-rw-r--r--engines/titanic/core/turn_on_turn_off.cpp49
-rw-r--r--engines/titanic/core/turn_on_turn_off.h13
4 files changed, 70 insertions, 25 deletions
diff --git a/engines/titanic/core/turn_on_play_sound.cpp b/engines/titanic/core/turn_on_play_sound.cpp
index 2f9dba24a6..ab50b33134 100644
--- a/engines/titanic/core/turn_on_play_sound.cpp
+++ b/engines/titanic/core/turn_on_play_sound.cpp
@@ -24,26 +24,37 @@
namespace Titanic {
+BEGIN_MESSAGE_MAP(CTurnOnPlaySound, CTurnOnObject)
+ ON_MESSAGE(MouseButtonUpMsg)
+END_MESSAGE_MAP()
+
CTurnOnPlaySound::CTurnOnPlaySound() : CTurnOnObject(),
- _string3("NULL"), _fieldF8(80), _fieldFC(0) {
+ _soundName("NULL"), _soundVolume(80), _soundVal3(0) {
}
void CTurnOnPlaySound::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeQuotedLine(_string3, indent);
- file->writeNumberLine(_fieldF8, indent);
- file->writeNumberLine(_fieldFC, indent);
+ file->writeQuotedLine(_soundName, indent);
+ file->writeNumberLine(_soundVolume, indent);
+ file->writeNumberLine(_soundVal3, indent);
CTurnOnObject::save(file, indent);
}
void CTurnOnPlaySound::load(SimpleFile *file) {
file->readNumber();
- _string3 = file->readString();
- _fieldF8 = file->readNumber();
- _fieldFC = file->readNumber();
+ _soundName = file->readString();
+ _soundVolume = file->readNumber();
+ _soundVal3 = file->readNumber();
CTurnOnObject::load(file);
}
+bool CTurnOnPlaySound::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
+ if (_soundName != "NULL")
+ playSound(_soundName, _soundVolume, _soundVal3);
+
+ return CTurnOnObject::MouseButtonUpMsg(msg);
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/core/turn_on_play_sound.h b/engines/titanic/core/turn_on_play_sound.h
index 1164135071..29a25a5665 100644
--- a/engines/titanic/core/turn_on_play_sound.h
+++ b/engines/titanic/core/turn_on_play_sound.h
@@ -28,10 +28,12 @@
namespace Titanic {
class CTurnOnPlaySound : public CTurnOnObject {
+ DECLARE_MESSAGE_MAP;
+ bool MouseButtonUpMsg(CMouseButtonUpMsg *msg);
private:
- CString _string3;
- int _fieldF8;
- int _fieldFC;
+ CString _soundName;
+ int _soundVolume;
+ int _soundVal3;
public:
CLASSDEF;
CTurnOnPlaySound();
diff --git a/engines/titanic/core/turn_on_turn_off.cpp b/engines/titanic/core/turn_on_turn_off.cpp
index d43ddf7038..6498c226a0 100644
--- a/engines/titanic/core/turn_on_turn_off.cpp
+++ b/engines/titanic/core/turn_on_turn_off.cpp
@@ -24,16 +24,21 @@
namespace Titanic {
-CTurnOnTurnOff::CTurnOnTurnOff() : CBackground(), _fieldE0(0),
- _fieldE4(0), _fieldE8(0), _fieldEC(0), _fieldF0(0) {
+BEGIN_MESSAGE_MAP(CTurnOnTurnOff, CBackground)
+ ON_MESSAGE(TurnOn)
+ ON_MESSAGE(TurnOff)
+END_MESSAGE_MAP()
+
+CTurnOnTurnOff::CTurnOnTurnOff() : CBackground(), _startFrameOn(0),
+ _endFrameOn(0), _startFrameOff(0), _endFrameOff(0), _fieldF0(false) {
}
void CTurnOnTurnOff::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeNumberLine(_fieldE0, indent);
- file->writeNumberLine(_fieldE4, indent);
- file->writeNumberLine(_fieldE8, indent);
- file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_startFrameOn, indent);
+ file->writeNumberLine(_endFrameOn, indent);
+ file->writeNumberLine(_startFrameOff, indent);
+ file->writeNumberLine(_endFrameOff, indent);
file->writeNumberLine(_fieldF0, indent);
CBackground::save(file, indent);
@@ -41,13 +46,37 @@ void CTurnOnTurnOff::save(SimpleFile *file, int indent) {
void CTurnOnTurnOff::load(SimpleFile *file) {
file->readNumber();
- _fieldE0 = file->readNumber();
- _fieldE4 = file->readNumber();
- _fieldE8 = file->readNumber();
- _fieldEC = file->readNumber();
+ _startFrameOn = file->readNumber();
+ _endFrameOn = file->readNumber();
+ _startFrameOff = file->readNumber();
+ _endFrameOff = file->readNumber();
_fieldF0 = file->readNumber();
CBackground::load(file);
}
+bool CTurnOnTurnOff::TurnOn(CTurnOn *msg) {
+ if (!_fieldF0) {
+ if (_fieldDC)
+ playMovie(_startFrameOn, _endFrameOn, MOVIE_GAMESTATE);
+ else
+ playMovie(_startFrameOn, _endFrameOn, MOVIE_NOTIFY_OBJECT);
+ _fieldF0 = true;
+ }
+
+ return true;
+}
+
+bool CTurnOnTurnOff::TurnOff(CTurnOff *msg) {
+ if (!_fieldF0) {
+ if (_fieldDC)
+ playMovie(_startFrameOff, _endFrameOff, MOVIE_GAMESTATE);
+ else
+ playMovie(_startFrameOff, _endFrameOff, MOVIE_NOTIFY_OBJECT);
+ _fieldF0 = true;
+ }
+
+ return true;
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/core/turn_on_turn_off.h b/engines/titanic/core/turn_on_turn_off.h
index adca6876ff..c09f0e0d7d 100644
--- a/engines/titanic/core/turn_on_turn_off.h
+++ b/engines/titanic/core/turn_on_turn_off.h
@@ -28,12 +28,15 @@
namespace Titanic {
class CTurnOnTurnOff : public CBackground {
+ DECLARE_MESSAGE_MAP;
+ bool TurnOn(CTurnOn *msg);
+ bool TurnOff(CTurnOff *msg);
private:
- int _fieldE0;
- int _fieldE4;
- int _fieldE8;
- int _fieldEC;
- int _fieldF0;
+ int _startFrameOn;
+ int _endFrameOn;
+ int _startFrameOff;
+ int _endFrameOff;
+ bool _fieldF0;
public:
CLASSDEF;
CTurnOnTurnOff();