aboutsummaryrefslogtreecommitdiffstats
path: root/data
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 /data
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 'data')
-rw-r--r--data/maps/hide_show_data.asm568
-rw-r--r--data/maps/objects/SilphCo7F.asm2
-rw-r--r--data/maps/toggleable_objects.asm423
-rw-r--r--data/predef_pointers.asm4
4 files changed, 426 insertions, 571 deletions
diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm
deleted file mode 100644
index bc68c90f..00000000
--- a/data/maps/hide_show_data.asm
+++ /dev/null
@@ -1,568 +0,0 @@
-; default hidden/shown objects for each map
-
-MapHSPointers:
-; entries correspond to map ids
- table_width 2
- dw PalletTownHS
- dw ViridianCityHS
- dw PewterCityHS
- dw CeruleanCityHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw SaffronCityHS
- dw NoHS
- dw NoHS
- dw Route2HS
- dw NoHS
- dw Route4HS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw Route9HS
- dw NoHS
- dw NoHS
- dw Route12HS
- dw NoHS
- dw NoHS
- dw Route15HS
- dw Route16HS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw Route22HS
- dw NoHS
- dw Route24HS
- dw Route25HS
- dw NoHS
- dw NoHS
- dw BluesHouseHS
- dw OaksLabHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw ViridianGymHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw ViridianForestHS
- dw Museum1FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw MtMoon1FHS
- dw NoHS
- dw MtMoonB2FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw PowerPlantHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw BillsHouseHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw SSAnne2FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw SSAnne1FRoomsHS
- dw SSAnne2FRoomsHS
- dw SSAnneB1FRoomsHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw VictoryRoad1FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw ChampionsRoomHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw CeladonMansionRoofHouseHS
- dw NoHS
- dw NoHS
- dw GameCornerHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw PokemonTower2FHS
- dw PokemonTower3FHS
- dw PokemonTower4FHS
- dw PokemonTower5FHS
- dw PokemonTower6FHS
- dw PokemonTower7FHS
- dw MrFujisHouseHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw WardensHouseHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw SeafoamIslandsB1FHS
- dw SeafoamIslandsB2FHS
- dw SeafoamIslandsB3FHS
- dw SeafoamIslandsB4FHS
- dw NoHS
- dw NoHS
- dw PokemonMansion1FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw FightingDojoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw SilphCo1FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw SeafoamIslands1FHS
- dw NoHS
- dw VictoryRoad2FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw VictoryRoad3FHS
- dw RocketHideoutB1FHS
- dw RocketHideoutB2FHS
- dw RocketHideoutB3FHS
- dw RocketHideoutB4FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw SilphCo2FHS
- dw SilphCo3FHS
- dw SilphCo4FHS
- dw SilphCo5FHS
- dw SilphCo6FHS
- dw SilphCo7FHS
- dw SilphCo8FHS
- dw PokemonMansion2FHS
- dw PokemonMansion3FHS
- dw PokemonMansionB1FHS
- dw SafariZoneEastHS
- dw SafariZoneNorthHS
- dw SafariZoneWestHS
- dw SafariZoneCenterHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw CeruleanCave2FHS
- dw CeruleanCaveB1FHS
- dw CeruleanCaveHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw SilphCo9FHS
- dw SilphCo10FHS
- dw SilphCo11FHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw NoHS
- dw UnusedMapF4HS
- dw NoHS
- dw NoHS
- dw NoHS
- assert_table_length NUM_MAPS
- dw -1 ; end
-
-NoHS:
- db -1, -1, -1 ; end
-
-MissableObjects:
-; entries correspond to HS_* constants (see constants/hide_show_constants)
- table_width 3
-; format: map id, object id, HIDE/SHOW
-
-PalletTownHS:
- db PALLET_TOWN, PALLETTOWN_OAK, HIDE
-ViridianCityHS:
- db VIRIDIAN_CITY, VIRIDIANCITY_OLD_MAN_SLEEPY, SHOW
- db VIRIDIAN_CITY, VIRIDIANCITY_OLD_MAN, HIDE
-PewterCityHS:
- db PEWTER_CITY, PEWTERCITY_SUPER_NERD1, SHOW
- db PEWTER_CITY, PEWTERCITY_YOUNGSTER, SHOW
-CeruleanCityHS:
- db CERULEAN_CITY, CERULEANCITY_RIVAL, HIDE
- db CERULEAN_CITY, CERULEANCITY_ROCKET, SHOW
- db CERULEAN_CITY, CERULEANCITY_GUARD1, HIDE
- db CERULEAN_CITY, CERULEANCITY_SUPER_NERD3, SHOW
- db CERULEAN_CITY, CERULEANCITY_GUARD2, SHOW
-SaffronCityHS:
- db SAFFRON_CITY, SAFFRONCITY_ROCKET1, SHOW
- db SAFFRON_CITY, SAFFRONCITY_ROCKET2, SHOW
- db SAFFRON_CITY, SAFFRONCITY_ROCKET3, SHOW
- db SAFFRON_CITY, SAFFRONCITY_ROCKET4, SHOW
- db SAFFRON_CITY, SAFFRONCITY_ROCKET5, SHOW
- db SAFFRON_CITY, SAFFRONCITY_ROCKET6, SHOW
- db SAFFRON_CITY, SAFFRONCITY_ROCKET7, SHOW
- db SAFFRON_CITY, SAFFRONCITY_SCIENTIST, HIDE
- db SAFFRON_CITY, SAFFRONCITY_SILPH_WORKER_M, HIDE
- db SAFFRON_CITY, SAFFRONCITY_SILPH_WORKER_F, HIDE
- db SAFFRON_CITY, SAFFRONCITY_GENTLEMAN, HIDE
- db SAFFRON_CITY, SAFFRONCITY_PIDGEOT, HIDE
- db SAFFRON_CITY, SAFFRONCITY_ROCKER, HIDE
- db SAFFRON_CITY, SAFFRONCITY_ROCKET8, SHOW
- db SAFFRON_CITY, SAFFRONCITY_ROCKET9, HIDE
-Route2HS:
- db ROUTE_2, ROUTE2_MOON_STONE, SHOW
- db ROUTE_2, ROUTE2_HP_UP, SHOW
-Route4HS:
- db ROUTE_4, ROUTE4_TM_WHIRLWIND, SHOW
-Route9HS:
- db ROUTE_9, ROUTE9_TM_TELEPORT, SHOW
-Route12HS:
- db ROUTE_12, ROUTE12_SNORLAX, SHOW
- db ROUTE_12, ROUTE12_TM_PAY_DAY, SHOW
- db ROUTE_12, ROUTE12_IRON, SHOW
-Route15HS:
- db ROUTE_15, ROUTE15_TM_RAGE, SHOW
-Route16HS:
- db ROUTE_16, ROUTE16_SNORLAX, SHOW
-Route22HS:
- db ROUTE_22, ROUTE22_RIVAL1, HIDE
- db ROUTE_22, ROUTE22_RIVAL2, HIDE
-Route24HS:
- db ROUTE_24, ROUTE24_COOLTRAINER_M1, SHOW
- db ROUTE_24, ROUTE24_TM_THUNDER_WAVE, SHOW
-Route25HS:
- db ROUTE_25, ROUTE25_TM_SEISMIC_TOSS, SHOW
-BluesHouseHS:
- db BLUES_HOUSE, BLUESHOUSE_DAISY1, SHOW
- db BLUES_HOUSE, BLUESHOUSE_DAISY2, HIDE
- db BLUES_HOUSE, BLUESHOUSE_TOWN_MAP, SHOW
-OaksLabHS:
- db OAKS_LAB, OAKSLAB_RIVAL, SHOW
- db OAKS_LAB, OAKSLAB_CHARMANDER_POKE_BALL, SHOW
- db OAKS_LAB, OAKSLAB_SQUIRTLE_POKE_BALL, SHOW
- db OAKS_LAB, OAKSLAB_BULBASAUR_POKE_BALL, SHOW
- db OAKS_LAB, OAKSLAB_OAK1, HIDE
- db OAKS_LAB, OAKSLAB_POKEDEX1, SHOW
- db OAKS_LAB, OAKSLAB_POKEDEX2, SHOW
- db OAKS_LAB, OAKSLAB_OAK2, HIDE
-ViridianGymHS:
- db VIRIDIAN_GYM, VIRIDIANGYM_GIOVANNI, SHOW
- db VIRIDIAN_GYM, VIRIDIANGYM_REVIVE, SHOW
-Museum1FHS:
- db MUSEUM_1F, MUSEUM1F_OLD_AMBER, SHOW
-CeruleanCaveHS:
- db CERULEAN_CAVE_1F, CERULEANCAVE1F_FULL_RESTORE, SHOW
- db CERULEAN_CAVE_1F, CERULEANCAVE1F_MAX_ELIXER, SHOW
- db CERULEAN_CAVE_1F, CERULEANCAVE1F_NUGGET, SHOW
-PokemonTower2FHS:
- db POKEMON_TOWER_2F, POKEMONTOWER2F_RIVAL, SHOW
-PokemonTower3FHS:
- db POKEMON_TOWER_3F, POKEMONTOWER3F_ESCAPE_ROPE, SHOW
-PokemonTower4FHS:
- db POKEMON_TOWER_4F, POKEMONTOWER4F_ELIXER, SHOW
- db POKEMON_TOWER_4F, POKEMONTOWER4F_AWAKENING, SHOW
- db POKEMON_TOWER_4F, POKEMONTOWER4F_HP_UP, SHOW
-PokemonTower5FHS:
- db POKEMON_TOWER_5F, POKEMONTOWER5F_NUGGET, SHOW
-PokemonTower6FHS:
- db POKEMON_TOWER_6F, POKEMONTOWER6F_RARE_CANDY, SHOW
- db POKEMON_TOWER_6F, POKEMONTOWER6F_X_ACCURACY, SHOW
-PokemonTower7FHS:
- db POKEMON_TOWER_7F, POKEMONTOWER7F_ROCKET1, SHOW
- db POKEMON_TOWER_7F, POKEMONTOWER7F_ROCKET2, SHOW
- db POKEMON_TOWER_7F, POKEMONTOWER7F_ROCKET3, SHOW
- db POKEMON_TOWER_7F, POKEMONTOWER7F_MR_FUJI, SHOW
-MrFujisHouseHS:
- db MR_FUJIS_HOUSE, MRFUJISHOUSE_MR_FUJI, HIDE
-CeladonMansionRoofHouseHS:
- db CELADON_MANSION_ROOF_HOUSE, CELADONMANSION_ROOF_HOUSE_EEVEE_POKEBALL, SHOW
-GameCornerHS:
- db GAME_CORNER, GAMECORNER_ROCKET, SHOW
-WardensHouseHS:
- db WARDENS_HOUSE, WARDENSHOUSE_RARE_CANDY, SHOW
-PokemonMansion1FHS:
- db POKEMON_MANSION_1F, POKEMONMANSION1F_ESCAPE_ROPE, SHOW
- db POKEMON_MANSION_1F, POKEMONMANSION1F_CARBOS, SHOW
-FightingDojoHS:
- db FIGHTING_DOJO, FIGHTINGDOJO_HITMONLEE_POKE_BALL, SHOW
- db FIGHTING_DOJO, FIGHTINGDOJO_HITMONCHAN_POKE_BALL, SHOW
-SilphCo1FHS:
- db SILPH_CO_1F, SILPHCO1F_LINK_RECEPTIONIST, HIDE
-PowerPlantHS:
- db POWER_PLANT, POWERPLANT_VOLTORB1, SHOW
- db POWER_PLANT, POWERPLANT_VOLTORB2, SHOW
- db POWER_PLANT, POWERPLANT_VOLTORB3, SHOW
- db POWER_PLANT, POWERPLANT_ELECTRODE1, SHOW
- db POWER_PLANT, POWERPLANT_VOLTORB4, SHOW
- db POWER_PLANT, POWERPLANT_VOLTORB5, SHOW
- db POWER_PLANT, POWERPLANT_ELECTRODE2, SHOW
- db POWER_PLANT, POWERPLANT_VOLTORB6, SHOW
- db POWER_PLANT, POWERPLANT_ZAPDOS, SHOW
- db POWER_PLANT, POWERPLANT_CARBOS, SHOW
- db POWER_PLANT, POWERPLANT_HP_UP, SHOW
- db POWER_PLANT, POWERPLANT_RARE_CANDY, SHOW
- db POWER_PLANT, POWERPLANT_TM_THUNDER, SHOW
- db POWER_PLANT, POWERPLANT_TM_REFLECT, SHOW
-VictoryRoad2FHS:
- db VICTORY_ROAD_2F, VICTORYROAD2F_MOLTRES, SHOW
- db VICTORY_ROAD_2F, VICTORYROAD2F_TM_SUBMISSION, SHOW
- db VICTORY_ROAD_2F, VICTORYROAD2F_FULL_HEAL, SHOW
- db VICTORY_ROAD_2F, VICTORYROAD2F_TM_MEGA_KICK, SHOW
- db VICTORY_ROAD_2F, VICTORYROAD2F_GUARD_SPEC, SHOW
- db VICTORY_ROAD_2F, VICTORYROAD2F_BOULDER3, SHOW
-BillsHouseHS:
- db BILLS_HOUSE, BILLSHOUSE_BILL_POKEMON, SHOW
- db BILLS_HOUSE, BILLSHOUSE_BILL1, HIDE
- db BILLS_HOUSE, BILLSHOUSE_BILL2, HIDE
-ViridianForestHS:
- db VIRIDIAN_FOREST, VIRIDIANFOREST_ANTIDOTE, SHOW
- db VIRIDIAN_FOREST, VIRIDIANFOREST_POTION, SHOW
- db VIRIDIAN_FOREST, VIRIDIANFOREST_POKE_BALL, SHOW
-MtMoon1FHS:
- db MT_MOON_1F, MTMOON1F_POTION1, SHOW
- db MT_MOON_1F, MTMOON1F_MOON_STONE, SHOW
- db MT_MOON_1F, MTMOON1F_RARE_CANDY, SHOW
- db MT_MOON_1F, MTMOON1F_ESCAPE_ROPE, SHOW
- db MT_MOON_1F, MTMOON1F_POTION2, SHOW
- db MT_MOON_1F, MTMOON1F_TM_WATER_GUN, SHOW
-MtMoonB2FHS:
- db MT_MOON_B2F, MTMOONB2F_DOME_FOSSIL, SHOW
- db MT_MOON_B2F, MTMOONB2F_HELIX_FOSSIL, SHOW
- db MT_MOON_B2F, MTMOONB2F_HP_UP, SHOW
- db MT_MOON_B2F, MTMOONB2F_TM_MEGA_PUNCH, SHOW
-SSAnne2FHS:
- db SS_ANNE_2F, SSANNE2F_RIVAL, HIDE
-SSAnne1FRoomsHS:
- db SS_ANNE_1F_ROOMS, SSANNE1FROOMS_TM_BODY_SLAM, SHOW
-SSAnne2FRoomsHS:
- db SS_ANNE_2F_ROOMS, SSANNE2FROOMS_MAX_ETHER, SHOW
- db SS_ANNE_2F_ROOMS, SSANNE2FROOMS_RARE_CANDY, SHOW
-SSAnneB1FRoomsHS:
- db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_ETHER, SHOW
- db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_TM_REST, SHOW
- db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_MAX_POTION, SHOW
-VictoryRoad3FHS:
- db VICTORY_ROAD_3F, VICTORYROAD3F_MAX_REVIVE, SHOW
- db VICTORY_ROAD_3F, VICTORYROAD3F_TM_EXPLOSION, SHOW
- db VICTORY_ROAD_3F, VICTORYROAD3F_BOULDER4, SHOW
-RocketHideoutB1FHS:
- db ROCKET_HIDEOUT_B1F, ROCKETHIDEOUTB1F_ESCAPE_ROPE, SHOW
- db ROCKET_HIDEOUT_B1F, ROCKETHIDEOUTB1F_HYPER_POTION, SHOW
-RocketHideoutB2FHS:
- db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_MOON_STONE, SHOW
- db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_NUGGET, SHOW
- db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_TM_HORN_DRILL, SHOW
- db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_SUPER_POTION, SHOW
-RocketHideoutB3FHS:
- db ROCKET_HIDEOUT_B3F, ROCKETHIDEOUTB3F_TM_DOUBLE_EDGE, SHOW
- db ROCKET_HIDEOUT_B3F, ROCKETHIDEOUTB3F_RARE_CANDY, SHOW
-RocketHideoutB4FHS:
- db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_GIOVANNI, SHOW
- db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_HP_UP, SHOW
- db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_TM_RAZOR_WIND, SHOW
- db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_IRON, SHOW
- db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_SILPH_SCOPE, HIDE
- db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_LIFT_KEY, HIDE
-SilphCo2FHS:
- db SILPH_CO_2F, SILPHCO2F_SILPH_WORKER_F, SHOW
- db SILPH_CO_2F, SILPHCO2F_SCIENTIST1, SHOW
- db SILPH_CO_2F, SILPHCO2F_SCIENTIST2, SHOW
- db SILPH_CO_2F, SILPHCO2F_ROCKET1, SHOW
- db SILPH_CO_2F, SILPHCO2F_ROCKET2, SHOW
-SilphCo3FHS:
- db SILPH_CO_3F, SILPHCO3F_ROCKET, SHOW
- db SILPH_CO_3F, SILPHCO3F_SCIENTIST, SHOW
- db SILPH_CO_3F, SILPHCO3F_HYPER_POTION, SHOW
-SilphCo4FHS:
- db SILPH_CO_4F, SILPHCO4F_ROCKET1, SHOW
- db SILPH_CO_4F, SILPHCO4F_SCIENTIST, SHOW
- db SILPH_CO_4F, SILPHCO4F_ROCKET2, SHOW
- db SILPH_CO_4F, SILPHCO4F_FULL_HEAL, SHOW
- db SILPH_CO_4F, SILPHCO4F_MAX_REVIVE, SHOW
- db SILPH_CO_4F, SILPHCO4F_ESCAPE_ROPE, SHOW
-SilphCo5FHS:
- db SILPH_CO_5F, SILPHCO5F_ROCKET1, SHOW
- db SILPH_CO_5F, SILPHCO5F_SCIENTIST, SHOW
- db SILPH_CO_5F, SILPHCO5F_ROCKER, SHOW
- db SILPH_CO_5F, SILPHCO5F_ROCKET2, SHOW
- db SILPH_CO_5F, SILPHCO5F_TM_TAKE_DOWN, SHOW
- db SILPH_CO_5F, SILPHCO5F_PROTEIN, SHOW
- db SILPH_CO_5F, SILPHCO5F_CARD_KEY, SHOW
-SilphCo6FHS:
- db SILPH_CO_6F, SILPHCO6F_ROCKET1, SHOW
- db SILPH_CO_6F, SILPHCO6F_SCIENTIST, SHOW
- db SILPH_CO_6F, SILPHCO6F_ROCKET2, SHOW
- db SILPH_CO_6F, SILPHCO6F_HP_UP, SHOW
- db SILPH_CO_6F, SILPHCO6F_X_ACCURACY, SHOW
-SilphCo7FHS:
- db SILPH_CO_7F, SILPHCO7F_ROCKET1, SHOW
- db SILPH_CO_7F, SILPHCO7F_SCIENTIST, SHOW
- db SILPH_CO_7F, SILPHCO7F_ROCKET2, SHOW
- db SILPH_CO_7F, SILPHCO7F_ROCKET3, SHOW
- db SILPH_CO_7F, SILPHCO7F_RIVAL, SHOW
- db SILPH_CO_7F, SILPHCO7F_CALCIUM, SHOW
- db SILPH_CO_7F, SILPHCO7F_TM_SWORDS_DANCE, SHOW
- db SILPH_CO_7F, SILPHCO7F_UNUSED, SHOW
-SilphCo8FHS:
- db SILPH_CO_8F, SILPHCO8F_ROCKET1, SHOW
- db SILPH_CO_8F, SILPHCO8F_SCIENTIST, SHOW
- db SILPH_CO_8F, SILPHCO8F_ROCKET2, SHOW
-SilphCo9FHS:
- db SILPH_CO_9F, SILPHCO9F_ROCKET1, SHOW
- db SILPH_CO_9F, SILPHCO9F_SCIENTIST, SHOW
- db SILPH_CO_9F, SILPHCO9F_ROCKET2, SHOW
-SilphCo10FHS:
- db SILPH_CO_10F, SILPHCO10F_ROCKET, SHOW
- db SILPH_CO_10F, SILPHCO10F_SCIENTIST, SHOW
- db SILPH_CO_10F, SILPHCO10F_SILPH_WORKER_F, SHOW
- db SILPH_CO_10F, SILPHCO10F_TM_EARTHQUAKE, SHOW
- db SILPH_CO_10F, SILPHCO10F_RARE_CANDY, SHOW
- db SILPH_CO_10F, SILPHCO10F_CARBOS, SHOW
-SilphCo11FHS:
- db SILPH_CO_11F, SILPHCO11F_GIOVANNI, SHOW
- db SILPH_CO_11F, SILPHCO11F_ROCKET1, SHOW
- db SILPH_CO_11F, SILPHCO11F_ROCKET2, SHOW
-UnusedMapF4HS:
- db UNUSED_MAP_F4, $02, SHOW ; unused
-PokemonMansion2FHS:
- db POKEMON_MANSION_2F, POKEMONMANSION2F_CALCIUM, SHOW
-PokemonMansion3FHS:
- db POKEMON_MANSION_3F, POKEMONMANSION3F_MAX_POTION, SHOW
- db POKEMON_MANSION_3F, POKEMONMANSION3F_IRON, SHOW
-PokemonMansionB1FHS:
- db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_RARE_CANDY, SHOW
- db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_FULL_RESTORE, SHOW
- db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_TM_BLIZZARD, SHOW
- db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_TM_SOLARBEAM, SHOW
- db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_SECRET_KEY, SHOW
-SafariZoneEastHS:
- db SAFARI_ZONE_EAST, SAFARIZONEEAST_FULL_RESTORE, SHOW
- db SAFARI_ZONE_EAST, SAFARIZONEEAST_MAX_RESTORE, SHOW
- db SAFARI_ZONE_EAST, SAFARIZONEEAST_CARBOS, SHOW
- db SAFARI_ZONE_EAST, SAFARIZONEEAST_TM_EGG_BOMB, SHOW
-SafariZoneNorthHS:
- db SAFARI_ZONE_NORTH, SAFARIZONENORTH_PROTEIN, SHOW
- db SAFARI_ZONE_NORTH, SAFARIZONENORTH_TM_SKULL_BASH, SHOW
-SafariZoneWestHS:
- db SAFARI_ZONE_WEST, SAFARIZONEWEST_MAX_POTION, SHOW
- db SAFARI_ZONE_WEST, SAFARIZONEWEST_TM_DOUBLE_TEAM, SHOW
- db SAFARI_ZONE_WEST, SAFARIZONEWEST_MAX_REVIVE, SHOW
- db SAFARI_ZONE_WEST, SAFARIZONEWEST_GOLD_TEETH, SHOW
-SafariZoneCenterHS:
- db SAFARI_ZONE_CENTER, SAFARIZONECENTER_NUGGET, SHOW
-CeruleanCave2FHS:
- db CERULEAN_CAVE_2F, CERULEANCAVE2F_PP_UP, SHOW
- db CERULEAN_CAVE_2F, CERULEANCAVE2F_ULTRA_BALL, SHOW
- db CERULEAN_CAVE_2F, CERULEANCAVE2F_FULL_RESTORE, SHOW
-CeruleanCaveB1FHS:
- db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MEWTWO, SHOW
- db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_ULTRA_BALL, SHOW
- db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MAX_REVIVE, SHOW
-VictoryRoad1FHS:
- db VICTORY_ROAD_1F, VICTORYROAD1F_TM_SKY_ATTACK, SHOW
- db VICTORY_ROAD_1F, VICTORYROAD1F_RARE_CANDY, SHOW
-ChampionsRoomHS:
- db CHAMPIONS_ROOM, CHAMPIONSROOM_OAK, HIDE
-SeafoamIslands1FHS:
- db SEAFOAM_ISLANDS_1F, SEAFOAMISLANDS1F_BOULDER1, SHOW
- db SEAFOAM_ISLANDS_1F, SEAFOAMISLANDS1F_BOULDER2, SHOW
-SeafoamIslandsB1FHS:
- db SEAFOAM_ISLANDS_B1F, SEAFOAMISLANDSB1F_BOULDER1, HIDE
- db SEAFOAM_ISLANDS_B1F, SEAFOAMISLANDSB1F_BOULDER2, HIDE
-SeafoamIslandsB2FHS:
- db SEAFOAM_ISLANDS_B2F, SEAFOAMISLANDSB2F_BOULDER1, HIDE
- db SEAFOAM_ISLANDS_B2F, SEAFOAMISLANDSB2F_BOULDER2, HIDE
-SeafoamIslandsB3FHS:
- db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER2, SHOW
- db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER3, SHOW
- db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER5, HIDE
- db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER6, HIDE
-SeafoamIslandsB4FHS:
- db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_BOULDER1, HIDE
- db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_BOULDER2, HIDE
- db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_ARTICUNO, SHOW
- assert_table_length NUM_HS_OBJECTS
- db -1, 1, SHOW ; end
diff --git a/data/maps/objects/SilphCo7F.asm b/data/maps/objects/SilphCo7F.asm
index 6f2ca90d..0dbe2c7f 100644
--- a/data/maps/objects/SilphCo7F.asm
+++ b/data/maps/objects/SilphCo7F.asm
@@ -10,7 +10,7 @@
const_export SILPHCO7F_RIVAL
const_export SILPHCO7F_CALCIUM
const_export SILPHCO7F_TM_SWORDS_DANCE
- const_export SILPHCO7F_UNUSED ; referenced in data/maps/hide_show_data.asm, no corresponding object_event
+ const_export SILPHCO7F_UNUSED ; referenced in data/maps/toggleable_objects.asm, no corresponding object_event
SilphCo7F_Object:
db $2e ; border block
diff --git a/data/maps/toggleable_objects.asm b/data/maps/toggleable_objects.asm
new file mode 100644
index 00000000..d94002d9
--- /dev/null
+++ b/data/maps/toggleable_objects.asm
@@ -0,0 +1,423 @@
+; toggleable objects for each map
+
+ToggleableObjectMapPointers:
+; entries correspond to map ids
+ table_width 2
+FOR n, NUM_MAPS
+ IF DEF(TOGGLEMAP{n}) ; defined by `toggle_consts_for`
+ dw ToggleData{n}
+ ELSE
+ dw NoToggleData
+ ENDC
+ENDR
+ assert_table_length NUM_MAPS
+ dw -1 ; end
+
+NoToggleData:
+ db -1, -1, -1 ; end
+
+DEF toggles_ok = 1
+
+MACRO? toggleable_objects_for
+ DEF toggle_map_id = \1 ; map id
+ ToggleData{toggle_map_id}:
+ IF toggles_ok
+ ASSERT DEF(TOGGLEMAP{toggle_map_id}), \
+ "`toggleable_objects_for \1` is not defined"
+ DEF toggles_ok &= DEF(TOGGLEMAP{toggle_map_id})
+ IF toggles_ok
+ assert_table_length TOGGLEMAP{toggle_map_id}
+ DEF toggles_ok &= TOGGLEMAP{toggle_map_id} * 3 == @ - ToggleableObjectStates
+ ENDC
+ ENDC
+ENDM
+
+MACRO toggle_object_state
+ db toggle_map_id ; from previous `toggleable_objects_for`
+ db \1 ; object id
+ db \2 ; OFF/ON
+ENDM
+
+ToggleableObjectStates:
+; entries correspond to TOGGLE_* constants (see constants/toggle_constants.asm)
+ table_width 3
+
+ toggleable_objects_for PALLET_TOWN
+ toggle_object_state PALLETTOWN_OAK, OFF
+
+ toggleable_objects_for VIRIDIAN_CITY
+ toggle_object_state VIRIDIANCITY_OLD_MAN_SLEEPY, ON
+ toggle_object_state VIRIDIANCITY_OLD_MAN, OFF
+
+ toggleable_objects_for PEWTER_CITY
+ toggle_object_state PEWTERCITY_SUPER_NERD1, ON
+ toggle_object_state PEWTERCITY_YOUNGSTER, ON
+
+ toggleable_objects_for CERULEAN_CITY
+ toggle_object_state CERULEANCITY_RIVAL, OFF
+ toggle_object_state CERULEANCITY_ROCKET, ON
+ toggle_object_state CERULEANCITY_GUARD1, OFF
+ toggle_object_state CERULEANCITY_SUPER_NERD3, ON
+ toggle_object_state CERULEANCITY_GUARD2, ON
+
+ toggleable_objects_for SAFFRON_CITY
+ toggle_object_state SAFFRONCITY_ROCKET1, ON
+ toggle_object_state SAFFRONCITY_ROCKET2, ON
+ toggle_object_state SAFFRONCITY_ROCKET3, ON
+ toggle_object_state SAFFRONCITY_ROCKET4, ON
+ toggle_object_state SAFFRONCITY_ROCKET5, ON
+ toggle_object_state SAFFRONCITY_ROCKET6, ON
+ toggle_object_state SAFFRONCITY_ROCKET7, ON
+ toggle_object_state SAFFRONCITY_SCIENTIST, OFF
+ toggle_object_state SAFFRONCITY_SILPH_WORKER_M, OFF
+ toggle_object_state SAFFRONCITY_SILPH_WORKER_F, OFF
+ toggle_object_state SAFFRONCITY_GENTLEMAN, OFF
+ toggle_object_state SAFFRONCITY_PIDGEOT, OFF
+ toggle_object_state SAFFRONCITY_ROCKER, OFF
+ toggle_object_state SAFFRONCITY_ROCKET8, ON
+ toggle_object_state SAFFRONCITY_ROCKET9, OFF
+
+ toggleable_objects_for ROUTE_2
+ toggle_object_state ROUTE2_MOON_STONE, ON
+ toggle_object_state ROUTE2_HP_UP, ON
+
+ toggleable_objects_for ROUTE_4
+ toggle_object_state ROUTE4_TM_WHIRLWIND, ON
+
+ toggleable_objects_for ROUTE_9
+ toggle_object_state ROUTE9_TM_TELEPORT, ON
+
+ toggleable_objects_for ROUTE_12
+ toggle_object_state ROUTE12_SNORLAX, ON
+ toggle_object_state ROUTE12_TM_PAY_DAY, ON
+ toggle_object_state ROUTE12_IRON, ON
+
+ toggleable_objects_for ROUTE_15
+ toggle_object_state ROUTE15_TM_RAGE, ON
+
+ toggleable_objects_for ROUTE_16
+ toggle_object_state ROUTE16_SNORLAX, ON
+
+ toggleable_objects_for ROUTE_22
+ toggle_object_state ROUTE22_RIVAL1, OFF
+ toggle_object_state ROUTE22_RIVAL2, OFF
+
+ toggleable_objects_for ROUTE_24
+ toggle_object_state ROUTE24_COOLTRAINER_M1, ON
+ toggle_object_state ROUTE24_TM_THUNDER_WAVE, ON
+
+ toggleable_objects_for ROUTE_25
+ toggle_object_state ROUTE25_TM_SEISMIC_TOSS, ON
+
+ toggleable_objects_for BLUES_HOUSE
+ toggle_object_state BLUESHOUSE_DAISY1, ON
+ toggle_object_state BLUESHOUSE_DAISY2, OFF
+ toggle_object_state BLUESHOUSE_TOWN_MAP, ON
+
+ toggleable_objects_for OAKS_LAB
+ toggle_object_state OAKSLAB_RIVAL, ON
+ toggle_object_state OAKSLAB_CHARMANDER_POKE_BALL, ON
+ toggle_object_state OAKSLAB_SQUIRTLE_POKE_BALL, ON
+ toggle_object_state OAKSLAB_BULBASAUR_POKE_BALL, ON
+ toggle_object_state OAKSLAB_OAK1, OFF
+ toggle_object_state OAKSLAB_POKEDEX1, ON
+ toggle_object_state OAKSLAB_POKEDEX2, ON
+ toggle_object_state OAKSLAB_OAK2, OFF
+
+ toggleable_objects_for VIRIDIAN_GYM
+ toggle_object_state VIRIDIANGYM_GIOVANNI, ON
+ toggle_object_state VIRIDIANGYM_REVIVE, ON
+
+ toggleable_objects_for MUSEUM_1F
+ toggle_object_state MUSEUM1F_OLD_AMBER, ON
+
+ toggleable_objects_for CERULEAN_CAVE_1F
+ toggle_object_state CERULEANCAVE1F_FULL_RESTORE, ON
+ toggle_object_state CERULEANCAVE1F_MAX_ELIXER, ON
+ toggle_object_state CERULEANCAVE1F_NUGGET, ON
+
+ toggleable_objects_for POKEMON_TOWER_2F
+ toggle_object_state POKEMONTOWER2F_RIVAL, ON
+
+ toggleable_objects_for POKEMON_TOWER_3F
+ toggle_object_state POKEMONTOWER3F_ESCAPE_ROPE, ON
+
+ toggleable_objects_for POKEMON_TOWER_4F
+ toggle_object_state POKEMONTOWER4F_ELIXER, ON
+ toggle_object_state POKEMONTOWER4F_AWAKENING, ON
+ toggle_object_state POKEMONTOWER4F_HP_UP, ON
+
+ toggleable_objects_for POKEMON_TOWER_5F
+ toggle_object_state POKEMONTOWER5F_NUGGET, ON
+
+ toggleable_objects_for POKEMON_TOWER_6F
+ toggle_object_state POKEMONTOWER6F_RARE_CANDY, ON
+ toggle_object_state POKEMONTOWER6F_X_ACCURACY, ON
+
+ toggleable_objects_for POKEMON_TOWER_7F
+ toggle_object_state POKEMONTOWER7F_ROCKET1, ON
+ toggle_object_state POKEMONTOWER7F_ROCKET2, ON
+ toggle_object_state POKEMONTOWER7F_ROCKET3, ON
+ toggle_object_state POKEMONTOWER7F_MR_FUJI, ON
+
+ toggleable_objects_for MR_FUJIS_HOUSE
+ toggle_object_state MRFUJISHOUSE_MR_FUJI, OFF
+
+ toggleable_objects_for CELADON_MANSION_ROOF_HOUSE
+ toggle_object_state CELADONMANSION_ROOF_HOUSE_EEVEE_POKEBALL, ON
+
+ toggleable_objects_for GAME_CORNER
+ toggle_object_state GAMECORNER_ROCKET, ON
+
+ toggleable_objects_for WARDENS_HOUSE
+ toggle_object_state WARDENSHOUSE_RARE_CANDY, ON
+
+ toggleable_objects_for POKEMON_MANSION_1F
+ toggle_object_state POKEMONMANSION1F_ESCAPE_ROPE, ON
+ toggle_object_state POKEMONMANSION1F_CARBOS, ON
+
+ toggleable_objects_for FIGHTING_DOJO
+ toggle_object_state FIGHTINGDOJO_HITMONLEE_POKE_BALL, ON
+ toggle_object_state FIGHTINGDOJO_HITMONCHAN_POKE_BALL, ON
+
+ toggleable_objects_for SILPH_CO_1F
+ toggle_object_state SILPHCO1F_LINK_RECEPTIONIST, OFF
+
+ toggleable_objects_for POWER_PLANT
+ toggle_object_state POWERPLANT_VOLTORB1, ON
+ toggle_object_state POWERPLANT_VOLTORB2, ON
+ toggle_object_state POWERPLANT_VOLTORB3, ON
+ toggle_object_state POWERPLANT_ELECTRODE1, ON
+ toggle_object_state POWERPLANT_VOLTORB4, ON
+ toggle_object_state POWERPLANT_VOLTORB5, ON
+ toggle_object_state POWERPLANT_ELECTRODE2, ON
+ toggle_object_state POWERPLANT_VOLTORB6, ON
+ toggle_object_state POWERPLANT_ZAPDOS, ON
+ toggle_object_state POWERPLANT_CARBOS, ON
+ toggle_object_state POWERPLANT_HP_UP, ON
+ toggle_object_state POWERPLANT_RARE_CANDY, ON
+ toggle_object_state POWERPLANT_TM_THUNDER, ON
+ toggle_object_state POWERPLANT_TM_REFLECT, ON
+
+ toggleable_objects_for VICTORY_ROAD_2F
+ toggle_object_state VICTORYROAD2F_MOLTRES, ON
+ toggle_object_state VICTORYROAD2F_TM_SUBMISSION, ON
+ toggle_object_state VICTORYROAD2F_FULL_HEAL, ON
+ toggle_object_state VICTORYROAD2F_TM_MEGA_KICK, ON
+ toggle_object_state VICTORYROAD2F_GUARD_SPEC, ON
+ toggle_object_state VICTORYROAD2F_BOULDER3, ON
+
+ toggleable_objects_for BILLS_HOUSE
+ toggle_object_state BILLSHOUSE_BILL_POKEMON, ON
+ toggle_object_state BILLSHOUSE_BILL1, OFF
+ toggle_object_state BILLSHOUSE_BILL2, OFF
+
+ toggleable_objects_for VIRIDIAN_FOREST
+ toggle_object_state VIRIDIANFOREST_ANTIDOTE, ON
+ toggle_object_state VIRIDIANFOREST_POTION, ON
+ toggle_object_state VIRIDIANFOREST_POKE_BALL, ON
+
+ toggleable_objects_for MT_MOON_1F
+ toggle_object_state MTMOON1F_POTION1, ON
+ toggle_object_state MTMOON1F_MOON_STONE, ON
+ toggle_object_state MTMOON1F_RARE_CANDY, ON
+ toggle_object_state MTMOON1F_ESCAPE_ROPE, ON
+ toggle_object_state MTMOON1F_POTION2, ON
+ toggle_object_state MTMOON1F_TM_WATER_GUN, ON
+
+ toggleable_objects_for MT_MOON_B2F
+ toggle_object_state MTMOONB2F_DOME_FOSSIL, ON
+ toggle_object_state MTMOONB2F_HELIX_FOSSIL, ON
+ toggle_object_state MTMOONB2F_HP_UP, ON
+ toggle_object_state MTMOONB2F_TM_MEGA_PUNCH, ON
+
+ toggleable_objects_for SS_ANNE_2F
+ toggle_object_state SSANNE2F_RIVAL, OFF
+
+ toggleable_objects_for SS_ANNE_1F_ROOMS
+ toggle_object_state SSANNE1FROOMS_TM_BODY_SLAM, ON
+
+ toggleable_objects_for SS_ANNE_2F_ROOMS
+ toggle_object_state SSANNE2FROOMS_MAX_ETHER, ON
+ toggle_object_state SSANNE2FROOMS_RARE_CANDY, ON
+
+ toggleable_objects_for SS_ANNE_B1F_ROOMS
+ toggle_object_state SSANNEB1FROOMS_ETHER, ON
+ toggle_object_state SSANNEB1FROOMS_TM_REST, ON
+ toggle_object_state SSANNEB1FROOMS_MAX_POTION, ON
+
+ toggleable_objects_for VICTORY_ROAD_3F
+ toggle_object_state VICTORYROAD3F_MAX_REVIVE, ON
+ toggle_object_state VICTORYROAD3F_TM_EXPLOSION, ON
+ toggle_object_state VICTORYROAD3F_BOULDER4, ON
+
+ toggleable_objects_for ROCKET_HIDEOUT_B1F
+ toggle_object_state ROCKETHIDEOUTB1F_ESCAPE_ROPE, ON
+ toggle_object_state ROCKETHIDEOUTB1F_HYPER_POTION, ON
+
+ toggleable_objects_for ROCKET_HIDEOUT_B2F
+ toggle_object_state ROCKETHIDEOUTB2F_MOON_STONE, ON
+ toggle_object_state ROCKETHIDEOUTB2F_NUGGET, ON
+ toggle_object_state ROCKETHIDEOUTB2F_TM_HORN_DRILL, ON
+ toggle_object_state ROCKETHIDEOUTB2F_SUPER_POTION, ON
+
+ toggleable_objects_for ROCKET_HIDEOUT_B3F
+ toggle_object_state ROCKETHIDEOUTB3F_TM_DOUBLE_EDGE, ON
+ toggle_object_state ROCKETHIDEOUTB3F_RARE_CANDY, ON
+
+ toggleable_objects_for ROCKET_HIDEOUT_B4F
+ toggle_object_state ROCKETHIDEOUTB4F_GIOVANNI, ON
+ toggle_object_state ROCKETHIDEOUTB4F_HP_UP, ON
+ toggle_object_state ROCKETHIDEOUTB4F_TM_RAZOR_WIND, ON
+ toggle_object_state ROCKETHIDEOUTB4F_IRON, ON
+ toggle_object_state ROCKETHIDEOUTB4F_SILPH_SCOPE, OFF
+ toggle_object_state ROCKETHIDEOUTB4F_LIFT_KEY, OFF
+
+ toggleable_objects_for SILPH_CO_2F
+ toggle_object_state SILPHCO2F_SILPH_WORKER_F, ON
+ toggle_object_state SILPHCO2F_SCIENTIST1, ON
+ toggle_object_state SILPHCO2F_SCIENTIST2, ON
+ toggle_object_state SILPHCO2F_ROCKET1, ON
+ toggle_object_state SILPHCO2F_ROCKET2, ON
+
+ toggleable_objects_for SILPH_CO_3F
+ toggle_object_state SILPHCO3F_ROCKET, ON
+ toggle_object_state SILPHCO3F_SCIENTIST, ON
+ toggle_object_state SILPHCO3F_HYPER_POTION, ON
+
+ toggleable_objects_for SILPH_CO_4F
+ toggle_object_state SILPHCO4F_ROCKET1, ON
+ toggle_object_state SILPHCO4F_SCIENTIST, ON
+ toggle_object_state SILPHCO4F_ROCKET2, ON
+ toggle_object_state SILPHCO4F_FULL_HEAL, ON
+ toggle_object_state SILPHCO4F_MAX_REVIVE, ON
+ toggle_object_state SILPHCO4F_ESCAPE_ROPE, ON
+
+ toggleable_objects_for SILPH_CO_5F
+ toggle_object_state SILPHCO5F_ROCKET1, ON
+ toggle_object_state SILPHCO5F_SCIENTIST, ON
+ toggle_object_state SILPHCO5F_ROCKER, ON
+ toggle_object_state SILPHCO5F_ROCKET2, ON
+ toggle_object_state SILPHCO5F_TM_TAKE_DOWN, ON
+ toggle_object_state SILPHCO5F_PROTEIN, ON
+ toggle_object_state SILPHCO5F_CARD_KEY, ON
+
+ toggleable_objects_for SILPH_CO_6F
+ toggle_object_state SILPHCO6F_ROCKET1, ON
+ toggle_object_state SILPHCO6F_SCIENTIST, ON
+ toggle_object_state SILPHCO6F_ROCKET2, ON
+ toggle_object_state SILPHCO6F_HP_UP, ON
+ toggle_object_state SILPHCO6F_X_ACCURACY, ON
+
+ toggleable_objects_for SILPH_CO_7F
+ toggle_object_state SILPHCO7F_ROCKET1, ON
+ toggle_object_state SILPHCO7F_SCIENTIST, ON
+ toggle_object_state SILPHCO7F_ROCKET2, ON
+ toggle_object_state SILPHCO7F_ROCKET3, ON
+ toggle_object_state SILPHCO7F_RIVAL, ON
+ toggle_object_state SILPHCO7F_CALCIUM, ON
+ toggle_object_state SILPHCO7F_TM_SWORDS_DANCE, ON
+ toggle_object_state SILPHCO7F_UNUSED, ON
+
+ toggleable_objects_for SILPH_CO_8F
+ toggle_object_state SILPHCO8F_ROCKET1, ON
+ toggle_object_state SILPHCO8F_SCIENTIST, ON
+ toggle_object_state SILPHCO8F_ROCKET2, ON
+
+ toggleable_objects_for SILPH_CO_9F
+ toggle_object_state SILPHCO9F_ROCKET1, ON
+ toggle_object_state SILPHCO9F_SCIENTIST, ON
+ toggle_object_state SILPHCO9F_ROCKET2, ON
+
+ toggleable_objects_for SILPH_CO_10F
+ toggle_object_state SILPHCO10F_ROCKET, ON
+ toggle_object_state SILPHCO10F_SCIENTIST, ON
+ toggle_object_state SILPHCO10F_SILPH_WORKER_F, ON
+ toggle_object_state SILPHCO10F_TM_EARTHQUAKE, ON
+ toggle_object_state SILPHCO10F_RARE_CANDY, ON
+ toggle_object_state SILPHCO10F_CARBOS, ON
+
+ toggleable_objects_for SILPH_CO_11F
+ toggle_object_state SILPHCO11F_GIOVANNI, ON
+ toggle_object_state SILPHCO11F_ROCKET1, ON
+ toggle_object_state SILPHCO11F_ROCKET2, ON
+
+ toggleable_objects_for UNUSED_MAP_F4
+ toggle_object_state $02, ON ; unused
+
+ toggleable_objects_for POKEMON_MANSION_2F
+ toggle_object_state POKEMONMANSION2F_CALCIUM, ON
+
+ toggleable_objects_for POKEMON_MANSION_3F
+ toggle_object_state POKEMONMANSION3F_MAX_POTION, ON
+ toggle_object_state POKEMONMANSION3F_IRON, ON
+
+ toggleable_objects_for POKEMON_MANSION_B1F
+ toggle_object_state POKEMONMANSIONB1F_RARE_CANDY, ON
+ toggle_object_state POKEMONMANSIONB1F_FULL_RESTORE, ON
+ toggle_object_state POKEMONMANSIONB1F_TM_BLIZZARD, ON
+ toggle_object_state POKEMONMANSIONB1F_TM_SOLARBEAM, ON
+ toggle_object_state POKEMONMANSIONB1F_SECRET_KEY, ON
+
+ toggleable_objects_for SAFARI_ZONE_EAST
+ toggle_object_state SAFARIZONEEAST_FULL_RESTORE, ON
+ toggle_object_state SAFARIZONEEAST_MAX_RESTORE, ON
+ toggle_object_state SAFARIZONEEAST_CARBOS, ON
+ toggle_object_state SAFARIZONEEAST_TM_EGG_BOMB, ON
+
+ toggleable_objects_for SAFARI_ZONE_NORTH
+ toggle_object_state SAFARIZONENORTH_PROTEIN, ON
+ toggle_object_state SAFARIZONENORTH_TM_SKULL_BASH, ON
+
+ toggleable_objects_for SAFARI_ZONE_WEST
+ toggle_object_state SAFARIZONEWEST_MAX_POTION, ON
+ toggle_object_state SAFARIZONEWEST_TM_DOUBLE_TEAM, ON
+ toggle_object_state SAFARIZONEWEST_MAX_REVIVE, ON
+ toggle_object_state SAFARIZONEWEST_GOLD_TEETH, ON
+
+ toggleable_objects_for SAFARI_ZONE_CENTER
+ toggle_object_state SAFARIZONECENTER_NUGGET, ON
+
+ toggleable_objects_for CERULEAN_CAVE_2F
+ toggle_object_state CERULEANCAVE2F_PP_UP, ON
+ toggle_object_state CERULEANCAVE2F_ULTRA_BALL, ON
+ toggle_object_state CERULEANCAVE2F_FULL_RESTORE, ON
+
+ toggleable_objects_for CERULEAN_CAVE_B1F
+ toggle_object_state CERULEANCAVEB1F_MEWTWO, ON
+ toggle_object_state CERULEANCAVEB1F_ULTRA_BALL, ON
+ toggle_object_state CERULEANCAVEB1F_MAX_REVIVE, ON
+
+ toggleable_objects_for VICTORY_ROAD_1F
+ toggle_object_state VICTORYROAD1F_TM_SKY_ATTACK, ON
+ toggle_object_state VICTORYROAD1F_RARE_CANDY, ON
+
+ toggleable_objects_for CHAMPIONS_ROOM
+ toggle_object_state CHAMPIONSROOM_OAK, OFF
+
+ toggleable_objects_for SEAFOAM_ISLANDS_1F
+ toggle_object_state SEAFOAMISLANDS1F_BOULDER1, ON
+ toggle_object_state SEAFOAMISLANDS1F_BOULDER2, ON
+
+ toggleable_objects_for SEAFOAM_ISLANDS_B1F
+ toggle_object_state SEAFOAMISLANDSB1F_BOULDER1, OFF
+ toggle_object_state SEAFOAMISLANDSB1F_BOULDER2, OFF
+
+ toggleable_objects_for SEAFOAM_ISLANDS_B2F
+ toggle_object_state SEAFOAMISLANDSB2F_BOULDER1, OFF
+ toggle_object_state SEAFOAMISLANDSB2F_BOULDER2, OFF
+
+ toggleable_objects_for SEAFOAM_ISLANDS_B3F
+ toggle_object_state SEAFOAMISLANDSB3F_BOULDER2, ON
+ toggle_object_state SEAFOAMISLANDSB3F_BOULDER3, ON
+ toggle_object_state SEAFOAMISLANDSB3F_BOULDER5, OFF
+ toggle_object_state SEAFOAMISLANDSB3F_BOULDER6, OFF
+
+ toggleable_objects_for SEAFOAM_ISLANDS_B4F
+ toggle_object_state SEAFOAMISLANDSB4F_BOULDER1, OFF
+ toggle_object_state SEAFOAMISLANDSB4F_BOULDER2, OFF
+ toggle_object_state SEAFOAMISLANDSB4F_ARTICUNO, ON
+
+ assert_table_length NUM_TOGGLEABLE_OBJECTS
+
+ db -1, 1, ON ; end
diff --git a/data/predef_pointers.asm b/data/predef_pointers.asm
index e6968c46..19c3ea8f 100644
--- a/data/predef_pointers.asm
+++ b/data/predef_pointers.asm
@@ -32,7 +32,7 @@ PredefPointers::
add_predef ApplyOutOfBattlePoisonDamage
add_predef AnyPartyAlive
add_predef ShowObject
- add_predef ShowObject2
+ add_predef ShowObject2 ; identical to ShowObject
add_predef ReplaceTileBlock
add_predef InitPlayerData2
add_predef LoadTilesetHeader
@@ -75,7 +75,7 @@ PredefPointers::
add_predef WriteMonMoves
add_predef SaveMenu
add_predef LoadSGB
- add_predef MarkTownVisitedAndLoadMissableObjects
+ add_predef MarkTownVisitedAndLoadToggleableObjects
add_predef SetPartyMonTypes
add_predef CanLearnTM
add_predef TMToMove