diff options
Diffstat (limited to 'engines/hopkins')
-rw-r--r-- | engines/hopkins/sound.cpp | 19 | ||||
-rw-r--r-- | engines/hopkins/sound.h | 12 |
2 files changed, 11 insertions, 20 deletions
diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp index 00da0ffb64..7aaa373d45 100644 --- a/engines/hopkins/sound.cpp +++ b/engines/hopkins/sound.cpp @@ -296,6 +296,7 @@ void SoundManager::LOAD_MUSIC(const Common::String &file) { Common::String filename = Common::String::format("%s_%s.WAV", file.c_str(), &s[0]); LOAD_MSAMPLE(mwavIndex, filename); + assert(destIndex < MUSIC_WAVE_COUNT); Music._mwavIndexes[destIndex++] = mwavIndex; } } while (!breakFlag); @@ -305,10 +306,6 @@ void SoundManager::LOAD_MUSIC(const Common::String &file) { Music._active = true; Music._isPlaying = false; Music._currentIndex = -1; - Music.fieldE0 = 0; - Music.fieldE4 = 0; - Music.fieldE8 = 0; - Music.fieldF0 = 3; } void SoundManager::PLAY_MUSIC() { @@ -332,10 +329,6 @@ void SoundManager::DEL_MUSIC() { Music._isPlaying = false; Music._string = " "; Music._currentIndex = -1; - Music.fieldE0 = 0; - Music.fieldE4 = 0; - Music.fieldE8 = 0; - Music.fieldF0 = 0; } void SoundManager::checkMusic() { @@ -599,7 +592,7 @@ void SoundManager::STOP_VOICE(int voiceIndex) { Voice[voiceIndex]._status = 0; wavIndex = Voice[voiceIndex]._wavIndex; if (Swav[wavIndex]._active) { - if (Swav[wavIndex].field24 == 1) + if (Swav[wavIndex].freeSample) DEL_SAMPLE_SDL(wavIndex); } } @@ -622,7 +615,7 @@ void SoundManager::PLAY_VOICE_SDL() { if (!Voice[2]._status) { int wavIndex = Voice[2]._wavIndex; - if (Swav[wavIndex]._active && Swav[wavIndex].field24 == 1) + if (Swav[wavIndex]._active && Swav[wavIndex].freeSample) DEL_SAMPLE_SDL(wavIndex); } @@ -654,13 +647,13 @@ bool SoundManager::SDL_LoadVoice(const Common::String &filename, size_t fileOffs return true; } -void SoundManager::LOAD_SAMPLE2_SDL(int wavIndex, const Common::String &filename, int field24) { +void SoundManager::LOAD_SAMPLE2_SDL(int wavIndex, const Common::String &filename, bool freeSample) { if (Swav[wavIndex]._active) DEL_SAMPLE_SDL(wavIndex); SDL_LoadVoice(filename, 0, 0, Swav[wavIndex]); Swav[wavIndex]._active = true; - Swav[wavIndex].field24 = field24; + Swav[wavIndex].freeSample = freeSample; } void SoundManager::LOAD_NWAV(const Common::String &file, int wavIndex) { @@ -694,7 +687,7 @@ void SoundManager::PLAY_SAMPLE_SDL(int voiceIndex, int wavIndex) { if (!Swav[wavIndex]._active) warning("Bad handle"); - if (Voice[voiceIndex]._status == 1 && Swav[wavIndex]._active && Swav[wavIndex].field24 == 1) + if (Voice[voiceIndex]._status == 1 && Swav[wavIndex]._active && Swav[wavIndex].freeSample) DEL_SAMPLE_SDL(wavIndex); Voice[voiceIndex].fieldC = 0; diff --git a/engines/hopkins/sound.h b/engines/hopkins/sound.h index 1e3b9925a6..88cecbbea7 100644 --- a/engines/hopkins/sound.h +++ b/engines/hopkins/sound.h @@ -45,7 +45,7 @@ public: bool _active; Audio::RewindableAudioStream *_audioStream; Audio::SoundHandle _soundHandle; - int field24; + bool freeSample; }; class MwavItem { @@ -55,18 +55,16 @@ public: Audio::SoundHandle _soundHandle; }; +#define MUSIC_WAVE_COUNT 50 + class MusicItem { public: bool _active; bool _isPlaying; Common::String _string; - int _mwavIndexes[50]; + int _mwavIndexes[MUSIC_WAVE_COUNT]; byte unused_mb[100]; int _currentIndex; - int fieldE0; - int fieldE4; - int fieldE8; - int fieldF0; }; class SoundItem { @@ -91,7 +89,7 @@ private: void PLAY_VOICE_SDL(); bool DEL_SAMPLE_SDL(int wavIndex); bool SDL_LoadVoice(const Common::String &filename, size_t fileOffset, size_t entryLength, SwavItem &item); - void LOAD_SAMPLE2_SDL(int wavIndex, const Common::String &filename, int field24); + void LOAD_SAMPLE2_SDL(int wavIndex, const Common::String &filename, bool freeSample); void LOAD_NWAV(const Common::String &file, int wavIndex); void PLAY_NWAV(int wavIndex); void DEL_NWAV(int wavIndex); |