summaryrefslogtreecommitdiff
path: root/src/metatile_behavior.c
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2017-09-29 19:03:50 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2017-09-29 19:03:50 +0200
commitf5387cf6b18b57f3620c05d652a9cf5b8bc2f347 (patch)
treea90b678261b4d5bdf44b3d69ac35a506cd857b1a /src/metatile_behavior.c
parent3c8091393ca12b8eeb26f236a997b70eea5688c6 (diff)
decompile metatile behav
Diffstat (limited to 'src/metatile_behavior.c')
-rw-r--r--src/metatile_behavior.c1436
1 files changed, 1436 insertions, 0 deletions
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
new file mode 100644
index 000000000..b9760f522
--- /dev/null
+++ b/src/metatile_behavior.c
@@ -0,0 +1,1436 @@
+#include "global.h"
+#include "metatile_behavior.h"
+#include "metatile_behaviors.h"
+
+#define TILE_FLAG_ENCOUNTER_TILE 1
+#define TILE_FLAG_SURFABLE 2
+
+#define TILE_ATTRIBUTES(three, two, one) (((one) ? 1 : 0) | ((two) ? 2 : 0) | ((three) ? 4 : 0))
+
+// wonder what the third flag is supposed to do
+static const u8 sTileBitAttributes[] =
+{
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NORMAL 0x00
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x01
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_TALL_GRASS 0x02
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_LONG_GRASS 0x03
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_04 0x04
+ TILE_ATTRIBUTES(FALSE, FALSE, TRUE), // MB_05 0x05
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_DEEP_SAND 0x06
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHORT_GRASS 0x07
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_CAVE 0x08
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LONG_GRASS_SOUTH_EDGE 0x09
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NO_RUNNING 0x0A
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_0B 0x0B
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MOUNTAIN_TOP 0x0C
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BATTLE_PYRAMID_WARP 0x0D
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MOSSDEEP_GYM_WARP 0x0E
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MT_PYRE_HOLE 0x0F
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_POND_WATER 0x10
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEMI_DEEP_WATER 0x11
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_DEEP_WATER 0x12
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATERFALL 0x13
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_SOOTOPOLIS_DEEP_WATER 0x14
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_OCEAN_WATER 0x15
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PUDDLE 0x16
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHALLOW_WATER 0x17
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_18 0x18
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_NO_SURFACING 0x19
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_1A 0x1A
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SHOAL_CAVE_ENTRANCE 0x1C
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x1D
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x1E
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x1F
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ICE 0x20
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SAND 0x21
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEAWEED 0x22
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x23
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_ASHGRASS 0x24
+ TILE_ATTRIBUTES(TRUE, FALSE, TRUE), // MB_25 0x25
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_THIN_ICE 0x26
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_ICE 0x27
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_HOT_SPRINGS 0x28
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LAVARIDGE_GYM_B1F_WARP 0x29
+ TILE_ATTRIBUTES(TRUE, TRUE, TRUE), // MB_SEAWEED_NO_SURFACING 0x2A
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_REFLECTION_UNDER_BRIDGE 0x2B
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x2C
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x2D
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x2E
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x2F
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_EAST 0x30
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_WEST 0x31
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTH 0x32
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTH 0x33
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTHEAST 0x34
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_NORTHWEST 0x35
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTHEAST 0x36
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_IMPASSABLE_SOUTHWEST 0x37
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_EAST 0x38
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_WEST 0x39
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_NORTH 0x3A
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_JUMP_SOUTH 0x3B
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x3C
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x3D
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_JUMP_SOUTHEAST 0x3E
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_JUMP_SOUTHWEST 0x3F
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_EAST 0x40
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_WEST 0x41
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_NORTH 0x42
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WALK_SOUTH 0x43
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_EAST 0x44
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_WEST 0x45
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_NORTH 0x46
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SLIDE_SOUTH 0x47
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x49
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // ? 0x4A
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4B
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4C
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4D
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4E
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x4F
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_EASTWARD_CURRENT 0x50
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WESTWARD_CURRENT 0x51
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_NORTHWARD_CURRENT 0x52
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_SOUTHWARD_CURRENT 0x53
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x54
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x55
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x56
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x57
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x58
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x59
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5A
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5B
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5C
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5D
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5E
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x5F
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NON_ANIMATED_DOOR 0x60
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LADDER 0x61
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_EAST_ARROW_WARP 0x62
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_WEST_ARROW_WARP 0x63
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_NORTH_ARROW_WARP 0x64
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SOUTH_ARROW_WARP 0x65
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_FLOOR_HOLE 0x66
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_AQUA_HIDEOUT_WARP 0x67
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_LAVARIDGE_GYM_1F_WARP 0x68
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ANIMATED_DOOR 0x69
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_UP_ESCALATOR 0x6A
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_DOWN_ESCALATOR 0x6B
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATER_DOOR 0x6C
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // MB_WATER_SOUTH_ARROW_WARP 0x6D
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_DEEP_SOUTH_WARP 0x6E
+ TILE_ATTRIBUTES(TRUE, TRUE, FALSE), // ? 0x6F
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_WARP_OR_BRIDGE 0x70
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_71 0x71
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_1 0x72
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_2 0x73
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_VERTICAL_LOG_1 0x74
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_VERTICAL_LOG_2 0x75
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_FORTREE_BRIDGE 0x78
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x79
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_SOUTH_BRIDGE_1 0x7A
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_SOUTH_BRIDGE_2 0x7B
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_3 0x7C
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE120_NORTH_BRIDGE_4 0x7D
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_7E 0x7E
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ROUTE110_BRIDGE 0x7F
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_COUNTER 0x80
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x81
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x82
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_PC 0x83
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CABLE_BOX_RESULTS_1 0x84
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_REGION_MAP 0x85
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TELEVISION 0x86
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_POKEBLOCK_FEEDER 0x87
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x88
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SLOT_MACHINE 0x89
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_ROULETTE 0x8A
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CLOSED_SOOTOPOLIS_GYM_DOOR 0x8B
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_8D 0x8D
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_RUNNING_SHOES_INSTRUCTION 0x8E
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_QUESTIONNAIRE 0x8F
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_RED_CAVE 0x90
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_RED_CAVE_OPEN 0x91
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN 0x93
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN 0x95
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_LEFT 0x96
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN 0x97
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_SHRUB 0x98
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_SHRUB_OPEN 0x99
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN 0x9B
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_RIGHT 0x9C
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN 0x9D
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x9E
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0x9F
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BERRY_TREE_SOIL 0xA0
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA1
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA2
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA3
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA4
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA5
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA6
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA7
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA8
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xA9
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAA
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAB
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAC
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAD
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAE
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xAF A
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_PC 0xB0
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_REGISTER_PC 0xB1
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_B2 0xB2
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_B3 0xB3
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_B4 0xB4
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_B5 0xB5
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_B6 0xB6
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_B7 0xB7
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_BALLOON 0xB8
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_B9 0xB9
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_GLITTER_MAT 0xBA
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_JUMP_MAT 0xBB
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_SPIN_MAT 0xBC
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_SOUND_MAT 0xBD
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BE 0xBE
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BF 0xBF
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BED 0xC0
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_C1 0xC1
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_C2 0xC2
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_C3 0xC3
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_SECRET_BASE_TV_SHIELD 0xC4
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_C5 0xC5
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_C6 0xC6
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SECRET_BASE_POSTER 0xC7
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_C8 0xC8
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_C9 0xC9
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CA 0xCA
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CB 0xCB
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CC 0xCC
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CD 0xCD
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CE 0xCE
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CF 0xCF
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_MUDDY_SLOPE 0xD0
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_BUMPY_SLOPE 0xD1
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_CRACKED_FLOOR 0xD2
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ISOLATED_VERTICAL_RAIL 0xD3
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_ISOLATED_HORIZONTAL_RAIL 0xD4
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_VERTICAL_RAIL 0xD5
+ TILE_ATTRIBUTES(TRUE, FALSE, FALSE), // MB_HORIZONTAL_RAIL 0xD6
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xD7
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xD8
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xD9
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDA
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDB
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDC
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDD
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDE
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xDF
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_PICTURE_BOOK_SHELF 0xE0
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BOOKSHELF 0xE1
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_POKEMON_CENTER_BOOKSHELF 0xE2
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_VASE 0xE3
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRASH_CAN 0xE4
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_SHOP_SHELF 0xE5
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_BLUEPRINT 0xE6
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_CABLE_BOX_RESULTS_2 0xE7
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_WIRELESS_BOX_RESULTS 0xE8
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_TRAINER_HILL_TIMER 0xE9
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // MB_UNKNOWN_CLOSED_DOOR 0xEA
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xEB
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xEC
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xED
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xEE
+ TILE_ATTRIBUTES(FALSE, FALSE, FALSE), // ? 0xEF
+};
+
+// only used as default case for checking jump landing in field_ground_effect.
+bool8 ShouldDoJumpLandingDustEffect(u8 var)
+{
+ return TRUE;
+}
+
+bool8 MetatileBehavior_IsEncounterTile(u8 var)
+{
+ if ((sTileBitAttributes[var] & TILE_FLAG_ENCOUNTER_TILE) != 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsJumpEast(u8 var)
+{
+ if (var == MB_JUMP_EAST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsJumpWest(u8 var)
+{
+ if (var == MB_JUMP_WEST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsJumpNorth(u8 var)
+{
+ if (var == MB_JUMP_NORTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsJumpSouth(u8 var)
+{
+ if (var == MB_JUMP_SOUTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPokeGrass(u8 var)
+{
+ if (var == MB_TALL_GRASS || var == MB_LONG_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSandOrDeepSand(u8 var)
+{
+ if (var == MB_SAND || var == MB_DEEP_SAND)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsDeepSand(u8 var)
+{
+ if (var == MB_DEEP_SAND)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsReflective(u8 var)
+{
+ if (var == MB_POND_WATER || var == MB_PUDDLE || var == MB_1A || var == MB_ICE || var == MB_SOOTOPOLIS_DEEP_WATER || var == MB_REFLECTION_UNDER_BRIDGE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsIce(u8 var)
+{
+ if (var == MB_ICE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWarpDoor(u8 var)
+{
+ if (var == MB_ANIMATED_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsDoor(u8 var)
+{
+ if (var == MB_8D || var == MB_ANIMATED_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsEscalator(u8 var)
+{
+ if (var == MB_UP_ESCALATOR || var == MB_DOWN_ESCALATOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_04(u8 var) // unused
+{
+ if (var == MB_04)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLadder(u8 var)
+{
+ if (var == MB_LADDER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNonAnimDoor(u8 var)
+{
+ if (var == MB_NON_ANIMATED_DOOR || var == MB_WATER_DOOR || var == MB_DEEP_SOUTH_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsDeepSouthWarp(u8 var)
+{
+ if (var == MB_DEEP_SOUTH_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8 var)
+{
+ if ((sTileBitAttributes[var] & TILE_FLAG_SURFABLE) != 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsEastArrowWarp(u8 var)
+{
+ if (var == MB_EAST_ARROW_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWestArrowWarp(u8 var)
+{
+ if (var == MB_WEST_ARROW_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNorthArrowWarp(u8 var)
+{
+ if (var == MB_NORTH_ARROW_WARP || var == MB_STAIRS_OUTSIDE_ABANDONED_SHIP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSouthArrowWarp(u8 var)
+{
+ if (var == MB_SOUTH_ARROW_WARP || var == MB_WATER_SOUTH_ARROW_WARP || var == MB_SHOAL_CAVE_ENTRANCE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsArrowWarp(u8 var) // unused
+{
+ u8 ret = FALSE;
+
+ if (MetatileBehavior_IsEastArrowWarp(var)
+ || MetatileBehavior_IsWestArrowWarp(var)
+ || MetatileBehavior_IsNorthArrowWarp(var)
+ || MetatileBehavior_IsSouthArrowWarp(var))
+ {
+ ret = TRUE;
+ }
+
+ return ret;
+}
+
+bool8 MetatileBehavior_IsMoveTile(u8 var)
+{
+ if ((var >= MB_WALK_EAST && var <= MB_TRICK_HOUSE_PUZZLE_8_FLOOR) || (var >= MB_EASTWARD_CURRENT && var <= MB_SOUTHWARD_CURRENT)
+ || var == MB_MUDDY_SLOPE || var == MB_CRACKED_FLOOR || var == MB_WATERFALL || var == MB_ICE || var == MB_SECRET_BASE_JUMP_MAT || var == MB_SECRET_BASE_SPIN_MAT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsIce_2(u8 var)
+{
+ if (var == MB_ICE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8 var)
+{
+ if (var == MB_TRICK_HOUSE_PUZZLE_8_FLOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_05(u8 var)
+{
+ if (var == MB_05)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWalkNorth(u8 var)
+{
+ if (var == MB_WALK_NORTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWalkSouth(u8 var)
+{
+ if (var == MB_WALK_SOUTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWalkWest(u8 var)
+{
+ if (var == MB_WALK_WEST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWalkEast(u8 var)
+{
+ if (var == MB_WALK_EAST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNorthwardCurrent(u8 var)
+{
+ if (var == MB_NORTHWARD_CURRENT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSouthwardCurrent(u8 var)
+{
+ if (var == MB_SOUTHWARD_CURRENT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWestwardCurrent(u8 var)
+{
+ if (var == MB_WESTWARD_CURRENT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsEastwardCurrent(u8 var)
+{
+ if (var == MB_EASTWARD_CURRENT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSlideNorth(u8 var)
+{
+ if (var == MB_SLIDE_NORTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSlideSouth(u8 var)
+{
+ if (var == MB_SLIDE_SOUTH)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSlideWest(u8 var)
+{
+ if (var == MB_SLIDE_WEST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSlideEast(u8 var)
+{
+ if (var == MB_SLIDE_EAST)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCounter(u8 var)
+{
+ if (var == MB_COUNTER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDir)
+{
+ if (playerDir != CONNECTION_NORTH) // if the player isn't facing north, forget about it.
+ return FALSE;
+ else if (tile == MB_TELEVISION) // is the player's north tile a TV?
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPC(u8 var)
+{
+ if (var == MB_PC)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCableBoxResults1(u8 var)
+{
+ if (var == MB_CABLE_BOX_RESULTS_1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseOpen(u8 var)
+{
+ if (var == MB_SECRET_BASE_SPOT_RED_CAVE_OPEN || var == MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN
+ || var == MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN || var == MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN
+ || var == MB_SECRET_BASE_SPOT_SHRUB_OPEN || var == MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN
+ || var == MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseCave(u8 var)
+{
+ if (var == MB_SECRET_BASE_SPOT_RED_CAVE || var == MB_SECRET_BASE_SPOT_BROWN_CAVE || var == MB_SECRET_BASE_SPOT_YELLOW_CAVE || var == MB_SECRET_BASE_SPOT_BLUE_CAVE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseTree(u8 var)
+{
+ if (var == MB_SECRET_BASE_SPOT_TREE_LEFT || var == MB_SECRET_BASE_SPOT_TREE_RIGHT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseShrub(u8 var)
+{
+ if (var == MB_SECRET_BASE_SPOT_SHRUB)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBasePC(u8 var)
+{
+ if (var == MB_SECRET_BASE_PC)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseRegisterPC(u8 var)
+{
+ if (var == MB_SECRET_BASE_REGISTER_PC)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_B2(u8 var) // unused
+{
+ if (var == MB_B2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_B3(u8 var)
+{
+ if (var == MB_B3)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_B9(u8 var)
+{
+ if (var == MB_B9)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_C6(u8 var)
+{
+ if (var == MB_C6)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBasePoster(u8 var)
+{
+ if (var == MB_SECRET_BASE_POSTER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNormal(u8 var)
+{
+ if (var == MB_NORMAL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_B7(u8 var)
+{
+ if (var == MB_B7)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_B2_Duplicate(u8 var) // unused
+{
+ if (var == MB_B2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_B5(u8 var)
+{
+ if (var == MB_B5)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_C3(u8 var)
+{
+ if (var == MB_C3)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_C2(u8 var)
+{
+ if (var == MB_C2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseBalloon(u8 var)
+{
+ if (var == MB_SECRET_BASE_BALLOON)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_BE(u8 var)
+{
+ if (var == MB_BE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseSoundMat(u8 var)
+{
+ if (var == MB_SECRET_BASE_SOUND_MAT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseGlitterMat(u8 var)
+{
+ if (var == MB_SECRET_BASE_GLITTER_MAT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_BF(u8 var)
+{
+ if (var == MB_BF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseTvOrShield(u8 var)
+{
+ if (var == MB_SECRET_BASE_TV_SHIELD)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_C5(u8 var)
+{
+ if (var == MB_C5)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_HasRipples(u8 var)
+{
+ if (var == MB_POND_WATER || var == MB_PUDDLE || var == MB_SOOTOPOLIS_DEEP_WATER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPuddle(u8 var)
+{
+ if (var == MB_PUDDLE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTallGrass(u8 var)
+{
+ if (var == MB_TALL_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLongGrass(u8 var)
+{
+ if (var == MB_LONG_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBerryTreeSoil(u8 var)
+{
+ if (var == MB_BERRY_TREE_SOIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsAsh(u8 var)
+{
+ if (var == MB_ASHGRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8 var)
+{
+ if (var == MB_25)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBridge(u8 var)
+{
+ if ((var == MB_WARP_OR_BRIDGE || var == MB_71 || var == MB_ROUTE120_NORTH_BRIDGE_1 || var == MB_ROUTE120_NORTH_BRIDGE_2)
+ || (var == MB_ROUTE120_NORTH_BRIDGE_3 || var == MB_ROUTE120_NORTH_BRIDGE_4 || var == MB_7E || var == MB_ROUTE110_BRIDGE))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+u8 MetatileBehavior_GetBridgeSth(u8 var)
+{
+ u8 result = var - MB_WARP_OR_BRIDGE;
+ if (result < 4)
+ return result;
+
+ result = var - MB_ROUTE120_SOUTH_BRIDGE_1;
+ if (result < 2)
+ return 2;
+
+ result = var - MB_ROUTE120_NORTH_BRIDGE_3;
+ if (result < 2)
+ return 3;
+
+ return 0;
+}
+
+u8 MetatileBehavior_8089510(u8 var)
+{
+ u8 result = var - MB_WARP_OR_BRIDGE;
+
+ if (result < 4)
+ return 1;
+ else
+ return 0;
+}
+
+bool8 MetatileBehavior_IsLandWildEncounter(u8 var)
+{
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(var) == FALSE && MetatileBehavior_IsEncounterTile(var) == TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWaterWildEncounter(u8 var)
+{
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(var) == TRUE && MetatileBehavior_IsEncounterTile(var) == TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_0B(u8 var)
+{
+ if (var == MB_0B)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMountain(u8 var)
+{
+ if (var == MB_MOUNTAIN_TOP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsDiveable(u8 var)
+{
+ if (var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER || var == MB_SOOTOPOLIS_DEEP_WATER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsUnableToEmerge(u8 var)
+{
+ if (var == MB_NO_SURFACING || var == MB_SEAWEED_NO_SURFACING)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsShallowFlowingWater(u8 var)
+{
+ if (var == MB_SHALLOW_WATER || var == MB_STAIRS_OUTSIDE_ABANDONED_SHIP || var == MB_SHOAL_CAVE_ENTRANCE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsThinIce(u8 var)
+{
+ if (var == MB_THIN_ICE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCrackedIce(u8 var)
+{
+ if (var == MB_CRACKED_ICE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsDeepOrOceanWater(u8 var)
+{
+ if (var == MB_OCEAN_WATER || var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMB_18_OrMB_1A(u8 var) // unused
+{
+ if (var == MB_18 || var == MB_1A)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSurfableAndNotWaterfall(u8 var)
+{
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(var) && MetatileBehavior_IsWaterfall(var) == FALSE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsEastBlocked(u8 var)
+{
+ if (var == MB_IMPASSABLE_EAST || var == MB_IMPASSABLE_NORTHEAST || var == MB_IMPASSABLE_SOUTHEAST || var == MB_C1 || var == MB_BE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWestBlocked(u8 var)
+{
+ if (var == MB_IMPASSABLE_WEST || var == MB_IMPASSABLE_NORTHWEST || var == MB_IMPASSABLE_SOUTHWEST || var == MB_C1 || var == MB_BE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsNorthBlocked(u8 var)
+{
+ if (var == MB_IMPASSABLE_NORTH || var == MB_IMPASSABLE_NORTHEAST || var == MB_IMPASSABLE_NORTHWEST || var == MB_BED)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSouthBlocked(u8 var)
+{
+ if (var == MB_IMPASSABLE_SOUTH || var == MB_IMPASSABLE_SOUTHEAST || var == MB_IMPASSABLE_SOUTHWEST || var == MB_BED)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsShortGrass(u8 var)
+{
+ if (var == MB_SHORT_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsHotSprings(u8 var)
+{
+ if (var == MB_HOT_SPRINGS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWaterfall(u8 var)
+{
+ if (var == MB_WATERFALL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsFortreeBridge(u8 var)
+{
+ if (var == MB_FORTREE_BRIDGE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPacifilogVerticalLog1(u8 var)
+{
+ if (var == MB_PACIFIDLOG_VERTICAL_LOG_1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPacifilogVerticalLog2(u8 var)
+{
+ if (var == MB_PACIFIDLOG_VERTICAL_LOG_2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPacifilogHorizontalLog1(u8 var)
+{
+ if (var == MB_PACIFIDLOG_HORIZONTAL_LOG_1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPacifilogHorizontalLog2(u8 var)
+{
+ if (var == MB_PACIFIDLOG_HORIZONTAL_LOG_2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPacifidlogLog(u8 var)
+{
+ if (var == MB_PACIFIDLOG_VERTICAL_LOG_1 || var == MB_PACIFIDLOG_VERTICAL_LOG_2
+ || var == MB_PACIFIDLOG_HORIZONTAL_LOG_1 || var == MB_PACIFIDLOG_HORIZONTAL_LOG_2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8 var)
+{
+ if (var == MB_TRICK_HOUSE_PUZZLE_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsRegionMap(u8 var)
+{
+ if (var == MB_REGION_MAP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8 var)
+{
+ if (var == MB_CLOSED_SOOTOPOLIS_GYM_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsUnknownClosedDoor(u8 var)
+{
+ if (var == MB_UNKNOWN_CLOSED_DOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsRoulette(u8 var) // unused
+{
+ if (var == MB_ROULETTE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPokeblockFeeder(u8 var)
+{
+ if (var == MB_POKEBLOCK_FEEDER)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseJumpMat(u8 var)
+{
+ if (var == MB_SECRET_BASE_JUMP_MAT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSecretBaseSpinMat(u8 var)
+{
+ if (var == MB_SECRET_BASE_SPIN_MAT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8 var)
+{
+ if (var == MB_LAVARIDGE_GYM_B1F_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLavaridge1FWarp(u8 var)
+{
+ if (var == MB_LAVARIDGE_GYM_1F_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsAquaHideoutWarp(u8 var)
+{
+ if (var == MB_AQUA_HIDEOUT_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsWarpOrBridge(u8 var)
+{
+ if (var == MB_WARP_OR_BRIDGE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMossdeepGymWarp(u8 var)
+{
+ if (var == MB_MOSSDEEP_GYM_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+
+bool8 MetatileBehavior_IsSurfableFishableWater(u8 var)
+{
+ if (var == MB_POND_WATER || var == MB_OCEAN_WATER || var == MB_SEMI_DEEP_WATER || var == MB_DEEP_WATER
+ || var == MB_SOOTOPOLIS_DEEP_WATER || (var == MB_EASTWARD_CURRENT || var == MB_WESTWARD_CURRENT
+ || var == MB_NORTHWARD_CURRENT || var == MB_SOUTHWARD_CURRENT))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMtPyreHole(u8 var)
+{
+ if (var == MB_MT_PYRE_HOLE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCrackedFloorHole(u8 var)
+{
+ if (var == MB_CRACKED_FLOOR_HOLE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCrackedFloor(u8 var)
+{
+ if (var == MB_CRACKED_FLOOR)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsMuddySlope(u8 var)
+{
+ if (var == MB_MUDDY_SLOPE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBumpySlope(u8 var)
+{
+ if (var == MB_BUMPY_SLOPE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsIsolatedVerticalRail(u8 var)
+{
+ if (var == MB_ISOLATED_VERTICAL_RAIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8 var)
+{
+ if (var == MB_ISOLATED_HORIZONTAL_RAIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsVerticalRail(u8 var)
+{
+ if (var == MB_VERTICAL_RAIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsHorizontalRail(u8 var)
+{
+ if (var == MB_HORIZONTAL_RAIL)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsSeaweed(u8 var)
+{
+ if (var == MB_SEAWEED || var == MB_SEAWEED_NO_SURFACING)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsRunningDisallowed(u8 var)
+{
+ if (var == MB_NO_RUNNING || var == MB_LONG_GRASS || var == MB_HOT_SPRINGS || MetatileBehavior_IsPacifidlogLog(var) != FALSE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCuttableGrass(u8 var)
+{
+ if (var == MB_TALL_GRASS || var == MB_LONG_GRASS || var == MB_ASHGRASS || var == MB_LONG_GRASS_SOUTH_EDGE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsRunningShoesInstruction(u8 var)
+{
+ if (var == MB_RUNNING_SHOES_INSTRUCTION)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPictureBookShelf(u8 var)
+{
+ if (var == MB_PICTURE_BOOK_SHELF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBookShelf(u8 var)
+{
+ if (var == MB_BOOKSHELF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPokeCenterBookShelf(u8 var)
+{
+ if (var == MB_POKEMON_CENTER_BOOKSHELF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsVase(u8 var)
+{
+ if (var == MB_VASE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTrashCan(u8 var)
+{
+ if (var == MB_TRASH_CAN)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsShopShelf(u8 var)
+{
+ if (var == MB_SHOP_SHELF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBlueprint(u8 var)
+{
+ if (var == MB_BLUEPRINT)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsBattlePyramidWarp(u8 var)
+{
+ if (var == MB_BATTLE_PYRAMID_WARP)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsPlayerFacingWirelessBoxResults(u8 tile, u8 playerDir)
+{
+ if (playerDir != CONNECTION_NORTH) // if the player isn't facing north, forget about it.
+ return FALSE;
+ else if (tile == MB_WIRELESS_BOX_RESULTS) // is the player's north tile the monitor with results?
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsCableBoxResults2(u8 tile, u8 playerDir)
+{
+ if (playerDir != CONNECTION_NORTH) // if the player isn't facing north, forget about it.
+ return FALSE;
+ else if (tile == MB_CABLE_BOX_RESULTS_2) // is the player's north tile the monitor with results?
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsQuestionnaire(u8 var)
+{
+ if (var == MB_QUESTIONNAIRE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLongGrass_Duplicate(u8 var)
+{
+ if (var == MB_LONG_GRASS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsLongGrassSouthEdge(u8 var)
+{
+ if (var == MB_LONG_GRASS_SOUTH_EDGE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 MetatileBehavior_IsTrainerHillTimer(u8 var)
+{
+ if (var == MB_TRAINER_HILL_TIMER)
+ return TRUE;
+ else
+ return FALSE;
+}