diff options
author | Filippos Karapetis | 2010-07-23 08:22:13 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-07-23 08:22:13 +0000 |
commit | 9db77be9d42b05edd4f76fb1b2ed99e02aa43a8f (patch) | |
tree | 678e81f4a78d81a6ab64a213d0000bb7ba0075ba /engines | |
parent | 15eebdb0618c82f80e7cdf83141552ff8da228b4 (diff) | |
download | scummvm-rg350-9db77be9d42b05edd4f76fb1b2ed99e02aa43a8f.tar.gz scummvm-rg350-9db77be9d42b05edd4f76fb1b2ed99e02aa43a8f.tar.bz2 scummvm-rg350-9db77be9d42b05edd4f76fb1b2ed99e02aa43a8f.zip |
SCI: Dropped support for the very old savegame versions 12 and 13 (hopefully, the last ones to be dropped)
svn-id: r51197
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/engine/savegame.cpp | 113 | ||||
-rw-r--r-- | engines/sci/engine/savegame.h | 2 |
2 files changed, 24 insertions, 91 deletions
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index 8074ebd9a9..c7c8b2ea53 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -65,47 +65,20 @@ const uint32 INTMAPPER_MAGIC_KEY = 0xDEADBEEF; #define DEFROBNICATE_HANDLE(handle) (make_reg((handle >> 16) & 0xffff, handle & 0xffff)) void MusicEntry::saveLoadWithSerializer(Common::Serializer &s) { - if (s.getVersion() < 14) { - // Old sound system data. This data is only loaded, never saved (as we're never - // saving in the older version format) - uint32 handle = 0; - s.syncAsSint32LE(handle); - soundObj = DEFROBNICATE_HANDLE(handle); - s.syncAsSint32LE(resourceId); - s.syncAsSint32LE(priority); - s.syncAsSint32LE(status); - s.skip(4); // restoreBehavior - uint32 restoreTime = 0; - s.syncAsSint32LE(restoreTime); - ticker = restoreTime * 60 / 1000; - s.syncAsSint32LE(loop); - s.syncAsSint32LE(hold); - // volume and dataInc will be synced from the sound objects - // when the sound list is reconstructed in gamestate_restore() - volume = MUSIC_VOLUME_MAX; - dataInc = 0; - // No fading info - fadeTo = 0; - fadeStep = 0; - fadeTicker = 0; - fadeTickerStep = 0; - } else { - // A bit more optimized saving - soundObj.saveLoadWithSerializer(s); - s.syncAsSint16LE(resourceId); - s.syncAsSint16LE(dataInc); - s.syncAsSint16LE(ticker); - s.syncAsSint16LE(signal, VER(17)); - s.syncAsByte(priority); - s.syncAsSint16LE(loop, VER(17)); - s.syncAsByte(volume); - s.syncAsByte(hold, VER(17)); - s.syncAsByte(fadeTo); - s.syncAsSint16LE(fadeStep); - s.syncAsSint32LE(fadeTicker); - s.syncAsSint32LE(fadeTickerStep); - s.syncAsByte(status); - } + soundObj.saveLoadWithSerializer(s); + s.syncAsSint16LE(resourceId); + s.syncAsSint16LE(dataInc); + s.syncAsSint16LE(ticker); + s.syncAsSint16LE(signal, VER(17)); + s.syncAsByte(priority); + s.syncAsSint16LE(loop, VER(17)); + s.syncAsByte(volume); + s.syncAsByte(hold, VER(17)); + s.syncAsByte(fadeTo); + s.syncAsSint16LE(fadeStep); + s.syncAsSint32LE(fadeTicker); + s.syncAsSint32LE(fadeTickerStep); + s.syncAsByte(status); // pMidiParser and pStreamAud will be initialized when the // sound list is reconstructed in gamestate_restore() @@ -182,7 +155,7 @@ void SegManager::saveLoadWithSerializer(Common::Serializer &s) { if (s.isLoading()) resetSegMan(); - s.skip(4, VER(12), VER(18)); // OBSOLETE: Used to be _exportsAreWide + s.skip(4, VER(14), VER(18)); // OBSOLETE: Used to be _exportsAreWide if (s.isLoading()) { // Reset _scriptSegMap, to be restored below @@ -257,40 +230,9 @@ static void sync_SavegameMetadata(Common::Serializer &s, SavegameMetadata &obj) void EngineState::saveLoadWithSerializer(Common::Serializer &s) { Common::String tmp; - s.syncString(tmp, VER(12), VER(23)); // OBSOLETE: Used to be game_version - - // OBSOLETE: Saved menus. Skip all of the saved data - if (s.getVersion() < 14) { - int totalMenus = 0; - s.syncAsUint32LE(totalMenus); - - // Now iterate through the obsolete saved menu data - for (int i = 0; i < totalMenus; i++) { - s.syncString(tmp); // OBSOLETE: Used to be _title - s.skip(4, VER(12), VER(12)); // OBSOLETE: Used to be _titleWidth - s.skip(4, VER(12), VER(12)); // OBSOLETE: Used to be _width - - int menuLength = 0; - s.syncAsUint32LE(menuLength); - - for (int j = 0; j < menuLength; j++) { - s.skip(4, VER(12), VER(12)); // OBSOLETE: Used to be _type - s.syncString(tmp); // OBSOLETE: Used to be _keytext - - s.skip(4, VER(12), VER(12)); // OBSOLETE: Used to be _flags - s.skip(64, VER(12), VER(12)); // OBSOLETE: Used to be MENU_SAID_SPEC_SIZE - s.skip(4, VER(12), VER(12)); // OBSOLETE: Used to be _saidPos - s.syncString(tmp); // OBSOLETE: Used to be _text - s.skip(4, VER(12), VER(12)); // OBSOLETE: Used to be _textPos - s.skip(4 * 4, VER(12), VER(12)); // OBSOLETE: Used to be _modifiers, _key, _enabled and _tag - } - } - } + s.syncString(tmp, VER(14), VER(23)); // OBSOLETE: Used to be game_version - s.skip(4, VER(12), VER(12)); // obsolete: used to be status_bar_foreground - s.skip(4, VER(12), VER(12)); // obsolete: used to be status_bar_background - - if (s.getVersion() >= 13 && getSciVersion() <= SCI_VERSION_1_1) { + if (getSciVersion() <= SCI_VERSION_1_1) { // Save/Load picPort as well for SCI0-SCI1.1. Necessary for Castle of Dr. Brain, // as the picPort has been changed when loading during the intro int16 picPortTop, picPortLeft; @@ -324,7 +266,6 @@ void LocalVariables::saveLoadWithSerializer(Common::Serializer &s) { void Object::saveLoadWithSerializer(Common::Serializer &s) { s.syncAsSint32LE(_flags); _pos.saveLoadWithSerializer(s); - s.skip(4, VER(12), VER(12)); // OBSOLETE: Used to be variable_names_nr s.syncAsSint32LE(_methodCount); // that's actually a uint16 syncArray<reg_t>(s, _variables); @@ -450,12 +391,12 @@ void Script::saveLoadWithSerializer(Common::Serializer &s) { if (s.isLoading()) init(_nr, g_sci->getResMan()); - s.skip(4, VER(12), VER(22)); // OBSOLETE: Used to be _bufSize - s.skip(4, VER(12), VER(22)); // OBSOLETE: Used to be _scriptSize - s.skip(4, VER(12), VER(22)); // OBSOLETE: Used to be _heapSize + s.skip(4, VER(14), VER(22)); // OBSOLETE: Used to be _bufSize + s.skip(4, VER(14), VER(22)); // OBSOLETE: Used to be _scriptSize + s.skip(4, VER(14), VER(22)); // OBSOLETE: Used to be _heapSize - s.skip(4, VER(12), VER(19)); // OBSOLETE: Used to be _numExports - s.skip(4, VER(12), VER(19)); // OBSOLETE: Used to be _numSynonyms + s.skip(4, VER(14), VER(19)); // OBSOLETE: Used to be _numExports + s.skip(4, VER(14), VER(19)); // OBSOLETE: Used to be _numSynonyms s.syncAsSint32LE(_lockers); // Sync _objects. This is a hashmap, and we use the following on disk format: @@ -483,7 +424,7 @@ void Script::saveLoadWithSerializer(Common::Serializer &s) { } } - s.skip(4, VER(12), VER(20)); // OBSOLETE: Used to be _localsOffset + s.skip(4, VER(14), VER(20)); // OBSOLETE: Used to be _localsOffset s.syncAsSint32LE(_localsSegment); s.syncAsSint32LE(_markedAsDeleted); @@ -600,14 +541,6 @@ void SoundCommandParser::reconstructPlayList(int savegame_version) { (*i)->soundRes = 0; } if ((*i)->status == kSoundPlaying) { - if (savegame_version < 14) { - (*i)->dataInc = readSelectorValue(_segMan, (*i)->soundObj, SELECTOR(dataInc)); - (*i)->signal = readSelectorValue(_segMan, (*i)->soundObj, SELECTOR(signal)); - - if (_soundVersion >= SCI_VERSION_1_LATE) - (*i)->volume = readSelectorValue(_segMan, (*i)->soundObj, SELECTOR(vol)); - } - processPlaySound((*i)->soundObj); } } diff --git a/engines/sci/engine/savegame.h b/engines/sci/engine/savegame.h index 799a68cbbe..fc254ba33d 100644 --- a/engines/sci/engine/savegame.h +++ b/engines/sci/engine/savegame.h @@ -37,7 +37,7 @@ struct EngineState; enum { CURRENT_SAVEGAME_VERSION = 24, - MINIMUM_SAVEGAME_VERSION = 12 + MINIMUM_SAVEGAME_VERSION = 14 }; // Savegame metadata |