From c85134bd5eb446116e3574fee51a59ff066eddf6 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Mon, 1 Jun 2009 15:34:33 +0000 Subject: [PATCH] Some fixes for saving/loading (still broken) svn-id: r41102 --- engines/sci/engine/game.cpp | 2 ++ engines/sci/engine/savegame.cpp | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/engines/sci/engine/game.cpp b/engines/sci/engine/game.cpp index 192aa66367b..c9445e44d12 100644 --- a/engines/sci/engine/game.cpp +++ b/engines/sci/engine/game.cpp @@ -424,7 +424,9 @@ void script_free_engine(EngineState *s) { s->_kfuncTable.clear(); delete s->_vocabulary; + s->_vocabulary = 0; delete s->_kernel; + s->_kernel = 0; } void script_free_breakpoints(EngineState *s) { diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index 704051d6278..6be00653a55 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -780,6 +780,7 @@ EngineState *gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) { retval->animation_delay = s->animation_delay; retval->animation_granularity = s->animation_granularity; retval->gfx_state = s->gfx_state; + retval->old_screen = 0; retval->resmgr = s->resmgr; @@ -832,8 +833,8 @@ EngineState *gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) { retval->parser_base = make_reg(s->sys_strings_segment, SYS_STRING_PARSER_BASE); // static VM/Kernel information: - retval->_kernel = s->_kernel; assert(0 == retval->_kernel); + retval->_kernel = s->_kernel; // s->_kernel = 0; // FIXME: We should set s->_kernel to 0 here, // else it could be freed when the old EngineState is freed. Luckily, this freeing currently // never happens, so we don't need to.