summaryrefslogtreecommitdiff
path: root/src/tile_types.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tile_types.c')
-rw-r--r--src/tile_types.c114
1 files changed, 114 insertions, 0 deletions
diff --git a/src/tile_types.c b/src/tile_types.c
new file mode 100644
index 0000000..cad63fa
--- /dev/null
+++ b/src/tile_types.c
@@ -0,0 +1,114 @@
+#include "global.h"
+#include "tile_types.h"
+
+#include "dungeon_global_data.h"
+
+const u8 gDungeonWaterType[] = {
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_WATER,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_WATER,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_LAVA,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_LAVA,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_LAVA,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_LAVA,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+ DUNGEON_WATER_TYPE_NONE,
+};
+
+bool8 IsTileGround(struct MapTile* tile)
+{
+ bool8 isGround = FALSE;
+ if (IsWaterTileset())
+ {
+ if (!(tile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)))
+ {
+ isGround = TRUE;
+ }
+ }
+ else if ((tile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)) != TILE_TYPE_LIQUID ||
+ gDungeonWaterType[gDungeonGlobalData->tileset] == DUNGEON_WATER_TYPE_LAVA)
+ {
+ isGround = TRUE;
+ }
+ return isGround;
+}
+
+bool8 IsWaterTileset()
+{
+ if (gDungeonGlobalData->tileset == 0 ||
+ gDungeonGlobalData->tileset == 0x31 ||
+ gDungeonGlobalData->tileset == 0x20 ||
+ gDungeonGlobalData->tileset == 0x21 ||
+ gDungeonGlobalData->tileset == 0x36)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}