Added ParameterFader into savegame format.
Savegames are now version 17 (VER_V17). svn-id: r7808
This commit is contained in:
parent
c394046d66
commit
2612a8f817
2 changed files with 22 additions and 9 deletions
|
@ -3026,6 +3026,7 @@ int IMuseInternal::save_or_load(Serializer *ser, Scumm *scumm) {
|
||||||
MKEND()
|
MKEND()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// VolumeFader is obsolete.
|
||||||
const SaveLoadEntry volumeFaderEntries[] = {
|
const SaveLoadEntry volumeFaderEntries[] = {
|
||||||
MK_OBSOLETE_REF(VolumeFader, player, TYPE_PLAYER, VER_V8, VER_V16),
|
MK_OBSOLETE_REF(VolumeFader, player, TYPE_PLAYER, VER_V8, VER_V16),
|
||||||
MK_OBSOLETE(VolumeFader, active, sleUint8, VER_V8, VER_V16),
|
MK_OBSOLETE(VolumeFader, active, sleUint8, VER_V8, VER_V16),
|
||||||
|
@ -3039,6 +3040,15 @@ int IMuseInternal::save_or_load(Serializer *ser, Scumm *scumm) {
|
||||||
MKEND()
|
MKEND()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const SaveLoadEntry parameterFaderEntries[] = {
|
||||||
|
MKLINE(ParameterFader, param, sleInt16, VER_V17),
|
||||||
|
MKLINE(ParameterFader, start, sleInt16, VER_V17),
|
||||||
|
MKLINE(ParameterFader, end, sleInt16, VER_V17),
|
||||||
|
MKLINE(ParameterFader, total_time, sleUint32, VER_V17),
|
||||||
|
MKLINE(ParameterFader, current_time, sleUint32, VER_V17),
|
||||||
|
MKEND()
|
||||||
|
};
|
||||||
|
|
||||||
const SaveLoadEntry partEntries[] = {
|
const SaveLoadEntry partEntries[] = {
|
||||||
MKREF(Part, _next, TYPE_PART, VER_V8),
|
MKREF(Part, _next, TYPE_PART, VER_V8),
|
||||||
MKREF(Part, _prev, TYPE_PART, VER_V8),
|
MKREF(Part, _prev, TYPE_PART, VER_V8),
|
||||||
|
@ -3071,16 +3081,21 @@ int IMuseInternal::save_or_load(Serializer *ser, Scumm *scumm) {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int i;
|
||||||
|
|
||||||
ser->_ref_me = this;
|
ser->_ref_me = this;
|
||||||
ser->_save_ref = saveReference;
|
ser->_save_ref = saveReference;
|
||||||
ser->_load_ref = loadReference;
|
ser->_load_ref = loadReference;
|
||||||
|
|
||||||
ser->saveLoadEntries(this, mainEntries);
|
ser->saveLoadEntries(this, mainEntries);
|
||||||
ser->saveLoadArrayOf(_players, ARRAYSIZE(_players), sizeof(_players[0]), playerEntries);
|
for (i = 0; i < ARRAYSIZE(_players); ++i) {
|
||||||
|
ser->saveLoadEntries (&_players[i], playerEntries);
|
||||||
|
ser->saveLoadArrayOf (_players[i]._parameterFaders, ARRAYSIZE(_players[i]._parameterFaders),
|
||||||
|
sizeof(ParameterFader), parameterFaderEntries);
|
||||||
|
}
|
||||||
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.
|
||||||
int i;
|
|
||||||
Part *part = &_parts[0];
|
Part *part = &_parts[0];
|
||||||
if (ser->getVersion() >= VER_V11) {
|
if (ser->getVersion() >= VER_V11) {
|
||||||
for (i = ARRAYSIZE(_parts); i; --i, ++part) {
|
for (i = ARRAYSIZE(_parts); i; --i, ++part) {
|
||||||
|
@ -3093,11 +3108,8 @@ int IMuseInternal::save_or_load(Serializer *ser, Scumm *scumm) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// VolumeFader has been replaced with the more generic ParameterFader.
|
// VolumeFader has been replaced with the more generic ParameterFader.
|
||||||
{
|
for (i = 0; i < 8; ++i)
|
||||||
int i;
|
ser->saveLoadEntries (0, volumeFaderEntries);
|
||||||
for (i = 0; i < 8; ++i)
|
|
||||||
ser->saveLoadEntries (0, volumeFaderEntries);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ser->isSaving()) {
|
if (!ser->isSaving()) {
|
||||||
// Load all sounds that we need
|
// Load all sounds that we need
|
||||||
|
|
|
@ -35,10 +35,11 @@ enum {
|
||||||
VER_V13,
|
VER_V13,
|
||||||
VER_V14,
|
VER_V14,
|
||||||
VER_V15,
|
VER_V15,
|
||||||
VER_V16
|
VER_V16,
|
||||||
|
VER_V17
|
||||||
};
|
};
|
||||||
|
|
||||||
#define CURRENT_VER VER_V16
|
#define CURRENT_VER VER_V17
|
||||||
|
|
||||||
|
|
||||||
// To work around a warning in GCC 3.2 (and 3.1 ?) regarding non-POD types,
|
// To work around a warning in GCC 3.2 (and 3.1 ?) regarding non-POD types,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue