aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorMax Horn2003-12-25 16:52:31 +0000
committerMax Horn2003-12-25 16:52:31 +0000
commit67dcc6e1ba9e0637bd44e8154c15902bfc907d0d (patch)
tree6cb0185e29535f08db882e833400f4effec2b42d /scumm
parent664af894bbf9b35ae2a624f7b625e819941adfab (diff)
downloadscummvm-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.cpp17
-rw-r--r--scumm/imuse_digi.h2
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];