From 06ffbab3c5450632de367bbea5a1a47fdc4300ff Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Wed, 12 Jun 2019 22:26:06 -0700 Subject: GLK: ADVSYS: Added singleAction method --- engines/glk/advsys/advsys.cpp | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'engines/glk/advsys/advsys.cpp') diff --git a/engines/glk/advsys/advsys.cpp b/engines/glk/advsys/advsys.cpp index 3f50d84237..26f298dd00 100644 --- a/engines/glk/advsys/advsys.cpp +++ b/engines/glk/advsys/advsys.cpp @@ -26,12 +26,6 @@ namespace Glk { namespace AdvSys { -bool singleAction() { - // TODO: Stub - return false; -} - - void AdvSys::runGame() { if (!initialize()) { GUIErrorMessage(_("Could not start AdvSys game")); @@ -75,6 +69,28 @@ bool AdvSys::initialize() { void AdvSys::deinitialize() { } +bool AdvSys::singleAction() { + // Do the before code + switch (execute(_beforeOffset)) { + case ABORT: + // Script aborted + return false; + case CHAIN: + // Execute the action handler + if (execute(getActionField(getVariable(V_ACTION), A_CODE)) == ABORT) + return false; + + // fall through + case FINISH: + // Do the after code + if (execute(_afterOffset) == ABORT) + return false; + break; + } + + return true; +} + Common::Error AdvSys::loadGameData(strid_t save) { return Common::kNoError; } -- cgit v1.2.3