aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2013-10-04 01:25:22 +0300
committerEugene Sandulenko2013-10-04 01:25:44 +0300
commite04744fc266ab7d59bf864f11903616c89f65792 (patch)
tree85f664179d573ac67f6efbbc8bf570b4974912f2 /engines
parent25bff46fe6672f79ec81ede2e87cabf1156e84cd (diff)
downloadscummvm-rg350-e04744fc266ab7d59bf864f11903616c89f65792.tar.gz
scummvm-rg350-e04744fc266ab7d59bf864f11903616c89f65792.tar.bz2
scummvm-rg350-e04744fc266ab7d59bf864f11903616c89f65792.zip
FULLPIPE: Started implementation MctlCompound::method4C()
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/motion.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index f06125e9dc..69083445ac 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -126,6 +126,68 @@ MessageQueue *MctlCompound::method4C(StaticANIObject *subj, int xpos, int ypos,
warning("STUB: MctlCompound::method4C()");
return 0;
+
+#if 0
+ int match1 = -1;
+ int match2 = -1;
+
+ if (!subj)
+ return 0;
+
+ for (uint i = 0; i < _motionControllers.size(); i++) {
+ if (_motionControllers[i]->_movGraphReactObj) {
+ if (_motionControllers[i]->_movGraphReactObj->pointInRegion(subj->_ox, subj->_oy)) {
+ match1 = i;
+ break;
+ }
+ }
+ }
+
+ if (match1 == -1)
+ return 0;
+
+ for (uint i = 0; i < _motionControllers.size(); i++) {
+ if (_motionControllers[i]->_movGraphReactObj) {
+ if (_motionControllers[i]->_movGraphReactObj->pointInRegion(xpos, ypos)) {
+ match2 = i;
+ break;
+ }
+ }
+ }
+
+ if (match2 == -1)
+ return 0;
+
+ if (match1 == match2)
+ return _motionControllers[match1]->_motionControllerObj->method4C(subj, xpos, ypos, flag, staticsId);
+
+ MctlConnectionPoint *closestP = findClosestConnectionPoint(subj->_ox, subj->_oy, match1, xpos, ypos, match2, &match2);
+
+ if (!closestP)
+ return 0;
+
+ MctlConnectionPoint *nextP = _motionControllers[match1]->_motionControllerObj->method4C(subj, closestP->connectionX, closestP->connectionY, 1, closestP->field_14);
+
+ ExCommand *ex;
+
+ if (nextP) {
+ for (uint i = 0; i < closestP->_messageQueueObj->getCount(); i++) {
+ ex = new ExCommand(closestP->_messageQueueObj->getExCommandByIndex(i));
+ ex->excFlags |= 2;
+ nextP->messageQueueObj->CPtrList::AddTail(ex);
+ }
+
+ ex = new ExCommand(subj->_id, 51, 0, xpos, ypos, 0, 1, 0, 0, 0);
+
+ ex->_field_20 = flag;
+ ex->_keyCode = subj->_okeyCode;
+ ex->_excFlags |= 2;
+
+ nextP->messageQueueObj->CPtrList::AddTail(ex);
+ }
+
+ return nextP;
+#endif
}
bool MctlCompoundArray::load(MfcArchive &file) {