aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2014-05-12 05:14:39 +0300
committerEugene Sandulenko2014-05-12 05:14:39 +0300
commit3d81dd0a14d16dab0967ca57e8039c5285048518 (patch)
tree340d4f69d4f08be2076810c60e9fb42e6b289a71 /engines/fullpipe
parent81a863be5c2f50430f44ebd5bce2b43632f7515f (diff)
downloadscummvm-rg350-3d81dd0a14d16dab0967ca57e8039c5285048518.tar.gz
scummvm-rg350-3d81dd0a14d16dab0967ca57e8039c5285048518.tar.bz2
scummvm-rg350-3d81dd0a14d16dab0967ca57e8039c5285048518.zip
FULLPIPE: More work on MovGraph::doWalkTo()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/motion.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index 58d5055076..5137434a06 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -684,9 +684,11 @@ MessageQueue *MovGraph::doWalkTo(StaticANIObject *subj, int xpos, int ypos, int
_items[idx]->movarr.clear();
- memcpy(_items[idx]->movarr, _items[idx]->items[arridx].movarr, 0x20u);
- _items[idx]->movarr = (MovArr *)operator new(8 * _items[idx]->items[arridx].movarr->_movStepCount);
- memcpy(_items[idx]->movarr, _items[idx]->items[arridx].movarr, 8 * _items[idx]->items[arridx].movarr->_movStepCount);
+ for (uint i = 0; i < _items[idx]->items[arridx].movarr->_movStepCount; i++) {
+ MovArr *m = new MovArr;
+
+ *m = *_items[idx]->items[arridx].movarr[i];
+ }
_items[idx]->field_10 = -1;
_items[idx]->field_14 = 0;
@@ -1003,12 +1005,7 @@ bool MovGraph::calcChunk(int idx, int x, int y, MovArr *arr, int a6) {
}
if (idxmin != -1) {
- arr->_afield_0 = (*movarr)[idxmin]->_afield_0;
- arr->_afield_4 = (*movarr)[idxmin]->_afield_4;
- arr->_afield_8 = (*movarr)[idxmin]->_afield_8;
- arr->_link = (*movarr)[idxmin]->_link;
- arr->_dist = (*movarr)[idxmin]->_dist;
- arr->_point = (*movarr)[idxmin]->_point;
+ *arr = *(*movarr)[idxmin];
res = true;
}