[Scummvm-cvs-logs] scummvm master -> 668c486f4fdf270a88cfd799ba54871d5a314383

dreammaster dreammaster at scummvm.org
Wed Aug 10 03:51:28 CEST 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
668c486f4f TITANIC: Implemented more sound related classes


Commit: 668c486f4fdf270a88cfd799ba54871d5a314383
    https://github.com/scummvm/scummvm/commit/668c486f4fdf270a88cfd799ba54871d5a314383
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2016-08-09T21:51:19-04:00

Commit Message:
TITANIC: Implemented more sound related classes

Changed paths:
    engines/titanic/core/game_object.cpp
    engines/titanic/core/game_object.h
    engines/titanic/npcs/true_talk_npc.cpp
    engines/titanic/npcs/true_talk_npc.h
    engines/titanic/sound/restricted_auto_music_player.cpp
    engines/titanic/sound/restricted_auto_music_player.h
    engines/titanic/sound/room_trigger_auto_music_player.cpp
    engines/titanic/sound/room_trigger_auto_music_player.h
    engines/titanic/sound/season_noises.cpp
    engines/titanic/sound/season_noises.h
    engines/titanic/sound/titania_speech.cpp
    engines/titanic/sound/titania_speech.h
    engines/titanic/sound/view_toggles_other_music.cpp
    engines/titanic/sound/view_toggles_other_music.h
    engines/titanic/support/movie.cpp
    engines/titanic/support/movie.h



diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp
index e0a4903..3a100ff 100644
--- a/engines/titanic/core/game_object.cpp
+++ b/engines/titanic/core/game_object.cpp
@@ -783,6 +783,14 @@ int CGameObject::addTimer(uint firstDuration, uint repeatDuration) {
 	return timer->_id;
 }
 
+int CGameObject::startAnimTimer(const CString &action, uint firstDuration, uint repeatDuration) {
+	CTimeEventInfo *timer = new CTimeEventInfo(g_vm->_events->getTicksCount(),
+		repeatDuration > 0, firstDuration, repeatDuration, this, 0, action);
+	getGameManager()->addTimer(timer);
+
+	return timer->_id;
+}
+
 void CGameObject::stopTimer(int id) {
 	getGameManager()->stopTimer(id);
 }
@@ -1330,14 +1338,14 @@ void CGameObject::fn10(int v1, int v2, int v3) {
 	_field4C = v3;
 }
 
-void CGameObject::setMovie14(int v) {
+void CGameObject::movieSetAudioTiming(bool flag) {
 	if (!_surface && !_resource.empty()) {
 		loadResource(_resource);
 		_resource.clear();
 	}
 
 	if (_surface && _surface->_movie)
-		_surface->_movie->_field14 = v;
+		_surface->_movie->_hasAudioTiming = flag;
 }
 
 void CGameObject::movieEvent(int frameNumber) {
@@ -1481,6 +1489,11 @@ CTreeItem *CGameObject::petContainerRemove(CGameObject *obj) {
 	return item;
 }
 
+bool CGameObject::petCheckNode(const CString &name) {
+	CPetControl *pet = getPetControl();
+	return pet ? pet->checkNode(name) : false;
+}
+
 bool CGameObject::petDismissBot(const CString &name) {
 	CPetControl *pet = getPetControl();
 	return pet ? pet->dismissBot(name) : false;
diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h
index 19eb296..cad05de 100644
--- a/engines/titanic/core/game_object.h
+++ b/engines/titanic/core/game_object.h
@@ -260,6 +260,11 @@ protected:
 	int addTimer(uint firstDuration, uint repeatDuration = 0);
 
 	/**
+	 * Start an animation timer
+	 */
+	int startAnimTimer(const CString &action, uint firstDuration, uint repeatDuration = 0);
+
+	/**
 	 * Stops a timer
 	 */
 	void stopTimer(int id);
@@ -417,7 +422,10 @@ protected:
 	 */
 	void setPassengerClass(int newClass);
 
-	void setMovie14(int v);
+	/**
+	 * Overrides whether the object's movie has audio timing
+	 */
+	void movieSetAudioTiming(bool flag);
 
 	void fn10(int v1, int v2, int v3);
 
@@ -768,6 +776,8 @@ public:
 
 	CTreeItem *petContainerRemove(CGameObject *obj);
 
+	bool petCheckNode(const CString &name);
+
 	/**
 	 * Dismiss a bot
 	 */
diff --git a/engines/titanic/npcs/true_talk_npc.cpp b/engines/titanic/npcs/true_talk_npc.cpp
index 290922f..9310f28 100644
--- a/engines/titanic/npcs/true_talk_npc.cpp
+++ b/engines/titanic/npcs/true_talk_npc.cpp
@@ -198,14 +198,6 @@ void CTrueTalkNPC::processInput(CTextInputMsg *msg, CViewItem *view) {
 		talkManager->processInput(this, msg, view);
 }
 
-int CTrueTalkNPC::startAnimTimer(const CString &action, uint firstDuration, uint duration) {
-	CTimeEventInfo *timer = new CTimeEventInfo(g_vm->_events->getTicksCount(),
-		duration > 0, firstDuration, duration, this, 0, action);
-	getGameManager()->addTimer(timer);
-
-	return timer->_id;
-}
-
 void CTrueTalkNPC::stopAnimTimer(int id) {
 	getGameManager()->stopTimer(id);
 }
diff --git a/engines/titanic/npcs/true_talk_npc.h b/engines/titanic/npcs/true_talk_npc.h
index 0deb832..0319f7e 100644
--- a/engines/titanic/npcs/true_talk_npc.h
+++ b/engines/titanic/npcs/true_talk_npc.h
@@ -62,11 +62,6 @@ protected:
 	int _field104;
 protected:
 	void processInput(CTextInputMsg *msg, CViewItem *view);
-	
-	/**
-	 * Start an animation timer
-	 */
-	int startAnimTimer(const CString &action, uint firstDuration, uint duration);
 
 	/**
 	 * Stop an animation timer
diff --git a/engines/titanic/sound/restricted_auto_music_player.cpp b/engines/titanic/sound/restricted_auto_music_player.cpp
index 4ccfecc..2384d4d 100644
--- a/engines/titanic/sound/restricted_auto_music_player.cpp
+++ b/engines/titanic/sound/restricted_auto_music_player.cpp
@@ -21,32 +21,59 @@
  */
 
 #include "titanic/sound/restricted_auto_music_player.h"
+#include "titanic/core/room_item.h"
 
 namespace Titanic {
 
+BEGIN_MESSAGE_MAP(CRestrictedAutoMusicPlayer, CAutoMusicPlayer)
+	ON_MESSAGE(EnterRoomMsg)
+	ON_MESSAGE(LeaveRoomMsg)
+END_MESSAGE_MAP()
+
 void CRestrictedAutoMusicPlayer::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(1, indent);
-	file->writeQuotedLine(_string3, indent);
-	file->writeQuotedLine(_string4, indent);
-	file->writeQuotedLine(_string5, indent);
-	file->writeQuotedLine(_string6, indent);
+	file->writeQuotedLine(_oldNodeName, indent);
+	file->writeQuotedLine(_newNodeName, indent);
+	file->writeQuotedLine(_newRoomName, indent);
+	file->writeQuotedLine(_oldRoomName, indent);
 
 	CAutoMusicPlayer::save(file, indent);
 }
 
 void CRestrictedAutoMusicPlayer::load(SimpleFile *file) {
 	file->readNumber();
-	_string3 = file->readString();
-	_string4 = file->readString();
-	_string5 = file->readString();
-	_string6 = file->readString();
+	_oldNodeName = file->readString();
+	_newNodeName = file->readString();
+	_newRoomName = file->readString();
+	_oldRoomName = file->readString();
 
 	CAutoMusicPlayer::load(file);
 }
 
 bool CRestrictedAutoMusicPlayer::EnterRoomMsg(CEnterRoomMsg *msg) {
-	warning("CRestrictedAutoMusicPlayer::handleEvent");
-	return true;
+	if (!msg->_oldRoom)
+		return true;
+	if (petCheckNode(_oldNodeName))
+		return false;
+
+	CString roomName = msg->_oldRoom->getName();
+	if (_oldRoomName.compareToIgnoreCase(roomName)) {
+		_isRepeated = true;
+		return false;
+	} else {
+		return CAutoMusicPlayer::EnterRoomMsg(msg);
+	}
+}
+
+bool CRestrictedAutoMusicPlayer::LeaveRoomMsg(CLeaveRoomMsg *msg) {
+	CString roomName = msg->_newRoom->getName();
+
+	if (petCheckNode(_newNodeName) || _newRoomName.compareToIgnoreCase(roomName)) {
+		_isRepeated = false;
+		return true;
+	} else {
+		return CAutoMusicPlayer::LeaveRoomMsg(msg);
+	}
 }
 
 } // End of namespace Titanic
diff --git a/engines/titanic/sound/restricted_auto_music_player.h b/engines/titanic/sound/restricted_auto_music_player.h
index 4a26d37..d36ee5a 100644
--- a/engines/titanic/sound/restricted_auto_music_player.h
+++ b/engines/titanic/sound/restricted_auto_music_player.h
@@ -29,12 +29,14 @@
 namespace Titanic {
 
 class CRestrictedAutoMusicPlayer : public CAutoMusicPlayer {
+	DECLARE_MESSAGE_MAP;
 	bool EnterRoomMsg(CEnterRoomMsg *msg);
+	bool LeaveRoomMsg(CLeaveRoomMsg *msg);
 private:
-	CString _string3;
-	CString _string4;
-	CString _string5;
-	CString _string6;
+	CString _oldNodeName;
+	CString _newNodeName;
+	CString _newRoomName;
+	CString _oldRoomName;
 public:
 	CLASSDEF;
 
diff --git a/engines/titanic/sound/room_trigger_auto_music_player.cpp b/engines/titanic/sound/room_trigger_auto_music_player.cpp
index 4506dfd..7782cef 100644
--- a/engines/titanic/sound/room_trigger_auto_music_player.cpp
+++ b/engines/titanic/sound/room_trigger_auto_music_player.cpp
@@ -24,6 +24,11 @@
 
 namespace Titanic {
 
+BEGIN_MESSAGE_MAP(CRoomTriggerAutoMusicPlayer, CTriggerAutoMusicPlayer)
+	ON_MESSAGE(LeaveRoomMsg)
+	ON_MESSAGE(EnterRoomMsg)
+END_MESSAGE_MAP()
+
 void CRoomTriggerAutoMusicPlayer::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(1, indent);
 	CTriggerAutoMusicPlayer::save(file, indent);
@@ -34,8 +39,23 @@ void CRoomTriggerAutoMusicPlayer::load(SimpleFile *file) {
 	CTriggerAutoMusicPlayer::load(file);
 }
 
+bool CRoomTriggerAutoMusicPlayer::LeaveRoomMsg(CLeaveRoomMsg *msg) {
+	if (msg->_oldRoom == findRoom()) {
+		CTriggerAutoMusicPlayerMsg triggerMsg;
+		triggerMsg._value = 1;
+		triggerMsg.execute(this);
+	}
+
+	return true;
+}
+
 bool CRoomTriggerAutoMusicPlayer::EnterRoomMsg(CEnterRoomMsg *msg) {
-	warning("CRoomTriggerAutoMusicPlayer::handleEvent");
+	if (msg->_newRoom == findRoom()) {
+		CTriggerAutoMusicPlayerMsg triggerMsg;
+		triggerMsg._value = 2;
+		triggerMsg.execute(this);
+	}
+
 	return true;
 }
 
diff --git a/engines/titanic/sound/room_trigger_auto_music_player.h b/engines/titanic/sound/room_trigger_auto_music_player.h
index 250adad..a57e133 100644
--- a/engines/titanic/sound/room_trigger_auto_music_player.h
+++ b/engines/titanic/sound/room_trigger_auto_music_player.h
@@ -29,7 +29,9 @@
 namespace Titanic {
 
 class CRoomTriggerAutoMusicPlayer : public CTriggerAutoMusicPlayer {
-	bool EnterRoomMsg(CEnterRoomMsg *msg);
+	DECLARE_MESSAGE_MAP;
+	bool LeaveRoomMsg(CLeaveRoomMsg *msg);
+	bool EnterRoomMsg(CEnterRoomMsg *msg);	
 public:
 	CLASSDEF;
 
diff --git a/engines/titanic/sound/season_noises.cpp b/engines/titanic/sound/season_noises.cpp
index e730765..ce04548 100644
--- a/engines/titanic/sound/season_noises.cpp
+++ b/engines/titanic/sound/season_noises.cpp
@@ -24,30 +24,92 @@
 
 namespace Titanic {
 
-CSeasonNoises::CSeasonNoises() : CViewAutoSoundPlayer(), _fieldF0(0),
-	_string2("NULL"), _string3("NULL"), _string4("NULL"), _string5("NULL") {
+BEGIN_MESSAGE_MAP(CSeasonNoises, CViewAutoSoundPlayer)
+	ON_MESSAGE(ChangeSeasonMsg)
+	ON_MESSAGE(EnterViewMsg)
+	ON_MESSAGE(ActMsg)
+	ON_MESSAGE(LoadSuccessMsg)
+END_MESSAGE_MAP()
+
+CSeasonNoises::CSeasonNoises() : CViewAutoSoundPlayer(), _seasonNumber(0),
+	_springName("NULL"), _summerName("NULL"), _autumnName("NULL"), _winterName("NULL") {
 }
 
 void CSeasonNoises::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(1, indent);
-	file->writeNumberLine(_fieldF0, indent);
-	file->writeQuotedLine(_string2, indent);
-	file->writeQuotedLine(_string3, indent);
-	file->writeQuotedLine(_string4, indent);
-	file->writeQuotedLine(_string5, indent);
+	file->writeNumberLine(_seasonNumber, indent);
+	file->writeQuotedLine(_springName, indent);
+	file->writeQuotedLine(_summerName, indent);
+	file->writeQuotedLine(_autumnName, indent);
+	file->writeQuotedLine(_winterName, indent);
 
 	CViewAutoSoundPlayer::save(file, indent);
 }
 
 void CSeasonNoises::load(SimpleFile *file) {
 	file->readNumber();
-	_fieldF0 = file->readNumber();
-	_string2 = file->readString();
-	_string3 = file->readString();
-	_string4 = file->readString();
-	_string5 = file->readString();
+	_seasonNumber = file->readNumber();
+	_springName = file->readString();
+	_summerName = file->readString();
+	_autumnName = file->readString();
+	_winterName = file->readString();
 
 	CViewAutoSoundPlayer::load(file);
 }
 
+bool CSeasonNoises::ChangeSeasonMsg(CChangeSeasonMsg *msg) {
+	_seasonNumber = (_seasonNumber + 1) % 4;
+	CActMsg actMsg("Update");
+	actMsg.execute(this);
+
+	return true;
+}
+
+bool CSeasonNoises::EnterViewMsg(CEnterViewMsg *msg) {
+	CActMsg actMsg("Update");
+	return true;
+}
+
+bool CSeasonNoises::ActMsg(CActMsg *msg) {
+	msg->_action = "Update";
+
+	switch (_seasonNumber) {
+	case 0:
+		_filename = _springName;
+		break;
+	case 1:
+		_filename = _summerName;
+		break;
+	case 2:
+		_filename = _autumnName;
+		break;
+	case 3:
+		_filename = _winterName;
+		break;
+	default:
+		break;
+	}
+	
+	CSignalObject signalMsg;
+	signalMsg._numValue = 2;
+	signalMsg.execute(this);
+
+	CTurnOn onMsg;
+	onMsg.execute(this);
+
+	return true;
+}
+
+bool CSeasonNoises::LoadSuccessMsg(CLoadSuccessMsg *msg) {
+	if (_active) {
+		_active = false;
+		_soundHandle = -1;
+
+		CActMsg actMsg("Update");
+		actMsg.execute(this);
+	}
+
+	return true;
+}
+
 } // End of namespace Titanic
diff --git a/engines/titanic/sound/season_noises.h b/engines/titanic/sound/season_noises.h
index ff39b01..796628d 100644
--- a/engines/titanic/sound/season_noises.h
+++ b/engines/titanic/sound/season_noises.h
@@ -28,12 +28,17 @@
 namespace Titanic {
 
 class CSeasonNoises : public CViewAutoSoundPlayer {
+	DECLARE_MESSAGE_MAP;
+	bool ChangeSeasonMsg(CChangeSeasonMsg *msg);
+	bool EnterViewMsg(CEnterViewMsg *msg);
+	bool ActMsg(CActMsg *msg);
+	bool LoadSuccessMsg(CLoadSuccessMsg *msg);
 private:
-	int _fieldF0;
-	CString _string2;
-	CString _string3;
-	CString _string4;
-	CString _string5;
+	int _seasonNumber;
+	CString _springName;
+	CString _summerName;
+	CString _autumnName;
+	CString _winterName;
 public:
 	CLASSDEF;
 	CSeasonNoises();
diff --git a/engines/titanic/sound/titania_speech.cpp b/engines/titanic/sound/titania_speech.cpp
index f9d5b91..a07cc79 100644
--- a/engines/titanic/sound/titania_speech.cpp
+++ b/engines/titanic/sound/titania_speech.cpp
@@ -24,24 +24,133 @@
 
 namespace Titanic {
 
+BEGIN_MESSAGE_MAP(CTitaniaSpeech, CGameObject)
+	ON_MESSAGE(ActMsg)
+	ON_MESSAGE(MovieEndMsg)
+	ON_MESSAGE(MovieFrameMsg)
+	ON_MESSAGE(TimerMsg)
+	ON_MESSAGE(EnterRoomMsg)
+END_MESSAGE_MAP()
+
 void CTitaniaSpeech::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(1, indent);
-	file->writeNumberLine(_value1, indent);
-	file->writeNumberLine(_value2, indent);
+	file->writeNumberLine(_paraNum, indent);
+	file->writeNumberLine(_frameNum, indent);
 
 	CGameObject::save(file, indent);
 }
 
 void CTitaniaSpeech::load(SimpleFile *file) {
 	file->readNumber();
-	_value1 = file->readNumber();
-	_value2 = file->readNumber();
+	_paraNum = file->readNumber();
+	_frameNum = file->readNumber();
 
 	CGameObject::load(file);
 }
 
+bool CTitaniaSpeech::ActMsg(CActMsg *msg) {
+	CSetFrameMsg frameMsg;
+	CVisibleMsg visibleMsg;
+	CActMsg actMsg;
+
+	if (msg->_action == "TitaniaSpeech") {
+		switch (_paraNum) {
+		case 0:
+			movieSetAudioTiming(true);
+			loadSound("a#12.wav");
+			sleep(1000);
+			playMovie(0, 187, MOVIE_GAMESTATE || MOVIE_NOTIFY_OBJECT);
+			movieEvent(0);
+			break;
+
+		case 1:
+			loadSound("a#11.wav");
+			addTimer(0);
+			startAnimTimer("Para2", 300);
+			addTimer(6000);
+			addTimer(12000);
+			addTimer(18000);
+			addTimer(24000);
+			startAnimTimer("NextPara", 30000);
+			break;
+
+		case 2:
+			visibleMsg._visible = false;
+			visibleMsg.execute("TitaniaStillControl");
+			loadSound("a#10.wav");
+			playMovie(585, 706, MOVIE_GAMESTATE || MOVIE_NOTIFY_OBJECT);
+			playSound("a#10.wav");
+			break;
+
+		case 3:
+			visibleMsg._visible = false;
+			visibleMsg.execute("TitaniaStillControl");
+			loadSound("a#9.wav");
+			playMovie(707, 905, MOVIE_GAMESTATE || MOVIE_NOTIFY_OBJECT);
+			playSound("a#9.wav");
+			break;
+
+		case 4:
+			visibleMsg._visible = false;
+			visibleMsg.execute("TitaniaStillControl");
+			loadSound("a#8.wav");
+			playMovie(906, 938, MOVIE_GAMESTATE || MOVIE_NOTIFY_OBJECT);
+			playSound("a#8.wav");
+			break;
+
+		default:
+			sleep(3000);
+			actMsg._action = "SleepTitania";
+			actMsg.execute(this);
+		}
+	}
+
+	return true;
+}
+
+bool CTitaniaSpeech::MovieEndMsg(CMovieEndMsg *msg) {
+	if (_paraNum == 5) {
+		startAnimTimer("NextPara", 0);
+	} else {
+		if (_paraNum != 1)
+			addTimer(0);
+		startAnimTimer("NextPara", 3000);
+	}
+
+	return true;
+}
+
+bool CTitaniaSpeech::MovieFrameMsg(CMovieFrameMsg *msg) {
+	int frame = getMovieFrame();
+	if (!frame)
+		playSound("a#12.wav");
+
+	return true;
+}
+
+bool CTitaniaSpeech::TimerMsg(CTimerMsg *msg) {
+	CSetFrameMsg frameMsg;
+	CVisibleMsg visibleMsg;
+	CActMsg actMsg("TitaniaSpeech");
+
+	if (msg->_action == "NextPara") {
+		visibleMsg.execute("TitaniaStillControl");
+		++_paraNum;
+		actMsg.execute(this);
+	} else if (msg->_action == "Para2") {
+		playSound("a#11.wav");
+	} else {
+		frameMsg._frameNumber = _frameNum;
+		frameMsg.execute("TitaniaStillControl");
+	}
+
+	return true;
+}
+
 bool CTitaniaSpeech::EnterRoomMsg(CEnterRoomMsg *msg) {
-	warning("CTitaniaSpeech::handleEvent");
+	CActMsg actMsg("Disable");
+	actMsg.execute("ShipAnnouncements");
+
 	return true;
 }
 
diff --git a/engines/titanic/sound/titania_speech.h b/engines/titanic/sound/titania_speech.h
index c9b9304..2244bb0 100644
--- a/engines/titanic/sound/titania_speech.h
+++ b/engines/titanic/sound/titania_speech.h
@@ -29,12 +29,17 @@
 namespace Titanic {
 
 class CTitaniaSpeech : public CGameObject {
+	DECLARE_MESSAGE_MAP;
+	bool ActMsg(CActMsg *msg);
+	bool MovieEndMsg(CMovieEndMsg *msg);
+	bool MovieFrameMsg(CMovieFrameMsg *msg);
+	bool TimerMsg(CTimerMsg *msg);
 	bool EnterRoomMsg(CEnterRoomMsg *msg);
 private:
-	int _value1, _value2;
+	int _paraNum, _frameNum;
 public:
 	CLASSDEF;
-	CTitaniaSpeech() : CGameObject(), _value1(1), _value2(0) {}
+	CTitaniaSpeech() : CGameObject(), _paraNum(1), _frameNum(0) {}
 
 	/**
 	 * Save the data for the class to file
diff --git a/engines/titanic/sound/view_toggles_other_music.cpp b/engines/titanic/sound/view_toggles_other_music.cpp
index 35888fb..731f59b 100644
--- a/engines/titanic/sound/view_toggles_other_music.cpp
+++ b/engines/titanic/sound/view_toggles_other_music.cpp
@@ -24,21 +24,35 @@
 
 namespace Titanic {
 
-CViewTogglesOtherMusic::CViewTogglesOtherMusic() : CEnterViewTogglesOtherMusic(), _fieldCC(0) {
+BEGIN_MESSAGE_MAP(CViewTogglesOtherMusic, CEnterViewTogglesOtherMusic)
+	ON_MESSAGE(LeaveViewMsg)
+END_MESSAGE_MAP()
+
+CViewTogglesOtherMusic::CViewTogglesOtherMusic() : 
+		CEnterViewTogglesOtherMusic(), _value(1) {
 }
 
 void CViewTogglesOtherMusic::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(1, indent);
-	file->writeNumberLine(_fieldCC, indent);
+	file->writeNumberLine(_value, indent);
 
 	CEnterViewTogglesOtherMusic::save(file, indent);
 }
 
 void CViewTogglesOtherMusic::load(SimpleFile *file) {
 	file->readNumber();
-	_fieldCC = file->readNumber();
+	_value = file->readNumber();
 
 	CEnterViewTogglesOtherMusic::load(file);
 }
 
+bool CViewTogglesOtherMusic::LeaveViewMsg(CLeaveViewMsg *msg) {
+	if (msg->_oldView == findView()) {
+		CTriggerAutoMusicPlayerMsg playerMsg(_value);
+		playerMsg.execute(this);
+	}
+
+	return true;
+}
+
 } // End of namespace Titanic
diff --git a/engines/titanic/sound/view_toggles_other_music.h b/engines/titanic/sound/view_toggles_other_music.h
index a5ba68b..1b5f110 100644
--- a/engines/titanic/sound/view_toggles_other_music.h
+++ b/engines/titanic/sound/view_toggles_other_music.h
@@ -28,8 +28,10 @@
 namespace Titanic {
 
 class CViewTogglesOtherMusic : public CEnterViewTogglesOtherMusic {
+	DECLARE_MESSAGE_MAP;
+	bool LeaveViewMsg(CLeaveViewMsg *msg);
 private:
-	int _fieldCC;
+	int _value;
 public:
 	CLASSDEF;
 	CViewTogglesOtherMusic();
diff --git a/engines/titanic/support/movie.cpp b/engines/titanic/support/movie.cpp
index 5453d8c..3bb9fb8 100644
--- a/engines/titanic/support/movie.cpp
+++ b/engines/titanic/support/movie.cpp
@@ -37,7 +37,7 @@ CMovieList *CMovie::_playingMovies;
 CVideoSurface *CMovie::_movieSurface;
 
 CMovie::CMovie() : ListItem(), _handled(false), _hasVideoFrame(false),
-		_field14(0) {
+		_hasAudioTiming(false) {
 }
 
 CMovie::~CMovie() {
diff --git a/engines/titanic/support/movie.h b/engines/titanic/support/movie.h
index 2a7d589..2d1c264 100644
--- a/engines/titanic/support/movie.h
+++ b/engines/titanic/support/movie.h
@@ -50,7 +50,7 @@ protected:
 public:
 	bool _handled;
 	bool _hasVideoFrame;
-	int _field14;
+	bool _hasAudioTiming;
 public:
 	static CMovieList *_playingMovies;
 	static CVideoSurface *_movieSurface;






More information about the Scummvm-git-logs mailing list