aboutsummaryrefslogtreecommitdiff
path: root/engines/toltecs/saveload.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2011-11-21 23:47:47 +0200
committerFilippos Karapetis2011-11-21 23:47:47 +0200
commit18fd59939ff6ae8caf17b3bb5178d0cfa4c5bf06 (patch)
tree6f56dd7ca1cda13c5cfc2350dc16741839bf9f0b /engines/toltecs/saveload.cpp
parente2bc38ea914d171c790c3853a9dcb26911c973c0 (diff)
downloadscummvm-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.cpp9
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;