diff options
Diffstat (limited to '')
-rwxr-xr-x | include/game.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/include/game.h b/include/game.h index 99a064a..cceee66 100755 --- a/include/game.h +++ b/include/game.h @@ -1436,6 +1436,76 @@ public: u8 _ED[3]; //FIXME
};
+class BasicCollider {
+ public:
+ BasicCollider();
+
+ virtual ~BasicCollider();
+ virtual void update();
+ virtual void _vf10();
+ virtual void _vf14();
+
+ void clear();
+ void addToList();
+ void removeFromList();
+
+
+ dStageActor_c *owner;
+ BasicCollider *prev, *next;
+ /* dRSomething */ void *ptrToRSomething;
+
+ float rightX, rightY, leftX, leftY;
+ float xDiff, yDiff;
+ float lastLeftX, lastLeftY;
+ float lineLength;
+ float leftXDeltaSinceLastCalculation;
+
+ u32 flags;
+ s16 rotation;
+ u8 type;
+ u8 _43;
+ u8 isInList;
+ u8 _45, _46, _47, _48, _49, _4A;
+};
+
+class StandOnTopCollider : public BasicCollider {
+ public:
+ StandOnTopCollider();
+
+ void update();
+
+ void init(dStageActor_c *owner,
+ float _4C, float _50, float topYOffset,
+ float rightSize, float leftSize,
+ s16 rotation, u8 unk_45, Vec2 *scale = 0);
+
+ void init(dStageActor_c *owner,
+ Vec2 *fields4C_50, float topYOffset,
+ float rightSize, float leftSize,
+ s16 rotation, u8 unk_45, Vec2 *scale = 0);
+
+ void setLeftAndRight(float left, float right);
+ void setLeftAndRightScaled(float left, float right, float scaleFactor);
+
+ // 4C and 50 might be X/Y offset. Not affected by rotation
+ float _4C, _50, topYOffset, rightSize, leftSize;
+};
+
+class RideableActorCollider : public BasicCollider {
+ public:
+ RideableActorCollider();
+
+ void update();
+
+ void init(dStageActor_c *owner, Vec2 *one, Vec2 *two); // 800DB590
+ void init(dStageActor_c *owner, float x1, float x2, float y1, float y2); // 800DB620
+
+ void setPosition(Vec2 *one, Vec2 *two); // 800DB680
+ void setPosition(float x1, float x2, float y1, float y2); // 800DB6E0
+
+ Vec2 left, right;
+};
+
class freezeMgr_c {
public:
|