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.h860
1 files changed, 786 insertions, 74 deletions
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 835d85966..eff147fb8 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -1,92 +1,804 @@
#ifndef GUARD_CONSTANTS_FLAGS_H
#define GUARD_CONSTANTS_FLAGS_H
+// temporary flags
+// These temporary are are cleared every time a map is loaded. They are used for
+// things like shortening an NPCs introduction text if the player already spoke
+// to them once.
+#define FLAG_TEMP_1 0x1
+#define FLAG_TEMP_2 0x2
+#define FLAG_TEMP_3 0x3
+#define FLAG_TEMP_4 0x4
+#define FLAG_TEMP_5 0x5
+#define FLAG_TEMP_6 0x6
+#define FLAG_TEMP_7 0x7
+#define FLAG_TEMP_8 0x8
+#define FLAG_TEMP_9 0x9
+#define FLAG_TEMP_A 0xA
+#define FLAG_TEMP_B 0xB
+#define FLAG_TEMP_C 0xC
+#define FLAG_TEMP_D 0xD
+#define FLAG_TEMP_E 0xE
+#define FLAG_TEMP_F 0xF
+#define FLAG_TEMP_10 0x10
+#define FLAG_TEMP_11 0x11
+#define FLAG_TEMP_12 0x12
+#define FLAG_TEMP_13 0x13
+#define FLAG_TEMP_14 0x14
+#define FLAG_TEMP_15 0x15
+#define FLAG_TEMP_16 0x16
+#define FLAG_TEMP_17 0x17
+#define FLAG_TEMP_18 0x18
+#define FLAG_TEMP_19 0x19
+#define FLAG_TEMP_1A 0x1A
+#define FLAG_TEMP_1B 0x1B
+#define FLAG_TEMP_1C 0x1C
+#define FLAG_TEMP_1D 0x1D
+#define FLAG_TEMP_1E 0x1E
+#define FLAG_TEMP_1F 0x1F
+// FLAG_TEMP_20 was supposed to be used as a temporary flag (see above), but there
+// was either an oversight or off-by-one error.
+#define FLAG_TEMP_20 0x20
+#define FLAG_VICTORY_ROAD_ROCK FLAG_TEMP_20
+
// scripts
-#define FLAG_PENDING_DAYCARE_EGG 0x86
+#define FLAG_SET_WALL_CLOCK 0x51
+#define FLAG_RESCUED_BIRCH 0x52
+
+#define FLAG_LINK_CONTEST_ROOM_POKEBALL 0x56
+#define FLAG_MET_RIVAL_MOM 0x57
+#define FLAG_BIRCH_AIDE_MET 0x58
+#define FLAG_DECLINED_BIKE 0x59
+#define FLAG_RECEIVED_BIKE 0x5A
+
+#define FLAG_RECEIVED_WAILMER_PAIL 0x5E
+#define FLAG_RECEIVED_POKEBLOCK_CASE 0x5F
+#define FLAG_RECEIVED_SECRET_POWER 0x60
+
+#define FLAG_TV_EXPLAINED 0x62
+#define FLAG_MAUVILLE_GYM_BARRIERS_STATE 0x63
+#define FLAG_MOSSDEEP_GYM_SWITCH_1 0x64
+#define FLAG_MOSSDEEP_GYM_SWITCH_2 0x65
+#define FLAG_MOSSDEEP_GYM_SWITCH_3 0x66
+#define FLAG_MOSSDEEP_GYM_SWITCH_4 0x67
+
+#define FLAG_OCEANIC_MUSEUM_MET_REPORTER 0x69
+#define FLAG_RECEIVED_HM04 0x6A
+#define FLAG_RECEIVED_HM06 0x6B
+
+#define FLAG_RECEIVED_HM05 0x6D
+#define FLAG_RECEIVED_HM02 0x6E
+#define FLAG_MT_PYRE_ORB_STOLEN 0x6F
+#define FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE 0x70
+#define FLAG_LEGENDARY_BATTLE_COMPLETED 0x71 // defeated or caught Groudon/Kyogre in Cave of Origin
+
+#define FLAG_RECEIVED_METEORITE 0x73
+#define FLAG_ADVENTURE_STARTED 0x74 // received pokedex and set loose
+
+#define FLAG_MET_HIDDEN_POWER_GIVER 0x76
+
+#define FLAG_RECEIVED_TM31 0x79
+#define FLAG_RECEIVED_HM03 0x7A
+#define FLAG_RECEIVED_HM08 0x7B
+
+#define FLAG_DEFEATED_WALLY_VICTORY_ROAD 0x7E
+#define FLAG_MET_PRETTY_PETAL_SHOP_OWNER 0x7F
+
+#define FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN 0x81
+#define FLAG_DEFEATED_RIVAL_ROUTE103 0x82
+#define FLAG_RECEIVED_DOLL_LANETTE 0x83
+#define FLAG_RECEIVED_POTION_OLDALE 0x84
+#define FLAG_RECEIVED_AMULET_COIN 0x85
+#define FLAG_PENDING_DAYCARE_EGG 0x86
+#define FLAG_THANKED_FOR_PLAYING_WITH_WALLY 0x87
+
+#define FLAG_RECEIVED_HM01 0x89
+
+#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY 0x8B
+#define FLAG_RECEIVED_6_SODA_POP 0x8C
+#define FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS 0x8D
+#define FLAG_DEVON_GOODS_STOLEN 0x8E
+#define FLAG_RECOVERED_DEVON_GOODS 0x8F
+#define FLAG_RETURNED_DEVON_GOODS 0x90
+
+#define FLAG_MR_BRINEY_SAILING_INTRO 0x93
+#define FLAG_DOCK_REJECTED_DEVON_GOODS 0x94
+#define FLAG_DELIVERED_DEVON_GOODS 0x95
+#define FLAG_RECEIVED_CONTEST_PASS 0x96
+#define FLAG_RECEIVED_CASTFORM 0x97
+#define FLAG_RECEIVED_SUPER_ROD 0x98
+#define FLAG_RUSTBORO_NPC_TRADE_COMPLETED 0x99
+#define FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED 0x9A
+#define FLAG_FORTREE_NPC_TRADE_COMPLETED 0x9B
+
+#define FLAG_UNKNOWN_9F 0x9F
+#define FLAG_COOL_PAINTING_MADE 0xA0
+#define FLAG_BEAUTY_PAINTING_MADE 0xA1
+#define FLAG_CUTE_PAINTING_MADE 0xA2
+#define FLAG_SMART_PAINTING_MADE 0xA3
+#define FLAG_TOUGH_PAINTING_MADE 0xA4
+#define FLAG_RECEIVED_TM39 0xA5
+#define FLAG_RECEIVED_TM08 0xA6
+#define FLAG_RECEIVED_TM34 0xA7
+#define FLAG_RECEIVED_TM50 0xA8
+#define FLAG_RECEIVED_TM42 0xA9
+#define FLAG_RECEIVED_TM40 0xAA
+#define FLAG_RECEIVED_TM04 0xAB
+#define FLAG_RECEIVED_TM03 0xAC
+#define FLAG_DECORATION_1 0xAD
+#define FLAG_DECORATION_2 0xAE
+#define FLAG_DECORATION_3 0xAF
+#define FLAG_DECORATION_4 0xB0
+#define FLAG_DECORATION_5 0xB1
+#define FLAG_DECORATION_6 0xB2
+#define FLAG_DECORATION_7 0xB3
+#define FLAG_DECORATION_8 0xB4
+#define FLAG_DECORATION_9 0xB5
+#define FLAG_DECORATION_10 0xB6
+#define FLAG_DECORATION_11 0xB7
+#define FLAG_DECORATION_12 0xB8
+#define FLAG_DECORATION_13 0xB9
+#define FLAG_DECORATION_14 0xBA
+#define FLAG_DECORATION_15 0xBB
+#define FLAG_RECEIVED_POKENAV 0xBC
+#define FLAG_DELIVERED_STEVEN_LETTER 0xBD
+#define FLAG_DEFEATED_WALLY_MAUVILLE 0xBE
+
+#define FLAG_RECEIVED_SUN_STONE_MOSSDEEP 0xC0
+#define FLAG_WALLY_SPEECH 0xC1
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 0xC2
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 0xC3
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 0xC4
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 0xC5
+#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 0xC6
+#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7
+#define FLAG_RECEIVED_RED_SCARF 0xC8
+#define FLAG_RECEIVED_BLUE_SCARF 0xC9
+#define FLAG_RECEIVED_PINK_SCARF 0xCA
+#define FLAG_RECEIVED_GREEN_SCARF 0xCB
+#define FLAG_RECEIVED_YELLOW_SCARF 0xCC
+
+#define FLAG_ECOUNTERED_LATIAS_OR_LATIOS 0xCE
+
+#define FLAG_RECEIVED_BASEMENT_KEY 0xD0
+#define FLAG_RECEIVED_TM24 0xD1
+
+#define FLAG_RECEIVED_RED_OR_BLUE_ORB 0xD4
+#define FLAG_RECEIVED_PREMIER_BALL_RUSTBORO 0xD5
+
+#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_1 0xD7
+#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_2 0xD8
+#define FLAG_MET_DIVING_TREASURE_HUNTER 0xD9
+#define FLAG_MET_WAILMER_TRAINER 0xDA
+#define FLAG_EVIL_LEADER_PLEASE_STOP 0xDB
+
+#define FLAG_RECEIVED_GO_GOGGLES 0xDD
+#define FLAG_WINGULL_SENT_ON_ERRAND 0xDE
+#define FLAG_RECEIVED_MENTAL_HERB 0xDF
+#define FLAG_WINGULL_DELIVERED_MAIL 0xE0
+#define FLAG_RECEIVED_20_COINS 0xE1
+#define FLAG_RECEIVED_STARTER_DOLL 0xE2
+#define FLAG_RECEIVED_GOOD_ROD 0xE3
+#define FLAG_REGI_DOORS_OPENED 0xE4
+#define FLAG_RECEIVED_TM27 0xE5
+#define FLAG_RECEIVED_TM36 0xE6
+#define FLAG_RECEIVED_TM05 0xE7
+#define FLAG_RECEIVED_TM19 0xE8
+
+#define FLAG_RECEIVED_TM44 0xEA
+#define FLAG_RECEIVED_TM45 0xEB
+#define FLAG_RECEIVED_GLASS_ORNAMENT 0xEC
+#define FLAG_RECEIVED_SILVER_SHIELD 0xED
+#define FLAG_RECEIVED_GOLD_SHIELD 0xEE
+#define FLAG_USED_STORAGE_KEY 0xEF
+#define FLAG_USED_ROOM_1_KEY 0xF0
+#define FLAG_USED_ROOM_2_KEY 0xF1
+#define FLAG_USED_ROOM_4_KEY 0xF2
+#define FLAG_USED_ROOM_6_KEY 0xF3
+#define FLAG_MET_PROF_COSMO 0xF4
+#define FLAG_RECEIVED_WAILMER_DOLL 0xF5
+#define FLAG_RECEIVED_CHESTO_BERRY_ROUTE104 0xF6
+#define FLAG_DEFEATED_SS_TIDAL_TRAINERS 0xF7
+#define FLAG_RECEIVED_SPELON_BERRY 0xF8
+#define FLAG_RECEIVED_PAMTRE_BERRY 0xF9
+#define FLAG_RECEIVED_WATMEL_BERRY 0xFA
+#define FLAG_RECEIVED_DURIN_BERRY 0xFB
+#define FLAG_RECEIVED_BELUE_BERRY 0xFC
+
+#define FLAG_RECEIVED_CHARCOAL 0xFE
+#define FLAG_LATIOS_OR_LATIAS_ROAMING 0xFF
+#define FLAG_RECEIVED_REPEAT_BALL 0x100
+#define FLAG_RECEIVED_OLD_ROD 0x101
+#define FLAG_RECEIVED_COIN_CASE 0x102
+#define FLAG_RETURNED_RED_OR_BLUE_ORB 0x103
+#define FLAG_RECEIVED_TM49 0x104
+#define FLAG_RECEIVED_TM28 0x105
+#define FLAG_RECEIVED_TM09 0x106
+#define FLAG_ENTERED_ELITE_FOUR 0x107
+#define FLAG_RECEIVED_TM10 0x108
+#define FLAG_RECEIVED_TM41 0x109
+#define FLAG_RECEIVED_LAVARIDGE_EGG 0x10A
+#define FLAG_RECEIVED_FOSSIL_MON 0x10B
+#define FLAG_DECORATION_16 0x10C
+#define FLAG_RECEIVED_TM46 0x10D
+#define FLAG_CONTEST_SKETCH_CREATED 0x10E
+#define FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE 0x10F
+#define FLAG_RECEIVED_EXP_SHARE 0x110
+#define FLAG_POKERUS_EXPLAINED 0x111
+#define FLAG_RECEIVED_RUNNING_SHOES 0x112
+#define FLAG_RECEIVED_QUICK_CLAW 0x113
+#define FLAG_RECEIVED_KINGS_ROCK 0x114
+#define FLAG_RECEIVED_MACHO_BRACE 0x115
+#define FLAG_RECEIVED_SOOTHE_BELL 0x116
+#define FLAG_RECEIVED_WHITE_HERB 0x117
+#define FLAG_RECEIVED_SOFT_SAND 0x118
+
+#define FLAG_RECEIVED_CLEANSE_TAG 0x11A
+#define FLAG_RECEIVED_FOCUS_BAND 0x11B
+#define FLAG_DECLINED_WALLY_BATTLE_MAUVILLE 0x11C
+#define FLAG_RECEIVED_DEVON_SCOPE 0x11D
+#define FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE 0x11E
+#define FLAG_MET_DEVON_EMPLOYEE 0x11F
+#define FLAG_MET_RIVAL_RUSTBORO 0x120
+#define FLAG_RECEIVED_SILK_SCARF 0x121
+#define FLAG_NOT_READY_FOR_BATTLE_ROUTE120 0x122
+#define FLAG_RECEIVED_SS_TICKET 0x123
+#define FLAG_MET_RIVAL_LILYCOVE 0x124
+#define FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE 0x125
+#define FLAG_EXCHANGED_SCANNER 0x126
+#define FLAG_KECLEON_FLED_FORTREE 0x127
+#define FLAG_PETALBURG_MART_EXPANDED_ITEMS 0x128
+#define FLAG_RECEIVED_MIRACLE_SEED 0x129
+#define FLAG_RECEIVED_BELDUM 0x12A
+#define FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK 0x12B
+#define FLAG_MET_FANCLUB_YOUNGER_BROTHER 0x12C
+#define FLAG_RIVAL_LEFT_FOR_ROUTE103 0x12D
+#define FLAG_OMIT_DIVE_FROM_STEVEN_LETTER 0x12E
+
+#define FLAG_UNKNOWN_2B8 0x2B8 // TODO: pokemon storage system?
+
+#define FLAG_HIDE_BIRCH_STARTERS_BAG 0x2BC
+
+#define FLAG_HIDE_BIRCH_BATTLE_POOCHYENA 0x2D0
+#define FLAG_HIDE_BIRCH_IN_LAB 0x2D1
+#define FLAG_HIDE_MAY_UPSTAIRS 0x2D2
+#define FLAG_HIDE_RIVAL_ROUTE103 0x2D3
+#define FLAG_HIDE_DEVON_PETALBURG_WOODS 0x2D4
+#define FLAG_HIDE_EVIL_TEAM_PETALBURG_WOODS 0x2D5
+#define FLAG_HIDE_WALLY_PETALBURG 0x2D6
+#define FLAG_HIDE_STEVENS_LETTER 0x2D7
+#define FLAG_HIDE_WALLY_MOM_PETALBURG_1 0x2D8
+
+#define FLAG_HIDE_GRUNT_RUSTBORO 0x2DB
+#define FLAG_HIDE_DEVON_RUSTBORO 0x2DC
+#define FLAG_HIDE_SLEEPING_MON_SEAFLOOR_CAVERN 0x2DD
+#define FLAG_HIDE_NORMAN_LITTLEROOT 0x2DE
+
+#define FLAG_UNKNOWN_2E1 0x2E1
+#define FLAG_HIDE_MR_BRINEY_ROUTE104 0x2E2
+#define FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE 0x2E3
+#define FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN 0x2E4
+#define FLAG_HIDE_MR_BRINEY_ROUTE109 0x2E5
+#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104 0x2E6
+#define FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD 0x2E7
+#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109 0x2E8
+
+#define FLAG_UNKNOWN_2EB 0x2EB
+#define FLAG_UNKNOWN_2EC 0x2EC
+#define FLAG_UNKNOWN_2ED 0x2ED
+#define FLAG_HIDE_POOCHYENA_ROUTE101 0x2EE
+#define FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD 0x2EF
+#define FLAG_HIDE_MOM_LITTLEROOT 0x2F0
+
+#define FLAG_HIDE_MACHOKE_MOVER_1 0x2F2
+#define FLAG_HIDE_MACHOKE_MOVER_2 0x2F3
+#define FLAG_UNKNOWN_2F4 0x2F4
+#define FLAG_HIDE_MOM_UPSTAIRS 0x2F5
+#define FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS 0x2F6
+#define FLAG_HIDE_MAY_MOM_DOWNSTAIRS 0x2F7
+#define FLAG_HIDE_BRENDAN_UPSTAIRS 0x2F8
+#define FLAG_HIDE_MOVING_TRUCK_BRENDAN 0x2F9
+#define FLAG_HIDE_MOVING_TRUCK_MAY 0x2FA
+
+#define FLAG_HIDE_VICTOR_WINSTRATE 0x300
+#define FLAG_HIDE_VICTORIA_WINSTRATE 0x301
+#define FLAG_HIDE_VIVI_WINSTRATE 0x302
+#define FLAG_HIDE_VICKI_WINSTRATE 0x303
+#define FLAG_HIDE_NORMAN_PETALBURG_GYM 0x304
+#define FLAG_HIDE_RAYQUAZA 0x305
+#define FLAG_HIDE_LILYCOVE_CONTEST_ATTENDENT_1 0x306
+#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY 0x308
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL 0x309
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN 0x30A
+#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER 0x30B
+#define FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS 0x30C
+#define FLAG_HIDE_PETALBURG_GYM_GUIDE 0x30D
+#define FLAG_UNKNOWN_30E 0x30E
+#define FLAG_UNKNOWN_30F 0x30F
+#define FLAG_HIDE_BRENDAN_MOM 0x310
+#define FLAG_HIDE_MAY_MOM 0x311
+
+#define FLAG_HIDE_FANCLUB_OLD_LADY 0x315
+#define FLAG_HIDE_FANCLUB_BOY 0x316
+#define FLAG_HIDE_FANCLUB_LITTLE_BOY 0x317
+#define FLAG_HIDE_FANCLUB_LADY 0x318
+
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_1 0x31C
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_1 0x31D
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_1 0x31E
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_2 0x31F
+#define FLAG_HIDE_CONTEST_REPORTER_FALLARBOR 0x320
+#define FLAG_HIDE_CONTEST_REPORTER_VERDANTURF 0x321
+#define FLAG_HIDE_CONTEST_REPORTER_LILYCOVE 0x322
+#define FLAG_HIDE_CONTEST_REPORTER_SLATEPORT 0x323
+#define FLAG_HIDE_WALLY_MAUVILLE 0x324
+#define FLAG_HIDE_WALLY_FATHER_MAUVILLE 0x325
+#define FLAG_HIDE_WALLY_WANDAS_HOUSE 0x326
+#define FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL 0x327
+#define FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE 0x328
+#define FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE 0x329
+
+#define FLAG_HIDE_WALLY_FATHER_PETALBURG 0x32B
+#define FLAG_HIDE_WALLY_MOTHER_PETALBURG 0x32C
+#define FLAG_HIDE_LOST_GLASSES_MAN 0x32D
+#define FLAG_HIDE_RIVAL_RUSTBORO 0x32E
+#define FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM 0x32F
+#define FLAG_HIDE_WALLACE_SOOTOPOLIS 0x330
+
+#define FLAG_HIDE_GRUNTS_BLOCKING_CABLE_CAR 0x333
+
+#define FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT 0x335
+#define FLAG_HIDE_GRUNT_2_BLOCKING_HIDEOUT 0x336
+#define FLAG_UNKNOWN_337 0x337
+
+#define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339
+
+#define FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN 0x33C
+#define FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN 0x33D
+
+#define FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x33F
+
+#define FLAG_HIDE_STEVEN_GRANITE_CAVE 0x341
+#define FLAG_HIDE_STEVEN_ROUTE128 0x342
+#define FLAG_HIDE_GABBY_AND_TY_SLATEPORT 0x343
+
+#define FLAG_HIDE_STERN_SLATEPORT 0x348
+#define FLAG_HIDE_STERN_SLATEPORT_HARBOR 0x349
+
+#define FLAG_UNKNOWN_34B 0x34B
+#define FLAG_UNKNOWN_34C 0x34C
+#define FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR 0x34D
+#define FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR 0x34E
+#define FLAG_UNKNOWN_34F 0x34F
+#define FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR 0x350
+#define FLAG_HIDE_MAY_PICHU_DOLL 0x351
+
+#define FLAG_HIDE_RIVAL_ROUTE119 0x353
+#define FLAG_HIDE_GRUNTS_LILYCOVE 0x354
+
+#define FLAG_HIDE_SOOTOPOLIS_RESIDENTS 0x356
+#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1 0x357
+#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2 0x358
+
+#define FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD 0x35A
+#define FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN 0x35B
+#define FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR 0x35C
+#define FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR 0x35D
+
+#define FLAG_HIDE_WALLY_PETALBURG_GYM 0x362
+#define FLAG_UNKNOWN_363 0x363
+#define FLAG_HIDE_FAT_MAN_LITTLEROOT 0x364
+#define FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD 0x365
+#define FLAG_HIDE_LANETTE 0x366
+#define FLAG_HIDE_LANETTE_FALLARBOR 0x367
+#define FLAG_HIDE_TRICKMASTER_ENTRANCE 0x368
+
+#define FLAG_HIDE_MT_CHIMNEY_PEOPLE 0x36D
+#define FLAG_HIDE_GRUNT_RUSTURF_TUNNEL 0x36E
+#define FLAG_HIDE_BRINEY_RUSTURF_TUNNEL 0x36F
+#define FLAG_HIDE_PEEKO_RUSTURF_TUNNEL 0x370
+#define FLAG_HIDE_PEEKO_BRINEY_HOUSE 0x371
+#define FLAG_HIDE_EVIL_TEAM_SLATEPORT 0x372
+#define FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM 0x373
+#define FLAG_HIDE_GRUNT_1_OCEANIC_MUSEUM_2F 0x374
+#define FLAG_HIDE_GRUNT_2_OCEANIC_MUSEUM_2F 0x375
+#define FLAG_HIDE_EVIL_TEAM_LEADER_OCEANIC_MUSEUM_2F 0x376
+#define FLAG_HIDE_STERN_OCEANIC_MUSEUM_2F 0x377
+#define FLAG_HIDE_BATTLE_TOWER_OPPONENT 0x378
+#define FLAG_HIDE_RIVAL_BIRCH_LAB 0x379
+#define FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE 0x37A
+#define FLAG_HIDE_BRINEY_ROUTE116 0x37B
+#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F 0x37C
+#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F 0x37D
+#define FLAG_HIDE_TUNNER_DIGGER_ROUTE116 0x37E
+#define FLAG_HIDE_ARTIST_LILCOVE_CONTEST 0x37F
+#define FLAG_UNKNOWN_BIRCH_380 0x380 // TODO: what should this be called?
+#define FLAG_HIDE_BIRCH_ROUTE101 0x381
+#define FLAG_HIDE_BIRCH_ROUTE103 0x382
+#define FLAG_HIDE_TRICKMASTER_END 0x383
+#define FLAG_HIDE_EVIL_TEAM_ROUTE110 0x384
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_2 0x385
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_2 0x386
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_3 0x387
+#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_3 0x388
+#define FLAG_HIDE_WORKERS_SLATEPORT_HARBOR 0x389
+#define FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE 0x38A
+#define FLAG_HIDE_AZURILL_FALLARBOR 0x38B
+#define FLAG_HIDE_FERRY_ATTENDANT_LILYCOVE 0x38C
+#define FLAG_HIDE_FERRY_SAILOR_LILYCOVE 0x38D
+#define FLAG_HIDE_LATIOS_OR_LATIAS_FLYING 0x38E
+#define FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY 0x38F
+#define FLAG_HIDE_WATTSON_MAUVILLE 0x390
+#define FLAG_HIDE_WATTSON_MAUVILLE_GYM 0x391
+#define FLAG_HIDE_GRUNTS_ROUTE121 0x392
+#define FLAG_UNKNOWN_393 0x393
+#define FLAG_HIDE_LEADER_MT_PYRE_SUMMIT 0x394
+#define FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT 0x395
+#define FLAG_HIDE_REPORTER_BATTLE_TOWER 0x396
+#define FLAG_HIDE_RIVAL_ROUTE110 0x397
+#define FLAG_HIDE_RIVAL_CHAMPIONS_ROOM 0x398
+#define FLAG_HIDE_BIRCH_CHAMPIONS_ROOM 0x399
+#define FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110 0x39A
+#define FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE 0x39B
+#define FLAG_HIDE_GRUNTS_HIDEOUTS 0x39C
+#define FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE 0x39D
+#define FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY 0x39E
+#define FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY 0x39F
+#define FLAG_HIDE_PROF_COSMO_FALLARBOR 0x3A0
+#define FLAG_HIDE_RIVAL_LAVARIDGE_1 0x3A1
+#define FLAG_HIDE_RIVAL_LAVARIDGE_2 0x3A2
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4
+#define FLAG_HIDE_WINGULL_FORTREE_HOUSE 0x3A5
+#define FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE 0x3A6
+#define FLAG_HIDE_REGIROCK 0x3A7
+#define FLAG_HIDE_REGICE 0x3A8
+#define FLAG_HIDE_REGISTEEL 0x3A9
+#define FLAG_HIDE_GRUNTS_METEOR_FALLS_1F 0x3AA
+#define FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F 0x3AB
+#define FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL 0x3AC
+#define FLAG_HIDE_AWARD_MAN_BATTLE_TOWER 0x3AD
+#define FLAG_HIDE_PROF_COSMO_METEOR_FALLS 0x3AE
+#define FLAG_HIDE_SUBMARINE_SHADOW_HIDEOUT 0x3AF
+#define FLAG_HIDE_EVIL_LEADER_ROUTE128 0x3B0
+#define FLAG_HIDE_OTHER_LEADER_ROUTE128 0x3B1
+#define FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x3B2
+#define FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116 0x3B3
+#define FLAG_HIDE_TM_SALESMAN_SLATEPORT 0x3B4
+#define FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F 0x3B5
+#define FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL 0x3B6
+#define FLAG_HIDE_TM_49_GIVER_SS_TIDAL 0x3B7
+#define FLAG_HIDE_TOOK_SHOAL_SALT_1 0x3B8
+#define FLAG_HIDE_TOOK_SHOAL_SALT_2 0x3B9
+#define FLAG_HIDE_TOOK_SHOAL_SALT_3 0x3BA
+#define FLAG_HIDE_TOOK_SHOAL_SALT_4 0x3BB
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_1 0x3BC
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_2 0x3BD
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_3 0x3BE
+#define FLAG_HIDE_TOOK_SHOAL_SHELL_4 0x3BF
+#define FLAG_HIDE_SECRET_POWER_MAN 0x3C0
+#define FLAG_HIDE_OCEANIC_MUSEUM_VISITORS 0x3C1
+#define FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART 0x3C2
+#define FLAG_HIDE_ROOT_FOSSIL 0x3C3
+#define FLAG_HIDE_CLAW_FOSSIL 0x3C4
+#define FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM 0x3C5
+#define FLAG_HIDE_STEVEN_ROUTE118 0x3C6
+#define FLAG_HIDE_STEVEN_STEVENS_HOUSE 0x3C7
+#define FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE 0x3C8
+#define FLAG_HIDE_KECLEON_FORTREE 0x3C9
+#define FLAG_HIDE_KECLEON_ROUTE120_1 0x3CA
+#define FLAG_HIDE_RIVAL_LILYCOVE_MART 0x3CB
+#define FLAG_HIDE_STEVEN_ROUTE120 0x3CC
+#define FLAG_HIDE_STEVEN_SOOTOPOLIS 0x3CD
+#define FLAG_HIDE_VOLTORB_1_NEW_MAUVILLE 0x3CE
+#define FLAG_HIDE_VOLTORB_2_NEW_MAUVILLE 0x3CF
+#define FLAG_HIDE_VOLTORB_3_NEW_MAUVILLE 0x3D0
+#define FLAG_HIDE_ELECTRODE_1_HIDEOUT 0x3D1
+#define FLAG_HIDE_ELECTRODE_2_HIDEOUT 0x3D2
+#define FLAG_HIDE_RIVAL_OLDALE_TOWN 0x3D3
+#define FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION 0x3D4
+#define FLAG_HIDE_KECLEON_ROUTE120_2 0x3D5
+#define FLAG_HIDE_KECLEON_ROUTE120_3 0x3D6
+#define FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL 0x3D7
+#define FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE 0x3D8
+#define FLAG_HIDE_KECLEON_ROUTE120_4 0x3D9
+#define FLAG_HIDE_KECLEON_ROUTE120_5 0x3DA
+#define FLAG_HIDE_KECLEON_ROUTE120_6 0x3DB
+#define FLAG_HIDE_KECLEON_ROUTE120_7 0x3DC
+#define FLAG_HIDE_KECLEON_ROUTE119_1 0x3DD
+#define FLAG_HIDE_KECLEON_ROUTE119_2 0x3DE
+#define FLAG_HIDE_BOY_ROUTE101 0x3DF
+
+#define FLAG_ITEM_ROUTE102_1 0x3E8
+#define FLAG_ITEM_ROUTE116_1 0x3E9
+#define FLAG_ITEM_ROUTE104_1 0x3EA
+#define FLAG_ITEM_ROUTE105_1 0x3EB
+#define FLAG_ITEM_ROUTE106_1 0x3EC
+#define FLAG_ITEM_ROUTE109_1 0x3ED
+#define FLAG_ITEM_ROUTE110_1 0x3EE
+#define FLAG_ITEM_ROUTE110_2 0x3EF
+#define FLAG_ITEM_ROUTE111_1 0x3F0
+#define FLAG_ITEM_ROUTE111_2 0x3F1
+#define FLAG_ITEM_ROUTE111_3 0x3F2
+#define FLAG_ITEM_ROUTE112_1 0x3F3
+#define FLAG_ITEM_ROUTE113_1 0x3F4
+#define FLAG_ITEM_ROUTE113_2 0x3F5
+#define FLAG_ITEM_ROUTE114_1 0x3F6
+#define FLAG_ITEM_ROUTE114_2 0x3F7
+#define FLAG_ITEM_ROUTE115_1 0x3F8
+#define FLAG_ITEM_ROUTE115_2 0x3F9
+#define FLAG_ITEM_ROUTE115_3 0x3FA
+#define FLAG_ITEM_ROUTE116_2 0x3FB
+#define FLAG_ITEM_ROUTE116_3 0x3FC
+#define FLAG_ITEM_ROUTE116_4 0x3FD
+#define FLAG_ITEM_ROUTE117_1 0x3FE
+#define FLAG_ITEM_ROUTE117_2 0x3FF
+#define FLAG_ITEM_ROUTE119_1 0x400
+#define FLAG_ITEM_ROUTE119_2 0x401
+#define FLAG_ITEM_ROUTE119_3 0x402
+#define FLAG_ITEM_ROUTE119_4 0x403
+#define FLAG_ITEM_ROUTE119_5 0x404
+#define FLAG_ITEM_ROUTE119_6 0x405
+#define FLAG_ITEM_ROUTE120_1 0x406
+#define FLAG_ITEM_ROUTE120_2 0x407
+#define FLAG_ITEM_ROUTE123_1 0x408
+#define FLAG_ITEM_ROUTE123_2 0x409
+#define FLAG_ITEM_ROUTE127_1 0x40A
+#define FLAG_ITEM_ROUTE127_2 0x40B
+#define FLAG_ITEM_ROUTE132_1 0x40C
+#define FLAG_ITEM_ROUTE133_1 0x40D
+#define FLAG_ITEM_ROUTE133_2 0x40E
+#define FLAG_ITEM_PETALBURG_1 0x40F
+#define FLAG_ITEM_PETALBURG_2 0x410
+#define FLAG_ITEM_RUSTBORO_1 0x411
+#define FLAG_ITEM_LILYCOVE_1 0x412
+#define FLAG_ITEM_MOSSDEEP_1 0x413
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_1 0x414
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_2 0x415
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_3 0x416
+#define FLAG_ITEM_METEOR_FALLS_1F_1R_4 0x417
+#define FLAG_ITEM_RUSTURF_TUNNEL_1 0x418
+#define FLAG_ITEM_RUSTURF_TUNNEL_2 0x419
+#define FLAG_ITEM_GRANITE_CAVE_1F_1 0x41A
+#define FLAG_ITEM_GRANITE_CAVE_B1F_1 0x41B
+#define FLAG_ITEM_MT_PYRE_5F_1 0x41C
+#define FLAG_ITEM_GRANITE_CAVE_B2F_1 0x41D
+#define FLAG_ITEM_GRANITE_CAVE_B2F_2 0x41E
+#define FLAG_ITEM_PETALBURG_WOODS_1 0x41F
+#define FLAG_ITEM_PETALBURG_WOODS_2 0x420
+#define FLAG_ITEM_ROUTE104_2 0x421
+#define FLAG_ITEM_PETALBURG_WOODS_3 0x422
+#define FLAG_ITEM_CAVE_OF_ORIGIN_B3F_1 0x423
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_1_1 0x424
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_1 0x425
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_2 0x426
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_1 0x427
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_2 0x428
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_4_1 0x429
+#define FLAG_ITEM_ROUTE124_1 0x42A
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_6_1 0x42B
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_7_1 0x42C
+#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_8_1 0x42D
+#define FLAG_ITEM_JAGGED_PASS_1 0x42E
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_1 0x42F
+#define FLAG_ITEM_AQUA_HIDEOUT_B2F_1 0x430
+#define FLAG_ITEM_MT_PYRE_EXTERIOR_1 0x431
+#define FLAG_ITEM_MT_PYRE_EXTERIOR_2 0x432
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_1 0x433
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_2 0x434
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_1 0x435
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2 0x436
+#define FLAG_ITEM_SCORCHED_SLAB_1 0x437
+#define FLAG_ITEM_METEOR_FALLS_B1F_2R_1 0x438
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ENTRANCE_1 0x439
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_INNER_ROOM_1 0x43A
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM_1 0x43B
+#define FLAG_ITEM_VICTORY_ROAD_1F_1 0x43C
+#define FLAG_ITEM_VICTORY_ROAD_1F_2 0x43D
+#define FLAG_ITEM_VICTORY_ROAD_B1F_1 0x43E
+#define FLAG_ITEM_VICTORY_ROAD_B1F_2 0x43F
+#define FLAG_ITEM_VICTORY_ROAD_B2F_1 0x440
+#define FLAG_ITEM_MT_PYRE_6F_1 0x441
+#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_1 0x442
+#define FLAG_ITEM_FIERY_PATH_1 0x443
+#define FLAG_ITEM_ROUTE124_2 0x444
+#define FLAG_ITEM_ROUTE124_3 0x445
+#define FLAG_ITEM_SAFARI_ZONE_NORTHWEST_1 0x446
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_1 0x447
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_1 0x448
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_1 0x449
+#define FLAG_ITEM_ABANDONED_SHIP_ROOM_B1F_1 0x44A
+#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_1 0x44B
+#define FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_1 0x44C
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_3 0x44D
+#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_4 0x44E
+#define FLAG_ITEM_ROUTE121_1 0x44F
+#define FLAG_ITEM_ROUTE123_3 0x450
+#define FLAG_ITEM_ROUTE126_1 0x451
+#define FLAG_ITEM_ROUTE119_7 0x452
+#define FLAG_ITEM_ROUTE120_3 0x453
+#define FLAG_ITEM_ROUTE120_4 0x454
+#define FLAG_ITEM_ROUTE123_4 0x455
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_3 0x456
+#define FLAG_ITEM_FIERY_PATH_2 0x457
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_1 0x458
+#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_2 0x459
+#define FLAG_ITEM_ROUTE103_1 0x45A
+#define FLAG_ITEM_ROUTE104_3 0x45B
+#define FLAG_ITEM_MAUVILLE_1 0x45C
+#define FLAG_ITEM_PETALBURG_WOODS_4 0x45D
+#define FLAG_ITEM_ROUTE115_4 0x45E
+#define FLAG_ITEM_SAFARI_ZONE_NORTHEAST_1 0x45F
+#define FLAG_ITEM_MT_PYRE_3F_1 0x460
+#define FLAG_ITEM_ROUTE118_1 0x461
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_4 0x462
+#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_5 0x463
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_2 0x464
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_1 0x465
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_2 0x466
+#define FLAG_ITEM_MAGMA_HIDEOUT_B2F_1 0x467
+
+#define FLAG_ITEM_MT_PYRE_2F_1 0x469
+#define FLAG_ITEM_MT_PYRE_4F_1 0x46A
+#define FLAG_ITEM_SAFARI_ZONE_SOUTHWEST 0x46B
+#define FLAG_ITEM_AQUA_HIDEOUT_B1F_3 0x46C
+#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1 0x46D
+#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_3 0x46E
+#define FLAG_ITEM_ROUTE104_4 0x46F
+
+#define FLAG_DEFEATED_RUSTBORO_GYM 0x4B1
+
+#define FLAG_DEFEATED_DEWFORD_GYM 0x4B4
+
+#define FLAG_DEFEATED_MAUVILLE_GYM 0x4B8
+
+#define FLAG_DEFEATED_LAVARIDGE_GYM 0x4BD
+
+#define FLAG_DEFEATED_PETALBURG_GYM 0x4C1
+
+#define FLAG_DEFEATED_FORTREE_GYM 0x4C9
+
+#define FLAG_DEFEATED_MOSSDEEP_GYM 0x4CD
+
+#define FLAG_DEFEATED_SOOTOPOLIS_GYM 0x4D4
+
+#define FLAG_DEFEATED_ELITE_4_SYDNEY 0x4DD
+#define FLAG_DEFEATED_ELITE_4_PHOEBE 0x4DE
+#define FLAG_DEFEATED_ELITE_4_GLACIA 0x4DF
+#define FLAG_DEFEATED_ELITE_4_DRAKE 0x4E0
+
#define TRAINER_FLAG_START 0x500
+
// SYSTEM FLAGS
-#define SYS_POKEMON_GET 0x800
-#define SYS_POKEDEX_GET 0x801
-#define SYS_POKENAV_GET 0x802
-#define SYS_GAME_CLEAR 0x804
-#define SYS_CHAT_USED 0x805
-#define SYS_HIPSTER_MEET 0x806
+#define NUMBER_OF_TRAINERS 693
+#define SYSTEM_FLAGS (TRAINER_FLAG_START + NUMBER_OF_TRAINERS + 0x4B) // 0x800
+
+#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x00)
+#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x01)
+#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x02)
+#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x04)
+#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x05)
+#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x06)
// badges
-#define BADGE01_GET 0x807
-#define BADGE02_GET 0x808
-#define BADGE03_GET 0x809
-#define BADGE04_GET 0x80A
-#define BADGE05_GET 0x80B
-#define BADGE06_GET 0x80C
-#define BADGE07_GET 0x80D
-#define BADGE08_GET 0x80E
+#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x07)
+#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x08)
+#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x09)
+#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0x0A)
+#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0x0B)
+#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0x0C)
+#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0x0D)
+#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0x0E)
// cities and towns
-#define FLAG_VISITED_LITTLEROOT_TOWN 0x80F
-#define FLAG_VISITED_OLDALE_TOWN 0x810
-#define FLAG_VISITED_DEWFORD_TOWN 0x811
-#define FLAG_VISITED_LAVARIDGE_TOWN 0x812
-#define FLAG_VISITED_FALLARBOR_TOWN 0x813
-#define FLAG_VISITED_VERDANTURF_TOWN 0x814
-#define FLAG_VISITED_PACIFIDLOG_TOWN 0x815
-#define FLAG_VISITED_PETALBURG_CITY 0x816
-#define FLAG_VISITED_SLATEPORT_CITY 0x817
-#define FLAG_VISITED_MAUVILLE_CITY 0x818
-#define FLAG_VISITED_RUSTBORO_CITY 0x819
-#define FLAG_VISITED_FORTREE_CITY 0x81A
-#define FLAG_VISITED_LILYCOVE_CITY 0x81B
-#define FLAG_VISITED_MOSSDEEP_CITY 0x81C
-#define FLAG_VISITED_SOOTOPOLIS_CITY 0x81D
-#define FLAG_VISITED_EVER_GRANDE_CITY 0x81E
-
-#define SYS_USE_FLASH 0x828
-#define SYS_USE_STRENGTH 0x829
-#define SYS_WEATHER_CTRL 0x82A
-#define SYS_CYCLING_ROAD 0x82B
-#define SYS_SAFARI_MODE 0x82C
-#define SYS_CRUISE_MODE 0x82D
-
-#define SYS_TV_HOME 0x830
-#define SYS_TV_WATCH 0x831
-#define SYS_TV_START 0x832
-#define SYS_POPWORD_INPUT 0x833
-#define SYS_MIX_RECORD 0x834
-#define SYS_CLOCK_SET 0x835
-#define SYS_NATIONAL_DEX 0x836
-#define SYS_CAVE_SHIP 0x837
-#define SYS_CAVE_WONDER 0x838
-#define SYS_CAVE_BATTLE 0x839
-#define SYS_SHOAL_TIDE 0x83A
-#define SYS_RIBBON_GET 0x83B
-
-#define FLAG_UNLOCK_BATTLE_TOWER 0x848
-#define FLAG_UNLOCK_SOUTHERN_ISLAND 0x849
-
-#define SYS_PC_LANETTE 0x84B
-#define SYS_EXDATA_ENABLE 0x84C
-#define SYS_ENC_UP_ITEM 0x84D
-#define SYS_ENC_DOWN_ITEM 0x84E
-#define SYS_BRAILLE_DIG 0x84F
-#define SYS_BRAILLE_STRENGTH 0x850
-#define SYS_BRAILLE_WAIT 0x851
-#define SYS_BRAILLE_FLY 0x852
-#define SYS_HAS_EON_TICKET 0x853
-
-#define SYS_POKEMON_LEAGUE_FLY 0x854
-
-#define SYS_TV_LATI 0x85D
-
-#define SYS_SHOAL_ITEM 0x85F
-#define SYS_B_DASH 0x860 // got Running Shoes
-#define SYS_CTRL_OBJ_DELETE 0x861
-#define SYS_RESET_RTC_ENABLE 0x862
+#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0x0F)
+#define FLAG_VISITED_OLDALE_TOWN (SYSTEM_FLAGS + 0x10)
+#define FLAG_VISITED_DEWFORD_TOWN (SYSTEM_FLAGS + 0x11)
+#define FLAG_VISITED_LAVARIDGE_TOWN (SYSTEM_FLAGS + 0x12)
+#define FLAG_VISITED_FALLARBOR_TOWN (SYSTEM_FLAGS + 0x13)
+#define FLAG_VISITED_VERDANTURF_TOWN (SYSTEM_FLAGS + 0x14)
+#define FLAG_VISITED_PACIFIDLOG_TOWN (SYSTEM_FLAGS + 0x15)
+#define FLAG_VISITED_PETALBURG_CITY (SYSTEM_FLAGS + 0x16)
+#define FLAG_VISITED_SLATEPORT_CITY (SYSTEM_FLAGS + 0x17)
+#define FLAG_VISITED_MAUVILLE_CITY (SYSTEM_FLAGS + 0x18)
+#define FLAG_VISITED_RUSTBORO_CITY (SYSTEM_FLAGS + 0x19)
+#define FLAG_VISITED_FORTREE_CITY (SYSTEM_FLAGS + 0x1A)
+#define FLAG_VISITED_LILYCOVE_CITY (SYSTEM_FLAGS + 0x1B)
+#define FLAG_VISITED_MOSSDEEP_CITY (SYSTEM_FLAGS + 0x1C)
+#define FLAG_VISITED_SOOTOPOLIS_CITY (SYSTEM_FLAGS + 0x1D)
+#define FLAG_VISITED_EVER_GRANDE_CITY (SYSTEM_FLAGS + 0x1E)
+
+#define FLAG_SYS_USE_FLASH (SYSTEM_FLAGS + 0x28)
+#define FLAG_SYS_USE_STRENGTH (SYSTEM_FLAGS + 0x29)
+#define FLAG_SYS_WEATHER_CTRL (SYSTEM_FLAGS + 0x2A)
+#define FLAG_SYS_CYCLING_ROAD (SYSTEM_FLAGS + 0x2B)
+#define FLAG_SYS_SAFARI_MODE (SYSTEM_FLAGS + 0x2C)
+#define FLAG_SYS_CRUISE_MODE (SYSTEM_FLAGS + 0x2D)
+
+#define FLAG_SYS_TV_HOME (SYSTEM_FLAGS + 0x30)
+#define FLAG_SYS_TV_WATCH (SYSTEM_FLAGS + 0x31)
+#define FLAG_SYS_TV_START (SYSTEM_FLAGS + 0x32)
+#define FLAG_SYS_POPWORD_INPUT (SYSTEM_FLAGS + 0x33)
+#define FLAG_SYS_MIX_RECORD (SYSTEM_FLAGS + 0x34)
+#define FLAG_SYS_CLOCK_SET (SYSTEM_FLAGS + 0x35)
+#define FLAG_SYS_NATIONAL_DEX (SYSTEM_FLAGS + 0x36)
+#define FLAG_SYS_CAVE_SHIP (SYSTEM_FLAGS + 0x37)
+#define FLAG_SYS_CAVE_WONDER (SYSTEM_FLAGS + 0x38)
+#define FLAG_SYS_CAVE_BATTLE (SYSTEM_FLAGS + 0x39)
+#define FLAG_SYS_SHOAL_TIDE (SYSTEM_FLAGS + 0x3A)
+#define FLAG_SYS_RIBBON_GET (SYSTEM_FLAGS + 0x3B)
+
+#define FLAG_LANDMARK_FLOWER_SHOP (SYSTEM_FLAGS + 0x3C)
+#define FLAG_LANDMARK_MR_BRINEY_HOUSE (SYSTEM_FLAGS + 0x3D)
+#define FLAG_LANDMARK_ABANDONED_SHIP (SYSTEM_FLAGS + 0x3E)
+#define FLAG_LANDMARK_SEASHORE_HOUSE (SYSTEM_FLAGS + 0x3F)
+#define FLAG_LANDMARK_NEW_MAUVILLE (SYSTEM_FLAGS + 0x40)
+#define FLAG_LANDMARK_OLD_LADY_REST_SHOP (SYSTEM_FLAGS + 0x41)
+#define FLAG_LANDMARK_TRICK_HOUSE (SYSTEM_FLAGS + 0x42)
+#define FLAG_LANDMARK_WINSTRATE_FAMILY (SYSTEM_FLAGS + 0x43)
+#define FLAG_LANDMARK_GLASS_WORKSHOP (SYSTEM_FLAGS + 0x44)
+#define FLAG_LANDMARK_LANETTES_HOUSE (SYSTEM_FLAGS + 0x45)
+#define FLAG_LANDMARK_POKEMON_DAYCARE (SYSTEM_FLAGS + 0x46)
+#define FLAG_LANDMARK_SEAFLOOR_CAVERN (SYSTEM_FLAGS + 0x47)
+#define FLAG_LANDMARK_BATTLE_TOWER (SYSTEM_FLAGS + 0x48)
+#define FLAG_LANDMARK_SOUTHERN_ISLAND (SYSTEM_FLAGS + 0x49)
+#define FLAG_LANDMARK_FIERY_PATH (SYSTEM_FLAGS + 0x4A)
+
+#define FLAG_SYS_PC_LANETTE (SYSTEM_FLAGS + 0x4B)
+#define FLAG_SYS_EXDATA_ENABLE (SYSTEM_FLAGS + 0x4C)
+#define FLAG_SYS_ENC_UP_ITEM (SYSTEM_FLAGS + 0x4D)
+#define FLAG_SYS_ENC_DOWN_ITEM (SYSTEM_FLAGS + 0x4E)
+#define FLAG_SYS_BRAILLE_DIG (SYSTEM_FLAGS + 0x4F)
+#define FLAG_SYS_BRAILLE_STRENGTH (SYSTEM_FLAGS + 0x50)
+#define FLAG_SYS_BRAILLE_WAIT (SYSTEM_FLAGS + 0x51)
+#define FLAG_SYS_BRAILLE_FLY (SYSTEM_FLAGS + 0x52)
+#define FLAG_SYS_HAS_EON_TICKET (SYSTEM_FLAGS + 0x53)
+#define FLAG_SYS_POKEMON_LEAGUE_FLY (SYSTEM_FLAGS + 0x54)
+
+#define FLAG_LANDMARK_ISLAND_CAVE (SYSTEM_FLAGS + 0x55)
+#define FLAG_LANDMARK_DESERT_RUINS (SYSTEM_FLAGS + 0x56)
+#define FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE (SYSTEM_FLAGS + 0x57)
+#define FLAG_LANDMARK_SCORCHED_SLAB (SYSTEM_FLAGS + 0x58)
+#define FLAG_LANDMARK_ANCIENT_TOMB (SYSTEM_FLAGS + 0x59)
+#define FLAG_LANDMARK_TUNNELERS_REST_HOUSE (SYSTEM_FLAGS + 0x5A)
+#define FLAG_LANDMARK_HUNTERS_HOUSE (SYSTEM_FLAGS + 0x5B)
+#define FLAG_LANDMARK_SEALED_CHAMBER (SYSTEM_FLAGS + 0x5C)
+
+#define FLAG_SYS_TV_LATI (SYSTEM_FLAGS + 0x5D)
+
+#define FLAG_LANDMARK_SKY_PILLAR (SYSTEM_FLAGS + 0x5E)
+
+#define FLAG_SYS_SHOAL_ITEM (SYSTEM_FLAGS + 0x5F)
+#define FLAG_SYS_B_DASH (SYSTEM_FLAGS + 0x60) // got Running Shoes
+#define FLAG_SYS_CTRL_OBJ_DELETE (SYSTEM_FLAGS + 0x61)
+#define FLAG_SYS_RESET_RTC_ENABLE (SYSTEM_FLAGS + 0x62)
+
+#define FLAG_LANDMARK_BERRY_MASTERS_HOUSE (SYSTEM_FLAGS + 0x63)
+
+
+// Daily Flags. These 64 flags are cleared once per day.
+#define DAILY_FLAGS_START (SYSTEM_FLAGS + 0xC0)
+
+#define FLAG_DAILY_RECEIVED_BERRY_FALLARBOR (SYSTEM_FLAGS + 0xC1)
+#define FLAG_DAILY_UNKNOWN_8C2 (SYSTEM_FLAGS + 0xC2)
+
+#define FLAG_DAILY_PICKED_LOTTO_TICKET (SYSTEM_FLAGS + 0xCA)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE114 (SYSTEM_FLAGS + 0xCB)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE111 (SYSTEM_FLAGS + 0xCC)
+#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER (SYSTEM_FLAGS + 0xCD)
+#define FLAG_DAILY_RECEIVED_BERRY_ROUTE120 (SYSTEM_FLAGS + 0xCE)
+#define FLAG_DAILY_RECEIVED_BERRY_LILYCOVE (SYSTEM_FLAGS + 0xCF)
+#define FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP (SYSTEM_FLAGS + 0xD0)
+#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE (SYSTEM_FLAGS + 0xD1)
+#define FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS (SYSTEM_FLAGS + 0xD2)
+// Daily flags end at 0x8FF
// SPECIAL FLAGS (unknown purpose)
-#define SPECIAL_FLAG_1 0x4001
+#define FLAG_SPECIAL_FLAG_1 0x4001
#endif // GUARD_CONSTANTS_FLAGS_H