Fix to instrument load/save

svn-id: r6051
This commit is contained in:
Jamieson Christian 2002-12-21 23:19:42 +00:00
parent e4b1a7e709
commit 01ffb7bec2
2 changed files with 13 additions and 8 deletions

View file

@ -3094,13 +3094,17 @@ int IMuseInternal::save_or_load(Serializer *ser, Scumm *scumm)
ser->saveLoadArrayOf(_players, ARRAYSIZE(_players), sizeof(_players[0]), playerEntries);
ser->saveLoadArrayOf(_parts, ARRAYSIZE(_parts), sizeof(_parts[0]), partEntries);
// Load/save the instrument definitions, which were revamped with V11.
if (ser->getVersion() >= VER_V11) {
{ // Load/save the instrument definitions, which were revamped with V11.
int i;
Part *part = &_parts[0];
for (i = ARRAYSIZE(_parts); i; --i, ++part) {
part->_program = 255;
part->_instrument.saveOrLoad (ser);
if (ser->getVersion() >= VER_V11) {
for (i = ARRAYSIZE(_parts); i; --i, ++part) {
part->_program = 255;
part->_instrument.saveOrLoad (ser);
}
} else {
for (i = ARRAYSIZE(_parts); i; --i, ++part)
part->_instrument.clear();
}
}

View file

@ -286,8 +286,8 @@ void Instrument::saveOrLoad (Serializer *s)
_instrument->saveOrLoad (s);
} else {
clear();
byte type = s->loadByte();
switch (type) {
_type = s->loadByte();
switch (_type) {
case itNone:
break;
case itProgram:
@ -300,7 +300,8 @@ void Instrument::saveOrLoad (Serializer *s)
_instrument = new Instrument_Roland (s);
break;
default:
warning ("No known instrument classification #%d", (int) type);
warning ("No known instrument classification #%d", (int) _type);
_type = itNone;
}
}
}