From b8c40f9a8b81631c610c0bdadaefb4b9b7df5792 Mon Sep 17 00:00:00 2001 From: Walter van Niftrik Date: Mon, 11 Apr 2016 18:52:03 +0200 Subject: ADL: Implement hires6 cond opcode 0xa --- engines/adl/adl.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'engines/adl/adl.cpp') diff --git a/engines/adl/adl.cpp b/engines/adl/adl.cpp index 98895ce8dd..fdbb2aa3b7 100644 --- a/engines/adl/adl.cpp +++ b/engines/adl/adl.cpp @@ -58,6 +58,7 @@ AdlEngine::AdlEngine(OSystem *syst, const AdlGameDescription *gd) : _graphics(nullptr), _isRestarting(false), _isRestoring(false), + _skipOneCommand(false), _gameDescription(gd), _saveVerb(0), _saveNoun(0), @@ -1192,6 +1193,12 @@ bool AdlEngine::doOneCommand(const Commands &commands, byte verb, byte noun) { Commands::const_iterator cmd; for (cmd = commands.begin(); cmd != commands.end(); ++cmd) { + + if (_skipOneCommand) { + _skipOneCommand = false; + continue; + } + ScriptEnv env(*cmd, _state.room, verb, noun); if (matchCommand(env)) { doActions(env); @@ -1199,6 +1206,7 @@ bool AdlEngine::doOneCommand(const Commands &commands, byte verb, byte noun) { } } + _skipOneCommand = false; return false; } @@ -1206,6 +1214,11 @@ void AdlEngine::doAllCommands(const Commands &commands, byte verb, byte noun) { Commands::const_iterator cmd; for (cmd = commands.begin(); cmd != commands.end(); ++cmd) { + if (_skipOneCommand) { + _skipOneCommand = false; + continue; + } + ScriptEnv env(*cmd, _state.room, verb, noun); if (matchCommand(env)) { doActions(env); @@ -1214,6 +1227,8 @@ void AdlEngine::doAllCommands(const Commands &commands, byte verb, byte noun) { return; } } + + _skipOneCommand = false; } Common::String AdlEngine::toAscii(const Common::String &str) { -- cgit v1.2.3