aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/game/play_music_button.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-08-27 12:45:36 -0400
committerPaul Gilbert2016-08-27 12:45:36 -0400
commit5ea32efbb0ecb3e6b8336ad3c2edd3905ea5b89a (patch)
tree7f5e6d224f8d14a1ef8f69a83c91b498ec80add3 /engines/titanic/game/play_music_button.cpp
parentc1b6fc3824018118618685fcbfcabe413e865531 (diff)
downloadscummvm-rg350-5ea32efbb0ecb3e6b8336ad3c2edd3905ea5b89a.tar.gz
scummvm-rg350-5ea32efbb0ecb3e6b8336ad3c2edd3905ea5b89a.tar.bz2
scummvm-rg350-5ea32efbb0ecb3e6b8336ad3c2edd3905ea5b89a.zip
TITANIC: Implemented more game classes
Diffstat (limited to 'engines/titanic/game/play_music_button.cpp')
-rw-r--r--engines/titanic/game/play_music_button.cpp43
1 files changed, 39 insertions, 4 deletions
diff --git a/engines/titanic/game/play_music_button.cpp b/engines/titanic/game/play_music_button.cpp
index 8066739f10..93416911b8 100644
--- a/engines/titanic/game/play_music_button.cpp
+++ b/engines/titanic/game/play_music_button.cpp
@@ -21,23 +21,58 @@
*/
#include "titanic/game/play_music_button.h"
+#include "titanic/sound/music_room.h"
namespace Titanic {
+BEGIN_MESSAGE_MAP(CPlayMusicButton, CBackground)
+ ON_MESSAGE(MouseButtonDownMsg)
+ ON_MESSAGE(FrameMsg)
+END_MESSAGE_MAP()
+
void CPlayMusicButton::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeNumberLine(_fieldE0, indent);
- file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_flag, indent);
+ file->writeNumberLine(_ticks, indent);
CBackground::save(file, indent);
}
void CPlayMusicButton::load(SimpleFile *file) {
file->readNumber();
- _fieldE0 = file->readNumber();
- _fieldE4 = file->readNumber();
+ _flag = file->readNumber();
+ _ticks = file->readNumber();
CBackground::load(file);
}
+bool CPlayMusicButton::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
+ CMusicRoom *musicRoom = getMusicRoom();
+ if (_flag) {
+ musicRoom->stopMusic();
+ stopMovie();
+ loadFrame(0);
+ _flag = false;
+ } else {
+ musicRoom->startMusic(100);
+ playMovie(MOVIE_REPEAT);
+ _ticks = getTicksCount();
+ _flag = true;
+ }
+
+ return true;
+}
+
+bool CPlayMusicButton::FrameMsg(CFrameMsg *msg) {
+ if (_flag && !CMusicRoom::_musicHandler->isBusy()) {
+ CMusicRoom *musicRoom = getMusicRoom();
+ musicRoom->stopMusic();
+ stopMovie();
+ loadFrame(0);
+ _flag = false;
+ }
+
+ return true;
+}
+
} // End of namespace Titanic