aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/walk.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2007-11-19 20:23:01 +0000
committerNicola Mettifogo2007-11-19 20:23:01 +0000
commitd86246308d31b898ca22462de3a68910b52e0eb1 (patch)
tree508f4c662d1c0bf3238dc8abcf91edea2faaa142 /engines/parallaction/walk.cpp
parent2a339d8ea3deb7b8ef28224ada00c1180bc260e3 (diff)
downloadscummvm-rg350-d86246308d31b898ca22462de3a68910b52e0eb1.tar.gz
scummvm-rg350-d86246308d31b898ca22462de3a68910b52e0eb1.tar.bz2
scummvm-rg350-d86246308d31b898ca22462de3a68910b52e0eb1.zip
Walk and script handling are now directly handled by the main loop, instead of relying on the job list.
svn-id: r29568
Diffstat (limited to 'engines/parallaction/walk.cpp')
-rw-r--r--engines/parallaction/walk.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/engines/parallaction/walk.cpp b/engines/parallaction/walk.cpp
index 8c12395952..d35132fc35 100644
--- a/engines/parallaction/walk.cpp
+++ b/engines/parallaction/walk.cpp
@@ -381,8 +381,12 @@ void Parallaction::finalizeWalk(WalkNodeList *list) {
delete list;
}
-void Parallaction_ns::jobWalk(void *parm, Job *j) {
- WalkNodeList *list = (WalkNodeList*)parm;
+void Parallaction_ns::walk() {
+ if ((_engineFlags & kEngineWalking) == 0) {
+ return;
+ }
+
+ WalkNodeList *list = _char._walkPath;
_char._ani._oldPos.x = _char._ani._left;
_char._ani._oldPos.y = _char._ani._top;
@@ -400,11 +404,11 @@ void Parallaction_ns::jobWalk(void *parm, Job *j) {
}
if (it == list->end()) {
debugC(1, kDebugWalk, "jobWalk reached last node");
- j->_finished = 1;
+// j->_finished = 1;
finalizeWalk(list);
return;
}
- j->_parm = list;
+ _char._walkPath = list;
// selectWalkFrame must be performed before position is changed by clipMove
int16 v16 = selectWalkFrame(pos, *it);
@@ -416,7 +420,7 @@ void Parallaction_ns::jobWalk(void *parm, Job *j) {
if (newpos == _char._ani._oldPos) {
debugC(1, kDebugWalk, "jobWalk was blocked by an unforeseen obstacle");
- j->_finished = 1;
+// j->_finished = 1;
finalizeWalk(list);
} else {
_char._ani._frame = v16 + walkData2 + 1;
@@ -445,7 +449,3 @@ PathBuilder::PathBuilder(Animation *anim) : _anim(anim), _list(0) {
} // namespace Parallaction
-
-
-
-