summaryrefslogtreecommitdiff
path: root/src/metatile_behavior.c
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2017-03-22 02:01:55 -0400
committerGitHub <noreply@github.com>2017-03-22 02:01:55 -0400
commite3c26e52ae6ab881ade913ca1fad2cd9629bbcb1 (patch)
tree291912dbcf0f77d6c88b7e691efa18dcd9d4bc53 /src/metatile_behavior.c
parent515ae5e00f2661559583a4720d9944755e23d141 (diff)
parentd507cdcebb39e2ec43c4d0f756570a5734fcb42e (diff)
Merge pull request #241 from ProjectRevoTPP/master
decompile fldeff_cut.c, script_pokemon_util_80C4BF0.c, document save.c, move data to C files, decompile the next 3 functions in item_use.c, and a lot of labeling
Diffstat (limited to 'src/metatile_behavior.c')
-rw-r--r--src/metatile_behavior.c258
1 files changed, 251 insertions, 7 deletions
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index 9a049bb40..a7fb5abef 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -1,7 +1,251 @@
#include "global.h"
#include "metatile_behaviors.h"
-extern u8 gUnknown_08308E2C[];
+#define TILE_ATTRIBUTES(three, two, one) (((one) ? 1 : 0) | ((two) ? 2 : 0) | ((three) ? 4 : 0))
+
+static const u8 sTileBitAttributes[] =
+{
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE),
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE),
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE),
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE)
+};
bool8 MetatileBehavior_IsWaterfall(u8);
@@ -13,7 +257,7 @@ bool8 MetatileBehavior_IsATile(u8 var)
bool8 MetatileBehavior_IsEncounterTile(u8 var)
{
- if ((gUnknown_08308E2C[var] & 1) != 0)
+ if ((sTileBitAttributes[var] & 1) != 0)
return TRUE;
else
return FALSE;
@@ -149,7 +393,7 @@ bool8 MetatileBehavior_IsDeepSouthWarp(u8 var)
bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8 var)
{
- if ((gUnknown_08308E2C[var] & 2) != 0)
+ if ((sTileBitAttributes[var] & 2) != 0)
return TRUE;
else
return FALSE;
@@ -582,9 +826,9 @@ bool8 MetatileBehavior_IsBerryTreeSoil(u8 var)
return FALSE;
}
-bool8 MetatileBehavior_IsAsh(u8 var)
+bool8 MetatileBehavior_IsAshGrass(u8 var)
{
- if (var == MB_ASH)
+ if (var == MB_ASHGRASS)
return TRUE;
else
return FALSE;
@@ -992,9 +1236,9 @@ bool8 MetatileBehavior_IsRunningDisallowed(u8 var)
return FALSE;
}
-bool8 sub_80578F8(u8 var)
+bool8 MetatileBehavior_IsCuttableGrass(u8 var)
{
- if (var == MB_TALL_GRASS || var == MB_LONG_GRASS || var == MB_ASH || var == MB_LONG_GRASS_SOUTH_EDGE)
+ if (var == MB_TALL_GRASS || var == MB_LONG_GRASS || var == MB_ASHGRASS || var == MB_LONG_GRASS_SOUTH_EDGE)
return TRUE;
else
return FALSE;