aboutsummaryrefslogtreecommitdiff
path: root/engines/sludge/main_loop.cpp
diff options
context:
space:
mode:
authorSimei Yin2017-08-21 09:07:19 +0200
committerSimei Yin2017-08-21 10:19:19 +0200
commitd9a6791500eef13d64d7b3d11136b9c901af7f2f (patch)
tree55c562230f8f82b81d2faf0a9c68a1b0d452db30 /engines/sludge/main_loop.cpp
parent2edd59d0b8e48d354e085beacbe4f2c4a1e16489 (diff)
downloadscummvm-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.cpp13
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);
}