diff options
author | Max Horn | 2003-12-25 16:52:31 +0000 |
---|---|---|
committer | Max Horn | 2003-12-25 16:52:31 +0000 |
commit | 67dcc6e1ba9e0637bd44e8154c15902bfc907d0d (patch) | |
tree | 6cb0185e29535f08db882e833400f4effec2b42d /scumm | |
parent | 664af894bbf9b35ae2a624f7b625e819941adfab (diff) | |
download | scummvm-rg350-67dcc6e1ba9e0637bd44e8154c15902bfc907d0d.tar.gz scummvm-rg350-67dcc6e1ba9e0637bd44e8154c15902bfc907d0d.tar.bz2 scummvm-rg350-67dcc6e1ba9e0637bd44e8154c15902bfc907d0d.zip |
fix some buglets
svn-id: r11917
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/imuse_digi.cpp | 17 | ||||
-rw-r--r-- | scumm/imuse_digi.h | 2 |
2 files changed, 13 insertions, 6 deletions
diff --git a/scumm/imuse_digi.cpp b/scumm/imuse_digi.cpp index f578ca6220..9b69d186ca 100644 --- a/scumm/imuse_digi.cpp +++ b/scumm/imuse_digi.cpp @@ -720,8 +720,6 @@ void IMuseDigital::timer_handler(void *refCon) { IMuseDigital::IMuseDigital(ScummEngine *scumm) : _scumm(scumm) { - memset(_channel, 0, sizeof(Channel) * MAX_DIGITAL_CHANNELS); - _scumm->_timer->installTimerProc(timer_handler, 40000, this); _pause = false; _nameBundleMusic = ""; @@ -730,6 +728,8 @@ IMuseDigital::IMuseDigital(ScummEngine *scumm) _musicDisk = 0; _bundle = new Bundle(); + + _scumm->_timer->installTimerProc(timer_handler, 40000, this); } IMuseDigital::~IMuseDigital() { @@ -814,14 +814,19 @@ void IMuseDigital::startSound(int sound) { warning("IMuseDigital::startSound(%d) NULL resource pointer", sound); return; } - _channel[l].idSound = sound; - _channel[l].offset = 0; _channel[l].pan = 0; _channel[l].vol = 127 * 1000; - _channel[l].volFadeUsed = false; _channel[l].volFadeDest = 0; _channel[l].volFadeStep = 0; _channel[l].volFadeDelay = 0; + _channel[l].volFadeUsed = false; + + _channel[l].numJumps = 0; + _channel[l].numRegions = 0; + _channel[l].numMarkers = 0; + + _channel[l].offset = 0; + _channel[l].idSound = sound; uint32 tag; int32 size = 0; @@ -855,7 +860,7 @@ void IMuseDigital::startSound(int sound) { break; case MKID_BE('TEXT'): size = READ_BE_UINT32(ptr); ptr += 4; - if (_channel[l].numRegions >= MAX_IMUSE_MARKERS) { + if (_channel[l].numMarkers >= MAX_IMUSE_MARKERS) { warning("IMuseDigital::startSound() Not enough space for Marker"); ptr += size; break; diff --git a/scumm/imuse_digi.h b/scumm/imuse_digi.h index 5c2f3f22b8..913f1e72e7 100644 --- a/scumm/imuse_digi.h +++ b/scumm/imuse_digi.h @@ -87,6 +87,8 @@ private: PlayingSoundHandle handle; bool used; bool toBeRemoved; + + Channel() : idSound(-1), used(false) {} }; Channel _channel[MAX_DIGITAL_CHANNELS]; |