summaryrefslogtreecommitdiff
path: root/src
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
parentec6abc684ebc571fc186ca61f1410770ea17fa14 (diff)
Decomped IsTileGround()
Diffstat (limited to 'src')
-rw-r--r--src/status_checker.c2
-rw-r--r--src/tile_types.c103
2 files changed, 104 insertions, 1 deletions
diff --git a/src/status_checker.c b/src/status_checker.c
index e0bf251..667f0cb 100644
--- a/src/status_checker.c
+++ b/src/status_checker.c
@@ -13,6 +13,7 @@
#include "map.h"
#include "number_util.h"
#include "status_checks_1.h"
+#include "tile_types.h"
#include "weather.h"
// Array indices correspond to the current dungeon tileset.
@@ -95,7 +96,6 @@ const u8 gDungeonCamouflageTypes[76] = {
TYPE_ROCK
};
-extern bool8 IsTileGround(struct MapTile*);
extern bool8 CanLayTrap(struct Position*);
bool8 CanUseOnSelfWithStatusChecker(struct DungeonEntity *pokemon, struct PokemonMove *move)
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;
+}