aboutsummaryrefslogtreecommitdiff
path: root/engines/tony/mpal/mpal.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2012-05-18 22:57:25 +1000
committerPaul Gilbert2012-05-18 22:57:25 +1000
commitbcaeacf1246b652f1564fc7696719ca9429b5acf (patch)
treea0a7767c70b8efbf9a8f6fc593e92957fb256be7 /engines/tony/mpal/mpal.cpp
parentd67a5162addcc143c870ed35000212bdd7d7ab2c (diff)
downloadscummvm-rg350-bcaeacf1246b652f1564fc7696719ca9429b5acf.tar.gz
scummvm-rg350-bcaeacf1246b652f1564fc7696719ca9429b5acf.tar.bz2
scummvm-rg350-bcaeacf1246b652f1564fc7696719ca9429b5acf.zip
TONY: Implemented support for loading savegames directly from the launcher.
It's not perfect.. the startup screen briefly flashes, and Tony briefly disappears when you do a first action afterwards.
Diffstat (limited to 'engines/tony/mpal/mpal.cpp')
-rw-r--r--engines/tony/mpal/mpal.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/engines/tony/mpal/mpal.cpp b/engines/tony/mpal/mpal.cpp
index a173b707f2..854372cdda 100644
--- a/engines/tony/mpal/mpal.cpp
+++ b/engines/tony/mpal/mpal.cpp
@@ -767,8 +767,6 @@ void ActionThread(CORO_PARAM, const void *param) {
debugC(DEBUG_DETAILED, kTonyDebugActions, "Action Process %d ended", CoroScheduler.getCurrentPID());
- CORO_KILL_SELF();
-
CORO_END_CODE;
}
@@ -780,6 +778,7 @@ void ActionThread(CORO_PARAM, const void *param) {
void ShutUpActionThread(CORO_PARAM, const void *param) {
// COROUTINE
CORO_BEGIN_CONTEXT;
+ int slotNumber;
CORO_END_CONTEXT(_ctx);
uint32 pid = *(const uint32 *)param;
@@ -790,7 +789,13 @@ void ShutUpActionThread(CORO_PARAM, const void *param) {
GLOBALS.bExecutingAction = false;
- CORO_KILL_SELF();
+ if (_vm->_initialLoadSlotNumber != -1) {
+ _ctx->slotNumber = _vm->_initialLoadSlotNumber;
+ _vm->_initialLoadSlotNumber = -1;
+
+ CORO_INVOKE_1(_vm->LoadState, _ctx->slotNumber);
+ }
+
CORO_END_CODE;
}