From 84daa0410f27571915d5b718f90e6d44e97b8f81 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Thu, 26 Feb 2009 19:28:21 +0000 Subject: reinit sfx in game_init() when it got deinitialized in game_exit(), this unmutes the game after a restart. shutdown sfx in game_exit() only if there is no EngineState successor (restored game) since gamestate_restore() already reinitialized it. svn-id: r38912 --- engines/sci/engine/game.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/engines/sci/engine/game.cpp b/engines/sci/engine/game.cpp index e2ca19b51f..250610dfb7 100644 --- a/engines/sci/engine/game.cpp +++ b/engines/sci/engine/game.cpp @@ -799,17 +799,21 @@ int game_init(EngineState *s) { s->menubar = menubar_new(); // Create menu bar + if (s->sfx_init_flags & SFX_STATE_FLAG_NOSOUND) + game_init_sound(s, 0); + return 0; } int game_exit(EngineState *s) { - if (s->execution_stack) { + if (s->execution_stack) free(s->execution_stack); - } - sfx_exit(&s->sound); - // Reinit because some other code depends on having a valid state - game_init_sound(s, SFX_STATE_FLAG_NOSOUND); + if (!s->successor) { + sfx_exit(&s->sound); + // Reinit because some other code depends on having a valid state + game_init_sound(s, SFX_STATE_FLAG_NOSOUND); + } delete s->seg_manager; -- cgit v1.2.3