summaryrefslogtreecommitdiff
path: root/include/game.h
diff options
context:
space:
mode:
authorColin Noga <Tempus@chronometry.ca>2012-02-23 22:55:50 -0600
committerColin Noga <Tempus@chronometry.ca>2012-02-23 22:55:50 -0600
commit7d8b019a42e1adda7c571d79ccd208c4e2159dbf (patch)
tree4e99a390c795ba860375404d0595cdf9fbd3ed83 /include/game.h
parentbc5140686e182ea63ee569ef29fe5a2de9f38578 (diff)
downloadkamek-7d8b019a42e1adda7c571d79ccd208c4e2159dbf.tar.gz
kamek-7d8b019a42e1adda7c571d79ccd208c4e2159dbf.zip
broken builds with linker error again
Diffstat (limited to 'include/game.h')
-rwxr-xr-xinclude/game.h70
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: