aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2010-07-23 08:22:13 +0000
committerFilippos Karapetis2010-07-23 08:22:13 +0000
commit9db77be9d42b05edd4f76fb1b2ed99e02aa43a8f (patch)
tree678e81f4a78d81a6ab64a213d0000bb7ba0075ba /engines
parent15eebdb0618c82f80e7cdf83141552ff8da228b4 (diff)
downloadscummvm-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.cpp113
-rw-r--r--engines/sci/engine/savegame.h2
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