aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle/utils.cpp
diff options
context:
space:
mode:
authorStrangerke2013-08-04 10:39:34 +0200
committerStrangerke2013-08-04 10:39:34 +0200
commit134532090bac167979b3114b8caccb25f3a8dc86 (patch)
tree07ccaaeb443a5224819c37d265fcad5945892d5e /engines/mortevielle/utils.cpp
parent870a583c8b93eb560dca37add3cf9d98f21d594a (diff)
downloadscummvm-rg350-134532090bac167979b3114b8caccb25f3a8dc86.tar.gz
scummvm-rg350-134532090bac167979b3114b8caccb25f3a8dc86.tar.bz2
scummvm-rg350-134532090bac167979b3114b8caccb25f3a8dc86.zip
MORTEVIELLE: Implement music in intro screen
Diffstat (limited to 'engines/mortevielle/utils.cpp')
-rw-r--r--engines/mortevielle/utils.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/mortevielle/utils.cpp b/engines/mortevielle/utils.cpp
index af2c4868de..b729d5951e 100644
--- a/engines/mortevielle/utils.cpp
+++ b/engines/mortevielle/utils.cpp
@@ -2201,13 +2201,15 @@ void MortevielleEngine::music() {
if (!f.open("mort.img"))
error("Missing file - mort.img");
- free(_compMusicBuf2);
int size = f.size();
- _compMusicBuf2 = (byte *)malloc(sizeof(byte) * size);
- f.read(_compMusicBuf2, size);
+ byte *compMusicBuf = (byte *)malloc(sizeof(byte) * size);
+ byte *musicBuf = (byte *)malloc(sizeof(byte) * size * 2);
+ f.read(compMusicBuf, size);
f.close();
- _soundManager.decodeMusic(_compMusicBuf2, &_mem[kAdrMusic * 16], size / 128);
+ _soundManager.decodeMusic(compMusicBuf, musicBuf, size);
+ free(compMusicBuf);
+
_addFix = (float)((kTempoMusic - 8)) / 256;
_speechManager.cctable(_speechManager._tbi);
@@ -2215,12 +2217,14 @@ void MortevielleEngine::music() {
int k = 0;
do {
fin = keyPressed();
- _soundManager.musyc(_speechManager._tbi, 9958, kTempoMusic);
+ _soundManager.playSong(musicBuf, size * 2);
++k;
fin = fin | keyPressed() | (k >= 5);
} while (!fin);
while (keyPressed())
getChar();
+
+ free(musicBuf);
}
/**