aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2017-01-29 15:37:00 -0500
committerPaul Gilbert2017-01-29 15:37:00 -0500
commita9abeb5f95fa535df08728bc8563675efd007f03 (patch)
tree6cc8e0b0abac3819e15f6541465ea24d1095b5f4
parentdc640ab50a63b0383c6aec6df4e0427df1824c3e (diff)
downloadscummvm-rg350-a9abeb5f95fa535df08728bc8563675efd007f03.tar.gz
scummvm-rg350-a9abeb5f95fa535df08728bc8563675efd007f03.tar.bz2
scummvm-rg350-a9abeb5f95fa535df08728bc8563675efd007f03.zip
TITANIC: Cleanup of music room setup code
-rw-r--r--engines/titanic/game/music_console_button.cpp6
-rw-r--r--engines/titanic/game/play_music_button.cpp2
-rw-r--r--engines/titanic/npcs/maitre_d.cpp6
-rw-r--r--engines/titanic/sound/music_player.cpp9
-rw-r--r--engines/titanic/sound/music_player.h4
-rw-r--r--engines/titanic/sound/music_room.cpp2
-rw-r--r--engines/titanic/sound/music_room.h4
-rw-r--r--engines/titanic/sound/music_room_handler.cpp2
-rw-r--r--engines/titanic/sound/music_room_handler.h5
9 files changed, 22 insertions, 18 deletions
diff --git a/engines/titanic/game/music_console_button.cpp b/engines/titanic/game/music_console_button.cpp
index 40492aafe4..7a1aed0067 100644
--- a/engines/titanic/game/music_console_button.cpp
+++ b/engines/titanic/game/music_console_button.cpp
@@ -57,9 +57,9 @@ bool CMusicConsoleButton::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
CMusicHasStartedMsg startedMsg;
startedMsg.execute("Music Room Phonograph");
- if (CMusicRoom::_musicHandler->checkSound(1)
- && CMusicRoom::_musicHandler->checkSound(2)
- && CMusicRoom::_musicHandler->checkSound(3)) {
+ if (CMusicRoom::_musicHandler->checkInstrument(SNAKE)
+ && CMusicRoom::_musicHandler->checkInstrument(PIANO)
+ && CMusicRoom::_musicHandler->checkInstrument(BASS)) {
CCorrectMusicPlayedMsg correctMsg;
correctMsg.execute(findRoom());
}
diff --git a/engines/titanic/game/play_music_button.cpp b/engines/titanic/game/play_music_button.cpp
index 21fd3c336a..604938fa23 100644
--- a/engines/titanic/game/play_music_button.cpp
+++ b/engines/titanic/game/play_music_button.cpp
@@ -54,7 +54,7 @@ bool CPlayMusicButton::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
loadFrame(0);
_flag = false;
} else {
- musicRoom->startMusic(100);
+ musicRoom->setupMusic(100);
playMovie(MOVIE_REPEAT);
_ticks = getTicksCount();
_flag = true;
diff --git a/engines/titanic/npcs/maitre_d.cpp b/engines/titanic/npcs/maitre_d.cpp
index cbb406fffa..88eceab46b 100644
--- a/engines/titanic/npcs/maitre_d.cpp
+++ b/engines/titanic/npcs/maitre_d.cpp
@@ -122,11 +122,11 @@ bool CMaitreD::EnterViewMsg(CEnterViewMsg *msg) {
if (_string3.contains("nasty ambient"))
startTalking(this, 111, findView());
- else if (!CMusicRoom::_musicHandler->checkSound(1))
+ else if (!CMusicRoom::_musicHandler->checkInstrument(SNAKE))
startTalking(this, 114, findView());
- else if (!CMusicRoom::_musicHandler->checkSound(3))
+ else if (!CMusicRoom::_musicHandler->checkInstrument(BASS))
startTalking(this, 113, findView());
- else if (!CMusicRoom::_musicHandler->checkSound(2))
+ else if (!CMusicRoom::_musicHandler->checkInstrument(PIANO))
startTalking(this, 115, findView());
else {
startTalking(this, 110, findView());
diff --git a/engines/titanic/sound/music_player.cpp b/engines/titanic/sound/music_player.cpp
index a1aaf8ff8b..548941871d 100644
--- a/engines/titanic/sound/music_player.cpp
+++ b/engines/titanic/sound/music_player.cpp
@@ -40,7 +40,7 @@ void CMusicPlayer::save(SimpleFile *file, int indent) {
file->writeNumberLine(_isActive, indent);
file->writeQuotedLine(_stopTarget, indent);
file->writeNumberLine(_stopWaves, indent);
- file->writeNumberLine(_musicId, indent);
+ file->writeNumberLine(_volume, indent);
CGameObject::save(file, indent);
}
@@ -50,13 +50,13 @@ void CMusicPlayer::load(SimpleFile *file) {
_isActive = file->readNumber();
_stopTarget = file->readString();
_stopWaves = file->readNumber();
- _musicId = file->readNumber();
+ _volume = file->readNumber();
CGameObject::load(file);
}
bool CMusicPlayer::StartMusicMsg(CStartMusicMsg *msg) {
- if (msg->_musicPlayer == this) {
+ if (msg->_musicPlayer != this) {
if (_isActive) {
CStopMusicMsg stopMusicMsg;
stopMusicMsg.execute(this);
@@ -73,8 +73,9 @@ bool CMusicPlayer::StartMusicMsg(CStartMusicMsg *msg) {
CSetMusicControlsMsg controlsMsg;
controlsMsg.execute(this, nullptr, MSGFLAG_SCAN);
- getMusicRoom()->startMusic(_musicId);
+ getMusicRoom()->setupMusic(_volume);
_isActive = true;
+ unlockMouse();
}
return true;
diff --git a/engines/titanic/sound/music_player.h b/engines/titanic/sound/music_player.h
index 7b82d4da00..3495439297 100644
--- a/engines/titanic/sound/music_player.h
+++ b/engines/titanic/sound/music_player.h
@@ -42,11 +42,11 @@ protected:
bool _isActive;
CString _stopTarget;
bool _stopWaves;
- int _musicId;
+ int _volume;
public:
CLASSDEF;
CMusicPlayer() : CGameObject(),
- _isActive(false), _stopWaves(false), _musicId(100) {}
+ _isActive(false), _stopWaves(false), _volume(100) {}
/**
* Save the data for the class to file
diff --git a/engines/titanic/sound/music_room.cpp b/engines/titanic/sound/music_room.cpp
index 9586f55c58..7f4ffdc228 100644
--- a/engines/titanic/sound/music_room.cpp
+++ b/engines/titanic/sound/music_room.cpp
@@ -52,7 +52,7 @@ void CMusicRoom::destroyMusicHandler() {
_musicHandler = nullptr;
}
-void CMusicRoom::startMusic(int volume) {
+void CMusicRoom::setupMusic(int volume) {
if (_musicHandler) {
_musicHandler->setSpeedControl2(BELLS, 0);
_musicHandler->setSpeedControl2(SNAKE, 1);
diff --git a/engines/titanic/sound/music_room.h b/engines/titanic/sound/music_room.h
index 4b584a0dd4..95557b6983 100644
--- a/engines/titanic/sound/music_room.h
+++ b/engines/titanic/sound/music_room.h
@@ -70,9 +70,9 @@ public:
void setMuteControl(MusicControlArea index, int val) { _controls[index]._muteControl = val; }
/**
- * Start playing a given music number
+ * Sets up the music controls
*/
- void startMusic(int volume = 100);
+ void setupMusic(int volume);
/**
* Stop playing music
diff --git a/engines/titanic/sound/music_room_handler.cpp b/engines/titanic/sound/music_room_handler.cpp
index a9f4116691..9db1bacf96 100644
--- a/engines/titanic/sound/music_room_handler.cpp
+++ b/engines/titanic/sound/music_room_handler.cpp
@@ -85,7 +85,7 @@ void CMusicRoomHandler::stop() {
}
}
-bool CMusicRoomHandler::checkSound(int index) const {
+bool CMusicRoomHandler::checkInstrument(MusicControlArea area) const {
// TODO
return false;
}
diff --git a/engines/titanic/sound/music_room_handler.h b/engines/titanic/sound/music_room_handler.h
index a15ef2d1bc..395076bd0f 100644
--- a/engines/titanic/sound/music_room_handler.h
+++ b/engines/titanic/sound/music_room_handler.h
@@ -92,7 +92,10 @@ public:
*/
void stop();
- bool checkSound(int index) const;
+ /**
+ * Checks the specified instrument to see if it's settings are "correct"
+ */
+ bool checkInstrument(MusicControlArea area) const;
/**
* Set a setting