From 5c714cb46eb7c94f1b98d726b635081363c74c98 Mon Sep 17 00:00:00 2001 From: Nicola Mettifogo Date: Mon, 23 Mar 2009 08:00:39 +0000 Subject: Implemented MOVE script instruction. svn-id: r39623 --- engines/parallaction/exec_br.cpp | 5 ++++- engines/parallaction/walk.cpp | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'engines/parallaction') diff --git a/engines/parallaction/exec_br.cpp b/engines/parallaction/exec_br.cpp index a3eb919354..c5e53f6a1d 100644 --- a/engines/parallaction/exec_br.cpp +++ b/engines/parallaction/exec_br.cpp @@ -447,7 +447,10 @@ DECLARE_INSTRUCTION_OPCODE(process) { DECLARE_INSTRUCTION_OPCODE(move) { - warning("Parallaction_br::instOp_move not yet implemented"); + // NOTE: I couldn't find evidence of scripts containing this instruction being used + InstructionPtr inst =*ctxt._inst; + _vm->scheduleWalk(inst->_opA.getValue(), inst->_opB.getValue(), false); + ctxt._suspend = true; } diff --git a/engines/parallaction/walk.cpp b/engines/parallaction/walk.cpp index ec435fddec..f9fd6254e1 100644 --- a/engines/parallaction/walk.cpp +++ b/engines/parallaction/walk.cpp @@ -437,6 +437,10 @@ void PathWalker_BR::setFollowerPath(AnimationPtr a, uint16 x, uint16 y) { } void PathWalker_BR::stopFollower() { + if (_follower._active) { + uint32 frame = _follower._a->getF(); + _follower._a->setF((frame/9) * 9); + } _follower._a.reset(); _follower._active = false; } -- cgit v1.2.3