summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rwxr-xr-xinclude/game.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/game.h b/include/game.h
index d706a4c..9e119d5 100755
--- a/include/game.h
+++ b/include/game.h
@@ -2727,6 +2727,38 @@ public:
+struct dWaterInfo_s {
+ float x, y, z, width, height;
+ int isInUse;
+ u8 type, layer;
+};
+
+class dWaterManager_c {
+ private:
+ dWaterInfo_s blocks[80];
+ public:
+ float current;
+
+ static dWaterManager_c *instance;
+
+ dWaterManager_c() { instance = this; }
+ ~dWaterManager_c() { instance = 0; }
+
+ void setup();
+ int addBlock(dWaterInfo_s *block);
+
+ private: // ?
+ int isPointWithinSpecifiedBlock(VEC2 *pos, int blockID);
+ int getAngleOfVector(VEC2 *vec);
+ int isPointWithinBubbleInternal(VEC2 *pos, int blockID, VEC2 *pOutVec, float *pFloat, s16 *pShort);
+
+ public:
+ int queryPosition(VEC2 *pos, VEC2 *pOutBlockPos, float *pOutFloat, s16 *pOutAngle, int layer);
+ int isPositionWithinBubble(VEC2 *pos, VEC2 *pOutBlockPos, int blockID, int layer);
+ void removeBlock(int blockID);
+ void setPosition(VEC3 *pos, int blockID);
+ void setGeometry(VEC3 *pos, float width, float height, int blockID);
+};
class BgGmBase : public dBase_c {
public:
@@ -2736,6 +2768,8 @@ public:
// Note: these tile numbers are kinda weird and involve GetTileFromTileTable
void placeTile(u16 x, u16 y, int layer, int tile);
+
+ void makeSplash(float x, float y, int type); // 80078410
};