diff options
author | Eugene Sandulenko | 2014-05-15 12:34:55 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-05-15 12:34:55 +0200 |
commit | 230e7713217603de711cf098977daba108cb3087 (patch) | |
tree | ede403353b926e016805675ab9278b41a73a4ccb /engines/fullpipe | |
parent | df0d8bf8746436dcc3ca79829e77aa8e08205884 (diff) | |
download | scummvm-rg350-230e7713217603de711cf098977daba108cb3087.tar.gz scummvm-rg350-230e7713217603de711cf098977daba108cb3087.tar.bz2 scummvm-rg350-230e7713217603de711cf098977daba108cb3087.zip |
FULLPIPE: Implement MovGraph::doWalkTo()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/gfx.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/motion.cpp | 17 | ||||
-rw-r--r-- | engines/fullpipe/motion.h | 2 |
3 files changed, 9 insertions, 11 deletions
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp index b4eba44a64..520e81835b 100644 --- a/engines/fullpipe/gfx.cpp +++ b/engines/fullpipe/gfx.cpp @@ -398,6 +398,7 @@ bool GameObject::getPicAniInfo(PicAniInfo *info) { info->ox = _ox; info->oy = _oy; info->priority = _priority; + warning("Yep %d", _id); return true; } diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp index b9fdc43286..b5e0f67a58 100644 --- a/engines/fullpipe/motion.cpp +++ b/engines/fullpipe/motion.cpp @@ -628,7 +628,6 @@ int MovGraph::method44() { } MessageQueue *MovGraph::doWalkTo(StaticANIObject *subj, int xpos, int ypos, int fuzzyMatch, int staticsId) { -#if 0 PicAniInfo picAniInfo; int ss; @@ -641,7 +640,7 @@ MessageQueue *MovGraph::doWalkTo(StaticANIObject *subj, int xpos, int ypos, int int idx = getItemIndexByStaticAni(subj); for (uint i = 0; i < _items[idx]->count; i++) { - if (_items[idx]->items[i].movarr == goal) { + if ((*_items[idx]->items[i].movarr)[0] == goal) { if (subj->_movement) { Common::Point point; @@ -671,7 +670,7 @@ MessageQueue *MovGraph::doWalkTo(StaticANIObject *subj, int xpos, int ypos, int if (_items[idx]->count > 0) { int arridx = 0; - while (_items[idx]->items[arridx].movarr != goal) { + while ((*_items[idx]->items[arridx].movarr)[0] != goal) { arridx++; if (arridx >= _items[idx]->count) { @@ -682,16 +681,16 @@ MessageQueue *MovGraph::doWalkTo(StaticANIObject *subj, int xpos, int ypos, int _items[idx]->movarr->clear(); - for (uint i = 0; i < _items[idx]->items[arridx].movarr->_movStepCount; i++) { + for (uint i = 0; i < (*_items[idx]->items[arridx].movarr)[i]->_movStepCount; i++) { MovArr *m = new MovArr; - *m = *_items[idx]->items[arridx].movarr[i]; + *m = *(*_items[idx]->items[arridx].movarr)[i]; } _items[idx]->field_10 = -1; _items[idx]->field_14 = 0; - MessageQueue *mq = fillMGMinfo(_items[idx]->ani, _items[idx]->movarr, staticsId); + MessageQueue *mq = fillMGMinfo(_items[idx]->ani, (*_items[idx]->movarr)[0], staticsId); if (mq) { ExCommand *ex = new ExCommand(); ex->_messageKind = 17; @@ -709,10 +708,6 @@ MessageQueue *MovGraph::doWalkTo(StaticANIObject *subj, int xpos, int ypos, int subj->setPicAniInfo(&picAniInfo); return 0; -#endif - warning("STUB: MovGraph::doWalkTo()"); - - return 0; } MessageQueue *MovGraph::sub1(StaticANIObject *ani, int x, int y, int a5, int x1, int y1, int a8, int a9) { @@ -1517,6 +1512,8 @@ MessageQueue *MovGraph2::doWalkTo(StaticANIObject *obj, int xpos, int ypos, int obj->getPicAniInfo(&picAniInfo); + warning("p: %d %d", picAniInfo.movementId, picAniInfo.objectId); + int idxsub; if (obj->_movement) diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h index 3ef62a75b3..1b49839e0d 100644 --- a/engines/fullpipe/motion.h +++ b/engines/fullpipe/motion.h @@ -315,7 +315,7 @@ struct MovArr { }; struct MovItem { - MovArr *movarr; + Common::Array<MovArr *> *movarr; int _mfield_4; int _mfield_8; int _mfield_C; |