[Scummvm-cvs-logs] CVS: scummvm/simon simon.cpp,1.247,1.248
Max Horn
fingolfin at users.sourceforge.net
Sat Jun 21 08:54:02 CEST 2003
Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1:/tmp/cvs-serv25727
Modified Files:
simon.cpp
Log Message:
delete _sound when SimonState is destroyed; fix leak & enian bug in playSting (but somebody please test that, I don't have simon1dos)
Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.247
retrieving revision 1.248
diff -u -d -r1.247 -r1.248
--- simon.cpp 21 Jun 2003 15:42:20 -0000 1.247
+++ simon.cpp 21 Jun 2003 15:53:27 -0000 1.248
@@ -458,6 +458,8 @@
delete _dummy_item_3;
delete [] _fcs_list;
+
+ delete _sound;
}
void SimonEngine::errorString(const char *buf1, char *buf2) {
@@ -1082,10 +1084,9 @@
return;
char filename[11];
- uint16 size;
File mus_file;
- uint16 *mus_offsets;
+ uint16 mus_offset;
sprintf(filename, "STINGS%i.MUS", _midi_sfx);
mus_file.open(filename, _gameDataPath);
@@ -1094,16 +1095,16 @@
return;
}
- size = mus_file.readUint16LE();
- mus_offsets = (uint16 *)malloc(size);
+ //uint16 size = mus_file.readUint16LE();
- mus_file.seek(0, SEEK_SET);
- if (mus_file.read(mus_offsets, size) != size)
- error("Can't read offsets");
+ mus_file.seek(a * 2, SEEK_SET);
+ mus_offset = mus_file.readUint16LE();
+ if (mus_file.ioFailed())
+ error("Can't read sting %d offset", a);
- mus_file.seek(mus_offsets[a], SEEK_SET);
- midi.loadSMF (&mus_file, a, true);
- midi.startTrack (0);
+ mus_file.seek(mus_offset, SEEK_SET);
+ midi.loadSMF(&mus_file, a, true);
+ midi.startTrack(0);
}
Subroutine *SimonEngine::getSubroutineByID(uint subroutine_id) {
More information about the Scummvm-git-logs
mailing list