aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/motion.h
diff options
context:
space:
mode:
authorEugene Sandulenko2013-10-04 23:14:09 +0300
committerEugene Sandulenko2013-10-04 23:38:29 +0300
commitb90e76f21f6cbbfd11ac266748789c1396383710 (patch)
tree9e5b1993af6f75c401808588a9492c35c21ba469 /engines/fullpipe/motion.h
parent7139117bb717e2b31f9d270a2706046678844e25 (diff)
downloadscummvm-rg350-b90e76f21f6cbbfd11ac266748789c1396383710.tar.gz
scummvm-rg350-b90e76f21f6cbbfd11ac266748789c1396383710.tar.bz2
scummvm-rg350-b90e76f21f6cbbfd11ac266748789c1396383710.zip
FULLPIPE: Implement MctlCompound::method4C()
Diffstat (limited to 'engines/fullpipe/motion.h')
-rw-r--r--engines/fullpipe/motion.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h
index a5bbfbe075..f94fbc0a26 100644
--- a/engines/fullpipe/motion.h
+++ b/engines/fullpipe/motion.h
@@ -27,6 +27,7 @@ namespace Fullpipe {
class Statics;
class Movement;
+class MctlConnectionPoint;
int startWalkTo(int objId, int objKey, int x, int y, int a5);
int doSomeAnimation(int objId, int objKey, int a3);
@@ -61,18 +62,19 @@ public:
};
class MovGraphReact : public CObject {
- // Empty
+public:
+ virtual void method14() {}
+ virtual void createRegion() {}
+ virtual bool pointInRegion(int x, int y) { return false; }
};
-typedef Common::Array<CObject> MctlConnectionPointsArray;
-
class MctlCompoundArrayItem : public CObject {
friend class MctlCompound;
protected:
MotionController *_motionControllerObj;
MovGraphReact *_movGraphReactObj;
- MctlConnectionPointsArray _connectionPoints;
+ Common::Array<MctlConnectionPoint *> _connectionPoints;
int _field_20;
int _field_24;
int _field_28;
@@ -101,6 +103,7 @@ class MctlCompound : public MotionController {
virtual MessageQueue *method4C(StaticANIObject *subj, int xpos, int ypos, int flag, int staticsId);
void initMovGraph2();
+ MctlConnectionPoint *findClosestConnectionPoint(int ox, int oy, int destIndex, int connectionX, int connectionY, int sourceIndex, int *minDistancePtr);
};
struct MGMSubItem {
@@ -162,7 +165,10 @@ class ReactParallel : public MovGraphReact {
public:
ReactParallel();
virtual bool load(MfcArchive &file);
- void createRegion();
+
+ virtual void method14();
+ virtual void createRegion();
+ virtual bool pointInRegion(int x, int y);
};
class ReactPolygonal : public MovGraphReact {
@@ -175,7 +181,10 @@ class ReactPolygonal : public MovGraphReact {
public:
ReactPolygonal();
virtual bool load(MfcArchive &file);
- void createRegion();
+
+ virtual void method14();
+ virtual void createRegion();
+ virtual bool pointInRegion(int x, int y);
};
class MovGraphLink : public CObject {
@@ -293,7 +302,7 @@ public:
int _field_10;
int16 _field_14;
int16 _field_16;
- int _messageQueueObj;
+ MessageQueue *_messageQueueObj;
int _motionControllerObj;
};