[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