aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/engine/savegame.cpp2
-rw-r--r--engines/sci/gui/gui.h3
-rw-r--r--engines/sci/gui32/gui32.h3
3 files changed, 8 insertions, 0 deletions
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 1af29c6fa9..199c27e1a6 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -794,6 +794,8 @@ EngineState *gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) {
// Message state:
retval->_msgState = s->_msgState;
+ retval->_gui->resetEngineState(retval);
+
return retval;
}
diff --git a/engines/sci/gui/gui.h b/engines/sci/gui/gui.h
index dc03182024..58a6da8075 100644
--- a/engines/sci/gui/gui.h
+++ b/engines/sci/gui/gui.h
@@ -94,6 +94,9 @@ public:
virtual bool debugUndither(bool flag);
virtual bool debugShowMap(int mapNo);
+ // FIXME: Don't store EngineState
+ virtual void resetEngineState(EngineState *s) { _s = s; }
+
private:
EngineState *_s;
SciGuiScreen *_screen;
diff --git a/engines/sci/gui32/gui32.h b/engines/sci/gui32/gui32.h
index 4714295c1f..5f04436fcd 100644
--- a/engines/sci/gui32/gui32.h
+++ b/engines/sci/gui32/gui32.h
@@ -86,6 +86,9 @@ public:
bool debugUndither(bool flag);
bool debugShowMap(int mapNo);
+ // FIXME: Don't store EngineState
+ virtual void resetEngineState(EngineState *newState) { s = newState; }
+
private:
EngineState *s;
bool _usesOldGfxFunctions;