diff options
Diffstat (limited to 'sword2/sound.cpp')
-rw-r--r-- | sword2/sound.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/sword2/sound.cpp b/sword2/sound.cpp index 97155db266..ad6c732b0e 100644 --- a/sword2/sound.cpp +++ b/sword2/sound.cpp @@ -50,9 +50,24 @@ Sound::Sound(Sword2Engine *vm) { for (i = 0; i < FXQ_LENGTH; i++) _fxQueue[i].resource = 0; - for (i = 0; i < MAXMUS; i++) + for (i = 0; i < MAXMUS; i++) { _music[i] = NULL; + _musicFile[i].file = new File; + _musicFile[i].idxTab = NULL; + _musicFile[i].idxLen = 0; + _musicFile[i].fileSize = 0; + _musicFile[i].fileType = 0; + _musicFile[i].inUse = false; + + _speechFile[i].file = new File; + _speechFile[i].idxTab = NULL; + _speechFile[i].idxLen = 0; + _speechFile[i].fileSize = 0; + _speechFile[i].fileType = 0; + _speechFile[i].inUse = false; + } + _speechPaused = false; _musicPaused = false; _fxPaused = false; @@ -77,8 +92,10 @@ Sound::~Sound() { free(_mixBuffer); for (int i = 0; i < MAXMUS; i++) { - if (_musicFile[i].isOpen()) - _musicFile[i].close(); + if (_musicFile[i].file->isOpen()) + _musicFile[i].file->close(); + if (_speechFile[i].file->isOpen()) + _speechFile[i].file->close(); } } |