diff options
author | Filippos Karapetis | 2011-11-21 23:47:47 +0200 |
---|---|---|
committer | Filippos Karapetis | 2011-11-21 23:47:47 +0200 |
commit | 18fd59939ff6ae8caf17b3bb5178d0cfa4c5bf06 (patch) | |
tree | 6f56dd7ca1cda13c5cfc2350dc16741839bf9f0b /engines/toltecs/saveload.cpp | |
parent | e2bc38ea914d171c790c3853a9dcb26911c973c0 (diff) | |
download | scummvm-rg350-18fd59939ff6ae8caf17b3bb5178d0cfa4c5bf06.tar.gz scummvm-rg350-18fd59939ff6ae8caf17b3bb5178d0cfa4c5bf06.tar.bz2 scummvm-rg350-18fd59939ff6ae8caf17b3bb5178d0cfa4c5bf06.zip |
TOLTECS: Sync scene sounds when saving/loading
Diffstat (limited to 'engines/toltecs/saveload.cpp')
-rw-r--r-- | engines/toltecs/saveload.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/toltecs/saveload.cpp b/engines/toltecs/saveload.cpp index 3e1be75a88..af78c8b975 100644 --- a/engines/toltecs/saveload.cpp +++ b/engines/toltecs/saveload.cpp @@ -30,6 +30,7 @@ #include "toltecs/palette.h" #include "toltecs/script.h" #include "toltecs/screen.h" +#include "toltecs/sound.h" namespace Toltecs { @@ -39,7 +40,7 @@ namespace Toltecs { - Maybe switch to SCUMM/Tinsel serialization approach? */ -#define TOLTECS_SAVEGAME_VERSION 1 +#define TOLTECS_SAVEGAME_VERSION 2 ToltecsEngine::kReadSaveHeaderError ToltecsEngine::readSaveHeader(Common::SeekableReadStream *in, bool loadThumbnail, SaveHeader &header) { @@ -62,7 +63,7 @@ ToltecsEngine::kReadSaveHeaderError ToltecsEngine::readSaveHeader(Common::Seekab header.gameID = in->readByte(); header.flags = in->readUint32LE(); - if (header.version > 0) { + if (header.version >= 1) { header.saveDate = in->readUint32LE(); header.saveTime = in->readUint32LE(); header.playTime = in->readUint32LE(); @@ -131,6 +132,7 @@ void ToltecsEngine::savegame(const char *filename, const char *description) { _script->saveState(out); _anim->saveState(out); _screen->saveState(out); + _sound->saveState(out); out->finalize(); delete out; @@ -153,6 +155,7 @@ void ToltecsEngine::loadgame(const char *filename) { return; } + _sound->stopAll(); g_engine->setTotalPlayTime(header.playTime * 1000); _cameraX = in->readUint16LE(); @@ -184,6 +187,8 @@ void ToltecsEngine::loadgame(const char *filename) { _script->loadState(in); _anim->loadState(in); _screen->loadState(in); + if (header.version >= 2) + _sound->loadState(in); delete in; |