[Scummvm-cvs-logs] SF.net SVN: scummvm:[35179] scummvm/trunk/engines/kyra

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sun Nov 30 03:54:39 CET 2008


Revision: 35179
          http://scummvm.svn.sourceforge.net/scummvm/?rev=35179&view=rev
Author:   lordhoto
Date:     2008-11-30 02:54:39 +0000 (Sun, 30 Nov 2008)

Log Message:
-----------
Cleanup.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/script_tim.cpp
    scummvm/trunk/engines/kyra/sound.h
    scummvm/trunk/engines/kyra/sound_midi.cpp

Modified: scummvm/trunk/engines/kyra/script_tim.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_tim.cpp	2008-11-30 02:47:20 UTC (rev 35178)
+++ scummvm/trunk/engines/kyra/script_tim.cpp	2008-11-30 02:54:39 UTC (rev 35179)
@@ -559,7 +559,11 @@
 
 int TIMInterpreter::cmd_loadSoundFile(const uint16 *param) {
 	const char *file = (const char *)(_currentTim->text + READ_LE_UINT16(_currentTim->text + (param[0]<<1)));
+
 	_vm->sound()->loadSoundFile(file);
+	if (_vm->gameFlags().gameID == GI_LOL)
+		_vm->sound()->loadSfxFile(file);
+
 	return 1;
 }
 

Modified: scummvm/trunk/engines/kyra/sound.h
===================================================================
--- scummvm/trunk/engines/kyra/sound.h	2008-11-30 02:47:20 UTC (rev 35178)
+++ scummvm/trunk/engines/kyra/sound.h	2008-11-30 02:54:39 UTC (rev 35179)
@@ -350,7 +350,6 @@
 
 	// Midi file related
 	byte *_musicFile, *_sfxFile;
-	uint32 _musicFileSize, _sfxFileSize;
 
 	MidiParser *_music;
 	MidiParser *_sfx[3];

Modified: scummvm/trunk/engines/kyra/sound_midi.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_midi.cpp	2008-11-30 02:47:20 UTC (rev 35178)
+++ scummvm/trunk/engines/kyra/sound_midi.cpp	2008-11-30 02:54:39 UTC (rev 35179)
@@ -450,7 +450,6 @@
 	_output = 0;
 
 	_musicFile = _sfxFile = 0;
-	_musicFileSize = _sfxFileSize = 0;
 
 	_music = MidiParser::createParser_XMIDI();
 	assert(_music);
@@ -551,38 +550,44 @@
 	for (int i = 0; i < 16; ++i)
 		_output->stopNotesOnChannel(i);
 
-	if (_sfxFile != _musicFile)
-		delete[] _sfxFile;
 	delete[] _musicFile;
+	uint32 fileSize = 0;
+	_musicFile = _vm->resource()->fileData(file.c_str(), &fileSize);
 
-	_musicFile = _sfxFile = _vm->resource()->fileData(file.c_str(), &_musicFileSize);
-	_sfxFileSize = _musicFileSize;
-
 	_output->setSoundSource(0);
-	_music->loadMusic(_musicFile, _musicFileSize);
+	_music->loadMusic(_musicFile, fileSize);
 	_music->stopPlaying();
 
-	for (int i = 0; i < 3; ++i) {
-		_output->setSoundSource(i+1);
-		_sfx[i]->loadMusic(_musicFile, _musicFileSize);
-		_sfx[i]->stopPlaying();
+	// Since KYRA1 uses the same file for SFX and Music
+	// we setup sfx to play from music file as well
+	if (_vm->gameFlags().gameID == GI_KYRA1) {
+		for (int i = 0; i < 3; ++i) {
+			_output->setSoundSource(i+1);
+			_sfx[i]->loadMusic(_musicFile, fileSize);
+			_sfx[i]->stopPlaying();
+		}
 	}
 }
 
 void SoundMidiPC::loadSfxFile(Common::String file) {
 	Common::StackLock lock(_mutex);
 
+	// Kyrandia 1 doesn't use a special sfx file
+	if (_vm->gameFlags().gameID == GI_KYRA1)
+		return;
+
 	file += _useC55 ? ".C55" : ".XMI";
 	if (!_vm->resource()->exists(file.c_str()))
 		return;
 
-	if (_sfxFile != _musicFile)
-		delete[] _sfxFile;
+	delete[] _sfxFile;
 
-	_sfxFile = _vm->resource()->fileData(file.c_str(), &_sfxFileSize);
+	uint32 fileSize = 0;
+	_sfxFile = _vm->resource()->fileData(file.c_str(), &fileSize);
+
 	for (int i = 0; i < 3; ++i) {
 		_output->setSoundSource(i+1);
-		_sfx[i]->loadMusic(_sfxFile, _sfxFileSize);
+		_sfx[i]->loadMusic(_sfxFile, fileSize);
 		_sfx[i]->stopPlaying();
 	}
 }


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