aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/player_towns.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/engines/scumm/player_towns.cpp b/engines/scumm/player_towns.cpp
index a2a00bf2a5..05c9c0ec68 100644
--- a/engines/scumm/player_towns.cpp
+++ b/engines/scumm/player_towns.cpp
@@ -584,7 +584,7 @@ void Player_Towns_v1::playCdaTrack(int sound, const uint8 *data, bool skipTrackV
Player_Towns_v2::Player_Towns_v2(ScummEngine *vm, IMuse *imuse, Audio::Mixer *mixer, bool disposeIMuse) : Player_Towns(vm, true), _imuse(imuse), _imuseDispose(disposeIMuse) {
_soundOverride2 = new SoundOvrParameters2[_numSoundMax];
memset(_soundOverride2, 0, _numSoundMax * sizeof(SoundOvrParameters2));
- _sblData = new uint8[0x4000];
+ _sblData = 0;
_intf = new TownsAudioInterface(mixer, 0);
}
@@ -727,6 +727,9 @@ void Player_Towns_v2::playPcmTrackSBL(const uint8 *data) {
if (!chan)
return;
+ delete[] _sblData;
+ _sblData = new uint8[len + 32];
+
memcpy(_sblData, header, 32);
WRITE_LE_UINT32(_sblData + 12, len);