summaryrefslogtreecommitdiff
path: root/include/constants/flags.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/constants/flags.h')
-rw-r--r--include/constants/flags.h2180
1 files changed, 973 insertions, 1207 deletions
diff --git a/include/constants/flags.h b/include/constants/flags.h
index a4b891aca..994221afd 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -1,350 +1,268 @@
#ifndef GUARD_CONSTANTS_FLAGS_H
#define GUARD_CONSTANTS_FLAGS_H
-// Sys Flags Maybe
-#define FLAG_SYS_SAFARI_MODE 0x800
-#define FLAG_WHITE_FLUTE_ACTIVE 0x803
-#define FLAG_BLACK_FLUTE_ACTIVE 0x804
-
-// World Map Flags
-#define FLAG_WORLD_MAP_PALLET_TOWN 0x890
-#define FLAG_WORLD_MAP_VIRIDIAN_CITY 0x891
-#define FLAG_WORLD_MAP_PEWTER_CITY 0x892
-#define FLAG_WORLD_MAP_CERULEAN_CITY 0x893
-#define FLAG_WORLD_MAP_LAVENDER_TOWN 0x894
-#define FLAG_WORLD_MAP_VERMILION_CITY 0x895
-#define FLAG_WORLD_MAP_CELADON_CITY 0x896
-#define FLAG_WORLD_MAP_FUCHSIA_CITY 0x897
-#define FLAG_WORLD_MAP_CINNABAR_ISLAND 0x898
-#define FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR 0x899
-#define FLAG_WORLD_MAP_SAFFRON_CITY 0x89a
-#define FLAG_WORLD_MAP_ONE_ISLAND 0x89b
-#define FLAG_WORLD_MAP_TWO_ISLAND 0x89c
-#define FLAG_WORLD_MAP_THREE_ISLAND 0x89d
-#define FLAG_WORLD_MAP_FOUR_ISLAND 0x89e
-#define FLAG_WORLD_MAP_FIVE_ISLAND 0x89f
-#define FLAG_WORLD_MAP_SEVEN_ISLAND 0x8a0
-#define FLAG_WORLD_MAP_SIX_ISLAND 0x8a1
-#define FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F 0x8a2
-#define FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F 0x8a3
-#define FLAG_WORLD_MAP_VIRIDIAN_FOREST 0x8a4
-#define FLAG_WORLD_MAP_MT_MOON_1F 0x8a5
-#define FLAG_WORLD_MAP_SSANNE_EXTERIOR 0x8a6
-#define FLAG_WORLD_MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL 0x8a7
-#define FLAG_WORLD_MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL 0x8a8
-#define FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F 0x8a9
-#define FLAG_WORLD_MAP_VICTORY_ROAD_1F 0x8aa
-#define FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F 0x8ab
-#define FLAG_WORLD_MAP_SILPH_CO_1F 0x8ac
-#define FLAG_WORLD_MAP_POKEMON_MANSION_1F 0x8ad
-#define FLAG_WORLD_MAP_SAFARI_ZONE_CENTER 0x8ae
-#define FLAG_WORLD_MAP_POKEMON_LEAGUE_LORELEIS_ROOM 0x8af
-#define FLAG_WORLD_MAP_ROCK_TUNNEL_1F 0x8b0
-#define FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F 0x8b1
-#define FLAG_WORLD_MAP_POKEMON_TOWER_1F 0x8b2
-#define FLAG_WORLD_MAP_CERULEAN_CAVE_1F 0x8b3
-#define FLAG_WORLD_MAP_POWER_PLANT 0x8b4
-#define FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR 0x8b5
-#define FLAG_WORLD_MAP_MT_EMBER_EXTERIOR 0x8b6
-#define FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST 0x8b7
-#define FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE 0x8b8
-#define FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE 0x8b9
-#define FLAG_WORLD_MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY 0x8ba
-#define FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F 0x8bb
-#define FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE 0x8bc
-#define FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH 0x8bd
-#define FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE 0x8be
-#define FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER 0x8bf
-#define FLAG_WORLD_MAP_THREE_ISLAND_DUNSPARCE_TUNNEL 0x8c0
-#define FLAG_WORLD_MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY 0x8c1
-#define FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR 0x8c2
-
-// Unknown
-
-#define FLAG_0x807 0x807
-#define FLAG_0x821 0x821
-#define FLAG_0x822 0x822
-#define FLAG_0x823 0x823
-#define FLAG_0x825 0x825
-#define FLAG_0x827 0x827
-#define FLAG_0x828 0x828
-#define FLAG_0x829 0x829
-#define FLAG_0x82C 0x82C
-#define FLAG_0x82F 0x82F
-#define FLAG_0x830 0x830
-#define FLAG_SYS_NOT_SOMEONES_PC 0x834
-#define FLAG_0x83C 0x83C
-#define FLAG_0x83E 0x83E
-#define FLAG_0x841 0x841
-#define FLAG_0x844 0x844
-#define FLAG_0x845 0x845
-#define FLAG_0x846 0x846
-#define FLAG_0x847 0x847
-#define FLAG_0x848 0x848
-#define FLAG_0x849 0x849
-#define FLAG_0x84A 0x84A
-#define FLAG_0x84B 0x84B
+// TODO: Get correct names and numbers
+#define FLAG_TEMP_1 0x001
+#define FLAG_TEMP_2 0x002
+#define FLAG_TEMP_3 0x003
+#define FLAG_TEMP_4 0x004
+#define FLAG_TEMP_5 0x005
+#define FLAG_TEMP_6 0x006
+#define FLAG_TEMP_7 0x007
+#define FLAG_TEMP_8 0x008
+#define FLAG_TEMP_9 0x009
+#define FLAG_TEMP_A 0x00A
+#define FLAG_TEMP_B 0x00B
+#define FLAG_TEMP_C 0x00C
+#define FLAG_TEMP_D 0x00D
+#define FLAG_TEMP_E 0x00E
+#define FLAG_TEMP_F 0x00F
+#define FLAG_TEMP_10 0x010
+#define FLAG_TEMP_11 0x011
+#define FLAG_TEMP_12 0x012
+#define FLAG_TEMP_13 0x013
+#define FLAG_TEMP_14 0x014
+#define FLAG_TEMP_15 0x015
+#define FLAG_TEMP_16 0x016
+#define FLAG_TEMP_17 0x017
+#define FLAG_TEMP_18 0x018
+#define FLAG_TEMP_19 0x019
+#define FLAG_TEMP_1A 0x01A
+#define FLAG_TEMP_1B 0x01B
+#define FLAG_TEMP_1C 0x01C
+#define FLAG_TEMP_1D 0x01D
+#define FLAG_TEMP_1E 0x01E
+#define FLAG_TEMP_1F 0x01F
-// Emerald Flags
+#define FLAG_0x020 0x020
+#define FLAG_0x021 0x021
+#define FLAG_0x022 0x022
+#define FLAG_0x023 0x023
+#define FLAG_0x024 0x024
+#define FLAG_0x025 0x025
+#define FLAG_0x026 0x026
+#define FLAG_0x027 0x027
-// TODO: Get correct names and numbers
+// Hide/show flags
+#define FLAG_HIDE_BULBASAUR_BALL 0x028
+#define FLAG_HIDE_SQUIRTLE_BALL 0x029
+#define FLAG_HIDE_CHARMANDER_BALL 0x02A
+#define FLAG_HIDE_OAK_IN_HIS_LAB 0x02B
+#define FLAG_HIDE_OAK_IN_PALLET_TOWN 0x02C
+#define FLAG_HIDE_RIVAL_IN_LAB 0x02D
+#define FLAG_HIDE_PEWTER_CITY_GYM_GUIDE 0x02E
+#define FLAG_HIDE_DOME_FOSSIL 0x02F
+#define FLAG_HIDE_HELIX_FOSSIL 0x030
+#define FLAG_HIDE_NUGGET_BRIDGE_ROCKET 0x031
+#define FLAG_HIDE_BILL_CLEFAIRY 0x032
+#define FLAG_HIDE_BILL_HUMAN_SEA_COTTAGE 0x033
+#define FLAG_HIDE_TOWER_FUJI 0x034
+#define FLAG_HIDE_POKEHOUSE_FUJI 0x035
+#define FLAG_HIDE_LIFT_KEY 0x036
+#define FLAG_HIDE_SILPH_SCOPE 0x037
+#define FLAG_HIDE_HIDEOUT_GIOVANNI 0x038
+#define FLAG_HIDE_TOWN_MAP 0x039
+#define FLAG_HIDE_POKEDEX 0x03A
+#define FLAG_HIDE_CERULEAN_ROCKET 0x03B
+#define FLAG_HIDE_CERULEAN_RIVAL 0x03C
+#define FLAG_HIDE_SS_ANNE_RIVAL 0x03D
+#define FLAG_HIDE_SAFFRON_ROCKETS 0x03E
+#define FLAG_HIDE_SAFFRON_CIVILIANS 0x03F
+#define FLAG_HIDE_SEAFOAM_1F_BOULDER_1 0x040
+#define FLAG_HIDE_SEAFOAM_1F_BOULDER_2 0x041
+#define FLAG_HIDE_SEAFOAM_B1F_BOULDER_1 0x042
+#define FLAG_HIDE_SEAFOAM_B1F_BOULDER_2 0x043
+#define FLAG_HIDE_SEAFOAM_B2F_BOULDER_1 0x044
+#define FLAG_HIDE_SEAFOAM_B2F_BOULDER_2 0x045
+#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_1 0x046
+#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_2 0x047
+#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_3 0x048
+#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_4 0x049
+#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_5 0x04A
+#define FLAG_HIDE_SEAFOAM_B3F_BOULDER_6 0x04B
+#define FLAG_HIDE_SEAFOAM_B4F_BOULDER_1 0x04C
+#define FLAG_HIDE_SEAFOAM_B4F_BOULDER_2 0x04D
+#define FLAG_HIDE_SILPH_RIVAL 0x04E
+#define FLAG_HIDE_ROUTE_22_RIVAL 0x04F
+#define FLAG_HIDE_PEWTER_MUSEUM_GUIDE 0x050
+#define FLAG_HIDE_TOWER_RIVAL 0x051
+#define FLAG_HIDE_MOLTRES 0x052
+#define FLAG_HIDE_SILPH_ROCKETS 0x053
+#define FLAG_HIDE_ROUTE_12_SNORLAX 0x054
+#define FLAG_HIDE_VIRIDIAN_GIOVANNI 0x055
+#define FLAG_HIDE_OLD_AMBER 0x056
+#define FLAG_HIDE_EEVEE_BALL 0x057
+#define FLAG_HIDE_VICTORY_ROAD_2F_BOULDER 0x058
+#define FLAG_HIDE_VICTORY_ROAD_3F_BOULDER 0x059
+#define FLAG_HIDE_OAK_IN_CHAMP_ROOM 0x05A
+#define FLAG_HIDE_GAME_CORNER_ROCKET 0x05B
+#define FLAG_HIDE_CERULEAN_CAVE_GUARD 0x05C
+#define FLAG_HIDE_ZAPDOS 0x05D
+#define FLAG_HIDE_TOWER_ROCKET_1 0x05E
+#define FLAG_HIDE_CELADON_ROCKETS 0x05F
+#define FLAG_HIDE_DOJO_HITMONLEE_BALL 0x060
+#define FLAG_HIDE_DOJO_HITMONCHAN_BALL 0x061
+#define FLAG_HIDE_CINNABAR_BILL 0x062
+#define FLAG_HIDE_UNION_ROOM_1 0x063
+#define FLAG_HIDE_UNION_ROOM_2 0x064
+#define FLAG_HIDE_UNION_ROOM_3 0x065
+#define FLAG_HIDE_UNION_ROOM_4 0x066
+#define FLAG_HIDE_UNION_ROOM_5 0x067
+#define FLAG_HIDE_UNION_ROOM_6 0x068
+#define FLAG_HIDE_UNION_ROOM_7 0x069
+#define FLAG_HIDE_UNION_ROOM_8 0x06A
+#define FLAG_HIDE_CINNABAR_SEAGALLOP 0x06B
+#define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT 0x06C
+#define FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER 0x06D
+#define FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN 0x06E
+#define FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY 0x06F
+#define FLAG_HIDE_MG_DELIVERYMEN 0x070
+#define FLAG_HIDE_ONE_ISLAND_BILL 0x071
+#define FLAG_HIDE_ONE_ISLAND_POKECENTER_BILL 0x072
+#define FLAG_HIDE_ONE_ISLAND_POKECENTER_CELIO 0x073
+#define FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER 0x074
+#define FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE 0x075
+#define FLAG_HIDE_LOSTELLE_IN_HER_HOME 0x076
+#define FLAG_0x077 0x077
+#define FLAG_0x078 0x078
+#define FLAG_HIDE_THREE_ISLAND_BIKERS 0x079
+#define FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST 0x07A
+#define FLAG_HIDE_TWO_ISLAND_WOMAN 0x07B
+#define FLAG_HIDE_TWO_ISLAND_BEAUTY 0x07C
+#define FLAG_HIDE_TWO_ISLAND_SUPER_NERD 0x07D
+#define FLAG_HIDE_THREE_ISLAND_ANTIBIKERS 0x07E
+#define FLAG_0x07F 0x07F
+#define FLAG_HIDE_ROUTE_16_SNORLAX 0x080
+#define FLAG_HIDE_MEWTWO 0x081
+#define FLAG_HIDE_ARTICUNO 0x082
+#define FLAG_HIDE_TOWER_ROCKET_2 0x083
+#define FLAG_HIDE_TOWER_ROCKET_3 0x084
+#define FLAG_HIDE_POWER_PLANT_ELECTRODE_1 0x085
+#define FLAG_HIDE_POWER_PLANT_ELECTRODE_2 0x086
+#define FLAG_HIDE_SS_ANNE 0x087
+#define FLAG_HIDE_FIVE_ISLAND_ROCKETS 0x088
+#define FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS 0x089
+#define FLAG_HIDE_RUBY 0x08A
+#define FLAG_HIDE_ICEFALL_CAVE_LORELEI 0x08B
+#define FLAG_HIDE_LORELEI_IN_HER_HOUSE 0x08C
+#define FLAG_HIDE_ICEFALL_CAVE_ROCKETS 0x08D
+#define FLAG_HIDE_RUIN_VALLEY_SCIENTIST 0x08E
+#define FLAG_HIDE_SAPPHIRE 0x08F
+#define FLAG_HIDE_DOTTED_HOLE_SCIENTIST 0x090
+#define FLAG_HIDE_THREE_ISLAND_LONE_BIKER 0x091
+#define FLAG_HIDE_PEWTER_CITY_RUNNING_SHOES_GUY 0x092
+#define FLAG_HIDE_LOST_CAVE_SELPHY 0x093
+#define FLAG_HIDE_RESORT_GORGEOUS_SELPHY 0x094
+#define FLAG_HIDE_RESORT_GORGEOUS_INSIDE_SELPHY 0x095
+#define FLAG_HIDE_SELPHYS_BUTLER 0x096
+#define FLAG_HIDE_FOUR_ISLAND_RIVAL 0x097
+#define FLAG_HIDE_SIX_ISLAND_POKECENTER_RIVAL 0x098
+#define FLAG_HIDE_DEOXYS 0x099
+#define FLAG_HIDE_BIRTH_ISLAND_METEORITE 0x09A
+#define FLAG_HIDE_LUGIA 0x09B
+#define FLAG_HIDE_HO_OH 0x09C
+#define FLAG_HIDE_POSTGAME_GOSSIPERS 0x09D
+#define FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS 0x09E
+#define FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL 0x09F
+#define FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL 0x0A0
+#define FLAG_HIDE_VERMILION_CITY_OAKS_AIDE 0x0A1
+#define FLAG_HIDE_CINNABAR_POKECENTER_BILL 0x0A2
+#define FLAG_HIDE_CREDITS_RIVAL 0x0A3
+#define FLAG_HIDE_CREDITS_OAK 0x0A4
+#define FLAG_HIDE_LORELEI_HOUSE_MEOWTH_DOLL 0x0A5
+#define FLAG_HIDE_LORELEI_HOUSE_CHANSEY_DOLL 0x0A6
+#define FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_F_DOLL 0x0A7
+#define FLAG_HIDE_LORELEI_HOUSE_JIGGLYPUFF_DOLL 0x0A8
+#define FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_M_DOLL 0x0A9
+#define FLAG_HIDE_LORELEIS_HOUSE_FEAROW_DOLL 0x0AA
+#define FLAG_HIDE_LORELEIS_HOUSE_PIDGEOT_DOLL 0x0AB
+#define FLAG_HIDE_LORELEIS_HOUSE_LAPRAS_DOLL 0x0AC
+#define FLAG_HIDE_MISC_KANTO_ROCKETS 0x0AD
+#define FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS 0x0AE
-#define FLAG_0x001 0x1
-#define FLAG_0x002 0x2
-#define FLAG_0x003 0x3
-#define FLAG_0x004 0x4
-#define FLAG_0x005 0x5
-#define FLAG_0x006 0x6
-#define FLAG_0x007 0x7
-#define FLAG_0x008 0x8
-#define FLAG_0x009 0x9
-#define FLAG_0x00A 0xA
-#define FLAG_0x00B 0xB
-#define FLAG_0x00C 0xC
-#define FLAG_0x00D 0xD
-#define FLAG_0x00E 0xE
-#define FLAG_0x00F 0xF
-#define FLAG_0x010 0x10
-#define FLAG_0x011 0x11
-#define FLAG_0x012 0x12
-#define FLAG_0x013 0x13
-#define FLAG_0x014 0x14
-#define FLAG_0x015 0x15
-#define FLAG_0x016 0x16
-#define FLAG_0x017 0x17
-#define FLAG_0x018 0x18
-#define FLAG_0x019 0x19
-#define FLAG_0x01A 0x1A
-#define FLAG_0x01B 0x1B
-#define FLAG_0x01C 0x1C
-#define FLAG_0x01D 0x1D
-#define FLAG_0x01E 0x1E
-#define FLAG_0x01F 0x1F
-#define FLAG_0x020 0x20
-#define FLAG_0x021 0x21
-#define FLAG_0x022 0x22
-#define FLAG_0x023 0x23
-#define FLAG_0x024 0x24
-#define FLAG_0x025 0x25
-#define FLAG_0x026 0x26
-#define FLAG_0x027 0x27
-#define FLAG_0x028 0x28
-#define FLAG_0x029 0x29
-#define FLAG_0x02A 0x2A
-#define FLAG_0x02B 0x2B
-#define FLAG_0x02C 0x2C
-#define FLAG_0x02D 0x2D
-#define FLAG_0x02E 0x2E
-#define FLAG_0x02F 0x2F
-#define FLAG_0x030 0x30
-#define FLAG_0x031 0x31
-#define FLAG_0x032 0x32
-#define FLAG_0x033 0x33
-#define FLAG_0x034 0x34
-#define FLAG_0x035 0x35
-#define FLAG_0x036 0x36
-#define FLAG_0x037 0x37
-#define FLAG_0x038 0x38
-#define FLAG_0x039 0x39
-#define FLAG_0x03A 0x3A
-#define FLAG_0x03B 0x3B
-#define FLAG_0x03C 0x3C
-#define FLAG_0x03D 0x3D
-#define FLAG_0x03E 0x3E
-#define FLAG_0x03F 0x3F
-#define FLAG_0x040 0x40
-#define FLAG_0x041 0x41
-#define FLAG_0x042 0x42
-#define FLAG_0x043 0x43
-#define FLAG_0x044 0x44
-#define FLAG_0x045 0x45
-#define FLAG_0x046 0x46
-#define FLAG_0x047 0x47
-#define FLAG_0x048 0x48
-#define FLAG_0x049 0x49
-#define FLAG_0x04A 0x4A
-#define FLAG_0x04B 0x4B
-#define FLAG_0x04C 0x4C
-#define FLAG_0x04D 0x4D
-#define FLAG_0x04E 0x4E
-#define FLAG_0x04F 0x4F
-#define FLAG_0x050 0x50
-#define FLAG_0x051 0x51
-#define FLAG_0x052 0x52
-#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
-#define FLAG_0x054 0x54
-#define FLAG_0x055 0x55
-#define FLAG_0x056 0x56
-#define FLAG_0x057 0x57
-#define FLAG_0x058 0x58
-#define FLAG_0x059 0x59
-#define FLAG_0x05A 0x5A
-#define FLAG_0x05B 0x5B
-#define FLAG_0x05C 0x5C
-#define FLAG_0x05D 0x5D
-#define FLAG_0x05E 0x5E
-#define FLAG_0x05F 0x5F
-#define FLAG_0x060 0x60
-#define FLAG_0x061 0x61
-#define FLAG_0x062 0x62
-#define FLAG_0x063 0x63
-#define FLAG_0x064 0x64
-#define FLAG_0x065 0x65
-#define FLAG_0x066 0x66
-#define FLAG_0x067 0x67
-#define FLAG_0x068 0x68
-#define FLAG_0x069 0x69
-#define FLAG_0x06A 0x6A
-#define FLAG_0x06B 0x6B
-#define FLAG_0x06C 0x6C
-#define FLAG_0x06D 0x6D
-#define FLAG_0x06E 0x6E
-#define FLAG_0x06F 0x6F
-#define FLAG_0x070 0x70
-#define FLAG_0x071 0x71
-#define FLAG_0x072 0x72
-#define FLAG_0x073 0x73
-#define FLAG_0x074 0x74
-#define FLAG_0x075 0x75
-#define FLAG_0x076 0x76
-#define FLAG_0x077 0x77
-#define FLAG_0x078 0x78
-#define FLAG_0x079 0x79
-#define FLAG_0x07A 0x7A
-#define FLAG_0x07B 0x7B
-#define FLAG_0x07C 0x7C
-#define FLAG_0x07D 0x7D
-#define FLAG_0x07E 0x7E
-#define FLAG_0x07F 0x7F
-#define FLAG_0x080 0x80
-#define FLAG_0x081 0x81
-#define FLAG_0x082 0x82
-#define FLAG_0x083 0x83
-#define FLAG_0x084 0x84
-#define FLAG_0x085 0x85
-#define FLAG_0x086 0x86
-#define FLAG_0x087 0x87
-#define FLAG_0x088 0x88
-#define FLAG_0x089 0x89
-#define FLAG_0x08A 0x8A
-#define FLAG_0x08B 0x8B
-#define FLAG_0x08C 0x8C
-#define FLAG_0x08D 0x8D
-#define FLAG_0x08E 0x8E
-#define FLAG_0x08F 0x8F
-#define FLAG_0x090 0x90
-#define FLAG_0x091 0x91
-#define FLAG_0x092 0x92
-#define FLAG_0x093 0x93
-#define FLAG_0x094 0x94
-#define FLAG_0x095 0x95
-#define FLAG_0x096 0x96
-#define FLAG_0x097 0x97
-#define FLAG_0x098 0x98
-#define FLAG_0x099 0x99
-#define FLAG_0x09A 0x9A
-#define FLAG_0x09B 0x9B
-#define FLAG_0x09C 0x9C
-#define FLAG_0x09D 0x9D
-#define FLAG_0x09E 0x9E
-#define FLAG_0x09F 0x9F
-#define FLAG_0x0A0 0xA0
-#define FLAG_0x0A1 0xA1
-#define FLAG_0x0A2 0xA2
-#define FLAG_0x0A3 0xA3
-#define FLAG_0x0A4 0xA4
-#define FLAG_0x0A5 0xA5
-#define FLAG_0x0A6 0xA6
-#define FLAG_0x0A7 0xA7
-#define FLAG_0x0A8 0xA8
-#define FLAG_0x0A9 0xA9
-#define FLAG_0x0AA 0xAA
-#define FLAG_0x0AB 0xAB
-#define FLAG_0x0AC 0xAC
-#define FLAG_0x0AD 0xAD
-#define FLAG_0x0AE 0xAE
-#define FLAG_0x0AF 0xAF
-#define FLAG_0x0B0 0xB0
-#define FLAG_0x0B1 0xB1
-#define FLAG_0x0B2 0xB2
-#define FLAG_0x0B3 0xB3
-#define FLAG_0x0B4 0xB4
-#define FLAG_0x0B5 0xB5
-#define FLAG_0x0B6 0xB6
-#define FLAG_0x0B7 0xB7
-#define FLAG_0x0B8 0xB8
-#define FLAG_0x0B9 0xB9
-#define FLAG_0x0BA 0xBA
-#define FLAG_0x0BB 0xBB
-#define FLAG_0x0BC 0xBC
-#define FLAG_0x0BD 0xBD
-#define FLAG_0x0BE 0xBE
-#define FLAG_0x0BF 0xBF
-#define FLAG_0x0C0 0xC0
-#define FLAG_0x0C1 0xC1
-#define FLAG_0x0C2 0xC2
-#define FLAG_0x0C3 0xC3
-#define FLAG_0x0C4 0xC4
-#define FLAG_0x0C5 0xC5
-#define FLAG_0x0C6 0xC6
-#define FLAG_0x0C7 0xC7
-#define FLAG_0x0C8 0xC8
-#define FLAG_0x0C9 0xC9
-#define FLAG_0x0CA 0xCA
-#define FLAG_0x0CB 0xCB
-#define FLAG_0x0CC 0xCC
-#define FLAG_0x0CD 0xCD
-#define FLAG_0x0CE 0xCE
-#define FLAG_0x0CF 0xCF
-#define FLAG_0x0D0 0xD0
-#define FLAG_0x0D1 0xD1
-#define FLAG_0x0D2 0xD2
-#define FLAG_0x0D3 0xD3
-#define FLAG_0x0D4 0xD4
-#define FLAG_0x0D5 0xD5
-#define FLAG_0x0D6 0xD6
-#define FLAG_0x0D7 0xD7
-#define FLAG_0x0D8 0xD8
-#define FLAG_0x0D9 0xD9
-#define FLAG_0x0DA 0xDA
-#define FLAG_0x0DB 0xDB
-#define FLAG_0x0DC 0xDC
-#define FLAG_0x0DD 0xDD
-#define FLAG_0x0DE 0xDE
-#define FLAG_0x0DF 0xDF
-#define FLAG_0x0E0 0xE0
-#define FLAG_0x0E1 0xE1
-#define FLAG_0x0E2 0xE2
-#define FLAG_0x0E3 0xE3
-#define FLAG_0x0E4 0xE4
-#define FLAG_0x0E5 0xE5
-#define FLAG_0x0E6 0xE6
-#define FLAG_0x0E7 0xE7
-#define FLAG_0x0E8 0xE8
-#define FLAG_0x0E9 0xE9
-#define FLAG_0x0EA 0xEA
-#define FLAG_0x0EB 0xEB
-#define FLAG_0x0EC 0xEC
-#define FLAG_0x0ED 0xED
-#define FLAG_0x0EE 0xEE
-#define FLAG_0x0EF 0xEF
-#define FLAG_0x0F0 0xF0
-#define FLAG_0x0F1 0xF1
-#define FLAG_0x0F2 0xF2
-#define FLAG_0x0F3 0xF3
-#define FLAG_0x0F4 0xF4
-#define FLAG_0x0F5 0xF5
-#define FLAG_0x0F6 0xF6
-#define FLAG_0x0F7 0xF7
-#define FLAG_0x0F8 0xF8
-#define FLAG_0x0F9 0xF9
-#define FLAG_0x0FA 0xFA
-#define FLAG_0x0FB 0xFB
-#define FLAG_0x0FC 0xFC
-#define FLAG_0x0FD 0xFD
-#define FLAG_0x0FE 0xFE
-#define FLAG_0x0FF 0xFF
+// Unused?
+#define FLAG_0x0AF 0x0AF
+#define FLAG_0x0B0 0x0B0
+#define FLAG_0x0B1 0x0B1
+#define FLAG_0x0B2 0x0B2
+#define FLAG_0x0B3 0x0B3
+#define FLAG_0x0B4 0x0B4
+#define FLAG_0x0B5 0x0B5
+#define FLAG_0x0B6 0x0B6
+#define FLAG_0x0B7 0x0B7
+#define FLAG_0x0B8 0x0B8
+#define FLAG_0x0B9 0x0B9
+#define FLAG_0x0BA 0x0BA
+#define FLAG_0x0BB 0x0BB
+#define FLAG_0x0BC 0x0BC
+#define FLAG_0x0BD 0x0BD
+#define FLAG_0x0BE 0x0BE
+#define FLAG_0x0BF 0x0BF
+#define FLAG_0x0C0 0x0C0
+#define FLAG_0x0C1 0x0C1
+#define FLAG_0x0C2 0x0C2
+#define FLAG_0x0C3 0x0C3
+#define FLAG_0x0C4 0x0C4
+#define FLAG_0x0C5 0x0C5
+#define FLAG_0x0C6 0x0C6
+#define FLAG_0x0C7 0x0C7
+#define FLAG_0x0C8 0x0C8
+#define FLAG_0x0C9 0x0C9
+#define FLAG_0x0CA 0x0CA
+#define FLAG_0x0CB 0x0CB
+#define FLAG_0x0CC 0x0CC
+#define FLAG_0x0CD 0x0CD
+#define FLAG_0x0CE 0x0CE
+#define FLAG_0x0CF 0x0CF
+#define FLAG_0x0D0 0x0D0
+#define FLAG_0x0D1 0x0D1
+#define FLAG_0x0D2 0x0D2
+#define FLAG_0x0D3 0x0D3
+#define FLAG_0x0D4 0x0D4
+#define FLAG_0x0D5 0x0D5
+#define FLAG_0x0D6 0x0D6
+#define FLAG_0x0D7 0x0D7
+#define FLAG_0x0D8 0x0D8
+#define FLAG_0x0D9 0x0D9
+#define FLAG_0x0DA 0x0DA
+#define FLAG_0x0DB 0x0DB
+#define FLAG_0x0DC 0x0DC
+#define FLAG_0x0DD 0x0DD
+#define FLAG_0x0DE 0x0DE
+#define FLAG_0x0DF 0x0DF
+#define FLAG_0x0E0 0x0E0
+#define FLAG_0x0E1 0x0E1
+#define FLAG_0x0E2 0x0E2
+#define FLAG_0x0E3 0x0E3
+#define FLAG_0x0E4 0x0E4
+#define FLAG_0x0E5 0x0E5
+#define FLAG_0x0E6 0x0E6
+#define FLAG_0x0E7 0x0E7
+#define FLAG_0x0E8 0x0E8
+#define FLAG_0x0E9 0x0E9
+#define FLAG_0x0EA 0x0EA
+#define FLAG_0x0EB 0x0EB
+#define FLAG_0x0EC 0x0EC
+#define FLAG_0x0ED 0x0ED
+#define FLAG_0x0EE 0x0EE
+#define FLAG_0x0EF 0x0EF
+#define FLAG_0x0F0 0x0F0
+#define FLAG_0x0F1 0x0F1
+#define FLAG_0x0F2 0x0F2
+#define FLAG_0x0F3 0x0F3
+#define FLAG_0x0F4 0x0F4
+#define FLAG_0x0F5 0x0F5
+#define FLAG_0x0F6 0x0F6
+#define FLAG_0x0F7 0x0F7
+#define FLAG_0x0F8 0x0F8
+#define FLAG_0x0F9 0x0F9
+#define FLAG_0x0FA 0x0FA
+#define FLAG_0x0FB 0x0FB
+#define FLAG_0x0FC 0x0FC
+#define FLAG_0x0FD 0x0FD
+#define FLAG_0x0FE 0x0FE
+#define FLAG_0x0FF 0x0FF
#define FLAG_0x100 0x100
#define FLAG_0x101 0x101
#define FLAG_0x102 0x102
@@ -429,177 +347,181 @@
#define FLAG_0x151 0x151
#define FLAG_0x152 0x152
#define FLAG_0x153 0x153
-#define FLAG_0x154 0x154
-#define FLAG_0x155 0x155
-#define FLAG_0x156 0x156
-#define FLAG_0x157 0x157
-#define FLAG_0x158 0x158
-#define FLAG_0x159 0x159
-#define FLAG_0x15A 0x15A
-#define FLAG_0x15B 0x15B
-#define FLAG_0x15C 0x15C
-#define FLAG_0x15D 0x15D
-#define FLAG_0x15E 0x15E
-#define FLAG_0x15F 0x15F
-#define FLAG_0x160 0x160
-#define FLAG_0x161 0x161
-#define FLAG_0x162 0x162
-#define FLAG_0x163 0x163
-#define FLAG_0x164 0x164
-#define FLAG_0x165 0x165
-#define FLAG_0x166 0x166
-#define FLAG_0x167 0x167
-#define FLAG_0x168 0x168
-#define FLAG_0x169 0x169
-#define FLAG_0x16A 0x16A
-#define FLAG_0x16B 0x16B
-#define FLAG_0x16C 0x16C
-#define FLAG_0x16D 0x16D
-#define FLAG_0x16E 0x16E
-#define FLAG_0x16F 0x16F
-#define FLAG_0x170 0x170
-#define FLAG_0x171 0x171
-#define FLAG_0x172 0x172
-#define FLAG_0x173 0x173
-#define FLAG_0x174 0x174
-#define FLAG_0x175 0x175
-#define FLAG_0x176 0x176
-#define FLAG_0x177 0x177
-#define FLAG_0x178 0x178
-#define FLAG_0x179 0x179
-#define FLAG_0x17A 0x17A
-#define FLAG_0x17B 0x17B
-#define FLAG_0x17C 0x17C
-#define FLAG_0x17D 0x17D
-#define FLAG_0x17E 0x17E
-#define FLAG_0x17F 0x17F
-#define FLAG_0x180 0x180
-#define FLAG_0x181 0x181
-#define FLAG_0x182 0x182
-#define FLAG_0x183 0x183
-#define FLAG_0x184 0x184
-#define FLAG_0x185 0x185
-#define FLAG_0x186 0x186
-#define FLAG_0x187 0x187
-#define FLAG_0x188 0x188
-#define FLAG_0x189 0x189
-#define FLAG_0x18A 0x18A
-#define FLAG_0x18B 0x18B
-#define FLAG_0x18C 0x18C
-#define FLAG_0x18D 0x18D
-#define FLAG_0x18E 0x18E
-#define FLAG_0x18F 0x18F
-#define FLAG_0x190 0x190
-#define FLAG_0x191 0x191
-#define FLAG_0x192 0x192
-#define FLAG_0x193 0x193
-#define FLAG_0x194 0x194
-#define FLAG_0x195 0x195
-#define FLAG_0x196 0x196
-#define FLAG_0x197 0x197
-#define FLAG_0x198 0x198
-#define FLAG_0x199 0x199
-#define FLAG_0x19A 0x19A
-#define FLAG_0x19B 0x19B
-#define FLAG_0x19C 0x19C
-#define FLAG_0x19D 0x19D
-#define FLAG_0x19E 0x19E
-#define FLAG_0x19F 0x19F
-#define FLAG_0x1A0 0x1A0
-#define FLAG_0x1A1 0x1A1
-#define FLAG_0x1A2 0x1A2
-#define FLAG_0x1A3 0x1A3
-#define FLAG_0x1A4 0x1A4
-#define FLAG_0x1A5 0x1A5
-#define FLAG_0x1A6 0x1A6
-#define FLAG_0x1A7 0x1A7
-#define FLAG_0x1A8 0x1A8
-#define FLAG_0x1A9 0x1A9
-#define FLAG_0x1AA 0x1AA
-#define FLAG_0x1AB 0x1AB
-#define FLAG_0x1AC 0x1AC
-#define FLAG_0x1AD 0x1AD
-#define FLAG_0x1AE 0x1AE
-#define FLAG_0x1AF 0x1AF
-#define FLAG_0x1B0 0x1B0
-#define FLAG_0x1B1 0x1B1
-#define FLAG_0x1B2 0x1B2
-#define FLAG_0x1B3 0x1B3
-#define FLAG_0x1B4 0x1B4
-#define FLAG_0x1B5 0x1B5
-#define FLAG_0x1B6 0x1B6
-#define FLAG_0x1B7 0x1B7
-#define FLAG_0x1B8 0x1B8
-#define FLAG_0x1B9 0x1B9
-#define FLAG_0x1BA 0x1BA
-#define FLAG_0x1BB 0x1BB
-#define FLAG_0x1BC 0x1BC
-#define FLAG_0x1BD 0x1BD
-#define FLAG_0x1BE 0x1BE
-#define FLAG_0x1BF 0x1BF
-#define FLAG_0x1C0 0x1C0
-#define FLAG_0x1C1 0x1C1
-#define FLAG_0x1C2 0x1C2
-#define FLAG_0x1C3 0x1C3
-#define FLAG_0x1C4 0x1C4
-#define FLAG_0x1C5 0x1C5
-#define FLAG_0x1C6 0x1C6
-#define FLAG_0x1C7 0x1C7
-#define FLAG_0x1C8 0x1C8
-#define FLAG_0x1C9 0x1C9
-#define FLAG_0x1CA 0x1CA
-#define FLAG_0x1CB 0x1CB
-#define FLAG_0x1CC 0x1CC
-#define FLAG_0x1CD 0x1CD
-#define FLAG_0x1CE 0x1CE
-#define FLAG_0x1CF 0x1CF
-#define FLAG_0x1D0 0x1D0
-#define FLAG_0x1D1 0x1D1
-#define FLAG_0x1D2 0x1D2
-#define FLAG_0x1D3 0x1D3
-#define FLAG_0x1D4 0x1D4
-#define FLAG_0x1D5 0x1D5
-#define FLAG_0x1D6 0x1D6
-#define FLAG_0x1D7 0x1D7
-#define FLAG_0x1D8 0x1D8
-#define FLAG_0x1D9 0x1D9
-#define FLAG_0x1DA 0x1DA
-#define FLAG_0x1DB 0x1DB
-#define FLAG_0x1DC 0x1DC
-#define FLAG_0x1DD 0x1DD
-#define FLAG_0x1DE 0x1DE
-#define FLAG_0x1DF 0x1DF
-#define FLAG_0x1E0 0x1E0
-#define FLAG_0x1E1 0x1E1
-#define FLAG_0x1E2 0x1E2
-#define FLAG_0x1E3 0x1E3
-#define FLAG_0x1E4 0x1E4
-#define FLAG_0x1E5 0x1E5
-#define FLAG_0x1E6 0x1E6
-#define FLAG_0x1E7 0x1E7
-#define FLAG_0x1E8 0x1E8
-#define FLAG_0x1E9 0x1E9
-#define FLAG_0x1EA 0x1EA
-#define FLAG_0x1EB 0x1EB
-#define FLAG_0x1EC 0x1EC
-#define FLAG_0x1ED 0x1ED
-#define FLAG_0x1EE 0x1EE
-#define FLAG_0x1EF 0x1EF
-#define FLAG_0x1F0 0x1F0
-#define FLAG_0x1F1 0x1F1
-#define FLAG_0x1F2 0x1F2
-#define FLAG_0x1F3 0x1F3
-#define FLAG_0x1F4 0x1F4
-#define FLAG_0x1F5 0x1F5
-#define FLAG_0x1F6 0x1F6
-#define FLAG_0x1F7 0x1F7
-#define FLAG_0x1F8 0x1F8
-#define FLAG_0x1F9 0x1F9
-#define FLAG_0x1FA 0x1FA
-#define FLAG_0x1FB 0x1FB
-#define FLAG_0x1FC 0x1FC
-#define FLAG_0x1FD 0x1FD
-#define FLAG_0x1FE 0x1FE
+
+// Item ball hide/show
+#define FLAG_HIDE_ROUTE2_ETHER 0x154
+#define FLAG_HIDE_ROUTE2_PARALYZE_HEAL 0x155
+#define FLAG_HIDE_VIRIDIAN_FOREST_POKE_BALL 0x156
+#define FLAG_HIDE_VIRIDIAN_FOREST_ANTIDOTE 0x157
+#define FLAG_HIDE_VIRIDIAN_FOREST_POTION 0x158
+#define FLAG_HIDE_MT_MOON_1F_PARALYZE_HEAL 0x159
+#define FLAG_HIDE_MT_MOON_1F_TM09 0x15A
+#define FLAG_HIDE_MT_MOON_1F_POTION 0x15B
+#define FLAG_HIDE_MT_MOON_1F_RARE_CANDY 0x15C
+#define FLAG_HIDE_MT_MOON_1F_ESCAPE_ROPE 0x15D
+#define FLAG_HIDE_MT_MOON_1F_MOON_STONE 0x15E
+#define FLAG_HIDE_MT_MOON_B2F_STAR_PIECE 0x15F
+#define FLAG_HIDE_MT_MOON_B2F_TM46 0x160
+#define FLAG_HIDE_ROUTE4_TM05 0x161
+#define FLAG_HIDE_ROUTE24_TM45 0x162
+#define FLAG_HIDE_ROUTE25_TM43 0x163
+#define FLAG_HIDE_SSANNE_1F_ROOM2_TM31 0x164
+#define FLAG_HIDE_SSANNE_2F_ROOM2_STARDUST 0x165
+#define FLAG_HIDE_SSANNE_2F_ROOM4_X_ATTACK 0x166
+#define FLAG_HIDE_SSANNE_B1F_ROOM2_TM44 0x167
+#define FLAG_HIDE_SSANNE_B1F_ROOM3_ETHER 0x168
+#define FLAG_HIDE_SSANNE_B1F_ROOM5_SUPER_POTION 0x169
+#define FLAG_HIDE_SSANNE_KITCHEN_GREAT_BALL 0x16A
+#define FLAG_HIDE_ROUTE9_TM40 0x16B
+#define FLAG_HIDE_ROCKET_HIDEOUT_B1F_ESCAPE_ROPE 0x16C
+#define FLAG_HIDE_ROCKET_HIDEOUT_B1F_HYPER_POTION 0x16D
+#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_X_SPEED 0x16E
+#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_MOON_STONE 0x16F
+#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_TM12 0x170
+#define FLAG_HIDE_ROCKET_HIDEOUT_B2F_SUPER_POTION 0x171
+#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_RARE_CANDY 0x172
+#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_TM21 0x173
+#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_TM49 0x174
+#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_MAX_ETHER 0x175
+#define FLAG_HIDE_ROCKET_HIDEOUT_B4F_CALCIUM 0x176
+#define FLAG_HIDE_POKEMON_TOWER_3F_ESCAPE_ROPE 0x177
+#define FLAG_HIDE_POKEMON_TOWER_4F_ELIXIR 0x178
+#define FLAG_HIDE_POKEMON_TOWER_4F_AWAKENING 0x179
+#define FLAG_HIDE_POKEMON_TOWER_4F_GREAT_BALL 0x17A
+#define FLAG_HIDE_POKEMON_TOWER_5F_NUGGET 0x17B
+#define FLAG_HIDE_POKEMON_TOWER_6F_RARE_CANDY 0x17C
+#define FLAG_HIDE_POKEMON_TOWER_6F_X_ACCURACY 0x17D
+#define FLAG_HIDE_ROUTE12_TM48 0x17E
+#define FLAG_HIDE_ROUTE12_IRON 0x17F
+#define FLAG_HIDE_ROUTE15_TM18 0x180
+#define FLAG_HIDE_SAFARI_ZONE_CENTER_NUGGET 0x181
+#define FLAG_HIDE_SAFARI_ZONE_EAST_MAX_POTION 0x182
+#define FLAG_HIDE_SAFARI_ZONE_EAST_FULL_RESTORE 0x183
+#define FLAG_HIDE_SAFARI_ZONE_EAST_TM11 0x184
+#define FLAG_HIDE_SAFARI_ZONE_EAST_LEAF_STONE 0x185
+#define FLAG_HIDE_SAFARI_ZONE_NORTH_PROTEIN 0x186
+#define FLAG_HIDE_SAFARI_ZONE_NORTH_TM47 0x187
+#define FLAG_HIDE_SAFARI_ZONE_WEST_TM32 0x188
+#define FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH 0x189
+#define FLAG_HIDE_SAFARI_ZONE_WEST_MAX_POTION 0x18A
+#define FLAG_HIDE_SAFARI_ZONE_WEST_MAX_REVIVE 0x18B
+#define FLAG_HIDE_SILPH_CO_3F_HYPER_POTION 0x18C
+#define FLAG_HIDE_SILPH_CO_4F_MAX_REVIVE 0x18D
+#define FLAG_HIDE_SILPH_CO_4F_ESCAPE_ROPE 0x18E
+#define FLAG_HIDE_SILPH_CO_4F_FULL_HEAL 0x18F
+#define FLAG_HIDE_SILPH_CO_5F_PROTEIN 0x190
+#define FLAG_HIDE_SILPH_CO_5F_TM01 0x191
+#define FLAG_HIDE_SILPH_CO_5F_CARD_KEY 0x192
+#define FLAG_HIDE_SILPH_CO_6F_HP_UP 0x193
+#define FLAG_HIDE_SILPH_CO_6F_X_SPECIAL 0x194
+#define FLAG_HIDE_SILPH_CO_7F_CALCIUM 0x195
+#define FLAG_HIDE_SILPH_CO_7F_TM08 0x196
+#define FLAG_HIDE_SILPH_CO_10F_CARBOS 0x197
+#define FLAG_HIDE_SILPH_CO_10F_ULTRA_BALL 0x198
+#define FLAG_HIDE_SILPH_CO_10F_RARE_CANDY 0x199
+#define FLAG_HIDE_POWER_PLANT_MAX_POTION 0x19A
+#define FLAG_HIDE_POWER_PLANT_TM17 0x19B
+#define FLAG_HIDE_POWER_PLANT_TM25 0x19C
+#define FLAG_HIDE_POWER_PLANT_THUNDER_STONE 0x19D
+#define FLAG_HIDE_POWER_PLANT_ELIXIR 0x19E
+#define FLAG_HIDE_POKEMON_MANSION_1F_CARBOS 0x19F
+#define FLAG_HIDE_POKEMON_MANSION_1F_ESCAPE_ROPE 0x1A0
+#define FLAG_HIDE_POKEMON_MANSION_2F_CALCIUM 0x1A1
+#define FLAG_HIDE_POKEMON_MANSION_3F_MAX_POTION 0x1A2
+#define FLAG_HIDE_POKEMON_MANSION_3F_IRON 0x1A3
+#define FLAG_HIDE_POKEMON_MANSION_B1F_TM14 0x1A4
+#define FLAG_HIDE_POKEMON_MANSION_B1F_FULL_RESTORE 0x1A5
+#define FLAG_0x1A6 0x1A6
+#define FLAG_HIDE_POKEMON_MANSION_B1F_TM22 0x1A7
+#define FLAG_HIDE_POKEMON_MANSION_B1F_SECRET_KEY 0x1A8
+#define FLAG_HIDE_VICTORY_ROAD_1F_RARE_CANDY 0x1A9
+#define FLAG_HIDE_VICTORY_ROAD_1F_TM02 0x1AA
+#define FLAG_HIDE_VICTORY_ROAD_2F_GUARD_SPEC 0x1AB
+#define FLAG_HIDE_VICTORY_ROAD_2F_TM07 0x1AC
+#define FLAG_HIDE_VICTORY_ROAD_2F_FULL_HEAL 0x1AD
+#define FLAG_HIDE_VICTORY_ROAD_2F_TM37 0x1AE
+#define FLAG_HIDE_VICTORY_ROAD_3F_MAX_REVIVE 0x1AF
+#define FLAG_HIDE_VICTORY_ROAD_3F_TM50 0x1B0
+#define FLAG_HIDE_CERULEAN_CAVE_1F_MAX_ELIXIR 0x1B1
+#define FLAG_HIDE_CERULEAN_CAVE_1F_NUGGET 0x1B2
+#define FLAG_HIDE_CERULEAN_CAVE_1F_FULL_RESTORE 0x1B3
+#define FLAG_HIDE_CERULEAN_CAVE_2F_FULL_RESTORE 0x1B4
+#define FLAG_HIDE_CERULEAN_CAVE_2F_PP_UP 0x1B5
+#define FLAG_HIDE_CERULEAN_CAVE_2F_ULTRA_BALL 0x1B6
+#define FLAG_HIDE_CERULEAN_CAVE_B1F_MAX_REVIVE 0x1B7
+#define FLAG_HIDE_CERULEAN_CAVE_B1F_ULTRA_BALL 0x1B8
+#define FLAG_HIDE_FUCHSIA_CITY_BUILDING1_RARE_CANDY 0x1B9
+#define FLAG_HIDE_TWO_ISLAND_REVIVE 0x1BA
+#define FLAG_HIDE_THREE_ISLAND_ZINC 0x1BB
+#define FLAG_0x1BC 0x1BC
+#define FLAG_0x1BD 0x1BD
+#define FLAG_HIDE_VIRIDIAN_FOREST_POTION_2 0x1BE
+#define FLAG_HIDE_MT_MOON_B2F_REVIVE 0x1BF
+#define FLAG_HIDE_MT_MOON_B2F_ANTIDOTE 0x1C0
+#define FLAG_HIDE_ROUTE11_X_DEFEND 0x1C1
+#define FLAG_HIDE_ROUTE9_BURN_HEAL 0x1C2
+#define FLAG_HIDE_ROCK_TUNNEL_1F_REPEL 0x1C3
+#define FLAG_HIDE_ROCK_TUNNEL_1F_PEARL 0x1C4
+#define FLAG_HIDE_ROCK_TUNNEL_1F_ESCAPE_ROPE 0x1C5
+#define FLAG_HIDE_ROCK_TUNNEL_B1F_REVIVE 0x1C6
+#define FLAG_HIDE_ROCK_TUNNEL_B1F_MAX_ETHER 0x1C7
+#define FLAG_HIDE_SILPH_CO_8F_IRON 0x1C8
+#define FLAG_HIDE_SILPH_CO_11F_ZINC 0x1C9
+#define FLAG_HIDE_POKEMON_MANSION_1F_PROTEIN 0x1CA
+#define FLAG_HIDE_POKEMON_MANSION_2F_ZINC 0x1CB
+#define FLAG_HIDE_POKEMON_MANSION_2F_HP_UP 0x1CC
+#define FLAG_HIDE_VIRIDIAN_CITY_POTION 0x1CD
+#define FLAG_HIDE_ROUTE11_GREAT_BALL 0x1CE
+#define FLAG_HIDE_ROUTE11_AWAKENING 0x1CF
+#define FLAG_HIDE_POKEMON_TOWER_5F_CLEANSE_TAG 0x1D0
+#define FLAG_HIDE_CELADON_CITY_ETHER 0x1D1
+#define FLAG_HIDE_ROCKET_HIDEOUT_B3F_BLACK_GLASSES 0x1D2
+#define FLAG_HIDE_SAFARI_ZONE_NORTH_QUICK_CLAW 0x1D3
+#define FLAG_HIDE_SEAFOAM_ISLANDS_1F_ICE_HEAL 0x1D4
+#define FLAG_HIDE_SEAFOAM_ISLANDS_B1F_WATER_STONE 0x1D5
+#define FLAG_HIDE_SEAFOAM_ISLANDS_B1F_REVIVE 0x1D6
+#define FLAG_HIDE_SEAFOAM_ISLANDS_B2F_BIG_PEARL 0x1D7
+#define FLAG_HIDE_SEAFOAM_ISLANDS_B4F_ULTRA_BALL 0x1D8
+#define FLAG_HIDE_FOUR_ISLAND_STAR_PIECE 0x1D9
+#define FLAG_HIDE_FOUR_ISLAND_STARDUST 0x1DA
+#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_ETHER 0x1DB
+#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_MAX_REPEL 0x1DC
+#define FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_CARBOS 0x1DD
+#define FLAG_HIDE_FIVE_ISLAND_MEADOW_MAX_POTION 0x1DE
+#define FLAG_HIDE_FIVE_ISLAND_MEADOW_PP_UP 0x1DF
+#define FLAG_HIDE_FIVE_ISLAND_MEMORIAL_PILLAR_METAL_COAT 0x1E0
+#define FLAG_HIDE_SIX_ISLAND_OUTCAST_ISLAND_PP_UP 0x1E1
+#define FLAG_HIDE_SIX_ISLAND_WATER_PATH_ELIXIR 0x1E2
+#define FLAG_HIDE_SIX_ISLAND_WATER_PATH_DRAGON_SCALE 0x1E3
+#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_FULL_RESTORE 0x1E4
+#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_HP_UP 0x1E5
+#define FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_SUN_STONE 0x1E6
+#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_KINGS_ROCK 0x1E7
+#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_MAX_ELIXIR 0x1E8
+#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_NUGGET 0x1E9
+#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ETHER 0x1EA
+#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_FULL_HEAL 0x1EB
+#define FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ELIXIR 0x1EC
+#define FLAG_HIDE_MT_EMBER_EXTERIOR_ULTRA_BALL 0x1ED
+#define FLAG_HIDE_MT_EMBER_EXTERIOR_FIRE_STONE 0x1EE
+#define FLAG_HIDE_MT_EMBER_EXTERIOR_DIRE_HIT 0x1EF
+#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_ULTRA_BALL 0x1F0
+#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_HM07 0x1F1
+#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_FULL_RESTORE 0x1F2
+#define FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_NEVER_MELT_ICE 0x1F3
+#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_BIG_PEARL 0x1F4
+#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_TM36 0x1F5
+#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_PEARL 0x1F6
+#define FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_UP_GRADE 0x1F7
+#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM10_SILK_SCARF 0x1F8
+#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM11_LAX_INCENSE 0x1F9
+#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM12_SEA_INCENSE 0x1FA
+#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM13_MAX_REVIVE 0x1FB
+#define FLAG_HIDE_FIVE_ISLAND_LOST_CAVE_ROOM14_RARE_CANDY 0x1FC
+#define FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE_LUCKY_PUNCH 0x1FD
+#define FLAG_HIDE_SILPH_CO_4F_TM41 0x1FE
+
+// Unused?
#define FLAG_0x1FF 0x1FF
#define FLAG_0x200 0x200
#define FLAG_0x201 0x201
@@ -649,214 +571,219 @@
#define FLAG_0x22D 0x22D
#define FLAG_0x22E 0x22E
#define FLAG_0x22F 0x22F
-#define FLAG_0x230 0x230
-#define FLAG_0x231 0x231
-#define FLAG_0x232 0x232
-#define FLAG_0x233 0x233
-#define FLAG_0x234 0x234
-#define FLAG_0x235 0x235
-#define FLAG_0x236 0x236
-#define FLAG_0x237 0x237
-#define FLAG_0x238 0x238
-#define FLAG_0x239 0x239
-#define FLAG_0x23A 0x23A
-#define FLAG_0x23B 0x23B
-#define FLAG_0x23C 0x23C
-#define FLAG_0x23D 0x23D
-#define FLAG_0x23E 0x23E
-#define FLAG_0x23F 0x23F
-#define FLAG_0x240 0x240
-#define FLAG_0x241 0x241
-#define FLAG_0x242 0x242
-#define FLAG_GOT_COIN_CASE 0x243
-#define FLAG_0x244 0x244
-#define FLAG_0x245 0x245
-#define FLAG_0x246 0x246
-#define FLAG_0x247 0x247
-#define FLAG_0x248 0x248
-#define FLAG_0x249 0x249
-#define FLAG_0x24A 0x24A
-#define FLAG_0x24B 0x24B
-#define FLAG_0x24C 0x24C
-#define FLAG_0x24D 0x24D
-#define FLAG_0x24E 0x24E
-#define FLAG_0x24F 0x24F
-#define FLAG_0x250 0x250
-#define FLAG_0x251 0x251
-#define FLAG_0x252 0x252
-#define FLAG_0x253 0x253
-#define FLAG_0x254 0x254
-#define FLAG_0x255 0x255
-#define FLAG_0x256 0x256
-#define FLAG_0x257 0x257
-#define FLAG_0x258 0x258
-#define FLAG_0x259 0x259
-#define FLAG_0x25A 0x25A
-#define FLAG_0x25B 0x25B
-#define FLAG_0x25C 0x25C
-#define FLAG_0x25D 0x25D
-#define FLAG_0x25E 0x25E
-#define FLAG_0x25F 0x25F
-#define FLAG_0x260 0x260
-#define FLAG_0x261 0x261
-#define FLAG_0x262 0x262
-#define FLAG_0x263 0x263
-#define FLAG_0x264 0x264
-#define FLAG_0x265 0x265
-#define FLAG_PENDING_DAYCARE_EGG 0x266
-#define FLAG_0x267 0x267
-#define FLAG_0x268 0x268
-#define FLAG_0x269 0x269
-#define FLAG_0x26A 0x26A
-#define FLAG_0x26B 0x26B
-#define FLAG_0x26C 0x26C
-#define FLAG_0x26D 0x26D
-#define FLAG_0x26E 0x26E
-#define FLAG_0x26F 0x26F
-#define FLAG_0x270 0x270
-#define FLAG_0x271 0x271
-#define FLAG_0x272 0x272
-#define FLAG_0x273 0x273
-#define FLAG_0x274 0x274
-#define FLAG_0x275 0x275
-#define FLAG_0x276 0x276
-#define FLAG_0x277 0x277
-#define FLAG_0x278 0x278
-#define FLAG_0x279 0x279
-#define FLAG_0x27A 0x27A
-#define FLAG_0x27B 0x27B
-#define FLAG_0x27C 0x27C
-#define FLAG_0x27D 0x27D
-#define FLAG_0x27E 0x27E
-#define FLAG_0x27F 0x27F
-#define FLAG_0x280 0x280
-#define FLAG_0x281 0x281
-#define FLAG_0x282 0x282
-#define FLAG_0x283 0x283
-#define FLAG_0x284 0x284
-#define FLAG_0x285 0x285
-#define FLAG_0x286 0x286
-#define FLAG_0x287 0x287
-#define FLAG_0x288 0x288
-#define FLAG_0x289 0x289
-#define FLAG_0x28A 0x28A
-#define FLAG_0x28B 0x28B
-#define FLAG_0x28C 0x28C
-#define FLAG_0x28D 0x28D
-#define FLAG_0x28E 0x28E
-#define FLAG_0x28F 0x28F
-#define FLAG_0x290 0x290
-#define FLAG_0x291 0x291
-#define FLAG_0x292 0x292
-#define FLAG_0x293 0x293
-#define FLAG_0x294 0x294
-#define FLAG_0x295 0x295
-#define FLAG_0x296 0x296
-#define FLAG_0x297 0x297
-#define FLAG_0x298 0x298
-#define FLAG_0x299 0x299
-#define FLAG_0x29A 0x29A
-#define FLAG_0x29B 0x29B
-#define FLAG_0x29C 0x29C
-#define FLAG_0x29D 0x29D
-#define FLAG_0x29E 0x29E
-#define FLAG_0x29F 0x29F
-#define FLAG_0x2A0 0x2A0
-#define FLAG_0x2A1 0x2A1
-#define FLAG_0x2A2 0x2A2
-#define FLAG_0x2A3 0x2A3
-#define FLAG_0x2A4 0x2A4
-#define FLAG_0x2A5 0x2A5
-#define FLAG_0x2A6 0x2A6
-#define FLAG_0x2A7 0x2A7
-#define FLAG_0x2A8 0x2A8
-#define FLAG_0x2A9 0x2A9
-#define FLAG_0x2AA 0x2AA
-#define FLAG_0x2AB 0x2AB
-#define FLAG_0x2AC 0x2AC
-#define FLAG_0x2AD 0x2AD
-#define FLAG_0x2AE 0x2AE
-#define FLAG_0x2AF 0x2AF
-#define FLAG_0x2B0 0x2B0
-#define FLAG_0x2B1 0x2B1
-#define FLAG_0x2B2 0x2B2
-#define FLAG_0x2B3 0x2B3
-#define FLAG_0x2B4 0x2B4
-#define FLAG_0x2B5 0x2B5
-#define FLAG_0x2B6 0x2B6
-#define FLAG_0x2B7 0x2B7
-#define FLAG_0x2B8 0x2B8
-#define FLAG_0x2B9 0x2B9
-#define FLAG_0x2BA 0x2BA
-#define FLAG_0x2BB 0x2BB
-#define FLAG_0x2BC 0x2BC
-#define FLAG_0x2BD 0x2BD
-#define FLAG_0x2BE 0x2BE
-#define FLAG_0x2BF 0x2BF
-#define FLAG_0x2C0 0x2C0
-#define FLAG_0x2C1 0x2C1
-#define FLAG_0x2C2 0x2C2
-#define FLAG_0x2C3 0x2C3
-#define FLAG_0x2C4 0x2C4
-#define FLAG_0x2C5 0x2C5
-#define FLAG_0x2C6 0x2C6
-#define FLAG_0x2C7 0x2C7
-#define FLAG_0x2C8 0x2C8
-#define FLAG_0x2C9 0x2C9
-#define FLAG_0x2CA 0x2CA
-#define FLAG_0x2CB 0x2CB
-#define FLAG_0x2CC 0x2CC
-#define FLAG_0x2CD 0x2CD
-#define FLAG_0x2CE 0x2CE
-#define FLAG_0x2CF 0x2CF
-#define FLAG_0x2D0 0x2D0
-#define FLAG_0x2D1 0x2D1
-#define FLAG_0x2D2 0x2D2
-#define FLAG_0x2D3 0x2D3
-#define FLAG_0x2D4 0x2D4
-#define FLAG_0x2D5 0x2D5
-#define FLAG_0x2D6 0x2D6
-#define FLAG_0x2D7 0x2D7
-#define FLAG_0x2D8 0x2D8
-#define FLAG_0x2D9 0x2D9
-#define FLAG_0x2DA 0x2DA
-#define FLAG_0x2DB 0x2DB
-#define FLAG_0x2DC 0x2DC
-#define FLAG_0x2DD 0x2DD
-#define FLAG_0x2DE 0x2DE
-#define FLAG_0x2DF 0x2DF
-#define FLAG_0x2E0 0x2E0
-#define FLAG_0x2E1 0x2E1
-#define FLAG_0x2E2 0x2E2
-#define FLAG_0x2E3 0x2E3
-#define FLAG_0x2E4 0x2E4
-#define FLAG_0x2E5 0x2E5
-#define FLAG_0x2E6 0x2E6
-#define FLAG_0x2E7 0x2E7
-#define FLAG_0x2E8 0x2E8
-#define FLAG_0x2E9 0x2E9
-#define FLAG_0x2EA 0x2EA
-#define FLAG_0x2EB 0x2EB
-#define FLAG_0x2EC 0x2EC
-#define FLAG_0x2ED 0x2ED
-#define FLAG_0x2EE 0x2EE
-#define FLAG_0x2EF 0x2EF
-#define FLAG_0x2F0 0x2F0
-#define FLAG_0x2F1 0x2F1
-#define FLAG_0x2F2 0x2F2
-#define FLAG_0x2F3 0x2F3
-#define FLAG_0x2F4 0x2F4
-#define FLAG_0x2F5 0x2F5
-#define FLAG_0x2F6 0x2F6
-#define FLAG_0x2F7 0x2F7
-#define FLAG_0x2F8 0x2F8
-#define FLAG_0x2F9 0x2F9
-#define FLAG_0x2FA 0x2FA
-#define FLAG_0x2FB 0x2FB
-#define FLAG_0x2FC 0x2FC
-#define FLAG_0x2FD 0x2FD
-#define FLAG_0x2FE 0x2FE
-#define FLAG_0x2FF 0x2FF
+
+// Story flags
+#define STORY_FLAGS_START 0x230
+#define FLAG_GOT_POTION_ON_ROUTE_1 0x230
+#define FLAG_GOT_TM34_FROM_SURGE 0x231
+#define FLAG_GOT_FOSSIL_FROM_MT_MOON 0x232
+#define FLAG_HELPED_BILL_IN_SEA_COTTAGE 0x233
+#define FLAG_GOT_SS_TICKET 0x234
+#define FLAG_GOT_SS_TICKET_DUP 0x235
+#define FLAG_GOT_TM42_AT_MEMORIAL_PILLAR 0x236
+#define FLAG_GOT_HM01 0x237
+#define FLAG_GOT_HM02 0x238
+#define FLAG_GOT_HM03 0x239
+#define FLAG_GOT_HM04 0x23A
+#define FLAG_GOT_HM05 0x23B
+#define FLAG_RESCUED_MR_FUJI 0x23C
+#define FLAG_GOT_POKE_FLUTE 0x23D
+#define FLAG_0x23E 0x23E
+#define FLAG_GOT_TM28_FROM_ROCKET 0x23F
+#define FLAG_GOT_OLD_ROD 0x240
+#define FLAG_GOT_BIKE_VOUCHER 0x241
+#define FLAG_0x242 0x242
+#define FLAG_GOT_COIN_CASE 0x243
+#define FLAG_GOT_GOOD_ROD 0x244
+#define FLAG_GOT_TM29_FROM_MR_PSYCHIC 0x245
+#define FLAG_GOT_LAPRAS_FROM_SILPH 0x246
+#define FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL 0x247
+#define FLAG_DID_MIMIEN_TRADE 0x248
+#define FLAG_BOUGHT_MAGIKARP 0x249
+#define FLAG_DID_ZYNX_TRADE 0x24A
+#define FLAG_DID_MS_NIDO_TRADE 0x24B
+#define FLAG_0x24C 0x24C
+#define FLAG_DID_CH_DING_TRADE 0x24D
+#define FLAG_GOT_TM38_FROM_BLAINE 0x24E
+#define FLAG_OAK_SKIP_22_RIVAL_CHECK 0x24F
+#define FLAG_GOT_MASTER_BALL_FROM_SILPH 0x250
+#define FLAG_DID_NINA_TRADE 0x251
+#define FLAG_GOT_ITEMFINDER 0x252
+#define FLAG_WOKE_UP_ROUTE_12_SNORLAX 0x253
+#define FLAG_GOT_TM39_FROM_BROCK 0x254
+#define FLAG_GOT_SUPER_ROD 0x255
+#define FLAG_GOT_EXP_SHARE_FROM_OAKS_AIDE 0x256
+#define FLAG_DID_MARC_TRADE 0x257
+#define FLAG_BEAT_RIVAL_IN_OAKS_LAB 0x258
+#define FLAG_GOT_TM06_FROM_KOGA 0x259
+#define FLAG_0x25A 0x25A
+#define FLAG_GOT_TM27 0x25B
+#define FLAG_0x25C 0x25C
+#define FLAG_0x25D 0x25D
+#define FLAG_GOT_OLD_AMBER 0x25E
+#define FLAG_0x25F 0x25F
+#define FLAG_0x260 0x260
+#define FLAG_0x261 0x261
+#define FLAG_0x262 0x262
+#define FLAG_GOT_EEVEE 0x263
+#define FLAG_FOUND_BOTH_VERMILION_GYM_SWITCHES 0x264
+#define FLAG_CINNABAR_GYM_QUIZ_1 0x265
+#define FLAG_PENDING_DAYCARE_EGG 0x266
+#define FLAG_CINNABAR_GYM_QUIZ_2 0x267
+#define FLAG_CINNABAR_GYM_QUIZ_3 0x268
+#define FLAG_CINNABAR_GYM_QUIZ_4 0x269
+#define FLAG_CINNABAR_GYM_QUIZ_5 0x26A
+#define FLAG_CINNABAR_GYM_QUIZ_6 0x26B
+#define FLAG_POKEMON_MANSION_SWITCH_STATE 0x26C
+#define FLAG_OPENED_ROCKET_HIDEOUT 0x26D
+#define FLAG_GOT_10_COINS_FROM_GAMBLER 0x26E
+#define FLAG_GOT_20_COINS_FROM_GAMBLER 0x26F
+#define FLAG_GOT_20_COINS_FROM_GAMBLER_2 0x270
+#define FLAG_GOT_BICYCLE 0x271
+#define FLAG_GOT_DOME_FOSSIL 0x272
+#define FLAG_GOT_HELIX_FOSSIL 0x273
+#define FLAG_DID_ESPHERE_TRADE 0x274
+#define FLAG_DID_TANGENY_TRADE 0x275
+#define FLAG_DID_SEELOR_TRADE 0x276
+#define FLAG_0x277 0x277
+#define FLAG_GOT_HITMON_FROM_DOJO 0x278
+#define FLAG_0x279 0x279
+#define FLAG_SILPH_2F_DOOR_1 0x27A
+#define FLAG_SILPH_2F_DOOR_2 0x27B
+#define FLAG_SILPH_3F_DOOR_1 0x27C
+#define FLAG_SILPH_3F_DOOR_2 0x27D
+#define FLAG_SILPH_4F_DOOR_1 0x27E
+#define FLAG_SILPH_4F_DOOR_2 0x27F
+#define FLAG_SILPH_5F_DOOR_1 0x280
+#define FLAG_SILPH_5F_DOOR_2 0x281
+#define FLAG_SILPH_5F_DOOR_3 0x282
+#define FLAG_SILPH_6F_DOOR 0x283
+#define FLAG_SILPH_7F_DOOR_1 0x284
+#define FLAG_SILPH_7F_DOOR_2 0x285
+#define FLAG_SILPH_7F_DOOR_3 0x286
+#define FLAG_SILPH_8F_DOOR 0x287
+#define FLAG_SILPH_9F_DOOR_1 0x288
+#define FLAG_SILPH_9F_DOOR_2 0x289
+#define FLAG_SILPH_9F_DOOR_3 0x28A
+#define FLAG_SILPH_9F_DOOR_4 0x28B
+#define FLAG_SILPH_10F_DOOR 0x28C
+#define FLAG_SILPH_11F_DOOR 0x28D
+#define FLAG_0x28E 0x28E
+#define FLAG_0x28F 0x28F
+#define FLAG_MET_STICKER_LADY 0x290
+#define FLAG_PALLET_LADY_NOT_BLOCKING_SIGN 0x291
+#define FLAG_GOT_VS_SEEKER 0x292
+#define FLAG_GOT_TM19_FROM_ERIKA 0x293
+#define FLAG_GOT_TM33_FROM_THIRSTY_GIRL 0x294
+#define FLAG_GOT_TM20_FROM_THIRSTY_GIRL 0x295
+#define FLAG_GOT_TM16_FROM_THIRSTY_GIRL 0x296
+#define FLAG_GOT_TM03_FROM_MISTY 0x297
+#define FLAG_GOT_TM26_FROM_GIOVANNI 0x298
+#define FLAG_0x299 0x299
+#define FLAG_GOT_TM04_FROM_SABRINA 0x29A
+#define FLAG_GOT_FAME_CHECKER 0x29B
+#define FLAG_GOT_RECORD_SETTING_MAGIKARP 0x29C
+#define FLAG_TWO_ISLAND_SHOP_INTRODUCED 0x29D
+#define FLAG_TWO_ISLAND_SHOP_EXPANDED_1 0x29E
+#define FLAG_TWO_ISLAND_SHOP_EXPANDED_2 0x29F
+#define FLAG_TWO_ISLAND_SHOP_EXPANDED_3 0x2A0
+#define FLAG_SEVII_DETOUR_FINISHED 0x2A1
+#define FLAG_VISITED_TWO_ISLAND 0x2A2
+#define FLAG_RESCUED_LOSTELLE 0x2A3
+#define FLAG_0x2A4 0x2A4
+#define FLAG_CAN_USE_ROCKET_HIDEOUT_LIFT 0x2A5
+#define FLAG_GOT_TEA 0x2A6
+#define FLAG_GOT_AURORA_TICKET 0x2A7
+#define FLAG_GOT_MYSTIC_TICKET 0x2A8
+#define FLAG_0x2A9 0x2A9
+#define FLAG_0x2AA 0x2AA
+#define FLAG_0x2AB 0x2AB
+#define FLAG_0x2AC 0x2AC
+#define FLAG_0x2AD 0x2AD
+#define FLAG_0x2AE 0x2AE
+#define FLAG_0x2AF 0x2AF
+#define FLAG_0x2B0 0x2B0
+#define FLAG_0x2B1 0x2B1
+#define FLAG_0x2B2 0x2B2
+#define FLAG_0x2B3 0x2B3
+#define FLAG_0x2B4 0x2B4
+#define FLAG_0x2B5 0x2B5
+#define FLAG_0x2B6 0x2B6
+#define FLAG_0x2B7 0x2B7
+#define FLAG_0x2B8 0x2B8
+#define FLAG_0x2B9 0x2B9
+#define FLAG_0x2BA 0x2BA
+#define FLAG_GOT_POWDER_JAR 0x2BB
+#define FLAG_FOUGHT_MEWTWO 0x2BC
+#define FLAG_FOUGHT_MOLTRES 0x2BD
+#define FLAG_FOUGHT_ARTICUNO 0x2BE
+#define FLAG_FOUGHT_ZAPDOS 0x2BF
+#define FLAG_TUTOR_DOUBLE_EDGE 0x2C0
+#define FLAG_TUTOR_THUNDER_WAVE 0x2C1
+#define FLAG_TUTOR_ROCK_SLIDE 0x2C2
+#define FLAG_TUTOR_EXPLOSION 0x2C3
+#define FLAG_TUTOR_META_PUNCH 0x2C4
+#define FLAG_TUTOR_MEGA_KICK 0x2C5
+#define FLAG_TUTOR_DREAM_EATER 0x2C6
+#define FLAG_TUTOR_SOFT_BOILED 0x2C7
+#define FLAG_TUTOR_SUBSTITUTE 0x2C8
+#define FLAG_TUTOR_SWORDS_DANCE 0x2C9
+#define FLAG_TUTOR_SEISMIC_TOSS 0x2CA
+#define FLAG_TUTOR_COUNTER 0x2CB
+#define FLAG_TUTOR_METRONOME 0x2CC
+#define FLAG_TUTOR_MIMIC 0x2CD
+#define FLAG_TUTOR_BODY_SLAM 0x2CE
+#define FLAG_VISITED_OAKS_LAB 0x2CF
+#define FLAG_FOUGHT_POWER_PLANT_ELECTRODE_1 0x2D0
+#define FLAG_FOUGHT_POWER_PLANT_ELECTRODE_2 0x2D1
+#define FLAG_STOPPED_SEAFOAM_B3F_CURRENT 0x2D2
+#define FLAG_STOPPED_SEAFOAM_B4F_CURRENT 0x2D3
+#define FLAG_TALKED_TO_LORELEI_AFTER_WAREHOUSE 0x2D4
+#define FLAG_DEFEATED_ROCKETS_IN_WAREHOUSE 0x2D5
+#define FLAG_UNLOCKED_ROCKET_WAREHOUSE 0x2D6
+#define FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR 0x2D7
+#define FLAG_LEARNED_YES_NAH_CHANSEY 0x2D8
+#define FLAG_GOT_NEST_BALL_FROM_WATER_PATH_HOUSE_1 0x2D9
+#define FLAG_GOT_TOGEPI_EGG 0x2DA
+#define FLAG_NO_ROOM_FOR_TOGEPI_EGG 0x2DB
+#define FLAG_RECOVERED_SAPPHIRE 0x2DC
+#define FLAG_GOT_RUBY 0x2DD
+#define FLAG_0x2DE 0x2DE
+#define FLAG_0x2DF 0x2DF
+#define FLAG_0x2E0 0x2E0
+#define FLAG_LEARNED_MOVE_AT_CAPE_BRINK 0x2E1
+#define FLAG_GOT_NUGGET_FROM_DUNSPARCE_TUNNEL 0x2E2
+#define FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE 0x2E3
+#define FLAG_FOUGHT_DEOXYS 0x2E4
+#define FLAG_0x2E5 0x2E5
+#define FLAG_0x2E6 0x2E6
+#define FLAG_0x2E7 0x2E7
+#define FLAG_0x2E8 0x2E8
+#define FLAG_0x2E9 0x2E9
+#define FLAG_0x2EA 0x2EA
+#define FLAG_0x2EB 0x2EB
+#define FLAG_REVIVED_DOME 0x2EC
+#define FLAG_REVIVED_HELIX 0x2ED
+#define FLAG_REVIVED_AMBER 0x2EE
+#define FLAG_GOT_HM06 0x2EF
+#define FLAG_SHOWED_MYSTICTICKET_TO_CAPTAIN 0x2F0
+#define FLAG_SHOWED_AURORATICKET_TO_CAPTAIN 0x2F1
+#define FLAG_FOUGHT_LUGIA 0x2F2
+#define FLAG_FOUGHT_HO_OH 0x2F3
+#define FLAG_OAK_SAW_DEX_COMPLETION 0x2F4
+#define FLAG_LUGIA_FLEW_AWAY 0x2F5
+#define FLAG_HO_OH_FLEW_AWAY 0x2F6
+#define FLAG_DEOXYS_FLEW_AWAY 0x2F7
+#define FLAG_TALKED_TO_TEA_LADY_AFTER_HOF 0x2F8
+#define FLAG_TALKED_TO_OAKS_AIDE_IN_VERMILION 0x2F9
+#define FLAG_GOT_EVERSTONE_FROM_OAKS_AIDE 0x2FA
+#define FLAG_GOT_MOON_STONE_FROM_JOYFUL_GAME_CORNER 0x2FB
+#define FLAG_GOT_FULL_RESTORE_FROM_THREE_ISLAND_DEFENDER 0x2FC
+#define FLAG_GOT_AMULET_COIN_FROM_OAKS_AIDE 0x2FD
+#define FLAG_NO_ROOM_FOR_JOYFUL_GAME_CORNER_MOON_STONE 0x2FE
+#define FLAG_OAKS_RATING_IS_VIA_PC 0x2FF
+
+// Unused?
#define FLAG_0x300 0x300
#define FLAG_0x301 0x301
#define FLAG_0x302 0x302
@@ -1073,7 +1000,7 @@
#define FLAG_0x3D5 0x3D5
#define FLAG_0x3D6 0x3D6
#define FLAG_0x3D7 0x3D7
-#define FLAG_0x3D8 0x3D8
+#define FLAG_MYSTERY_EVENT_DONE 0x3D8
#define FLAG_0x3D9 0x3D9
#define FLAG_0x3DA 0x3DA
#define FLAG_0x3DB 0x3DB
@@ -1090,198 +1017,202 @@
#define FLAG_0x3E6 0x3E6
#define FLAG_0x3E7 0x3E7
-#define FLAG_TRAINER_TOWER_START 1000 // 0x3E8
-#define FLAG_0x3E8 0x3E8
-#define FLAG_0x3E9 0x3E9
-#define FLAG_0x3EA 0x3EA
-#define FLAG_0x3EB 0x3EB
-#define FLAG_0x3EC 0x3EC
-#define FLAG_0x3ED 0x3ED
-#define FLAG_0x3EE 0x3EE
-#define FLAG_0x3EF 0x3EF
-#define FLAG_0x3F0 0x3F0
-#define FLAG_0x3F1 0x3F1
-#define FLAG_0x3F2 0x3F2
-#define FLAG_0x3F3 0x3F3
-#define FLAG_0x3F4 0x3F4
-#define FLAG_0x3F5 0x3F5
-#define FLAG_0x3F6 0x3F6
-#define FLAG_0x3F7 0x3F7
-#define FLAG_0x3F8 0x3F8
-#define FLAG_0x3F9 0x3F9
-#define FLAG_0x3FA 0x3FA
-#define FLAG_0x3FB 0x3FB
-#define FLAG_0x3FC 0x3FC
-#define FLAG_0x3FD 0x3FD
-#define FLAG_0x3FE 0x3FE
-#define FLAG_0x3FF 0x3FF
-#define FLAG_0x400 0x400
-#define FLAG_0x401 0x401
-#define FLAG_0x402 0x402
-#define FLAG_0x403 0x403
-#define FLAG_0x404 0x404
-#define FLAG_0x405 0x405
-#define FLAG_0x406 0x406
-#define FLAG_0x407 0x407
-#define FLAG_0x408 0x408
-#define FLAG_0x409 0x409
-#define FLAG_0x40A 0x40A
-#define FLAG_0x40B 0x40B
-#define FLAG_0x40C 0x40C
-#define FLAG_0x40D 0x40D
-#define FLAG_0x40E 0x40E
-#define FLAG_0x40F 0x40F
-#define FLAG_0x410 0x410
-#define FLAG_0x411 0x411
-#define FLAG_0x412 0x412
-#define FLAG_0x413 0x413
-#define FLAG_0x414 0x414
-#define FLAG_0x415 0x415
-#define FLAG_0x416 0x416
-#define FLAG_0x417 0x417
-#define FLAG_0x418 0x418
-#define FLAG_0x419 0x419
-#define FLAG_0x41A 0x41A
-#define FLAG_0x41B 0x41B
-#define FLAG_0x41C 0x41C
-#define FLAG_0x41D 0x41D
-#define FLAG_0x41E 0x41E
-#define FLAG_0x41F 0x41F
-#define FLAG_0x420 0x420
-#define FLAG_0x421 0x421
-#define FLAG_0x422 0x422
-#define FLAG_0x423 0x423
-#define FLAG_0x424 0x424
-#define FLAG_0x425 0x425
-#define FLAG_0x426 0x426
-#define FLAG_0x427 0x427
-#define FLAG_0x428 0x428
-#define FLAG_0x429 0x429
-#define FLAG_0x42A 0x42A
-#define FLAG_0x42B 0x42B
-#define FLAG_0x42C 0x42C
-#define FLAG_0x42D 0x42D
-#define FLAG_0x42E 0x42E
-#define FLAG_0x42F 0x42F
-#define FLAG_0x430 0x430
-#define FLAG_0x431 0x431
-#define FLAG_0x432 0x432
-#define FLAG_0x433 0x433
-#define FLAG_0x434 0x434
-#define FLAG_0x435 0x435
-#define FLAG_0x436 0x436
-#define FLAG_0x437 0x437
-#define FLAG_0x438 0x438
-#define FLAG_0x439 0x439
-#define FLAG_0x43A 0x43A
-#define FLAG_0x43B 0x43B
-#define FLAG_0x43C 0x43C
-#define FLAG_0x43D 0x43D
-#define FLAG_0x43E 0x43E
-#define FLAG_0x43F 0x43F
-#define FLAG_0x440 0x440
-#define FLAG_0x441 0x441
-#define FLAG_0x442 0x442
-#define FLAG_0x443 0x443
-#define FLAG_0x444 0x444
-#define FLAG_0x445 0x445
-#define FLAG_0x446 0x446
-#define FLAG_0x447 0x447
-#define FLAG_0x448 0x448
-#define FLAG_0x449 0x449
-#define FLAG_0x44A 0x44A
-#define FLAG_0x44B 0x44B
-#define FLAG_0x44C 0x44C
-#define FLAG_0x44D 0x44D
-#define FLAG_0x44E 0x44E
-#define FLAG_0x44F 0x44F
-#define FLAG_0x450 0x450
-#define FLAG_0x451 0x451
-#define FLAG_0x452 0x452
-#define FLAG_0x453 0x453
-#define FLAG_0x454 0x454
-#define FLAG_0x455 0x455
-#define FLAG_0x456 0x456
-#define FLAG_0x457 0x457
-#define FLAG_0x458 0x458
-#define FLAG_0x459 0x459
-#define FLAG_0x45A 0x45A
-#define FLAG_0x45B 0x45B
-#define FLAG_0x45C 0x45C
-#define FLAG_0x45D 0x45D
-#define FLAG_0x45E 0x45E
-#define FLAG_0x45F 0x45F
-#define FLAG_0x460 0x460
-#define FLAG_0x461 0x461
-#define FLAG_0x462 0x462
-#define FLAG_0x463 0x463
-#define FLAG_0x464 0x464
-#define FLAG_0x465 0x465
-#define FLAG_0x466 0x466
-#define FLAG_0x467 0x467
-#define FLAG_0x468 0x468
-#define FLAG_0x469 0x469
-#define FLAG_0x46A 0x46A
-#define FLAG_0x46B 0x46B
-#define FLAG_0x46C 0x46C
-#define FLAG_0x46D 0x46D
-#define FLAG_0x46E 0x46E
-#define FLAG_0x46F 0x46F
-#define FLAG_0x470 0x470
-#define FLAG_0x471 0x471
-#define FLAG_0x472 0x472
-#define FLAG_0x473 0x473
-#define FLAG_0x474 0x474
-#define FLAG_0x475 0x475
-#define FLAG_0x476 0x476
-#define FLAG_0x477 0x477
-#define FLAG_0x478 0x478
-#define FLAG_0x479 0x479
-#define FLAG_0x47A 0x47A
-#define FLAG_0x47B 0x47B
-#define FLAG_0x47C 0x47C
-#define FLAG_0x47D 0x47D
-#define FLAG_0x47E 0x47E
-#define FLAG_0x47F 0x47F
-#define FLAG_0x480 0x480
-#define FLAG_0x481 0x481
-#define FLAG_0x482 0x482
-#define FLAG_0x483 0x483
-#define FLAG_0x484 0x484
-#define FLAG_0x485 0x485
-#define FLAG_0x486 0x486
-#define FLAG_0x487 0x487
-#define FLAG_0x488 0x488
-#define FLAG_0x489 0x489
-#define FLAG_0x48A 0x48A
-#define FLAG_0x48B 0x48B
-#define FLAG_0x48C 0x48C
-#define FLAG_0x48D 0x48D
-#define FLAG_0x48E 0x48E
-#define FLAG_0x48F 0x48F
-#define FLAG_0x490 0x490
-#define FLAG_0x491 0x491
-#define FLAG_0x492 0x492
-#define FLAG_0x493 0x493
-#define FLAG_0x494 0x494
-#define FLAG_0x495 0x495
-#define FLAG_0x496 0x496
-#define FLAG_0x497 0x497
-#define FLAG_0x498 0x498
-#define FLAG_0x499 0x499
-#define FLAG_0x49A 0x49A
-#define FLAG_0x49B 0x49B
-#define FLAG_0x49C 0x49C
-#define FLAG_0x49D 0x49D
-#define FLAG_0x49E 0x49E
-#define FLAG_0x49F 0x49F
-#define FLAG_0x4A0 0x4A0
-#define FLAG_0x4A1 0x4A1
-#define FLAG_0x4A2 0x4A2
-#define FLAG_0x4A3 0x4A3
-#define FLAG_0x4A4 0x4A4
-#define FLAG_0x4A5 0x4A5
-#define FLAG_0x4A6 0x4A6
+#define FLAG_HIDDEN_ITEMS_START 1000 // 0x3E8
+#define FLAG_HIDDEN_ITEM(map, item) (FLAG_HIDDEN_ITEMS_START + HIDDEN_ITEM_##map##_##item)
+
+#define HIDDEN_ITEM_VIRIDIAN_FOREST_POTION 0
+#define HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE 1
+#define HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE 2
+#define HIDDEN_ITEM_MT_MOON_B2F_ETHER 3
+#define HIDDEN_ITEM_ROUTE25_ELIXIR 4
+#define HIDDEN_ITEM_ROUTE25_ETHER 5
+#define HIDDEN_ITEM_ROUTE9_ETHER 6
+#define HIDDEN_ITEM_UNUSED_0x07 7
+#define HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION 8
+#define HIDDEN_ITEM_ROUTE10_SUPER_POTION 9
+#define HIDDEN_ITEM_ROUTE10_MAX_ETHER 10
+#define HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP 11
+#define HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET 12
+#define HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL 13
+#define HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM 14
+#define HIDDEN_ITEM_ROUTE13_PP_UP 15
+#define HIDDEN_ITEM_UNUSED_0x10 16
+#define HIDDEN_ITEM_ROUTE17_RARE_CANDY 17
+#define HIDDEN_ITEM_ROUTE17_FULL_RESTORE 18
+#define HIDDEN_ITEM_ROUTE17_PP_UP 19
+#define HIDDEN_ITEM_ROUTE17_MAX_REVIVE 20
+#define HIDDEN_ITEM_ROUTE17_MAX_ELIXIR 21
+#define HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE 22
+#define HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE 23
+#define HIDDEN_ITEM_SILPH_CO_5F_ELIXIR 24
+#define HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION 25
+#define HIDDEN_ITEM_SAFFRON_CITY_HOUSE1_2F_NUGGET 26
+#define HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR 27
+#define HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE 28
+#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET 29
+#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE 30
+#define HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE 31
+#define HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY 32
+#define HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR 33
+#define HIDDEN_ITEM_ROUTE23_FULL_RESTORE 34
+#define HIDDEN_ITEM_ROUTE23_ULTRA_BALL 35
+#define HIDDEN_ITEM_ROUTE23_MAX_ETHER 36
+#define HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL 37
+#define HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE 38
+#define HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL 39
+#define HIDDEN_ITEM_UNUSED_0x28 40
+#define HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE 41
+#define HIDDEN_ITEM_ROUTE12_HYPER_POTION 42
+#define HIDDEN_ITEM_UNUSED_0x2B 43
+#define HIDDEN_ITEM_UNUSED_0x2C 44
+#define HIDDEN_ITEM_UNUSED_0x2D 45
+#define HIDDEN_ITEM_UNUSED_0x2E 46
+#define HIDDEN_ITEM_CELADON_CITY_PP_UP 47
+#define HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER 48
+#define HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY 49
+#define HIDDEN_ITEM_ROUTE4_GREAT_BALL 50
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS 51
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 52
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 53
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 54
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 55
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 56
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 57
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 58
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 59
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 60
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 61
+#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 62
+#define HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY 63
+#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 64
+#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE 65
+#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 66
+#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 67
+#define HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL 68
+#define HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL 69
+#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION 70
+#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE 71
+#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL 72
+#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING 73
+#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL 74
+#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL 75
+#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER 76
+#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION 77
+#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE 78
+#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL 79
+#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING 80
+#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL 81
+#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL 82
+#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER 83
+#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM 84
+#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 85
+#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 86
+#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM 87
+#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 88
+#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 89
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY 90
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY 91
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY 92
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY 93
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY 94
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY 95
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY 96
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY 97
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY 98
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY 99
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY 100
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY 101
+#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY 102
+#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST 103
+#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 104
+#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL 105
+#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 106
+#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL 107
+#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 108
+#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE 109
+#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL 110
+#define HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY 111
+#define HIDDEN_ITEM_PEWTER_CITY_POKE_BALL 112
+#define HIDDEN_ITEM_ROUTE3_ORAN_BERRY 113
+#define HIDDEN_ITEM_ROUTE4_PERSIM_BERRY 114
+#define HIDDEN_ITEM_ROUTE24_PECHA_BERRY 115
+#define HIDDEN_ITEM_ROUTE25_ORAN_BERRY 116
+#define HIDDEN_ITEM_ROUTE25_BLUK_BERRY 117
+#define HIDDEN_ITEM_ROUTE6_SITRUS_BERRY 118
+#define HIDDEN_ITEM_ROUTE6_RARE_CANDY 119
+#define HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY 120
+#define HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY 121
+#define HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY 122
+#define HIDDEN_ITEM_ROUTE9_RARE_CANDY 123
+#define HIDDEN_ITEM_UNUSED_0x7C 124
+#define HIDDEN_ITEM_ROUTE10_PERSIM_BERRY 125
+#define HIDDEN_ITEM_ROUTE10_CHERI_BERRY 126
+#define HIDDEN_ITEM_ROUTE8_RAWST_BERRY 127
+#define HIDDEN_ITEM_ROUTE8_LUM_BERRY 128
+#define HIDDEN_ITEM_ROUTE8_LEPPA_BERRY 129
+#define HIDDEN_ITEM_ROUTE12_RARE_CANDY 130
+#define HIDDEN_ITEM_ROUTE12_LEFTOVERS 131
+#define HIDDEN_ITEM_ROUTE16_LEFTOVERS 132
+#define HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE 133
+#define HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL 134
+#define HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL 135
+#define HIDDEN_ITEM_SILPH_CO_3F_PROTEIN 136
+#define HIDDEN_ITEM_SILPH_CO_4F_IRON 137
+#define HIDDEN_ITEM_SILPH_CO_5F_PP_UP 138
+#define HIDDEN_ITEM_SILPH_CO_6F_CARBOS 139
+#define HIDDEN_ITEM_SILPH_CO_7F_ZINC 140
+#define HIDDEN_ITEM_SILPH_CO_8F_NUGGET 141
+#define HIDDEN_ITEM_SILPH_CO_9F_CALCIUM 142
+#define HIDDEN_ITEM_SILPH_CO_10F_HP_UP 143
+#define HIDDEN_ITEM_SILPH_CO_11F_REVIVE 144
+#define HIDDEN_ITEM_ROUTE23_LUM_BERRY 145
+#define HIDDEN_ITEM_ROUTE23_SITRUS_BERRY 146
+#define HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY 147
+#define HIDDEN_ITEM_ROUTE23_LEPPA_BERRY 148
+#define HIDDEN_ITEM_ROUTE14_ZINC 149
+#define HIDDEN_ITEM_ROUTE9_CHESTO_BERRY 150
+#define HIDDEN_ITEM_ROUTE10_NANAB_BERRY 151
+#define HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY 152
+#define HIDDEN_ITEM_ROUTE20_STARDUST 153
+#define HIDDEN_ITEM_ROUTE21_NORTH_PEARL 154
+#define HIDDEN_ITEM_ROUTE23_MAX_ELIXIR 155
+#define HIDDEN_ITEM_ROUTE4_RAZZ_BERRY 156
+#define HIDDEN_ITEM_ROUTE14_PINAP_BERRY 157
+#define HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE 158
+#define HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL 159
+#define HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH 160
+#define HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX 161
+#define HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL 162
+#define HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET 163
+#define HIDDEN_ITEM_THREE_ISLAND_PP_UP 164
+#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL 165
+#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL 166
+#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST 167
+#define HIDDEN_ITEM_FOUR_ISLAND_PEARL 168
+#define HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL 169
+#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL 170
+#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY 171
+#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY 172
+#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY 173
+#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL 174
+#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST 175
+#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE 176
+#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 177
+#define HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE 178
+#define HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL 179
+#define HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL 180
+#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY 181
+#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY 182
+#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY 183
+#define HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY 184
+#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL 185
+#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL 186
+#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY 187
+#define HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY 188
+#define HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE 189
+#define HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE 190
+
+// Unused?
#define FLAG_0x4A7 0x4A7
#define FLAG_0x4A8 0x4A8
#define FLAG_0x4A9 0x4A9
@@ -1291,19 +1222,23 @@
#define FLAG_0x4AD 0x4AD
#define FLAG_0x4AE 0x4AE
#define FLAG_0x4AF 0x4AF
-#define FLAG_0x4B0 0x4B0
-#define FLAG_0x4B1 0x4B1
-#define FLAG_0x4B2 0x4B2
-#define FLAG_0x4B3 0x4B3
-#define FLAG_0x4B4 0x4B4
-#define FLAG_0x4B5 0x4B5
-#define FLAG_0x4B6 0x4B6
-#define FLAG_0x4B7 0x4B7
-#define FLAG_0x4B8 0x4B8
-#define FLAG_0x4B9 0x4B9
-#define FLAG_0x4BA 0x4BA
-#define FLAG_0x4BB 0x4BB
-#define FLAG_0x4BC 0x4BC
+
+// Boss clear flags, 1200
+#define FLAG_DEFEATED_BROCK 0x4B0
+#define FLAG_DEFEATED_MISTY 0x4B1
+#define FLAG_DEFEATED_LT_SURGE 0x4B2
+#define FLAG_DEFEATED_ERIKA 0x4B3
+#define FLAG_DEFEATED_KOGA 0x4B4
+#define FLAG_DEFEATED_SABRINA 0x4B5
+#define FLAG_DEFEATED_BLAINE 0x4B6
+#define FLAG_DEFEATED_LEADER_GIOVANNI 0x4B7
+#define FLAG_DEFEATED_LORELEI 0x4B8
+#define FLAG_DEFEATED_BRUNO 0x4B9
+#define FLAG_DEFEATED_AGATHA 0x4BA
+#define FLAG_DEFEATED_LANCE 0x4BB
+#define FLAG_DEFEATED_CHAMP 0x4BC
+
+// Unused?
#define FLAG_0x4BD 0x4BD
#define FLAG_0x4BE 0x4BE
#define FLAG_0x4BF 0x4BF
@@ -1374,299 +1309,130 @@
#define FLAG_TRAINER_FLAG_START 0x500
-#define TRAINERS_FLAG_NO 0x356
-#define CODE_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860
+#define TRAINERS_FLAG_NO 0x2E7 // 743
+#define TRAINER_FLAGS_WORDS 0x300
-// TODO: These three are badge flags
-#define FLAG_UNK820 0x820
-#define FLAG_UNK824 0x824
-#define FLAG_UNK826 0x826
-
-#define FLAG_UNK843 0x843
+#define SYS_FLAGS (FLAG_TRAINER_FLAG_START + TRAINER_FLAGS_WORDS) // 0x800
// SYSTEM FLAGS
-// 0x860
-#define FLAG_SYS_POKEMON_GET (CODE_FLAGS + 0)
-#define FLAG_SYS_POKEDEX_GET (CODE_FLAGS + 1)
-#define FLAG_SYS_POKENAV_GET (CODE_FLAGS + 2)
-// third one appears unused
-#define FLAG_SYS_GAME_CLEAR (CODE_FLAGS + 4)
-#define FLAG_SYS_CHAT_USED (CODE_FLAGS + 5)
-#define FLAG_SYS_HIPSTER_MEET (CODE_FLAGS + 6)
-
-// badges
-#define FLAG_BADGE01_GET (CODE_FLAGS + 7)
-#define FLAG_BADGE02_GET (CODE_FLAGS + 8)
-#define FLAG_BADGE03_GET (CODE_FLAGS + 9)
-#define FLAG_BADGE04_GET (CODE_FLAGS + 0xA)
-#define FLAG_BADGE05_GET (CODE_FLAGS + 0xB)
-#define FLAG_BADGE06_GET (CODE_FLAGS + 0xC)
-#define FLAG_BADGE07_GET (CODE_FLAGS + 0xD)
-#define FLAG_BADGE08_GET (CODE_FLAGS + 0xE)
+// 0x800
-// cities and towns
-#define FLAG_VISITED_LITTLEROOT_TOWN (CODE_FLAGS + 0xF)
-#define FLAG_VISITED_OLDALE_TOWN (CODE_FLAGS + 0x10)
-#define FLAG_VISITED_DEWFORD_TOWN (CODE_FLAGS + 0x11)
-#define FLAG_VISITED_LAVARIDGE_TOWN (CODE_FLAGS + 0x12)
-#define FLAG_VISITED_FALLARBOR_TOWN (CODE_FLAGS + 0x13)
-#define FLAG_VISITED_VERDANTURF_TOWN (CODE_FLAGS + 0x14)
-#define FLAG_VISITED_PACIFIDLOG_TOWN (CODE_FLAGS + 0x15)
-#define FLAG_VISITED_PETALBURG_CITY (CODE_FLAGS + 0x16)
-#define FLAG_VISITED_SLATEPORT_CITY (CODE_FLAGS + 0x17)
-#define FLAG_VISITED_MAUVILLE_CITY (CODE_FLAGS + 0x18)
-#define FLAG_VISITED_RUSTBORO_CITY (CODE_FLAGS + 0x19)
-#define FLAG_VISITED_FORTREE_CITY (CODE_FLAGS + 0x1A)
-#define FLAG_VISITED_LILYCOVE_CITY (CODE_FLAGS + 0x1B)
-#define FLAG_VISITED_MOSSDEEP_CITY (CODE_FLAGS + 0x1C)
-#define FLAG_VISITED_SOOTOPOLIS_CITY (CODE_FLAGS + 0x1D)
-#define FLAG_VISITED_EVER_GRANDE_CITY (CODE_FLAGS + 0x1E)
+#define FLAG_SYS_SAFARI_MODE (SYS_FLAGS + 0x0)
+#define FLAG_SYS_VS_SEEKER_CHARGING (SYS_FLAGS + 0x1)
+#define FLAG_SYS_WHITE_FLUTE_ACTIVE (SYS_FLAGS + 0x3)
+#define FLAG_SYS_BLACK_FLUTE_ACTIVE (SYS_FLAGS + 0x4)
+#define FLAG_SYS_STRENGTH_ACTIVE (SYS_FLAGS + 0x5)
+#define FLAG_SYS_FLASH_ACTIVE (SYS_FLAGS + 0x6)
+#define FLAG_SYS_SPECIAL_WILD_BATTLE (SYS_FLAGS + 0x7)
-#define FLAG_0x87F (CODE_FLAGS + 0x1F)
-#define FLAG_0x880 (CODE_FLAGS + 0x20)
-#define FLAG_0x881 (CODE_FLAGS + 0x21)
-#define FLAG_0x882 (CODE_FLAGS + 0x22)
-#define FLAG_0x883 (CODE_FLAGS + 0x23)
-#define FLAG_0x884 (CODE_FLAGS + 0x24)
-#define FLAG_0x885 (CODE_FLAGS + 0x25)
-#define FLAG_0x886 (CODE_FLAGS + 0x26)
-#define FLAG_0x887 (CODE_FLAGS + 0x27)
+#define PERMA_SYS_FLAGS_START 0x820
+#define FLAG_BADGE01_GET (SYS_FLAGS + 0x20)
+#define FLAG_BADGE02_GET (SYS_FLAGS + 0x21)
+#define FLAG_BADGE03_GET (SYS_FLAGS + 0x22)
+#define FLAG_BADGE04_GET (SYS_FLAGS + 0x23)
+#define FLAG_BADGE05_GET (SYS_FLAGS + 0x24)
+#define FLAG_BADGE06_GET (SYS_FLAGS + 0x25)
+#define FLAG_BADGE07_GET (SYS_FLAGS + 0x26)
+#define FLAG_BADGE08_GET (SYS_FLAGS + 0x27)
+#define FLAG_SYS_POKEMON_GET (SYS_FLAGS + 0x28)
+#define FLAG_SYS_POKEDEX_GET (SYS_FLAGS + 0x29)
+#define FLAG_0x82A (SYS_FLAGS + 0x2A)
+#define FLAG_0x82B (SYS_FLAGS + 0x2B)
+#define FLAG_SYS_GAME_CLEAR (SYS_FLAGS + 0x2C)
+#define FLAG_SYS_SET_TRAINER_CARD_PROFILE (SYS_FLAGS + 0x2D)
+#define FLAG_0x82E (SYS_FLAGS + 0x2E)
+#define FLAG_SYS_RUNNING_SHOES (SYS_FLAGS + 0x2F)
+#define FLAG_SYS_ON_CYCLING_ROAD (SYS_FLAGS + 0x30)
+#define FLAG_0x831 (SYS_FLAGS + 0x31)
+#define FLAG_0x832 (SYS_FLAGS + 0x32)
+#define FLAG_0x833 (SYS_FLAGS + 0x33)
+#define FLAG_SYS_NOT_SOMEONES_PC (SYS_FLAGS + 0x34)
+#define FLAG_0x835 (SYS_FLAGS + 0x35)
+#define FLAG_0x836 (SYS_FLAGS + 0x36)
+#define FLAG_0x837 (SYS_FLAGS + 0x37)
+#define FLAG_0x838 (SYS_FLAGS + 0x38)
+#define FLAG_SYS_MYSTERY_GIFT_ENABLED (SYS_FLAGS + 0x39)
+#define FLAG_0x83A (SYS_FLAGS + 0x3A)
+#define FLAG_SYS_RIBBON_GET (SYS_FLAGS + 0x3B)
+#define FLAG_SYS_SAW_HELP_SYSTEM_INTRO (SYS_FLAGS + 0x3C)
+#define FLAG_0x83D (SYS_FLAGS + 0x3D)
+#define FLAG_PALLET_TOWN_LADY_MOVED_FROM_SIGN (SYS_FLAGS + 0x3E)
+#define FLAG_0x83F (SYS_FLAGS + 0x3F)
+#define FLAG_SYS_NATIONAL_DEX (SYS_FLAGS + 0x40)
+#define FLAG_SYS_PC_STORAGE_DISABLED (SYS_FLAGS + 0x41)
+#define FLAG_SYS_INFORMED_OF_LOCAL_WIRELESS_PLAYER (SYS_FLAGS + 0x42)
+#define FLAG_SYS_CHANGED_BOX_TO_STORE_MON (SYS_FLAGS + 0x43)
+#define FLAG_SYS_CAN_LINK_WITH_RS (SYS_FLAGS + 0x44)
+#define FLAG_SYS_SEVII_MAP_123 (SYS_FLAGS + 0x45)
+#define FLAG_SYS_SEVII_MAP_4567 (SYS_FLAGS + 0x46)
+#define FLAG_SYS_GOT_BERRY_POUCH (SYS_FLAGS + 0x47)
+#define FLAG_SYS_DEOXYS_AWAKENED (SYS_FLAGS + 0x48)
+#define FLAG_SYS_UNLOCKED_TANOBY_RUINS (SYS_FLAGS + 0x49)
+#define FLAG_SYS_GOT_MYSTIC_TICKET (SYS_FLAGS + 0x4A)
+#define FLAG_SYS_GOT_AURORA_TICKET (SYS_FLAGS + 0x4B)
-#define FLAG_SYS_USE_FLASH (CODE_FLAGS + 0x28)
-#define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29)
-#define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A)
-#define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B)
-#define FLAG_0x88C (CODE_FLAGS + 0x2C)
-#define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D)
-
-#define FLAG_0x88E (CODE_FLAGS + 0x2E)
-#define FLAG_0x88F (CODE_FLAGS + 0x2F)
-
-#define FLAG_SYS_TV_HOME (CODE_FLAGS + 0x30)
-#define FLAG_SYS_TV_WATCH (CODE_FLAGS + 0x31)
-#define FLAG_SYS_TV_START (CODE_FLAGS + 0x32)
-#define FLAG_SYS_POPWORD_INPUT (CODE_FLAGS + 0x33)
-#define FLAG_SYS_MIX_RECORD (CODE_FLAGS + 0x34)
-#define FLAG_SYS_CLOCK_SET (CODE_FLAGS + 0x35)
-#define FLAG_SYS_NATIONAL_DEX (CODE_FLAGS + 0x36)
-#define FLAG_SYS_CAVE_SHIP (CODE_FLAGS + 0x37)
-#define FLAG_SYS_CAVE_WONDER (CODE_FLAGS + 0x38)
-#define FLAG_SYS_CAVE_BATTLE (CODE_FLAGS + 0x39)
-#define FLAG_SYS_SHOAL_TIDE (CODE_FLAGS + 0x3A)
-#define FLAG_SYS_RIBBON_GET (CODE_FLAGS + 0x3B)
-
-#define FLAG_0x89C (CODE_FLAGS + 0x3C)
-#define FLAG_0x89D (CODE_FLAGS + 0x3D)
-#define FLAG_0x89E (CODE_FLAGS + 0x3E)
-#define FLAG_0x89F (CODE_FLAGS + 0x3F)
-#define FLAG_0x8A0 (CODE_FLAGS + 0x40)
-#define FLAG_0x8A1 (CODE_FLAGS + 0x41)
-#define FLAG_0x8A2 (CODE_FLAGS + 0x42)
-#define FLAG_0x8A3 (CODE_FLAGS + 0x43)
-#define FLAG_0x8A4 (CODE_FLAGS + 0x44)
-#define FLAG_0x8A5 (CODE_FLAGS + 0x45)
-#define FLAG_0x8A6 (CODE_FLAGS + 0x46)
-#define FLAG_0x8A7 (CODE_FLAGS + 0x47)
-#define FLAG_UNLOCK_BATTLE_FRONTIER (CODE_FLAGS + 0x48)
-#define FLAG_UNLOCK_SOUTHERN_ISLAND (CODE_FLAGS + 0x49)
-#define FLAG_0x8AA (CODE_FLAGS + 0x4A)
-
-#define FLAG_SYS_PC_LANETTE (CODE_FLAGS + 0x4B)
-#define FLAG_SYS_MYSTERY_EVENT_ENABLE (CODE_FLAGS + 0x4C)
-#define FLAG_SYS_ENC_UP_ITEM (CODE_FLAGS + 0x4D)
-#define FLAG_SYS_ENC_DOWN_ITEM (CODE_FLAGS + 0x4E)
-#define FLAG_SYS_BRAILLE_DIG (CODE_FLAGS + 0x4F)
-#define FLAG_SYS_BRAILLE_STRENGTH (CODE_FLAGS + 0x50)
-#define FLAG_SYS_BRAILLE_WAIT (CODE_FLAGS + 0x51)
-#define FLAG_SYS_BRAILLE_FLY (CODE_FLAGS + 0x52)
-#define FLAG_SYS_HAS_EON_TICKET (CODE_FLAGS + 0x53)
-
-#define FLAG_SYS_POKEMON_LEAGUE_FLY (CODE_FLAGS + 0x54)
-
-#define FLAG_0x8B5 (CODE_FLAGS + 0x55)
-#define FLAG_0x8B6 (CODE_FLAGS + 0x56)
-#define FLAG_0x8B7 (CODE_FLAGS + 0x57)
-#define FLAG_0x8B8 (CODE_FLAGS + 0x58)
-#define FLAG_0x8B9 (CODE_FLAGS + 0x59)
-#define FLAG_0x8BA (CODE_FLAGS + 0x5A)
-#define FLAG_0x8BB (CODE_FLAGS + 0x5B)
-#define FLAG_0x8BC (CODE_FLAGS + 0x5C)
-
-#define FLAG_SYS_TV_LATI (CODE_FLAGS + 0x5D)
-
-#define FLAG_0x8BE (CODE_FLAGS + 0x5E)
-
-#define FLAG_SYS_SHOAL_ITEM (CODE_FLAGS + 0x5F)
-#define FLAG_SYS_B_DASH (CODE_FLAGS + 0x60) // got Running Shoes
-#define FLAG_SYS_CTRL_OBJ_DELETE (CODE_FLAGS + 0x61)
-#define FLAG_SYS_RESET_RTC_ENABLE (CODE_FLAGS + 0x62)
-
-#define FLAG_0x8C3 (CODE_FLAGS + 0x63)
-
-#define FLAG_SYS_TOWER_SILVER (CODE_FLAGS + 0x64)
-#define FLAG_SYS_TOWER_GOLD (CODE_FLAGS + 0x65)
-#define FLAG_SYS_DOME_SILVER (CODE_FLAGS + 0x66)
-#define FLAG_SYS_DOME_GOLD (CODE_FLAGS + 0x67)
-#define FLAG_SYS_PALACE_SILVER (CODE_FLAGS + 0x68)
-#define FLAG_SYS_PALACE_GOLD (CODE_FLAGS + 0x69)
-#define FLAG_SYS_ARENA_SILVER (CODE_FLAGS + 0x6A)
-#define FLAG_SYS_ARENA_GOLD (CODE_FLAGS + 0x6B)
-#define FLAG_SYS_FACTORY_SILVER (CODE_FLAGS + 0x6C)
-#define FLAG_SYS_FACTORY_GOLD (CODE_FLAGS + 0x6D)
-#define FLAG_SYS_PIKE_SILVER (CODE_FLAGS + 0x6E)
-#define FLAG_SYS_PIKE_GOLD (CODE_FLAGS + 0x6F)
-#define FLAG_SYS_PYRAMID_SILVER (CODE_FLAGS + 0x70)
-#define FLAG_SYS_PYRAMID_GOLD (CODE_FLAGS + 0x71)
-#define FLAG_SYS_FRONTIER_PASS (CODE_FLAGS + 0x72)
-
-#define FLAG_0x8D3 (CODE_FLAGS + 0x73)
-#define FLAG_0x8D4 (CODE_FLAGS + 0x74)
-#define FLAG_0x8D5 (CODE_FLAGS + 0x75)
-#define FLAG_0x8D6 (CODE_FLAGS + 0x76)
-
-#define FLAG_SYS_STORAGE_UNKNOWN_FLAG (CODE_FLAGS + 0x77)
-
-#define FLAG_0x8D8 (CODE_FLAGS + 0x78)
-#define FLAG_0x8D9 (CODE_FLAGS + 0x79)
-#define FLAG_0x8DA (CODE_FLAGS + 0x7A)
+// World Map Flags
+#define FLAG_WORLD_MAP_PALLET_TOWN (SYS_FLAGS + 0x90)
+#define FLAG_WORLD_MAP_VIRIDIAN_CITY (SYS_FLAGS + 0x91)
+#define FLAG_WORLD_MAP_PEWTER_CITY (SYS_FLAGS + 0x92)
+#define FLAG_WORLD_MAP_CERULEAN_CITY (SYS_FLAGS + 0x93)
+#define FLAG_WORLD_MAP_LAVENDER_TOWN (SYS_FLAGS + 0x94)
+#define FLAG_WORLD_MAP_VERMILION_CITY (SYS_FLAGS + 0x95)
+#define FLAG_WORLD_MAP_CELADON_CITY (SYS_FLAGS + 0x96)
+#define FLAG_WORLD_MAP_FUCHSIA_CITY (SYS_FLAGS + 0x97)
+#define FLAG_WORLD_MAP_CINNABAR_ISLAND (SYS_FLAGS + 0x98)
+#define FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR (SYS_FLAGS + 0x99)
+#define FLAG_WORLD_MAP_SAFFRON_CITY (SYS_FLAGS + 0x9A)
+#define FLAG_WORLD_MAP_ONE_ISLAND (SYS_FLAGS + 0x9B)
+#define FLAG_WORLD_MAP_TWO_ISLAND (SYS_FLAGS + 0x9C)
+#define FLAG_WORLD_MAP_THREE_ISLAND (SYS_FLAGS + 0x9D)
+#define FLAG_WORLD_MAP_FOUR_ISLAND (SYS_FLAGS + 0x9E)
+#define FLAG_WORLD_MAP_FIVE_ISLAND (SYS_FLAGS + 0x9F)
+#define FLAG_WORLD_MAP_SEVEN_ISLAND (SYS_FLAGS + 0xA0)
+#define FLAG_WORLD_MAP_SIX_ISLAND (SYS_FLAGS + 0xA1)
+#define FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F (SYS_FLAGS + 0xA2)
+#define FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F (SYS_FLAGS + 0xA3)
+#define FLAG_WORLD_MAP_VIRIDIAN_FOREST (SYS_FLAGS + 0xA4)
+#define FLAG_WORLD_MAP_MT_MOON_1F (SYS_FLAGS + 0xA5)
+#define FLAG_WORLD_MAP_SSANNE_EXTERIOR (SYS_FLAGS + 0xA6)
+#define FLAG_WORLD_MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL (SYS_FLAGS + 0xA7)
+#define FLAG_WORLD_MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL (SYS_FLAGS + 0xA8)
+#define FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F (SYS_FLAGS + 0xA9)
+#define FLAG_WORLD_MAP_VICTORY_ROAD_1F (SYS_FLAGS + 0xAA)
+#define FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F (SYS_FLAGS + 0xAB)
+#define FLAG_WORLD_MAP_SILPH_CO_1F (SYS_FLAGS + 0xAC)
+#define FLAG_WORLD_MAP_POKEMON_MANSION_1F (SYS_FLAGS + 0xAD)
+#define FLAG_WORLD_MAP_SAFARI_ZONE_CENTER (SYS_FLAGS + 0xAE)
+#define FLAG_WORLD_MAP_POKEMON_LEAGUE_LORELEIS_ROOM (SYS_FLAGS + 0xAF)
+#define FLAG_WORLD_MAP_ROCK_TUNNEL_1F (SYS_FLAGS + 0xB0)
+#define FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F (SYS_FLAGS + 0xB1)
+#define FLAG_WORLD_MAP_POKEMON_TOWER_1F (SYS_FLAGS + 0xB2)
+#define FLAG_WORLD_MAP_CERULEAN_CAVE_1F (SYS_FLAGS + 0xB3)
+#define FLAG_WORLD_MAP_POWER_PLANT (SYS_FLAGS + 0xB4)
+#define FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR (SYS_FLAGS + 0xB5)
+#define FLAG_WORLD_MAP_MT_EMBER_EXTERIOR (SYS_FLAGS + 0xB6)
+#define FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST (SYS_FLAGS + 0xB7)
+#define FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE (SYS_FLAGS + 0xB8)
+#define FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE (SYS_FLAGS + 0xB9)
+#define FLAG_WORLD_MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY (SYS_FLAGS + 0xBA)
+#define FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F (SYS_FLAGS + 0xBB)
+#define FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE (SYS_FLAGS + 0xBC)
+#define FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH (SYS_FLAGS + 0xBD)
+#define FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE (SYS_FLAGS + 0xBE)
+#define FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER (SYS_FLAGS + 0xBF)
+#define FLAG_WORLD_MAP_THREE_ISLAND_DUNSPARCE_TUNNEL (SYS_FLAGS + 0xC0)
+#define FLAG_WORLD_MAP_SEVEN_ISLAND_SEAVAULT_CANYON_TANOBY_KEY (SYS_FLAGS + 0xC1)
+#define FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR (SYS_FLAGS + 0xC2)
-#define FLAG_SYS_MYSTERY_GIFT_ENABLE (CODE_FLAGS + 0x7B)
+#define FLAG_0x8D5 (SYS_FLAGS + 0xD5)
+#define FLAG_0x8D6 (SYS_FLAGS + 0xD6)
-#define FLAG_0x8DC (CODE_FLAGS + 0x7C)
-#define FLAG_0x8DD (CODE_FLAGS + 0x7D)
-#define FLAG_0x8DE (CODE_FLAGS + 0x7E)
-#define FLAG_0x8DF (CODE_FLAGS + 0x7F)
-#define FLAG_0x8E0 (CODE_FLAGS + 0x80)
-#define FLAG_0x8E1 (CODE_FLAGS + 0x81)
-#define FLAG_0x8E2 (CODE_FLAGS + 0x82)
-#define FLAG_0x8E3 (CODE_FLAGS + 0x83)
-#define FLAG_0x8E4 (CODE_FLAGS + 0x84)
-#define FLAG_0x8E5 (CODE_FLAGS + 0x85)
-#define FLAG_0x8E6 (CODE_FLAGS + 0x86)
-#define FLAG_0x8E7 (CODE_FLAGS + 0x87)
-#define FLAG_0x8E8 (CODE_FLAGS + 0x88)
-#define FLAG_0x8E9 (CODE_FLAGS + 0x89)
-#define FLAG_0x8EA (CODE_FLAGS + 0x8A)
-#define FLAG_0x8EB (CODE_FLAGS + 0x8B)
-#define FLAG_0x8EC (CODE_FLAGS + 0x8C)
-#define FLAG_0x8ED (CODE_FLAGS + 0x8D)
-#define FLAG_0x8EE (CODE_FLAGS + 0x8E)
-#define FLAG_0x8EF (CODE_FLAGS + 0x8F)
-#define FLAG_0x8F0 (CODE_FLAGS + 0x90)
-#define FLAG_0x8F1 (CODE_FLAGS + 0x91)
-#define FLAG_0x8F2 (CODE_FLAGS + 0x92)
-#define FLAG_0x8F3 (CODE_FLAGS + 0x93)
-#define FLAG_0x8F4 (CODE_FLAGS + 0x94)
-#define FLAG_0x8F5 (CODE_FLAGS + 0x95)
-#define FLAG_0x8F6 (CODE_FLAGS + 0x96)
-#define FLAG_0x8F7 (CODE_FLAGS + 0x97)
-#define FLAG_0x8F8 (CODE_FLAGS + 0x98)
-#define FLAG_0x8F9 (CODE_FLAGS + 0x99)
-#define FLAG_0x8FA (CODE_FLAGS + 0x9A)
-#define FLAG_0x8FB (CODE_FLAGS + 0x9B)
-#define FLAG_0x8FC (CODE_FLAGS + 0x9C)
-#define FLAG_0x8FD (CODE_FLAGS + 0x9D)
-#define FLAG_0x8FE (CODE_FLAGS + 0x9E)
-#define FLAG_0x8FF (CODE_FLAGS + 0x9F)
-#define FLAG_0x900 (CODE_FLAGS + 0xA0)
-#define FLAG_0x901 (CODE_FLAGS + 0xA1)
-#define FLAG_0x902 (CODE_FLAGS + 0xA2)
-#define FLAG_0x903 (CODE_FLAGS + 0xA3)
-#define FLAG_0x904 (CODE_FLAGS + 0xA4)
-#define FLAG_0x905 (CODE_FLAGS + 0xA5)
-#define FLAG_0x906 (CODE_FLAGS + 0xA6)
-#define FLAG_0x907 (CODE_FLAGS + 0xA7)
-#define FLAG_0x908 (CODE_FLAGS + 0xA8)
-#define FLAG_0x909 (CODE_FLAGS + 0xA9)
-#define FLAG_0x90A (CODE_FLAGS + 0xAA)
-#define FLAG_0x90B (CODE_FLAGS + 0xAB)
-#define FLAG_0x90C (CODE_FLAGS + 0xAC)
-#define FLAG_0x90D (CODE_FLAGS + 0xAD)
-#define FLAG_0x90E (CODE_FLAGS + 0xAE)
-#define FLAG_0x90F (CODE_FLAGS + 0xAF)
-#define FLAG_0x910 (CODE_FLAGS + 0xB0)
-#define FLAG_0x911 (CODE_FLAGS + 0xB1)
-#define FLAG_0x912 (CODE_FLAGS + 0xB2)
-#define FLAG_0x913 (CODE_FLAGS + 0xB3)
-#define FLAG_0x914 (CODE_FLAGS + 0xB4)
-#define FLAG_0x915 (CODE_FLAGS + 0xB5)
-#define FLAG_0x916 (CODE_FLAGS + 0xB6)
-#define FLAG_0x917 (CODE_FLAGS + 0xB7)
-#define FLAG_0x918 (CODE_FLAGS + 0xB8)
-#define FLAG_0x919 (CODE_FLAGS + 0xB9)
-#define FLAG_0x91A (CODE_FLAGS + 0xBA)
-#define FLAG_0x91B (CODE_FLAGS + 0xBB)
-#define FLAG_0x91C (CODE_FLAGS + 0xBC)
-#define FLAG_0x91D (CODE_FLAGS + 0xBD)
-#define FLAG_0x91E (CODE_FLAGS + 0xBE)
-#define FLAG_0x91F (CODE_FLAGS + 0xBF)
-#define FLAG_0x920 (CODE_FLAGS + 0xC0)
-#define FLAG_0x921 (CODE_FLAGS + 0xC1)
-#define FLAG_0x922 (CODE_FLAGS + 0xC2)
-#define FLAG_0x923 (CODE_FLAGS + 0xC3)
-#define FLAG_0x924 (CODE_FLAGS + 0xC4)
-#define FLAG_0x925 (CODE_FLAGS + 0xC5)
-#define FLAG_0x926 (CODE_FLAGS + 0xC6)
-#define FLAG_0x927 (CODE_FLAGS + 0xC7)
-#define FLAG_0x928 (CODE_FLAGS + 0xC8)
-#define FLAG_0x929 (CODE_FLAGS + 0xC9)
-#define FLAG_0x92A (CODE_FLAGS + 0xCA)
-#define FLAG_0x92B (CODE_FLAGS + 0xCB)
-#define FLAG_0x92C (CODE_FLAGS + 0xCC)
-#define FLAG_0x92D (CODE_FLAGS + 0xCD)
-#define FLAG_0x92E (CODE_FLAGS + 0xCE)
-#define FLAG_0x92F (CODE_FLAGS + 0xCF)
-#define FLAG_0x930 (CODE_FLAGS + 0xD0)
-#define FLAG_0x931 (CODE_FLAGS + 0xD1)
-#define FLAG_0x932 (CODE_FLAGS + 0xD2)
-#define FLAG_0x933 (CODE_FLAGS + 0xD3)
-#define FLAG_0x934 (CODE_FLAGS + 0xD4)
-#define FLAG_0x935 (CODE_FLAGS + 0xD5)
-#define FLAG_0x936 (CODE_FLAGS + 0xD6)
-#define FLAG_0x937 (CODE_FLAGS + 0xD7)
-#define FLAG_0x938 (CODE_FLAGS + 0xD8)
-#define FLAG_0x939 (CODE_FLAGS + 0xD9)
-#define FLAG_0x93A (CODE_FLAGS + 0xDA)
-#define FLAG_0x93B (CODE_FLAGS + 0xDB)
-#define FLAG_0x93C (CODE_FLAGS + 0xDC)
-#define FLAG_0x93D (CODE_FLAGS + 0xDD)
-#define FLAG_0x93E (CODE_FLAGS + 0xDE)
-#define FLAG_0x93F (CODE_FLAGS + 0xDF)
-#define FLAG_0x940 (CODE_FLAGS + 0xE0)
-#define FLAG_0x941 (CODE_FLAGS + 0xE1)
-#define FLAG_0x942 (CODE_FLAGS + 0xE2)
-#define FLAG_0x943 (CODE_FLAGS + 0xE3)
-#define FLAG_0x944 (CODE_FLAGS + 0xE4)
-#define FLAG_0x945 (CODE_FLAGS + 0xE5)
-#define FLAG_0x946 (CODE_FLAGS + 0xE6)
-#define FLAG_0x947 (CODE_FLAGS + 0xE7)
-#define FLAG_0x948 (CODE_FLAGS + 0xE8)
-#define FLAG_0x949 (CODE_FLAGS + 0xE9)
-#define FLAG_0x94A (CODE_FLAGS + 0xEA)
-#define FLAG_0x94B (CODE_FLAGS + 0xEB)
-#define FLAG_0x94C (CODE_FLAGS + 0xEC)
-#define FLAG_0x94D (CODE_FLAGS + 0xED)
-#define FLAG_0x94E (CODE_FLAGS + 0xEE)
-#define FLAG_0x94F (CODE_FLAGS + 0xEF)
-#define FLAG_0x950 (CODE_FLAGS + 0xF0)
-#define FLAG_0x951 (CODE_FLAGS + 0xF1)
-#define FLAG_0x952 (CODE_FLAGS + 0xF2)
-#define FLAG_0x953 (CODE_FLAGS + 0xF3)
-#define FLAG_0x954 (CODE_FLAGS + 0xF4)
-#define FLAG_0x955 (CODE_FLAGS + 0xF5)
-#define FLAG_0x956 (CODE_FLAGS + 0xF6)
-#define FLAG_0x957 (CODE_FLAGS + 0xF7)
-#define FLAG_0x958 (CODE_FLAGS + 0xF8)
-#define FLAG_0x959 (CODE_FLAGS + 0xF9)
-#define FLAG_0x95A (CODE_FLAGS + 0xFA)
-#define FLAG_0x95B (CODE_FLAGS + 0xFB)
-#define FLAG_0x95C (CODE_FLAGS + 0xFC)
-#define FLAG_0x95D (CODE_FLAGS + 0xFD)
-#define FLAG_0x95E (CODE_FLAGS + 0xFE)
-#define FLAG_0x95F (CODE_FLAGS + 0xFF)
+#define FLAG_0x8E0 (SYS_FLAGS + 0xE0)
// SPECIAL FLAGS (unknown purpose)
+#define SPECIAL_FLAGS_START 0x4000
+#define SPECIAL_FLAGS_COUNT 16
#define FLAG_SPECIAL_FLAG_0x4000 0x4000
#define FLAG_SPECIAL_FLAG_0x4001 0x4001
#define FLAG_SPECIAL_FLAG_0x4002 0x4002