aboutsummaryrefslogtreecommitdiffstats
path: root/constants
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2026-01-07 22:05:20 -0500
committerGitHub <noreply@github.com>2026-01-07 22:05:20 -0500
commitfe1e76466b293c83e6cd3a7d4639fb3c49da26ad (patch)
treeaba22f9f595e09024b902c08ddfdac67ee0e85f3 /constants
parentUpdate RGBDS to 1.0.1 (although 1.0.0 still works) (diff)
downloadpokeyellow-fe1e76466b293c83e6cd3a7d4639fb3c49da26ad.tar.gz
pokeyellow-fe1e76466b293c83e6cd3a7d4639fb3c49da26ad.tar.xz
pokeyellow-fe1e76466b293c83e6cd3a7d4639fb3c49da26ad.zip
Use macros to enforce "missable/hide/show object" constraints, and rename them to "toggleable objects" (#557)
Diffstat (limited to 'constants')
-rw-r--r--constants/hide_show_constants.asm240
-rw-r--r--constants/map_constants.asm2
-rw-r--r--constants/toggle_constants.asm393
3 files changed, 394 insertions, 241 deletions
diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm
deleted file mode 100644
index b73271e8..00000000
--- a/constants/hide_show_constants.asm
+++ /dev/null
@@ -1,240 +0,0 @@
-DEF HIDE EQU $11
-DEF SHOW EQU $15
-
-; MissableObjects indexes (see data/maps/hide_show_data.asm)
-; this is a list of the sprites that can be enabled/disabled during the game
-; sprites marked with an X are constants that are never used
-; because those sprites are not (de)activated in a map's script
-; (they are either items or sprites that deactivate after battle
-; and are detected in wMissableObjectList)
-
- const_def
- const HS_PALLET_TOWN_OAK ; 00
- const HS_LYING_OLD_MAN ; 01
- const HS_OLD_MAN ; 02
- const HS_MUSEUM_GUY ; 03
- const HS_GYM_GUY ; 04
- const HS_CERULEAN_RIVAL ; 05
- const HS_CERULEAN_ROCKET ; 06
- const HS_CERULEAN_GUARD_1 ; 07
- const HS_CERULEAN_CAVE_GUY ; 08
- const HS_CERULEAN_GUARD_2 ; 09
- const HS_SAFFRON_CITY_1 ; 0A
- const HS_SAFFRON_CITY_2 ; 0B
- const HS_SAFFRON_CITY_3 ; 0C
- const HS_SAFFRON_CITY_4 ; 0D
- const HS_SAFFRON_CITY_5 ; 0E
- const HS_SAFFRON_CITY_6 ; 0F
- const HS_SAFFRON_CITY_7 ; 10
- const HS_SAFFRON_CITY_8 ; 11
- const HS_SAFFRON_CITY_9 ; 12
- const HS_SAFFRON_CITY_A ; 13
- const HS_SAFFRON_CITY_B ; 14
- const HS_SAFFRON_CITY_C ; 15
- const HS_SAFFRON_CITY_D ; 16
- const HS_SAFFRON_CITY_E ; 17
- const HS_SAFFRON_CITY_F ; 18
- const HS_ROUTE_2_ITEM_1 ; 19 X
- const HS_ROUTE_2_ITEM_2 ; 1A X
- const HS_ROUTE_4_ITEM ; 1B X
- const HS_ROUTE_9_ITEM ; 1C X
- const HS_ROUTE_12_SNORLAX ; 1D
- const HS_ROUTE_12_ITEM_1 ; 1E X
- const HS_ROUTE_12_ITEM_2 ; 1F X
- const HS_ROUTE_15_ITEM ; 20 X
- const HS_ROUTE_16_SNORLAX ; 21
- const HS_ROUTE_22_RIVAL_1 ; 22
- const HS_ROUTE_22_RIVAL_2 ; 23
- const HS_NUGGET_BRIDGE_GUY ; 24
- const HS_ROUTE_24_ITEM ; 25 X
- const HS_ROUTE_25_ITEM ; 26 X
- const HS_DAISY_SITTING ; 27
- const HS_DAISY_WALKING ; 28
- const HS_TOWN_MAP ; 29
- const HS_OAKS_LAB_RIVAL ; 2A
- const HS_STARTER_BALL_1 ; 2B
- const HS_STARTER_BALL_2 ; 2C
- const HS_STARTER_BALL_3 ; 2D
- const HS_OAKS_LAB_OAK_1 ; 2E
- const HS_POKEDEX_1 ; 2F
- const HS_POKEDEX_2 ; 30
- const HS_OAKS_LAB_OAK_2 ; 31
- const HS_VIRIDIAN_GYM_GIOVANNI ; 32
- const HS_VIRIDIAN_GYM_ITEM ; 33 X
- const HS_OLD_AMBER ; 34
- const HS_CERULEAN_CAVE_1F_ITEM_1 ; 35 X
- const HS_CERULEAN_CAVE_1F_ITEM_2 ; 36 X
- const HS_CERULEAN_CAVE_1F_ITEM_3 ; 37 X
- const HS_POKEMON_TOWER_2F_RIVAL ; 38
- const HS_POKEMON_TOWER_3F_ITEM ; 39 X
- const HS_POKEMON_TOWER_4F_ITEM_1 ; 3A X
- const HS_POKEMON_TOWER_4F_ITEM_2 ; 3B X
- const HS_POKEMON_TOWER_4F_ITEM_3 ; 3C X
- const HS_POKEMON_TOWER_5F_ITEM ; 3D X
- const HS_POKEMON_TOWER_6F_ITEM_1 ; 3E X
- const HS_POKEMON_TOWER_6F_ITEM_2 ; 3F X
- const HS_POKEMON_TOWER_7F_ROCKET_1 ; 40 X
- const HS_POKEMON_TOWER_7F_ROCKET_2 ; 41 X
- const HS_POKEMON_TOWER_7F_ROCKET_3 ; 42 X
- const HS_POKEMON_TOWER_7F_MR_FUJI ; 43
- const HS_MR_FUJIS_HOUSE_MR_FUJI ; 44
- const HS_CELADON_MANSION_EEVEE_GIFT ; 45
- const HS_GAME_CORNER_ROCKET ; 46
- const HS_WARDENS_HOUSE_ITEM ; 47 X
- const HS_POKEMON_MANSION_1F_ITEM_1 ; 48 X
- const HS_POKEMON_MANSION_1F_ITEM_2 ; 49 X
- const HS_FIGHTING_DOJO_GIFT_1 ; 4A
- const HS_FIGHTING_DOJO_GIFT_2 ; 4B
- const HS_SILPH_CO_1F_RECEPTIONIST ; 4C
- const HS_VOLTORB_1 ; 4D X
- const HS_VOLTORB_2 ; 4E X
- const HS_VOLTORB_3 ; 4F X
- const HS_ELECTRODE_1 ; 50 X
- const HS_VOLTORB_4 ; 51 X
- const HS_VOLTORB_5 ; 52 X
- const HS_ELECTRODE_2 ; 53 X
- const HS_VOLTORB_6 ; 54 X
- const HS_ZAPDOS ; 55 X
- const HS_POWER_PLANT_ITEM_1 ; 56 X
- const HS_POWER_PLANT_ITEM_2 ; 57 X
- const HS_POWER_PLANT_ITEM_3 ; 58 X
- const HS_POWER_PLANT_ITEM_4 ; 59 X
- const HS_POWER_PLANT_ITEM_5 ; 5A X
- const HS_MOLTRES ; 5B X
- const HS_VICTORY_ROAD_2F_ITEM_1 ; 5C X
- const HS_VICTORY_ROAD_2F_ITEM_2 ; 5D X
- const HS_VICTORY_ROAD_2F_ITEM_3 ; 5E X
- const HS_VICTORY_ROAD_2F_ITEM_4 ; 5F X
- const HS_VICTORY_ROAD_2F_BOULDER ; 60
- const HS_BILL_POKEMON ; 61
- const HS_BILL_1 ; 62
- const HS_BILL_2 ; 63
- const HS_VIRIDIAN_FOREST_ITEM_1 ; 64 X
- const HS_VIRIDIAN_FOREST_ITEM_2 ; 65 X
- const HS_VIRIDIAN_FOREST_ITEM_3 ; 66 X
- const HS_MT_MOON_1F_ITEM_1 ; 67 X
- const HS_MT_MOON_1F_ITEM_2 ; 68 X
- const HS_MT_MOON_1F_ITEM_3 ; 69 X
- const HS_MT_MOON_1F_ITEM_4 ; 6A X
- const HS_MT_MOON_1F_ITEM_5 ; 6B X
- const HS_MT_MOON_1F_ITEM_6 ; 6C X
- const HS_MT_MOON_B2F_FOSSIL_1 ; 6D
- const HS_MT_MOON_B2F_FOSSIL_2 ; 6E
- const HS_MT_MOON_B2F_ITEM_1 ; 6F X
- const HS_MT_MOON_B2F_ITEM_2 ; 70 X
- const HS_SS_ANNE_2F_RIVAL ; 71
- const HS_SS_ANNE_1F_ROOMS_ITEM ; 72 X
- const HS_SS_ANNE_2F_ROOMS_ITEM_1 ; 73 X
- const HS_SS_ANNE_2F_ROOMS_ITEM_2 ; 74 X
- const HS_SS_ANNE_B1F_ROOMS_ITEM_1 ; 75 X
- const HS_SS_ANNE_B1F_ROOMS_ITEM_2 ; 76 X
- const HS_SS_ANNE_B1F_ROOMS_ITEM_3 ; 77 X
- const HS_VICTORY_ROAD_3F_ITEM_1 ; 78 X
- const HS_VICTORY_ROAD_3F_ITEM_2 ; 79 X
- const HS_VICTORY_ROAD_3F_BOULDER ; 7A
- const HS_ROCKET_HIDEOUT_B1F_ITEM_1 ; 7B X
- const HS_ROCKET_HIDEOUT_B1F_ITEM_2 ; 7C X
- const HS_ROCKET_HIDEOUT_B2F_ITEM_1 ; 7D X
- const HS_ROCKET_HIDEOUT_B2F_ITEM_2 ; 7E X
- const HS_ROCKET_HIDEOUT_B2F_ITEM_3 ; 7F X
- const HS_ROCKET_HIDEOUT_B2F_ITEM_4 ; 80 X
- const HS_ROCKET_HIDEOUT_B3F_ITEM_1 ; 81 X
- const HS_ROCKET_HIDEOUT_B3F_ITEM_2 ; 82 X
- const HS_ROCKET_HIDEOUT_B4F_GIOVANNI ; 83
- const HS_ROCKET_HIDEOUT_B4F_ITEM_1 ; 84 X
- const HS_ROCKET_HIDEOUT_B4F_ITEM_2 ; 85 X
- const HS_ROCKET_HIDEOUT_B4F_ITEM_3 ; 86 X
- const HS_ROCKET_HIDEOUT_B4F_ITEM_4 ; 87
- const HS_ROCKET_HIDEOUT_B4F_ITEM_5 ; 88
- const HS_SILPH_CO_2F_1 ; 89 XXX never (de)activated?
- const HS_SILPH_CO_2F_2 ; 8A
- const HS_SILPH_CO_2F_3 ; 8B
- const HS_SILPH_CO_2F_4 ; 8C
- const HS_SILPH_CO_2F_5 ; 8D
- const HS_SILPH_CO_3F_1 ; 8E
- const HS_SILPH_CO_3F_2 ; 8F
- const HS_SILPH_CO_3F_ITEM ; 90 X
- const HS_SILPH_CO_4F_1 ; 91
- const HS_SILPH_CO_4F_2 ; 92
- const HS_SILPH_CO_4F_3 ; 93
- const HS_SILPH_CO_4F_ITEM_1 ; 94 X
- const HS_SILPH_CO_4F_ITEM_2 ; 95 X
- const HS_SILPH_CO_4F_ITEM_3 ; 96 X
- const HS_SILPH_CO_5F_1 ; 97
- const HS_SILPH_CO_5F_2 ; 98
- const HS_SILPH_CO_5F_3 ; 99
- const HS_SILPH_CO_5F_4 ; 9A
- const HS_SILPH_CO_5F_ITEM_1 ; 9B X
- const HS_SILPH_CO_5F_ITEM_2 ; 9C X
- const HS_SILPH_CO_5F_ITEM_3 ; 9D X
- const HS_SILPH_CO_6F_1 ; 9E
- const HS_SILPH_CO_6F_2 ; 9F
- const HS_SILPH_CO_6F_3 ; A0
- const HS_SILPH_CO_6F_ITEM_1 ; A1 X
- const HS_SILPH_CO_6F_ITEM_2 ; A2 X
- const HS_SILPH_CO_7F_1 ; A3
- const HS_SILPH_CO_7F_2 ; A4
- const HS_SILPH_CO_7F_3 ; A5
- const HS_SILPH_CO_7F_4 ; A6
- const HS_SILPH_CO_7F_RIVAL ; A7
- const HS_SILPH_CO_7F_ITEM_1 ; A8 X
- const HS_SILPH_CO_7F_ITEM_2 ; A9 X
- const HS_SILPH_CO_7F_8 ; AA XXX sprite doesn't exist
- const HS_SILPH_CO_8F_1 ; AB
- const HS_SILPH_CO_8F_2 ; AC
- const HS_SILPH_CO_8F_3 ; AD
- const HS_SILPH_CO_9F_1 ; AE
- const HS_SILPH_CO_9F_2 ; AF
- const HS_SILPH_CO_9F_3 ; B0
- const HS_SILPH_CO_10F_1 ; B1
- const HS_SILPH_CO_10F_2 ; B2
- const HS_SILPH_CO_10F_3 ; B3 XXX never (de)activated?
- const HS_SILPH_CO_10F_ITEM_1 ; B4 X
- const HS_SILPH_CO_10F_ITEM_2 ; B5 X
- const HS_SILPH_CO_10F_ITEM_3 ; B6 X
- const HS_SILPH_CO_11F_1 ; B7
- const HS_SILPH_CO_11F_2 ; B8
- const HS_SILPH_CO_11F_3 ; B9
- const HS_UNUSED_MAP_F4_1 ; BA XXX sprite doesn't exist
- const HS_POKEMON_MANSION_2F_ITEM ; BB X
- const HS_POKEMON_MANSION_3F_ITEM_1 ; BC X
- const HS_POKEMON_MANSION_3F_ITEM_2 ; BD X
- const HS_POKEMON_MANSION_B1F_ITEM_1 ; BE X
- const HS_POKEMON_MANSION_B1F_ITEM_2 ; BF X
- const HS_POKEMON_MANSION_B1F_ITEM_3 ; C0 X
- const HS_POKEMON_MANSION_B1F_ITEM_4 ; C1 X
- const HS_POKEMON_MANSION_B1F_ITEM_5 ; C2 X
- const HS_SAFARI_ZONE_EAST_ITEM_1 ; C3 X
- const HS_SAFARI_ZONE_EAST_ITEM_2 ; C4 X
- const HS_SAFARI_ZONE_EAST_ITEM_3 ; C5 X
- const HS_SAFARI_ZONE_EAST_ITEM_4 ; C6 X
- const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C7 X
- const HS_SAFARI_ZONE_NORTH_ITEM_2 ; C8 X
- const HS_SAFARI_ZONE_WEST_ITEM_1 ; C9 X
- const HS_SAFARI_ZONE_WEST_ITEM_2 ; CA X
- const HS_SAFARI_ZONE_WEST_ITEM_3 ; CB X
- const HS_SAFARI_ZONE_WEST_ITEM_4 ; CC X
- const HS_SAFARI_ZONE_CENTER_ITEM ; CD X
- const HS_CERULEAN_CAVE_2F_ITEM_1 ; CE X
- const HS_CERULEAN_CAVE_2F_ITEM_2 ; CF X
- const HS_CERULEAN_CAVE_2F_ITEM_3 ; D0 X
- const HS_MEWTWO ; D1 X
- const HS_CERULEAN_CAVE_B1F_ITEM_1 ; D2 X
- const HS_CERULEAN_CAVE_B1F_ITEM_2 ; D3 X
- const HS_VICTORY_ROAD_1F_ITEM_1 ; D4 X
- const HS_VICTORY_ROAD_1F_ITEM_2 ; D5 X
- const HS_CHAMPIONS_ROOM_OAK ; D6
- const HS_SEAFOAM_ISLANDS_1F_BOULDER_1 ; D7
- const HS_SEAFOAM_ISLANDS_1F_BOULDER_2 ; D8
- const HS_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; D9
- const HS_SEAFOAM_ISLANDS_B1F_BOULDER_2 ; DA
- const HS_SEAFOAM_ISLANDS_B2F_BOULDER_1 ; DB
- const HS_SEAFOAM_ISLANDS_B2F_BOULDER_2 ; DC
- const HS_SEAFOAM_ISLANDS_B3F_BOULDER_1 ; DD
- const HS_SEAFOAM_ISLANDS_B3F_BOULDER_2 ; DE
- const HS_SEAFOAM_ISLANDS_B3F_BOULDER_3 ; DF
- const HS_SEAFOAM_ISLANDS_B3F_BOULDER_4 ; E0
- const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E1
- const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; E2
- const HS_ARTICUNO ; E3 X
-DEF NUM_HS_OBJECTS EQU const_value
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index 7ae4af44..fe0bd9f5 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -16,7 +16,7 @@ ENDM
; - MapHeaderBanks (see data/maps/map_header_banks.asm)
; - MapHeaderPointers (see data/maps/map_header_pointers.asm)
; - MapSongBanks (see data/maps/songs.asm)
-; - MapHSPointers (see data/maps/hide_show_data.asm)
+; - ToggleableObjectMapPointers (see data/maps/toggleable_objects.asm)
; - MapSpriteSets (see data/maps/sprite_sets.asm)
; - ExternalMapEntries (see data/maps/town_map_entries.asm)
; - WildDataPointers (see data/wild/grass_water.asm)
diff --git a/constants/toggle_constants.asm b/constants/toggle_constants.asm
new file mode 100644
index 00000000..701bc2b4
--- /dev/null
+++ b/constants/toggle_constants.asm
@@ -0,0 +1,393 @@
+DEF OFF EQU $11
+DEF ON EQU $15
+
+MACRO toggle_consts_for
+ DEF TOGGLEMAP{\1} EQU const_value
+ENDM
+
+; ToggleableObjectStates indexes (see data/maps/toggleable_objects.asm)
+; This lists the object_events that can be toggled by ShowObject/HideObject.
+; The constants marked with an X are never used, because those object_events
+; are not toggled on/off in any map's script.
+; (The X-ed ones are either items or static Pokemon encounters that deactivate
+; after battle and are detected in wToggleableObjectList.)
+
+ const_def
+
+ toggle_consts_for PALLET_TOWN
+ const TOGGLE_PALLET_TOWN_OAK ; 00
+
+ toggle_consts_for VIRIDIAN_CITY
+ const TOGGLE_LYING_OLD_MAN ; 01
+ const TOGGLE_OLD_MAN ; 02
+
+ toggle_consts_for PEWTER_CITY
+ const TOGGLE_MUSEUM_GUY ; 03
+ const TOGGLE_GYM_GUY ; 04
+
+ toggle_consts_for CERULEAN_CITY
+ const TOGGLE_CERULEAN_RIVAL ; 05
+ const TOGGLE_CERULEAN_ROCKET ; 06
+ const TOGGLE_CERULEAN_GUARD_1 ; 07
+ const TOGGLE_CERULEAN_CAVE_GUY ; 08
+ const TOGGLE_CERULEAN_GUARD_2 ; 09
+
+ toggle_consts_for SAFFRON_CITY
+ const TOGGLE_SAFFRON_CITY_1 ; 0A
+ const TOGGLE_SAFFRON_CITY_2 ; 0B
+ const TOGGLE_SAFFRON_CITY_3 ; 0C
+ const TOGGLE_SAFFRON_CITY_4 ; 0D
+ const TOGGLE_SAFFRON_CITY_5 ; 0E
+ const TOGGLE_SAFFRON_CITY_6 ; 0F
+ const TOGGLE_SAFFRON_CITY_7 ; 10
+ const TOGGLE_SAFFRON_CITY_8 ; 11
+ const TOGGLE_SAFFRON_CITY_9 ; 12
+ const TOGGLE_SAFFRON_CITY_A ; 13
+ const TOGGLE_SAFFRON_CITY_B ; 14
+ const TOGGLE_SAFFRON_CITY_C ; 15
+ const TOGGLE_SAFFRON_CITY_D ; 16
+ const TOGGLE_SAFFRON_CITY_E ; 17
+ const TOGGLE_SAFFRON_CITY_F ; 18
+
+ toggle_consts_for ROUTE_2
+ const TOGGLE_ROUTE_2_ITEM_1 ; 19 X
+ const TOGGLE_ROUTE_2_ITEM_2 ; 1A X
+
+ toggle_consts_for ROUTE_4
+ const TOGGLE_ROUTE_4_ITEM ; 1B X
+
+ toggle_consts_for ROUTE_9
+ const TOGGLE_ROUTE_9_ITEM ; 1C X
+
+ toggle_consts_for ROUTE_12
+ const TOGGLE_ROUTE_12_SNORLAX ; 1D
+ const TOGGLE_ROUTE_12_ITEM_1 ; 1E X
+ const TOGGLE_ROUTE_12_ITEM_2 ; 1F X
+
+ toggle_consts_for ROUTE_15
+ const TOGGLE_ROUTE_15_ITEM ; 20 X
+
+ toggle_consts_for ROUTE_16
+ const TOGGLE_ROUTE_16_SNORLAX ; 21
+
+ toggle_consts_for ROUTE_22
+ const TOGGLE_ROUTE_22_RIVAL_1 ; 22
+ const TOGGLE_ROUTE_22_RIVAL_2 ; 23
+
+ toggle_consts_for ROUTE_24
+ const TOGGLE_NUGGET_BRIDGE_GUY ; 24
+ const TOGGLE_ROUTE_24_ITEM ; 25 X
+
+ toggle_consts_for ROUTE_25
+ const TOGGLE_ROUTE_25_ITEM ; 26 X
+
+ toggle_consts_for BLUES_HOUSE
+ const TOGGLE_DAISY_SITTING ; 27
+ const TOGGLE_DAISY_WALKING ; 28
+ const TOGGLE_TOWN_MAP ; 29
+
+ toggle_consts_for OAKS_LAB
+ const TOGGLE_OAKS_LAB_RIVAL ; 2A
+ const TOGGLE_STARTER_BALL_1 ; 2B
+ const TOGGLE_STARTER_BALL_2 ; 2C
+ const TOGGLE_STARTER_BALL_3 ; 2D
+ const TOGGLE_OAKS_LAB_OAK_1 ; 2E
+ const TOGGLE_POKEDEX_1 ; 2F
+ const TOGGLE_POKEDEX_2 ; 30
+ const TOGGLE_OAKS_LAB_OAK_2 ; 31
+
+ toggle_consts_for VIRIDIAN_GYM
+ const TOGGLE_VIRIDIAN_GYM_GIOVANNI ; 32
+ const TOGGLE_VIRIDIAN_GYM_ITEM ; 33 X
+
+ toggle_consts_for MUSEUM_1F
+ const TOGGLE_OLD_AMBER ; 34
+
+ toggle_consts_for CERULEAN_CAVE_1F
+ const TOGGLE_CERULEAN_CAVE_1F_ITEM_1 ; 35 X
+ const TOGGLE_CERULEAN_CAVE_1F_ITEM_2 ; 36 X
+ const TOGGLE_CERULEAN_CAVE_1F_ITEM_3 ; 37 X
+
+ toggle_consts_for POKEMON_TOWER_2F
+ const TOGGLE_POKEMON_TOWER_2F_RIVAL ; 38
+
+ toggle_consts_for POKEMON_TOWER_3F
+ const TOGGLE_POKEMON_TOWER_3F_ITEM ; 39 X
+
+ toggle_consts_for POKEMON_TOWER_4F
+ const TOGGLE_POKEMON_TOWER_4F_ITEM_1 ; 3A X
+ const TOGGLE_POKEMON_TOWER_4F_ITEM_2 ; 3B X
+ const TOGGLE_POKEMON_TOWER_4F_ITEM_3 ; 3C X
+
+ toggle_consts_for POKEMON_TOWER_5F
+ const TOGGLE_POKEMON_TOWER_5F_ITEM ; 3D X
+
+ toggle_consts_for POKEMON_TOWER_6F
+ const TOGGLE_POKEMON_TOWER_6F_ITEM_1 ; 3E X
+ const TOGGLE_POKEMON_TOWER_6F_ITEM_2 ; 3F X
+
+ toggle_consts_for POKEMON_TOWER_7F
+ const TOGGLE_POKEMON_TOWER_7F_ROCKET_1 ; 40 X
+ const TOGGLE_POKEMON_TOWER_7F_ROCKET_2 ; 41 X
+ const TOGGLE_POKEMON_TOWER_7F_ROCKET_3 ; 42 X
+ const TOGGLE_POKEMON_TOWER_7F_MR_FUJI ; 43
+
+ toggle_consts_for MR_FUJIS_HOUSE
+ const TOGGLE_MR_FUJIS_HOUSE_MR_FUJI ; 44
+
+ toggle_consts_for CELADON_MANSION_ROOF_HOUSE
+ const TOGGLE_CELADON_MANSION_EEVEE_GIFT ; 45
+
+ toggle_consts_for GAME_CORNER
+ const TOGGLE_GAME_CORNER_ROCKET ; 46
+
+ toggle_consts_for WARDENS_HOUSE
+ const TOGGLE_WARDENS_HOUSE_ITEM ; 47 X
+
+ toggle_consts_for POKEMON_MANSION_1F
+ const TOGGLE_POKEMON_MANSION_1F_ITEM_1 ; 48 X
+ const TOGGLE_POKEMON_MANSION_1F_ITEM_2 ; 49 X
+
+ toggle_consts_for FIGHTING_DOJO
+ const TOGGLE_FIGHTING_DOJO_GIFT_1 ; 4A
+ const TOGGLE_FIGHTING_DOJO_GIFT_2 ; 4B
+
+ toggle_consts_for SILPH_CO_1F
+ const TOGGLE_SILPH_CO_1F_RECEPTIONIST ; 4C
+
+ toggle_consts_for POWER_PLANT
+ const TOGGLE_VOLTORB_1 ; 4D X
+ const TOGGLE_VOLTORB_2 ; 4E X
+ const TOGGLE_VOLTORB_3 ; 4F X
+ const TOGGLE_ELECTRODE_1 ; 50 X
+ const TOGGLE_VOLTORB_4 ; 51 X
+ const TOGGLE_VOLTORB_5 ; 52 X
+ const TOGGLE_ELECTRODE_2 ; 53 X
+ const TOGGLE_VOLTORB_6 ; 54 X
+ const TOGGLE_ZAPDOS ; 55 X
+ const TOGGLE_POWER_PLANT_ITEM_1 ; 56 X
+ const TOGGLE_POWER_PLANT_ITEM_2 ; 57 X
+ const TOGGLE_POWER_PLANT_ITEM_3 ; 58 X
+ const TOGGLE_POWER_PLANT_ITEM_4 ; 59 X
+ const TOGGLE_POWER_PLANT_ITEM_5 ; 5A X
+
+ toggle_consts_for VICTORY_ROAD_2F
+ const TOGGLE_MOLTRES ; 5B X
+ const TOGGLE_VICTORY_ROAD_2F_ITEM_1 ; 5C X
+ const TOGGLE_VICTORY_ROAD_2F_ITEM_2 ; 5D X
+ const TOGGLE_VICTORY_ROAD_2F_ITEM_3 ; 5E X
+ const TOGGLE_VICTORY_ROAD_2F_ITEM_4 ; 5F X
+ const TOGGLE_VICTORY_ROAD_2F_BOULDER ; 60
+
+ toggle_consts_for BILLS_HOUSE
+ const TOGGLE_BILL_POKEMON ; 61
+ const TOGGLE_BILL_1 ; 62
+ const TOGGLE_BILL_2 ; 63
+
+ toggle_consts_for VIRIDIAN_FOREST
+ const TOGGLE_VIRIDIAN_FOREST_ITEM_1 ; 64 X
+ const TOGGLE_VIRIDIAN_FOREST_ITEM_2 ; 65 X
+ const TOGGLE_VIRIDIAN_FOREST_ITEM_3 ; 66 X
+
+ toggle_consts_for MT_MOON_1F
+ const TOGGLE_MT_MOON_1F_ITEM_1 ; 67 X
+ const TOGGLE_MT_MOON_1F_ITEM_2 ; 68 X
+ const TOGGLE_MT_MOON_1F_ITEM_3 ; 69 X
+ const TOGGLE_MT_MOON_1F_ITEM_4 ; 6A X
+ const TOGGLE_MT_MOON_1F_ITEM_5 ; 6B X
+ const TOGGLE_MT_MOON_1F_ITEM_6 ; 6C X
+
+ toggle_consts_for MT_MOON_B2F
+ const TOGGLE_MT_MOON_B2F_FOSSIL_1 ; 6D
+ const TOGGLE_MT_MOON_B2F_FOSSIL_2 ; 6E
+ const TOGGLE_MT_MOON_B2F_ITEM_1 ; 6F X
+ const TOGGLE_MT_MOON_B2F_ITEM_2 ; 70 X
+
+ toggle_consts_for SS_ANNE_2F
+ const TOGGLE_SS_ANNE_2F_RIVAL ; 71
+
+ toggle_consts_for SS_ANNE_1F_ROOMS
+ const TOGGLE_SS_ANNE_1F_ROOMS_ITEM ; 72 X
+
+ toggle_consts_for SS_ANNE_2F_ROOMS
+ const TOGGLE_SS_ANNE_2F_ROOMS_ITEM_1 ; 73 X
+ const TOGGLE_SS_ANNE_2F_ROOMS_ITEM_2 ; 74 X
+
+ toggle_consts_for SS_ANNE_B1F_ROOMS
+ const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_1 ; 75 X
+ const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_2 ; 76 X
+ const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_3 ; 77 X
+
+ toggle_consts_for VICTORY_ROAD_3F
+ const TOGGLE_VICTORY_ROAD_3F_ITEM_1 ; 78 X
+ const TOGGLE_VICTORY_ROAD_3F_ITEM_2 ; 79 X
+ const TOGGLE_VICTORY_ROAD_3F_BOULDER ; 7A
+
+ toggle_consts_for ROCKET_HIDEOUT_B1F
+ const TOGGLE_ROCKET_HIDEOUT_B1F_ITEM_1 ; 7B X
+ const TOGGLE_ROCKET_HIDEOUT_B1F_ITEM_2 ; 7C X
+
+ toggle_consts_for ROCKET_HIDEOUT_B2F
+ const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_1 ; 7D X
+ const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_2 ; 7E X
+ const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_3 ; 7F X
+ const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_4 ; 80 X
+
+ toggle_consts_for ROCKET_HIDEOUT_B3F
+ const TOGGLE_ROCKET_HIDEOUT_B3F_ITEM_1 ; 81 X
+ const TOGGLE_ROCKET_HIDEOUT_B3F_ITEM_2 ; 82 X
+
+ toggle_consts_for ROCKET_HIDEOUT_B4F
+ const TOGGLE_ROCKET_HIDEOUT_B4F_GIOVANNI ; 83
+ const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_1 ; 84 X
+ const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_2 ; 85 X
+ const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_3 ; 86 X
+ const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_4 ; 87
+ const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_5 ; 88
+
+ toggle_consts_for SILPH_CO_2F
+ const TOGGLE_SILPH_CO_2F_1 ; 89 XXX never (de)activated?
+ const TOGGLE_SILPH_CO_2F_2 ; 8A
+ const TOGGLE_SILPH_CO_2F_3 ; 8B
+ const TOGGLE_SILPH_CO_2F_4 ; 8C
+ const TOGGLE_SILPH_CO_2F_5 ; 8D
+
+ toggle_consts_for SILPH_CO_3F
+ const TOGGLE_SILPH_CO_3F_1 ; 8E
+ const TOGGLE_SILPH_CO_3F_2 ; 8F
+ const TOGGLE_SILPH_CO_3F_ITEM ; 90 X
+
+ toggle_consts_for SILPH_CO_4F
+ const TOGGLE_SILPH_CO_4F_1 ; 91
+ const TOGGLE_SILPH_CO_4F_2 ; 92
+ const TOGGLE_SILPH_CO_4F_3 ; 93
+ const TOGGLE_SILPH_CO_4F_ITEM_1 ; 94 X
+ const TOGGLE_SILPH_CO_4F_ITEM_2 ; 95 X
+ const TOGGLE_SILPH_CO_4F_ITEM_3 ; 96 X
+
+ toggle_consts_for SILPH_CO_5F
+ const TOGGLE_SILPH_CO_5F_1 ; 97
+ const TOGGLE_SILPH_CO_5F_2 ; 98
+ const TOGGLE_SILPH_CO_5F_3 ; 99
+ const TOGGLE_SILPH_CO_5F_4 ; 9A
+ const TOGGLE_SILPH_CO_5F_ITEM_1 ; 9B X
+ const TOGGLE_SILPH_CO_5F_ITEM_2 ; 9C X
+ const TOGGLE_SILPH_CO_5F_ITEM_3 ; 9D X
+
+ toggle_consts_for SILPH_CO_6F
+ const TOGGLE_SILPH_CO_6F_1 ; 9E
+ const TOGGLE_SILPH_CO_6F_2 ; 9F
+ const TOGGLE_SILPH_CO_6F_3 ; A0
+ const TOGGLE_SILPH_CO_6F_ITEM_1 ; A1 X
+ const TOGGLE_SILPH_CO_6F_ITEM_2 ; A2 X
+
+ toggle_consts_for SILPH_CO_7F
+ const TOGGLE_SILPH_CO_7F_1 ; A3
+ const TOGGLE_SILPH_CO_7F_2 ; A4
+ const TOGGLE_SILPH_CO_7F_3 ; A5
+ const TOGGLE_SILPH_CO_7F_4 ; A6
+ const TOGGLE_SILPH_CO_7F_RIVAL ; A7
+ const TOGGLE_SILPH_CO_7F_ITEM_1 ; A8 X
+ const TOGGLE_SILPH_CO_7F_ITEM_2 ; A9 X
+ const TOGGLE_SILPH_CO_7F_8 ; AA XXX sprite doesn't exist
+
+ toggle_consts_for SILPH_CO_8F
+ const TOGGLE_SILPH_CO_8F_1 ; AB
+ const TOGGLE_SILPH_CO_8F_2 ; AC
+ const TOGGLE_SILPH_CO_8F_3 ; AD
+
+ toggle_consts_for SILPH_CO_9F
+ const TOGGLE_SILPH_CO_9F_1 ; AE
+ const TOGGLE_SILPH_CO_9F_2 ; AF
+ const TOGGLE_SILPH_CO_9F_3 ; B0
+
+ toggle_consts_for SILPH_CO_10F
+ const TOGGLE_SILPH_CO_10F_1 ; B1
+ const TOGGLE_SILPH_CO_10F_2 ; B2
+ const TOGGLE_SILPH_CO_10F_3 ; B3 XXX never (de)activated?
+ const TOGGLE_SILPH_CO_10F_ITEM_1 ; B4 X
+ const TOGGLE_SILPH_CO_10F_ITEM_2 ; B5 X
+ const TOGGLE_SILPH_CO_10F_ITEM_3 ; B6 X
+
+ toggle_consts_for SILPH_CO_11F
+ const TOGGLE_SILPH_CO_11F_1 ; B7
+ const TOGGLE_SILPH_CO_11F_2 ; B8
+ const TOGGLE_SILPH_CO_11F_3 ; B9
+
+ toggle_consts_for UNUSED_MAP_F4
+ const TOGGLE_UNUSED_MAP_F4_1 ; BA XXX sprite doesn't exist
+
+ toggle_consts_for POKEMON_MANSION_2F
+ const TOGGLE_POKEMON_MANSION_2F_ITEM ; BB X
+
+ toggle_consts_for POKEMON_MANSION_3F
+ const TOGGLE_POKEMON_MANSION_3F_ITEM_1 ; BC X
+ const TOGGLE_POKEMON_MANSION_3F_ITEM_2 ; BD X
+
+ toggle_consts_for POKEMON_MANSION_B1F
+ const TOGGLE_POKEMON_MANSION_B1F_ITEM_1 ; BE X
+ const TOGGLE_POKEMON_MANSION_B1F_ITEM_2 ; BF X
+ const TOGGLE_POKEMON_MANSION_B1F_ITEM_3 ; C0 X
+ const TOGGLE_POKEMON_MANSION_B1F_ITEM_4 ; C1 X
+ const TOGGLE_POKEMON_MANSION_B1F_ITEM_5 ; C2 X
+
+ toggle_consts_for SAFARI_ZONE_EAST
+ const TOGGLE_SAFARI_ZONE_EAST_ITEM_1 ; C3 X
+ const TOGGLE_SAFARI_ZONE_EAST_ITEM_2 ; C4 X
+ const TOGGLE_SAFARI_ZONE_EAST_ITEM_3 ; C5 X
+ const TOGGLE_SAFARI_ZONE_EAST_ITEM_4 ; C6 X
+
+ toggle_consts_for SAFARI_ZONE_NORTH
+ const TOGGLE_SAFARI_ZONE_NORTH_ITEM_1 ; C7 X
+ const TOGGLE_SAFARI_ZONE_NORTH_ITEM_2 ; C8 X
+
+ toggle_consts_for SAFARI_ZONE_WEST
+ const TOGGLE_SAFARI_ZONE_WEST_ITEM_1 ; C9 X
+ const TOGGLE_SAFARI_ZONE_WEST_ITEM_2 ; CA X
+ const TOGGLE_SAFARI_ZONE_WEST_ITEM_3 ; CB X
+ const TOGGLE_SAFARI_ZONE_WEST_ITEM_4 ; CC X
+
+ toggle_consts_for SAFARI_ZONE_CENTER
+ const TOGGLE_SAFARI_ZONE_CENTER_ITEM ; CD X
+
+ toggle_consts_for CERULEAN_CAVE_2F
+ const TOGGLE_CERULEAN_CAVE_2F_ITEM_1 ; CE X
+ const TOGGLE_CERULEAN_CAVE_2F_ITEM_2 ; CF X
+ const TOGGLE_CERULEAN_CAVE_2F_ITEM_3 ; D0 X
+
+ toggle_consts_for CERULEAN_CAVE_B1F
+ const TOGGLE_MEWTWO ; D1 X
+ const TOGGLE_CERULEAN_CAVE_B1F_ITEM_1 ; D2 X
+ const TOGGLE_CERULEAN_CAVE_B1F_ITEM_2 ; D3 X
+
+ toggle_consts_for VICTORY_ROAD_1F
+ const TOGGLE_VICTORY_ROAD_1F_ITEM_1 ; D4 X
+ const TOGGLE_VICTORY_ROAD_1F_ITEM_2 ; D5 X
+
+ toggle_consts_for CHAMPIONS_ROOM
+ const TOGGLE_CHAMPIONS_ROOM_OAK ; D6
+
+ toggle_consts_for SEAFOAM_ISLANDS_1F
+ const TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_1 ; D7
+ const TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_2 ; D8
+
+ toggle_consts_for SEAFOAM_ISLANDS_B1F
+ const TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; D9
+ const TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_2 ; DA
+
+ toggle_consts_for SEAFOAM_ISLANDS_B2F
+ const TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_1 ; DB
+ const TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_2 ; DC
+
+ toggle_consts_for SEAFOAM_ISLANDS_B3F
+ const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_1 ; DD
+ const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_2 ; DE
+ const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_3 ; DF
+ const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_4 ; E0
+
+ toggle_consts_for SEAFOAM_ISLANDS_B4F
+ const TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E1
+ const TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; E2
+ const TOGGLE_ARTICUNO ; E3 X
+
+DEF NUM_TOGGLEABLE_OBJECTS EQU const_value