[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