aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/intern.h2
-rw-r--r--engines/scumm/scumm.cpp9
2 files changed, 10 insertions, 1 deletions
diff --git a/engines/scumm/intern.h b/engines/scumm/intern.h
index ba4e2d995d..c99042ebc8 100644
--- a/engines/scumm/intern.h
+++ b/engines/scumm/intern.h
@@ -961,6 +961,8 @@ protected:
virtual void executeOpcode(byte i);
virtual const char *getOpcodeDesc(byte i);
+ virtual void scummLoop_handleSaveLoad();
+
virtual void setupScummVars();
virtual void resetScummVars();
virtual void decodeParseString(int m, int n);
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 48b8f056b8..3e52b8ba25 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -1734,7 +1734,6 @@ int ScummEngine::scummLoop(int delta) {
load_game:
scummLoop_handleSaveLoad();
-
if (_completeScreenRedraw) {
_charset->clearCharsetMask();
_charset->_hasMask = false;
@@ -1938,6 +1937,14 @@ void ScummEngine::scummLoop_handleSaveLoad() {
}
}
+#ifndef DISABLE_SCUMM_7_8
+void ScummEngine_v8::scummLoop_handleSaveLoad() {
+ ScummEngine::scummLoop_handleSaveLoad();
+
+ removeBlastObjects();
+}
+#endif
+
void ScummEngine::scummLoop_handleDrawing() {
if (camera._cur != camera._last || _bgNeedsRedraw || _fullRedraw) {
redrawBGAreas();