diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp index b7058e6b234..903af8499b8 100644 --- a/engines/scumm/saveload.cpp +++ b/engines/scumm/saveload.cpp @@ -544,6 +544,13 @@ bool ScummEngine::loadState(int slot, bool compat, Common::String &filename) { sb = _screenB; sh = _screenH; +#ifdef ENABLE_SCUMM_7_8 + // Remove any blast text leftovers + if (_game.version >= 7) { + ((ScummEngine_v7 *)this)->removeBlastTexts(); + } +#endif + // Restore the virtual screens and force a fade to black. initScreens(0, _screenHeight); diff --git a/engines/scumm/scumm_v7.h b/engines/scumm/scumm_v7.h index 31168eb4665..6f3919f6269 100644 --- a/engines/scumm/scumm_v7.h +++ b/engines/scumm/scumm_v7.h @@ -99,6 +99,7 @@ public: void clearSubtitleQueue(); void CHARSET_1() override; bool isSmushActive() { return _smushActive; } + void removeBlastTexts() override; protected: @@ -131,7 +132,7 @@ protected: void createTextRenderer(GlyphRenderer_v7 *gr) override; void enqueueText(const byte *text, int x, int y, byte color, byte charset, TextStyleFlags flags); void drawBlastTexts() override; - void removeBlastTexts() override; + void actorTalk(const byte *msg) override; void translateText(const byte *text, byte *trans_buff) override; void loadLanguageBundle() override;