aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-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;
}