[Scummvm-git-logs] scummvm master -> 9e0959265e81775cb228c179febf29302b70067c

dreammaster dreammaster at scummvm.org
Sat Feb 4 02:49:23 CET 2017


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:
9e0959265e TITANIC: Implementing more CMusicRoomHandler code


Commit: 9e0959265e81775cb228c179febf29302b70067c
    https://github.com/scummvm/scummvm/commit/9e0959265e81775cb228c179febf29302b70067c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-02-03T20:49:17-05:00

Commit Message:
TITANIC: Implementing more CMusicRoomHandler code

Changed paths:
    engines/titanic/sound/music_room_handler.cpp
    engines/titanic/sound/music_room_handler.h
    engines/titanic/sound/music_wave.cpp
    engines/titanic/sound/music_wave.h


diff --git a/engines/titanic/sound/music_room_handler.cpp b/engines/titanic/sound/music_room_handler.cpp
index ae08af7..4a76def 100644
--- a/engines/titanic/sound/music_room_handler.cpp
+++ b/engines/titanic/sound/music_room_handler.cpp
@@ -37,6 +37,7 @@ CMusicRoomHandler::CMusicRoomHandler(CProjectItem *project, CSoundManager *sound
 	for (int idx = 0; idx < 4; ++idx)
 		_array3[idx] = new Object3();
 	Common::fill(&_array4[0], &_array4[4], 0);
+	Common::fill(&_array5[0], &_array5[4], 0.0);
 	Common::fill(&_array6[0], &_array6[4], 0);
 
 	_audioBuffer = new CAudioBuffer(176400);
@@ -87,7 +88,7 @@ void CMusicRoomHandler::setVolume(int volume) {
 		}
 
 		_array6[idx] = _array4[idx];
-		_array5[idx].clear();
+		_array5[idx] = 0.0;
 	}
 
 	_field108 = 4;
@@ -236,6 +237,7 @@ void CMusicRoomHandler::fn1() {
 		for (int idx = 0; idx < 4; ++idx) {
 			MusicRoomInstrument &ins1 = _array1[idx];
 			MusicRoomInstrument &ins2 = _array2[idx];
+			CMusicWave *musicWave = _musicWaves[idx];
 
 			// Is this about checking playback position?
 			if (_array6[idx] < 0 || ins1._muteControl || _array6[idx] >= _array3[idx]->_field4) {
@@ -243,7 +245,14 @@ void CMusicRoomHandler::fn1() {
 				continue;
 			}
 
-			// TODO
+			uint ticks = g_vm->_events->getTicksCount() - _soundStartTicks;
+			double val = (double)ticks * 0.001 - 0.6;
+
+			if (val >= musicWave->_floatVal) {
+				_array5[idx] += fn3(idx, _array6[idx]);
+
+				// TODO
+			}
 		}
 	}
 }
@@ -253,4 +262,9 @@ bool CMusicRoomHandler::fn2() {
 	return false;
 }
 
+double CMusicRoomHandler::fn3(int index, int val) {
+	// TODO
+	return 0;
+}
+
 } // End of namespace Titanic
diff --git a/engines/titanic/sound/music_room_handler.h b/engines/titanic/sound/music_room_handler.h
index 81f50e4..ed8c7f5 100644
--- a/engines/titanic/sound/music_room_handler.h
+++ b/engines/titanic/sound/music_room_handler.h
@@ -51,14 +51,6 @@ class CMusicRoomHandler {
 		Object3() : _field0(nullptr), _field4(0) {}
 		~Object3() { delete[] _field0; }
 	};
-
-	struct Array5Entry {
-		int _v1;
-		int _v2;
-		Array5Entry() : _v1(0), _v2(0) {}
-
-		void clear() { _v1 = _v2 = 0; }
-	};
 private:
 	CProjectItem *_project;
 	CSoundManager *_soundManager;
@@ -67,7 +59,7 @@ private:
 	MusicRoomInstrument _array2[4];
 	Object3 *_array3[4];
 	int _array4[4];
-	Array5Entry _array5[4];
+	double _array5[4];
 	int _array6[4];
 
 	bool _active;
@@ -85,6 +77,7 @@ private:
 	void updateAudio();
 	void fn1();
 	bool fn2();
+	double fn3(int index, int val);
 public:
 	CMusicRoomHandler(CProjectItem *project, CSoundManager *soundManager);
 	~CMusicRoomHandler();
diff --git a/engines/titanic/sound/music_wave.cpp b/engines/titanic/sound/music_wave.cpp
index 3c4a4cf..cbb4fbf 100644
--- a/engines/titanic/sound/music_wave.cpp
+++ b/engines/titanic/sound/music_wave.cpp
@@ -47,7 +47,7 @@ void CMusicWave::deinit() {
 CMusicWave::CMusicWave(CProjectItem *project, CSoundManager *soundManager, MusicWaveInstrument instrument) :
 		_soundManager(soundManager), _instrument(instrument) {
 	Common::fill(&_gameObjects[0], &_gameObjects[4], (CGameObject *)nullptr);
-	_field20 = _field24 = 0;
+	_floatVal = 0.0;
 	_field34 = -1;
 	_field38 = 0;
 	_field3C = 0;
@@ -61,8 +61,7 @@ CMusicWave::CMusicWave(CProjectItem *project, CSoundManager *soundManager, Music
 		_gameObjects[1] = static_cast<CGameObject *>(_project->findByName("Piano Mouth"));
 		_gameObjects[2] = static_cast<CGameObject *>(_project->findByName("Piano Left Arm"));
 		_gameObjects[3] = static_cast<CGameObject *>(_project->findByName("Piano Right Arm"));
-		_field20 = 0xCCCCCCCD;
-		_field24 = 0x3FDCCCCC;
+		_floatVal = 0.45;
 		break;
 
 	case MV_BASS:
@@ -71,15 +70,14 @@ CMusicWave::CMusicWave(CProjectItem *project, CSoundManager *soundManager, Music
 
 	case MV_BELLS:
 		_gameObjects[0] = static_cast<CGameObject *>(_project->findByName("Tubular Bells"));
-		_field20 = 0x9999999A;
-		_field24 = 0x3FD99999;
+		_floatVal = 0.4;
+		break;
 	
 	case MV_SNAKE:
 		_gameObjects[0] = static_cast<CGameObject *>(_project->findByName("Snake Hammer"));
 		_gameObjects[1] = static_cast<CGameObject *>(_project->findByName("Snake Glass"));
 		_gameObjects[2] = static_cast<CGameObject *>(_project->findByName("Snake Head"));
-		_field20 = 0x5C28F5C3;
-		_field24 = 0x3FC5C28F;
+		_floatVal = 0.17;
 		break;
 	}
 }
@@ -158,13 +156,11 @@ void CMusicWave::start(int val) {
 			case 60:
 				_gameObjects[0]->movieSetAudioTiming(true);
 				_gameObjects[0]->playMovie(0, 512, MOVIE_STOP_PREVIOUS);
-				_field20 = 0x33333333;
-				_field24 = 0x3FE33333;
+				_floatVal = 0.6;
 
 			case 62:
 				_gameObjects[0]->playMovie(828, 1023, MOVIE_STOP_PREVIOUS);
-				_field20 = 0x33333333;
-				_field24 = 0x3FD33333;
+				_floatVal = 0.3;
 				break;
 
 			case 63:
diff --git a/engines/titanic/sound/music_wave.h b/engines/titanic/sound/music_wave.h
index aa95770..b65363c 100644
--- a/engines/titanic/sound/music_wave.h
+++ b/engines/titanic/sound/music_wave.h
@@ -52,8 +52,6 @@ private:
 	MusicWaveInstrument _instrument;
 	CProjectItem *_project;
 	CGameObject *_gameObjects[4];
-	int _field20;
-	int _field24;
 	int _field34;
 	int _field38;
 	int _field3C;
@@ -66,6 +64,8 @@ private:
 	 */
 	CWaveFile *createWaveFile(const CString &name);
 public:
+	double _floatVal;
+public:
 	/**
 	 * Handles initialization of static fields
 	 */





More information about the Scummvm-git-logs mailing list