Fix to instrument load/save
svn-id: r6051
This commit is contained in:
parent
e4b1a7e709
commit
01ffb7bec2
2 changed files with 13 additions and 8 deletions
|
@ -3094,14 +3094,18 @@ int IMuseInternal::save_or_load(Serializer *ser, Scumm *scumm)
|
||||||
ser->saveLoadArrayOf(_players, ARRAYSIZE(_players), sizeof(_players[0]), playerEntries);
|
ser->saveLoadArrayOf(_players, ARRAYSIZE(_players), sizeof(_players[0]), playerEntries);
|
||||||
ser->saveLoadArrayOf(_parts, ARRAYSIZE(_parts), sizeof(_parts[0]), partEntries);
|
ser->saveLoadArrayOf(_parts, ARRAYSIZE(_parts), sizeof(_parts[0]), partEntries);
|
||||||
|
|
||||||
// Load/save the instrument definitions, which were revamped with V11.
|
{ // Load/save the instrument definitions, which were revamped with V11.
|
||||||
if (ser->getVersion() >= VER_V11) {
|
|
||||||
int i;
|
int i;
|
||||||
Part *part = &_parts[0];
|
Part *part = &_parts[0];
|
||||||
|
if (ser->getVersion() >= VER_V11) {
|
||||||
for (i = ARRAYSIZE(_parts); i; --i, ++part) {
|
for (i = ARRAYSIZE(_parts); i; --i, ++part) {
|
||||||
part->_program = 255;
|
part->_program = 255;
|
||||||
part->_instrument.saveOrLoad (ser);
|
part->_instrument.saveOrLoad (ser);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
for (i = ARRAYSIZE(_parts); i; --i, ++part)
|
||||||
|
part->_instrument.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ser->saveLoadArrayOf(_volume_fader, ARRAYSIZE(_volume_fader),
|
ser->saveLoadArrayOf(_volume_fader, ARRAYSIZE(_volume_fader),
|
||||||
|
|
|
@ -286,8 +286,8 @@ void Instrument::saveOrLoad (Serializer *s)
|
||||||
_instrument->saveOrLoad (s);
|
_instrument->saveOrLoad (s);
|
||||||
} else {
|
} else {
|
||||||
clear();
|
clear();
|
||||||
byte type = s->loadByte();
|
_type = s->loadByte();
|
||||||
switch (type) {
|
switch (_type) {
|
||||||
case itNone:
|
case itNone:
|
||||||
break;
|
break;
|
||||||
case itProgram:
|
case itProgram:
|
||||||
|
@ -300,7 +300,8 @@ void Instrument::saveOrLoad (Serializer *s)
|
||||||
_instrument = new Instrument_Roland (s);
|
_instrument = new Instrument_Roland (s);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
warning ("No known instrument classification #%d", (int) type);
|
warning ("No known instrument classification #%d", (int) _type);
|
||||||
|
_type = itNone;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue