[Scummvm-cvs-logs] SF.net SVN: scummvm:[35272] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Dec 7 14:12:09 CET 2008
Revision: 35272
http://scummvm.svn.sourceforge.net/scummvm/?rev=35272&view=rev
Author: lordhoto
Date: 2008-12-07 13:12:09 +0000 (Sun, 07 Dec 2008)
Log Message:
-----------
Prevent MIDI files from being load, when they are already loaded.
Modified Paths:
--------------
scummvm/trunk/engines/kyra/sound.h
scummvm/trunk/engines/kyra/sound_midi.cpp
Modified: scummvm/trunk/engines/kyra/sound.h
===================================================================
--- scummvm/trunk/engines/kyra/sound.h 2008-12-07 12:47:14 UTC (rev 35271)
+++ scummvm/trunk/engines/kyra/sound.h 2008-12-07 13:12:09 UTC (rev 35272)
@@ -355,6 +355,7 @@
bool _fadeMusicOut;
// Midi file related
+ Common::String _mFileName, _sFileName;
byte *_musicFile, *_sfxFile;
MidiParser *_music;
Modified: scummvm/trunk/engines/kyra/sound_midi.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_midi.cpp 2008-12-07 12:47:14 UTC (rev 35271)
+++ scummvm/trunk/engines/kyra/sound_midi.cpp 2008-12-07 13:12:09 UTC (rev 35272)
@@ -550,9 +550,13 @@
Common::StackLock lock(_mutex);
file += _useC55 ? ".C55" : ".XMI";
+ file.toUppercase();
if (!_vm->resource()->exists(file.c_str()))
return;
+ if (_mFileName == file)
+ return;
+
// When loading a new file we stopp all notes
// still running on our own, just to prevent
// glitches
@@ -562,6 +566,7 @@
delete[] _musicFile;
uint32 fileSize = 0;
_musicFile = _vm->resource()->fileData(file.c_str(), &fileSize);
+ _mFileName = file;
_output->setSoundSource(0);
_music->loadMusic(_musicFile, fileSize);
@@ -586,13 +591,18 @@
return;
file += _useC55 ? ".C55" : ".XMI";
+ file.toUppercase();
if (!_vm->resource()->exists(file.c_str()))
return;
+ if (_sFileName == file)
+ return;
+
delete[] _sfxFile;
uint32 fileSize = 0;
_sfxFile = _vm->resource()->fileData(file.c_str(), &fileSize);
+ _sFileName = file;
for (int i = 0; i < 3; ++i) {
_output->setSoundSource(i+1);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list