summaryrefslogtreecommitdiff
path: root/src/tile_types.c
diff options
context:
space:
mode:
authorAnonymousRandomPerson <chenghanngan.us@gmail.com>2022-02-20 23:43:06 -0500
committerAnonymousRandomPerson <chenghanngan.us@gmail.com>2022-02-20 23:43:06 -0500
commit4aafa434a61c07b70e6bc2364ab6f63c7e2c4169 (patch)
treee44f4620bb443c81b82be3cedaa8e277d92e93cb /src/tile_types.c
parentec6abc684ebc571fc186ca61f1410770ea17fa14 (diff)
Decomped IsTileGround()
Diffstat (limited to 'src/tile_types.c')
-rw-r--r--src/tile_types.c103
1 files changed, 103 insertions, 0 deletions
diff --git a/src/tile_types.c b/src/tile_types.c
new file mode 100644
index 0000000..fe28d9d
--- /dev/null
+++ b/src/tile_types.c
@@ -0,0 +1,103 @@
+#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,
+};
+
+extern bool8 IsWaterTileset();
+
+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;
+}