diff options
| -rw-r--r-- | engines/mortevielle/mortevielle.cpp | 2 | ||||
| -rw-r--r-- | engines/mortevielle/mortevielle.h | 2 | ||||
| -rw-r--r-- | engines/mortevielle/speech.cpp | 4 | ||||
| -rw-r--r-- | engines/mortevielle/utils.cpp | 13 | 
4 files changed, 12 insertions, 9 deletions
diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp index 8eea0cabb5..616bee1a67 100644 --- a/engines/mortevielle/mortevielle.cpp +++ b/engines/mortevielle/mortevielle.cpp @@ -104,12 +104,14 @@ MortevielleEngine::MortevielleEngine(OSystem *system, const ADGameDescription *g  	_curPict = nullptr;  	_curAnim = nullptr;  	_rightFramePict = nullptr; +	_compMusicBuf2 = nullptr;  }  MortevielleEngine::~MortevielleEngine() {  	free(_curPict);  	free(_curAnim);  	free(_rightFramePict); +	free(_compMusicBuf2);  }  /** diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h index 94e9716e7b..23003719ba 100644 --- a/engines/mortevielle/mortevielle.h +++ b/engines/mortevielle/mortevielle.h @@ -66,7 +66,6 @@ namespace Mortevielle {  const int kAdrMusic = 0x5000;  const int kAdrCompMusicBuf1 = 0x7414; -const int kAdrCompMusicBuf2 = 0x3800;  #define ord(v) ((int) v)  #define chr(v) ((unsigned char) v) @@ -478,6 +477,7 @@ public:  	byte *_curPict;  	byte *_curAnim;  	byte *_rightFramePict; +	byte *_compMusicBuf2;  	Debugger _debugger;  	ScreenSurface _screenSurface; diff --git a/engines/mortevielle/speech.cpp b/engines/mortevielle/speech.cpp index 3a42c957c8..899cd80472 100644 --- a/engines/mortevielle/speech.cpp +++ b/engines/mortevielle/speech.cpp @@ -194,13 +194,12 @@ void SpeechManager::loadPhonemeSounds() {   */  void SpeechManager::loadNoise() {  	Common::File f; -	int i;  	if (!f.open("bruits"))               //Translation: "noise"  		error("Missing file - bruits");  	f.read(&_vm->_mem[kAdrNoise * 16], 250 * 128); // 32000 -	for (i = 0; i <= 19013; ++i) +	for (int i = 0; i < _noise5Size; ++i)  		_vm->_mem[(kAdrNoise * 16) + 32000 + i] = _noise5Buf[i];  	f.read(&_vm->_mem[(kAdrNoise1 * 16) + kOffsetB1], 149 * 128); // 19072 @@ -582,7 +581,6 @@ void SpeechManager::startSpeech(int rep, int ht, int typ) {  	switch (typ) {  	case 1:  		loadNoise(); -		/*if zuul then zzuul(kAdrNoise,0,1095);*/  		regenbruit();  		break;  	case 2: diff --git a/engines/mortevielle/utils.cpp b/engines/mortevielle/utils.cpp index 2211a6d569..7a8306067d 100644 --- a/engines/mortevielle/utils.cpp +++ b/engines/mortevielle/utils.cpp @@ -2193,14 +2193,17 @@ void MortevielleEngine::music() {  	_reloadCFIEC = true; -	Common::File fic; -	if (!fic.open("mort.img")) +	Common::File f; +	if (!f.open("mort.img"))  		error("Missing file - mort.img"); -	fic.read(&_mem[kAdrCompMusicBuf2 * 16], 623 * 128); -	fic.close(); +	free(_compMusicBuf2); +	int size = f.size(); +	_compMusicBuf2 = (byte *)malloc(sizeof(byte) * size); +	f.read(_compMusicBuf2, size); +	f.close(); -	_soundManager.decodeMusic(&_mem[kAdrCompMusicBuf2 * 16], &_mem[kAdrMusic * 16], 623); +	_soundManager.decodeMusic(_compMusicBuf2, &_mem[kAdrMusic * 16], size / 128);  	_addFix = (float)((kTempoMusic - 8)) / 256;  	_speechManager.cctable(_speechManager._tbi);  | 
