mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-22 12:12:16 +00:00
HOPKINS: Fix bug that could cause the music to stop prematurely
The SoundManager filled the sound handles with zeroes, which made the mixer confuse them with active sound handle zero. In my case, this happened to be the intro music, and the music was stopped when playWavSample() wrongly thought its sound handle was in use.
This commit is contained in:
parent
12e9c31f41
commit
2b40502503
1
NEWS
1
NEWS
@ -27,6 +27,7 @@ For a more comprehensive changelog of the latest experimental code, see:
|
||||
|
||||
Hopkins:
|
||||
- Added an option to toggle Gore Mode from the ScummVM GUI.
|
||||
- Fixed bug that could cause the music to stop prematurely.
|
||||
|
||||
SCI:
|
||||
- Added support for the more detailed RAVE lip syncing data in the Windows
|
||||
|
@ -200,14 +200,6 @@ SoundManager::SoundManager(HopkinsEngine *vm) {
|
||||
_currentSoundIndex = 0;
|
||||
_oldSoundNumber = 0;
|
||||
_modPlayingFl = false;
|
||||
|
||||
for (int i = 0; i < VOICE_COUNT; ++i)
|
||||
Common::fill((byte *)&_voice[i], (byte *)&_voice[i] + sizeof(VoiceItem), 0);
|
||||
for (int i = 0; i < SWAV_COUNT; ++i)
|
||||
Common::fill((byte *)&_sWav[i], (byte *)&_sWav[i] + sizeof(SwavItem), 0);
|
||||
for (int i = 0; i < SOUND_COUNT; ++i)
|
||||
Common::fill((byte *)&_sound[i], (byte *)&_sound[i] + sizeof(SoundItem), 0);
|
||||
Common::fill((byte *)&_music, (byte *)&_music + sizeof(MusicItem), 0);
|
||||
}
|
||||
|
||||
SoundManager::~SoundManager() {
|
||||
|
@ -33,12 +33,16 @@ namespace Hopkins {
|
||||
|
||||
class VoiceItem {
|
||||
public:
|
||||
VoiceItem() : _status(false), _wavIndex(0) {}
|
||||
|
||||
bool _status;
|
||||
int _wavIndex;
|
||||
};
|
||||
|
||||
class SwavItem {
|
||||
public:
|
||||
SwavItem() : _active(false), _audioStream(NULL), _freeSampleFl(false) {}
|
||||
|
||||
bool _active;
|
||||
Audio::RewindableAudioStream *_audioStream;
|
||||
Audio::SoundHandle _soundHandle;
|
||||
@ -47,11 +51,15 @@ public:
|
||||
|
||||
class MusicItem {
|
||||
public:
|
||||
MusicItem() : _active(false) {}
|
||||
|
||||
bool _active;
|
||||
};
|
||||
|
||||
class SoundItem {
|
||||
public:
|
||||
SoundItem() : _active(false) {}
|
||||
|
||||
bool _active;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user