diff options
author | Simei Yin | 2017-08-21 09:07:19 +0200 |
---|---|---|
committer | Simei Yin | 2017-08-21 10:19:19 +0200 |
commit | d9a6791500eef13d64d7b3d11136b9c901af7f2f (patch) | |
tree | 55c562230f8f82b81d2faf0a9c68a1b0d452db30 /engines/sludge/main_loop.cpp | |
parent | 2edd59d0b8e48d354e085beacbe4f2c4a1e16489 (diff) | |
download | scummvm-rg350-d9a6791500eef13d64d7b3d11136b9c901af7f2f.tar.gz scummvm-rg350-d9a6791500eef13d64d7b3d11136b9c901af7f2f.tar.bz2 scummvm-rg350-d9a6791500eef13d64d7b3d11136b9c901af7f2f.zip |
SLUDGE: Add support for some windows-only games
Diffstat (limited to 'engines/sludge/main_loop.cpp')
-rw-r--r-- | engines/sludge/main_loop.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/sludge/main_loop.cpp b/engines/sludge/main_loop.cpp index 708d4df910..4524d02304 100644 --- a/engines/sludge/main_loop.cpp +++ b/engines/sludge/main_loop.cpp @@ -34,6 +34,7 @@ #include "sludge/newfatal.h" #include "sludge/objtypes.h" #include "sludge/people.h" +#include "sludge/region.h" #include "sludge/statusba.h" #include "sludge/sound.h" #include "sludge/sludge.h" @@ -48,7 +49,7 @@ extern VariableStack *noStack; int dialogValue = 0; -int main_loop(const char *filename) { +int main_loop(Common::String filename) { if (!initSludge(filename)) { return 0; @@ -75,6 +76,7 @@ int main_loop(const char *filename) { startNewFunctionNum(0, 0, NULL, noStack); + g_sludge->_evtMan->startGame(); g_sludge->_timer.init(); while (!g_sludge->_evtMan->quit()) { @@ -88,8 +90,17 @@ int main_loop(const char *filename) { g_sludge->_timer.waitFrame(); } + killAllFunctions(); + killAllRegions(); g_sludge->_soundMan->killSoundStuff(); + // Load next game + if (!g_sludge->launchNext.empty()) { + Common::String name = g_sludge->launchNext; + g_sludge->launchNext.clear(); + main_loop(name); + } + return (0); } |