diff options
-rw-r--r-- | engines/scumm/intern.h | 2 | ||||
-rw-r--r-- | engines/scumm/scumm.cpp | 9 |
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(); |