aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/saveload.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage/saveload.cpp')
-rw-r--r--engines/tsage/saveload.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/engines/tsage/saveload.cpp b/engines/tsage/saveload.cpp
index 522e40c236..b184e59c9e 100644
--- a/engines/tsage/saveload.cpp
+++ b/engines/tsage/saveload.cpp
@@ -21,11 +21,13 @@
*/
#include "common/savefile.h"
+#include "common/mutex.h"
#include "graphics/palette.h"
#include "graphics/scaler.h"
#include "graphics/thumbnail.h"
#include "tsage/globals.h"
#include "tsage/saveload.h"
+#include "tsage/sound.h"
#include "tsage/tsage.h"
namespace tSage {
@@ -105,6 +107,7 @@ void Serializer::validate(int v, Common::Serializer::Version minVersion,
Common::Error Saver::save(int slot, const Common::String &saveName) {
assert(!getMacroRestoreFlag());
+ Common::StackLock slock1(_globals->_soundManager._serverDisabledMutex);
// Signal any objects registered for notification
_saveNotifiers.notify(false);
@@ -149,6 +152,7 @@ Common::Error Saver::save(int slot, const Common::String &saveName) {
Common::Error Saver::restore(int slot) {
assert(!getMacroRestoreFlag());
+ Common::StackLock slock1(_globals->_soundManager._serverDisabledMutex);
// Signal any objects registered for notification
_loadNotifiers.notify(false);
@@ -205,7 +209,7 @@ Common::Error Saver::restore(int slot) {
// Final post-restore notifications
_macroRestoreFlag = false;
- _loadNotifiers.notify(false);
+ _loadNotifiers.notify(true);
return Common::kNoError;
}