diff options
author | Nicola Mettifogo | 2009-02-24 08:42:46 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2009-02-24 08:42:46 +0000 |
commit | 659c9fb901bcbc3db1252ed0c9a7eb49c09853b4 (patch) | |
tree | 10f839dd9044d8edbfdb633fad65d19c0a853f4a /engines/parallaction/parallaction_br.cpp | |
parent | d19ba951e825ce8ee4ae7c1c058ba517c678eb68 (diff) | |
download | scummvm-rg350-659c9fb901bcbc3db1252ed0c9a7eb49c09853b4.tar.gz scummvm-rg350-659c9fb901bcbc3db1252ed0c9a7eb49c09853b4.tar.bz2 scummvm-rg350-659c9fb901bcbc3db1252ed0c9a7eb49c09853b4.zip |
Changed interface to walk code, to better handle the differences between games. Moreover:
* merged PathBuilder_BR into PathWalker_BR
* implemented checkTrap routine for BRA
svn-id: r38836
Diffstat (limited to 'engines/parallaction/parallaction_br.cpp')
-rw-r--r-- | engines/parallaction/parallaction_br.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp index 403d425bd8..4bb239d197 100644 --- a/engines/parallaction/parallaction_br.cpp +++ b/engines/parallaction/parallaction_br.cpp @@ -30,6 +30,7 @@ #include "parallaction/input.h" #include "parallaction/saveload.h" #include "parallaction/sound.h" +#include "parallaction/walk.h" namespace Parallaction { @@ -84,6 +85,8 @@ Common::Error Parallaction_br::init() { _programExec = new ProgramExec_br(this); _programExec->init(); + _walker = new PathWalker_BR; + _part = -1; _subtitle[0] = -1; @@ -104,6 +107,8 @@ Parallaction_br::~Parallaction_br() { delete _locationParser; delete _programParser; + + delete _walker; } void Parallaction_br::callFunction(uint index, void* parm) { @@ -392,6 +397,25 @@ void Parallaction_br::testCounterCondition(const Common::String &name, int op, i } } +void Parallaction_br::updateWalkers() { + _walker->walk(); +} + +void Parallaction_br::scheduleWalk(int16 x, int16 y) { + AnimationPtr a = _char._ani; + + if ((a->_flags & kFlagsRemove) || (a->_flags & kFlagsActive) == 0) { + return; + } + + _walker->setCharacterPath(a, x, y); +#if 0 + if (_follower && _userEvent) { + _walker->setFollowerPath(_follower, x, y); + } +#endif + _engineFlags |= kEngineWalking; +} } // namespace Parallaction |