aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2014-05-23 09:43:03 +0300
committerEugene Sandulenko2014-05-23 09:43:03 +0300
commit6b435616132fc438919549d529aefbccf90819af (patch)
tree46d240380de196ea80560eba04bb2334d6d48cc8 /engines/fullpipe
parent1d46172008ce117f078e271054753d7d6be67cba (diff)
downloadscummvm-rg350-6b435616132fc438919549d529aefbccf90819af.tar.gz
scummvm-rg350-6b435616132fc438919549d529aefbccf90819af.tar.bz2
scummvm-rg350-6b435616132fc438919549d529aefbccf90819af.zip
FULLPIPE: Started implementation of MovGraph::method50()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/motion.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index 2ee3d706bb..ccd246ff8b 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -926,6 +926,67 @@ MessageQueue *MovGraph::fillMGMinfo(StaticANIObject *ani, MovArr *movarr, int st
}
MessageQueue *MovGraph::method50(StaticANIObject *ani, Common::Array<MovArr *> *movarr, int staticsId) {
+#if 0
+ if (_itemsCount <= 0)
+ return 0;
+
+ int idx;
+ int movidx;
+ bool done = false;
+
+ for (idx = 0; idx <= _itemsCount && !done; idx++) {
+ if (idx == _itemsCount)
+ return 0;
+
+ if (_items[idx]->ani == ani) {
+ if (!_items[idx]->movitems)
+ return 0;
+
+ if (_items[idx]->count < 1)
+ return 0;
+
+ for (movidx = 0; movidx < _items[idx]->count; movidx++)
+ if (_items[idx]->movitems[movidx]->movarr == movarr) {
+ done = true;
+
+ break;
+ }
+ }
+ }
+ }
+
+ v11 = this->_items;
+ v12 = idx << 6;
+ v13 = (*(MovItem **)((char *)&v11->movitems + v12))[movidx].movarr;
+ if ( *(MovArr **)((char *)&v11->movarr + v12) )
+ CObjectFree(*(void **)((char *)&v11->movarr + v12));
+ memcpy((char *)&this->_items->movarr + v12, v13, 0x20u);
+ *(MovArr **)((char *)&this->_items->movarr + v12) = (MovArr *)operator new(8 * v13->_movStepCount);
+ memcpy(*(void **)((char *)&this->_items->movarr + v12), v13->_movSteps, 8 * v13->_movStepCount);
+ *(int *)((char *)&this->_items->field_10 + v12) = -1;
+ *(int *)((char *)&this->_items->field_14 + v12) = 0;
+
+ MessageQueue *mq = fillMGMinfo(*(StaticANIObject **)((char *)&this->_items->ani + v12), (MovArr *)((char *)&this->_items->movarr + v12), 0);
+ if (!mq)
+ return 0;
+
+ ExCommand *ex = new ExCommand();
+
+ ex->_messageKind = 17;
+ ex->_messageNum = 54;
+ ex->_parentId = ani->_id;
+ ex->_field_3C = 1;
+ mq->addExCommandToEnd(ex);
+
+ if (!mq->chain(ani)) {
+ delete mq;
+
+ return 0;
+ }
+
+ return mq;
+#endif
+
warning("STUB: MovGraph::method50()");
return 0;