mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-19 13:07:38 +01:00
1436 lines
38 KiB
C
1436 lines
38 KiB
C
#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
|
|
};
|
|
|
|
bool8 MetatileBehavior_IsATile(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_IsAshGrass(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;
|
|
}
|