aboutsummaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2026-01-17 22:38:33 -0600
committerdannye <33dannye@gmail.com>2026-01-17 22:38:33 -0600
commitbc2354dd6626ce28bb9561547ed2107cfa56c18e (patch)
tree5902d4c3389253c76b7c3351e0d7dfecb551c28d /data
parentIdentify characters in `_OakSpeechText2B` and `Printer_GetMonStats.IDNo` (#144) (diff)
parentUse macros for `WildMonEncounterSlotChances` (#562) (diff)
downloadpokeyellow-bc2354dd6626ce28bb9561547ed2107cfa56c18e.tar.gz
pokeyellow-bc2354dd6626ce28bb9561547ed2107cfa56c18e.tar.xz
pokeyellow-bc2354dd6626ce28bb9561547ed2107cfa56c18e.zip
Merge branch 'master' of https://github.com/pret/pokered
Diffstat (limited to 'data')
-rw-r--r--data/battle/stat_mod_names.asm2
-rw-r--r--data/battle/stat_names.asm2
-rw-r--r--data/events/hidden_events.asm570
-rw-r--r--data/events/hidden_objects.asm560
-rw-r--r--data/items/names.asm2
-rw-r--r--data/maps/hide_show_data.asm582
-rw-r--r--data/maps/objects/SaffronCity.asm2
-rw-r--r--data/maps/objects/SilphCo7F.asm2
-rw-r--r--data/maps/toggleable_objects.asm438
-rw-r--r--data/maps/town_map_entries.asm206
-rw-r--r--data/moves/grammar.asm16
-rw-r--r--data/moves/names.asm3
-rw-r--r--data/player/names.asm15
-rw-r--r--data/player/names_list.asm17
-rw-r--r--data/player_names.asm13
-rw-r--r--data/player_names_list.asm11
-rw-r--r--data/predef_pointers.asm6
-rw-r--r--data/text/text_2.asm18
-rw-r--r--data/trainers/move_choices.asm8
-rw-r--r--data/trainers/names.asm2
-rw-r--r--data/wild/probabilities.asm41
21 files changed, 1207 insertions, 1309 deletions
diff --git a/data/battle/stat_mod_names.asm b/data/battle/stat_mod_names.asm
index 63c956d7..6c68db4e 100644
--- a/data/battle/stat_mod_names.asm
+++ b/data/battle/stat_mod_names.asm
@@ -2,7 +2,7 @@
; The relevant move effect IDs correspond to the stats
StatModTextStrings:
- list_start
+ list_start STAT_NAME_LENGTH - 1
li "ATTACK"
li "DEFENSE"
li "SPEED"
diff --git a/data/battle/stat_names.asm b/data/battle/stat_names.asm
index 30401a99..08685e83 100644
--- a/data/battle/stat_names.asm
+++ b/data/battle/stat_names.asm
@@ -1,7 +1,7 @@
; Stats that vitamins can raise or lower
VitaminStats:
- list_start
+ list_start STAT_NAME_LENGTH - 1
li "HEALTH"
li "ATTACK"
li "DEFENSE"
diff --git a/data/events/hidden_events.asm b/data/events/hidden_events.asm
new file mode 100644
index 00000000..ce43118f
--- /dev/null
+++ b/data/events/hidden_events.asm
@@ -0,0 +1,570 @@
+MACRO hidden_event_map
+ db \1 ; map id
+ dw HiddenEventsFor_\1
+ENDM
+
+HiddenEventMaps:
+ hidden_event_map SILPH_CO_11F
+ hidden_event_map SILPH_CO_5F
+ hidden_event_map SILPH_CO_9F
+ hidden_event_map POKEMON_MANSION_2F
+ hidden_event_map POKEMON_MANSION_3F
+ hidden_event_map POKEMON_MANSION_B1F
+ hidden_event_map SAFARI_ZONE_WEST
+ hidden_event_map CERULEAN_CAVE_2F
+ hidden_event_map CERULEAN_CAVE_B1F
+ hidden_event_map UNUSED_MAP_6F
+ hidden_event_map SEAFOAM_ISLANDS_B2F
+ hidden_event_map SEAFOAM_ISLANDS_B3F
+ hidden_event_map SEAFOAM_ISLANDS_B4F
+ hidden_event_map VIRIDIAN_FOREST
+ hidden_event_map MT_MOON_B2F
+ hidden_event_map SS_ANNE_B1F_ROOMS
+ hidden_event_map SS_ANNE_KITCHEN
+ hidden_event_map UNDERGROUND_PATH_NORTH_SOUTH
+ hidden_event_map UNDERGROUND_PATH_WEST_EAST
+ hidden_event_map ROCKET_HIDEOUT_B1F
+ hidden_event_map ROCKET_HIDEOUT_B3F
+ hidden_event_map ROCKET_HIDEOUT_B4F
+ hidden_event_map ROUTE_10
+ hidden_event_map ROCK_TUNNEL_POKECENTER
+ hidden_event_map POWER_PLANT
+ hidden_event_map ROUTE_11
+ hidden_event_map ROUTE_12
+ hidden_event_map ROUTE_13
+ hidden_event_map ROUTE_15_GATE_2F
+ hidden_event_map ROUTE_17
+ hidden_event_map ROUTE_23
+ hidden_event_map VICTORY_ROAD_2F
+ hidden_event_map ROUTE_25
+ hidden_event_map BILLS_HOUSE
+ hidden_event_map ROUTE_4
+ hidden_event_map MT_MOON_POKECENTER
+ hidden_event_map ROUTE_9
+ hidden_event_map TRADE_CENTER
+ hidden_event_map COLOSSEUM
+ hidden_event_map INDIGO_PLATEAU
+ hidden_event_map INDIGO_PLATEAU_LOBBY
+ hidden_event_map COPYCATS_HOUSE_2F
+ hidden_event_map FIGHTING_DOJO
+ hidden_event_map SAFFRON_GYM
+ hidden_event_map SAFFRON_POKECENTER
+ hidden_event_map REDS_HOUSE_2F
+ hidden_event_map BLUES_HOUSE
+ hidden_event_map OAKS_LAB
+ hidden_event_map VIRIDIAN_CITY
+ hidden_event_map VIRIDIAN_POKECENTER
+ hidden_event_map VIRIDIAN_SCHOOL_HOUSE
+ hidden_event_map VIRIDIAN_GYM
+ hidden_event_map MUSEUM_1F
+ hidden_event_map PEWTER_GYM
+ hidden_event_map PEWTER_POKECENTER
+ hidden_event_map CERULEAN_CITY
+ hidden_event_map CERULEAN_POKECENTER
+ hidden_event_map CERULEAN_GYM
+ hidden_event_map BIKE_SHOP
+ hidden_event_map CERULEAN_CAVE_1F
+ hidden_event_map LAVENDER_POKECENTER
+ hidden_event_map POKEMON_TOWER_5F
+ hidden_event_map MR_FUJIS_HOUSE
+ hidden_event_map VERMILION_CITY
+ hidden_event_map VERMILION_POKECENTER
+ hidden_event_map POKEMON_FAN_CLUB
+ hidden_event_map VERMILION_GYM
+ hidden_event_map CELADON_CITY
+ hidden_event_map CELADON_HOTEL
+ hidden_event_map CELADON_MANSION_2F
+ hidden_event_map CELADON_MANSION_ROOF_HOUSE
+ hidden_event_map CELADON_POKECENTER
+ hidden_event_map CELADON_GYM
+ hidden_event_map GAME_CORNER
+ hidden_event_map FUCHSIA_POKECENTER
+ hidden_event_map SAFARI_ZONE_GATE
+ hidden_event_map FUCHSIA_GYM
+ hidden_event_map POKEMON_MANSION_1F
+ hidden_event_map CINNABAR_GYM
+ hidden_event_map CINNABAR_LAB_FOSSIL_ROOM
+ hidden_event_map CINNABAR_POKECENTER
+ db -1 ; end
+
+MACRO hidden_events_for
+ HiddenEventsFor_\1:
+ENDM
+
+MACRO hidden_event
+ db \2 ; y coord
+ db \1 ; x coord
+ db \4 ; function argument
+ dba \3 ; event function
+ENDM
+
+MACRO hidden_text_predef
+ db \2 ; y coord
+ db \1 ; x coord
+ db_tx_pre \4 ; text id
+ dba \3 ; event function
+ENDM
+
+; Some hidden events use SPRITE_FACING_* values,
+; but these do not actually prevent the player
+; from interacting with them in any direction.
+DEF ANY_FACING EQU $d0
+
+ hidden_events_for SILPH_CO_11F
+ hidden_event 10, 12, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for SILPH_CO_5F
+ hidden_event 12, 3, HiddenItems, ELIXER
+ db -1 ; end
+
+ hidden_events_for SILPH_CO_9F
+ hidden_event 2, 15, HiddenItems, MAX_POTION
+ db -1 ; end
+
+ hidden_events_for POKEMON_MANSION_2F
+ hidden_event 2, 11, Mansion2Script_Switches, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for POKEMON_MANSION_3F
+ hidden_event 1, 9, HiddenItems, MAX_REVIVE
+ hidden_event 10, 5, Mansion3Script_Switches, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for POKEMON_MANSION_B1F
+ hidden_event 1, 9, HiddenItems, RARE_CANDY
+ hidden_event 20, 3, Mansion4Script_Switches, SPRITE_FACING_UP
+ hidden_event 18, 25, Mansion4Script_Switches, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for SAFARI_ZONE_WEST
+ hidden_event 6, 5, HiddenItems, REVIVE
+ db -1 ; end
+
+ hidden_events_for CERULEAN_CAVE_2F
+ hidden_event 16, 13, HiddenItems, PP_UP
+ db -1 ; end
+
+ hidden_events_for CERULEAN_CAVE_B1F
+ hidden_event 8, 14, HiddenItems, PP_UP
+ db -1 ; end
+
+ hidden_events_for UNUSED_MAP_6F
+ hidden_event 14, 11, HiddenItems, MAX_ELIXER
+ db -1 ; end
+
+ hidden_events_for SEAFOAM_ISLANDS_B2F
+ hidden_event 15, 15, HiddenItems, NUGGET
+ db -1 ; end
+
+ hidden_events_for SEAFOAM_ISLANDS_B3F
+ hidden_event 9, 16, HiddenItems, MAX_ELIXER
+ db -1 ; end
+
+ hidden_events_for SEAFOAM_ISLANDS_B4F
+ hidden_event 25, 17, HiddenItems, ULTRA_BALL
+ db -1 ; end
+
+ hidden_events_for VIRIDIAN_FOREST
+ hidden_event 1, 18, HiddenItems, POTION
+ hidden_event 16, 42, HiddenItems, ANTIDOTE
+ db -1 ; end
+
+ hidden_events_for MT_MOON_B2F
+ hidden_event 18, 12, HiddenItems, MOON_STONE
+ hidden_event 33, 9, HiddenItems, ETHER
+ db -1 ; end
+
+ hidden_events_for SS_ANNE_B1F_ROOMS
+ hidden_event 3, 1, HiddenItems, HYPER_POTION
+ db -1 ; end
+
+ hidden_events_for SS_ANNE_KITCHEN
+ hidden_event 13, 5, PrintTrashText, SPRITE_FACING_DOWN
+ hidden_event 13, 7, PrintTrashText, SPRITE_FACING_DOWN
+ hidden_event 13, 9, HiddenItems, GREAT_BALL
+ db -1 ; end
+
+ hidden_events_for UNDERGROUND_PATH_NORTH_SOUTH
+ hidden_event 3, 4, HiddenItems, FULL_RESTORE
+ hidden_event 4, 34, HiddenItems, X_SPECIAL
+ db -1 ; end
+
+ hidden_events_for UNDERGROUND_PATH_WEST_EAST
+ hidden_event 12, 2, HiddenItems, NUGGET
+ hidden_event 21, 5, HiddenItems, ELIXER
+ db -1 ; end
+
+ hidden_events_for ROCKET_HIDEOUT_B1F
+ hidden_event 21, 15, HiddenItems, PP_UP
+ db -1 ; end
+
+ hidden_events_for ROCKET_HIDEOUT_B3F
+ hidden_event 27, 17, HiddenItems, NUGGET
+ db -1 ; end
+
+ hidden_events_for ROCKET_HIDEOUT_B4F
+ hidden_event 25, 1, HiddenItems, SUPER_POTION
+ db -1 ; end
+
+ hidden_events_for ROUTE_10
+ hidden_event 9, 17, HiddenItems, SUPER_POTION
+ hidden_event 16, 53, HiddenItems, MAX_ETHER
+ db -1 ; end
+
+ hidden_events_for ROCK_TUNNEL_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for POWER_PLANT
+ hidden_event 17, 16, HiddenItems, MAX_ELIXER
+ hidden_event 12, 1, HiddenItems, PP_UP
+ db -1 ; end
+
+ hidden_events_for ROUTE_11
+ hidden_event 48, 5, HiddenItems, ESCAPE_ROPE
+ db -1 ; end
+
+ hidden_events_for ROUTE_12
+ hidden_event 2, 63, HiddenItems, HYPER_POTION
+ db -1 ; end
+
+ hidden_events_for ROUTE_13
+ hidden_event 1, 14, HiddenItems, PP_UP
+ hidden_event 16, 13, HiddenItems, CALCIUM
+ db -1 ; end
+
+ hidden_events_for ROUTE_15_GATE_2F
+ hidden_event 1, 2, Route15GateLeftBinoculars, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for ROUTE_17
+ hidden_event 15, 14, HiddenItems, RARE_CANDY
+ hidden_event 8, 45, HiddenItems, FULL_RESTORE
+ hidden_event 17, 72, HiddenItems, PP_UP
+ hidden_event 4, 91, HiddenItems, MAX_REVIVE
+ hidden_event 8, 121, HiddenItems, MAX_ELIXER
+ db -1 ; end
+
+ hidden_events_for ROUTE_23
+ hidden_event 9, 44, HiddenItems, FULL_RESTORE
+ hidden_event 19, 70, HiddenItems, ULTRA_BALL
+ hidden_event 8, 90, HiddenItems, MAX_ETHER
+ db -1 ; end
+
+ hidden_events_for VICTORY_ROAD_2F
+ hidden_event 5, 2, HiddenItems, ULTRA_BALL
+ hidden_event 26, 7, HiddenItems, FULL_RESTORE
+ db -1 ; end
+
+ hidden_events_for ROUTE_25
+ hidden_event 38, 3, HiddenItems, ETHER
+ hidden_event 10, 1, HiddenItems, ELIXER
+ db -1 ; end
+
+ hidden_events_for BILLS_HOUSE
+ hidden_event 1, 4, BillsHousePC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for ROUTE_4
+ hidden_event 40, 3, HiddenItems, GREAT_BALL
+ db -1 ; end
+
+ hidden_events_for MT_MOON_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for ROUTE_9
+ hidden_event 14, 7, HiddenItems, ETHER
+ db -1 ; end
+
+ hidden_events_for TRADE_CENTER
+ hidden_event 5, 4, CableClubRightGameboy, ANY_FACING
+ hidden_event 4, 4, CableClubLeftGameboy, ANY_FACING
+ db -1 ; end
+
+ hidden_events_for COLOSSEUM
+ hidden_event 5, 4, CableClubRightGameboy, ANY_FACING
+ hidden_event 4, 4, CableClubLeftGameboy, ANY_FACING
+ db -1 ; end
+
+ hidden_events_for INDIGO_PLATEAU
+ hidden_event 8, 13, PrintIndigoPlateauHQText, $ff ; inaccessible
+ hidden_event 11, 13, PrintIndigoPlateauHQText, SPRITE_FACING_DOWN ; inaccessible
+ db -1 ; end
+
+ hidden_events_for INDIGO_PLATEAU_LOBBY
+ hidden_event 15, 7, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for COPYCATS_HOUSE_2F
+ hidden_event 1, 1, HiddenItems, NUGGET
+ db -1 ; end
+
+ hidden_events_for FIGHTING_DOJO
+ hidden_event 3, 9, PrintFightingDojoText, SPRITE_FACING_UP
+ hidden_event 6, 9, PrintFightingDojoText, SPRITE_FACING_UP
+ hidden_event 4, 0, PrintFightingDojoText2, SPRITE_FACING_UP
+ hidden_event 5, 0, PrintFightingDojoText3, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for SAFFRON_GYM
+ hidden_event 9, 15, GymStatues, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for SAFFRON_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for REDS_HOUSE_2F
+ hidden_event 0, 1, OpenRedsPC, SPRITE_FACING_UP
+ hidden_event 3, 5, PrintRedSNESText, ANY_FACING
+ db -1 ; end
+
+ hidden_events_for BLUES_HOUSE
+ hidden_event 0, 1, PrintBookcaseText, SPRITE_FACING_UP
+ hidden_event 1, 1, PrintBookcaseText, SPRITE_FACING_UP
+ hidden_event 7, 1, PrintBookcaseText, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for OAKS_LAB
+ hidden_event 4, 0, DisplayOakLabLeftPoster, SPRITE_FACING_UP
+ hidden_event 5, 0, DisplayOakLabRightPoster, SPRITE_FACING_UP
+ hidden_event 0, 1, DisplayOakLabEmailText, SPRITE_FACING_UP
+ hidden_event 1, 1, DisplayOakLabEmailText, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for VIRIDIAN_CITY
+ hidden_event 14, 4, HiddenItems, POTION
+ db -1 ; end
+
+ hidden_events_for VIRIDIAN_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for VIRIDIAN_SCHOOL_HOUSE
+ hidden_text_predef 3, 4, PrintNotebookText, ViridianSchoolNotebook
+ hidden_text_predef 3, 0, PrintBlackboardLinkCableText, ViridianSchoolBlackboard
+ db -1 ; end
+
+ hidden_events_for VIRIDIAN_GYM
+ hidden_event 15, 15, GymStatues, SPRITE_FACING_UP
+ hidden_event 18, 15, GymStatues, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for MUSEUM_1F
+ hidden_event 2, 3, AerodactylFossil, SPRITE_FACING_UP
+ hidden_event 2, 6, KabutopsFossil, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for PEWTER_GYM
+ hidden_event 3, 10, GymStatues, SPRITE_FACING_UP
+ hidden_event 6, 10, GymStatues, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for PEWTER_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for CERULEAN_CITY
+ hidden_event 15, 8, HiddenItems, RARE_CANDY
+ db -1 ; end
+
+ hidden_events_for CERULEAN_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for CERULEAN_GYM
+ hidden_event 3, 11, GymStatues, SPRITE_FACING_UP
+ hidden_event 6, 11, GymStatues, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for BIKE_SHOP
+ hidden_event 1, 0, PrintNewBikeText, ANY_FACING
+ hidden_event 2, 1, PrintNewBikeText, ANY_FACING
+ hidden_event 1, 2, PrintNewBikeText, ANY_FACING
+ hidden_event 3, 2, PrintNewBikeText, ANY_FACING
+ hidden_event 0, 4, PrintNewBikeText, ANY_FACING
+ hidden_event 1, 5, PrintNewBikeText, ANY_FACING
+ db -1 ; end
+
+ hidden_events_for CERULEAN_CAVE_1F
+ hidden_event 18, 7, HiddenItems, PP_UP
+ db -1 ; end
+
+ hidden_events_for LAVENDER_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for POKEMON_TOWER_5F
+ hidden_event 4, 12, HiddenItems, ELIXER
+ db -1 ; end
+
+ hidden_events_for MR_FUJIS_HOUSE
+ hidden_event 0, 1, PrintMagazinesText, SPRITE_FACING_DOWN
+ hidden_event 1, 1, PrintMagazinesText, SPRITE_FACING_DOWN
+ hidden_event 7, 1, PrintMagazinesText, SPRITE_FACING_DOWN
+ db -1 ; end
+
+ hidden_events_for VERMILION_CITY
+ hidden_event 14, 11, HiddenItems, MAX_ETHER
+ db -1 ; end
+
+ hidden_events_for VERMILION_POKECENTER
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for POKEMON_FAN_CLUB
+ hidden_event 1, 0, FanClubPicture1, SPRITE_FACING_UP
+ hidden_event 6, 0, FanClubPicture2, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for VERMILION_GYM
+ hidden_event 3, 14, GymStatues, SPRITE_FACING_UP
+ hidden_event 6, 14, GymStatues, SPRITE_FACING_UP
+ hidden_event 6, 1, PrintTrashText, SPRITE_FACING_DOWN
+ ; GymTrashScript argument: [wGymTrashCanIndex]
+ hidden_event 1, 7, GymTrashScript, 0
+ hidden_event 1, 9, GymTrashScript, 1
+ hidden_event 1, 11, GymTrashScript, 2
+ hidden_event 3, 7, GymTrashScript, 3
+ hidden_event 3, 9, GymTrashScript, 4
+ hidden_event 3, 11, GymTrashScript, 5
+ hidden_event 5, 7, GymTrashScript, 6
+ hidden_event 5, 9, GymTrashScript, 7
+ hidden_event 5, 11, GymTrashScript, 8
+ hidden_event 7, 7, GymTrashScript, 9
+ hidden_event 7, 9, GymTrashScript, 10
+ hidden_event 7, 11, GymTrashScript, 11
+ hidden_event 9, 7, GymTrashScript, 12
+ hidden_event 9, 9, GymTrashScript, 13
+ hidden_event 9, 11, GymTrashScript, 14
+ db -1 ; end
+
+ hidden_events_for CELADON_CITY
+ hidden_event 48, 15, HiddenItems, PP_UP
+ db -1 ; end
+
+ hidden_events_for CELADON_HOTEL
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
+ db -1 ; end
+
+ hidden_events_for CELADON_MANSION_2F
+ hidden_event 0, 5, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for CELADON_MANSION_ROOF_HOUSE
+ hidden_text_predef 3, 0, PrintBlackboardLinkCableText, LinkCableHelp
+ hidden_text_predef 4, 0, PrintBlackboardLinkCableText, LinkCableHelp
+ hidden_text_predef 3, 4, PrintNotebookText, TMNotebook
+ db -1 ; end
+
+ hidden_events_for CELADON_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for CELADON_GYM
+ hidden_event 3, 15, GymStatues, SPRITE_FACING_UP
+ hidden_event 6, 15, GymStatues, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for GAME_CORNER
+ hidden_event 18, 15, StartSlotMachine, ANY_FACING
+ hidden_event 18, 14, StartSlotMachine, ANY_FACING
+ hidden_event 18, 13, StartSlotMachine, ANY_FACING
+ hidden_event 18, 12, StartSlotMachine, ANY_FACING
+ hidden_event 18, 11, StartSlotMachine, ANY_FACING
+ hidden_event 18, 10, StartSlotMachine, SLOTS_SOMEONESKEYS
+ hidden_event 13, 10, StartSlotMachine, ANY_FACING
+ hidden_event 13, 11, StartSlotMachine, ANY_FACING
+ hidden_event 13, 12, StartSlotMachine, SLOTS_OUTTOLUNCH
+ hidden_event 13, 13, StartSlotMachine, ANY_FACING
+ hidden_event 13, 14, StartSlotMachine, ANY_FACING
+ hidden_event 13, 15, StartSlotMachine, ANY_FACING
+ hidden_event 12, 15, StartSlotMachine, ANY_FACING
+ hidden_event 12, 14, StartSlotMachine, ANY_FACING
+ hidden_event 12, 13, StartSlotMachine, ANY_FACING
+ hidden_event 12, 12, StartSlotMachine, ANY_FACING
+ hidden_event 12, 11, StartSlotMachine, ANY_FACING
+ hidden_event 12, 10, StartSlotMachine, ANY_FACING
+ hidden_event 7, 10, StartSlotMachine, ANY_FACING
+ hidden_event 7, 11, StartSlotMachine, ANY_FACING
+ hidden_event 7, 12, StartSlotMachine, ANY_FACING
+ hidden_event 7, 13, StartSlotMachine, ANY_FACING
+ hidden_event 7, 14, StartSlotMachine, ANY_FACING
+ hidden_event 7, 15, StartSlotMachine, ANY_FACING
+ hidden_event 6, 15, StartSlotMachine, ANY_FACING
+ hidden_event 6, 14, StartSlotMachine, ANY_FACING
+ hidden_event 6, 13, StartSlotMachine, ANY_FACING
+ hidden_event 6, 12, StartSlotMachine, SLOTS_OUTOFORDER
+ hidden_event 6, 11, StartSlotMachine, ANY_FACING
+ hidden_event 6, 10, StartSlotMachine, ANY_FACING
+ hidden_event 1, 10, StartSlotMachine, ANY_FACING
+ hidden_event 1, 11, StartSlotMachine, ANY_FACING
+ hidden_event 1, 12, StartSlotMachine, ANY_FACING
+ hidden_event 1, 13, StartSlotMachine, ANY_FACING
+ hidden_event 1, 14, StartSlotMachine, ANY_FACING
+ hidden_event 1, 15, StartSlotMachine, ANY_FACING
+ ; HiddenCoins argument: COIN + <number of coins>
+ hidden_event 0, 8, HiddenCoins, COIN+10
+ hidden_event 1, 16, HiddenCoins, COIN+10
+ hidden_event 3, 11, HiddenCoins, COIN+20
+ hidden_event 3, 14, HiddenCoins, COIN+10
+ hidden_event 4, 12, HiddenCoins, COIN+10
+ hidden_event 9, 12, HiddenCoins, COIN+20
+ hidden_event 9, 15, HiddenCoins, COIN+10
+ hidden_event 16, 14, HiddenCoins, COIN+10
+ hidden_event 10, 16, HiddenCoins, COIN+10
+ hidden_event 11, 7, HiddenCoins, COIN+40
+ hidden_event 15, 8, HiddenCoins, COIN+100
+ hidden_event 12, 15, HiddenCoins, COIN+10
+ db -1 ; end
+
+ hidden_events_for FUCHSIA_POKECENTER
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for SAFARI_ZONE_GATE
+ hidden_event 10, 1, HiddenItems, NUGGET ; inaccessible
+ db -1 ; end
+
+ hidden_events_for FUCHSIA_GYM
+ hidden_event 3, 15, GymStatues, SPRITE_FACING_UP
+ hidden_event 6, 15, GymStatues, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for POKEMON_MANSION_1F
+ hidden_event 8, 16, HiddenItems, MOON_STONE
+ hidden_event 2, 5, Mansion1Script_Switches, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for CINNABAR_GYM
+ hidden_event 17, 13, GymStatues, SPRITE_FACING_UP
+ ; PrintCinnabarQuiz argument: ([hGymGateAnswer] << 4) | [hGymGateIndex]
+ hidden_event 15, 7, PrintCinnabarQuiz, (FALSE << 4) | 1
+ hidden_event 10, 1, PrintCinnabarQuiz, (TRUE << 4) | 2
+ hidden_event 9, 7, PrintCinnabarQuiz, (TRUE << 4) | 3
+ hidden_event 9, 13, PrintCinnabarQuiz, (TRUE << 4) | 4
+ hidden_event 1, 13, PrintCinnabarQuiz, (FALSE << 4) | 5
+ hidden_event 1, 7, PrintCinnabarQuiz, (TRUE << 4) | 6
+ db -1 ; end
+
+ hidden_events_for CINNABAR_LAB_FOSSIL_ROOM
+ hidden_event 0, 4, OpenPokemonCenterPC, SPRITE_FACING_UP
+ hidden_event 2, 4, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
+
+ hidden_events_for CINNABAR_POKECENTER
+ hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
+ hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
+ db -1 ; end
diff --git a/data/events/hidden_objects.asm b/data/events/hidden_objects.asm
deleted file mode 100644
index 3e8ea745..00000000
--- a/data/events/hidden_objects.asm
+++ /dev/null
@@ -1,560 +0,0 @@
-HiddenObjectMaps:
- dbw SILPH_CO_11F, SilphCo11FHiddenObjects
- dbw SILPH_CO_5F, SilphCo5FHiddenObjects
- dbw SILPH_CO_9F, SilphCo9FHiddenObjects
- dbw POKEMON_MANSION_2F, Mansion2HiddenObjects
- dbw POKEMON_MANSION_3F, Mansion3HiddenObjects
- dbw POKEMON_MANSION_B1F, Mansion4HiddenObjects
- dbw SAFARI_ZONE_WEST, SafariZoneWestHiddenObjects
- dbw CERULEAN_CAVE_2F, CeruleanCave2HiddenObjects
- dbw CERULEAN_CAVE_B1F, CeruleanCave3HiddenObjects
- dbw UNUSED_MAP_6F, UnusedMap6FHiddenObjects
- dbw SEAFOAM_ISLANDS_B2F, SeafoamIslands3HiddenObjects
- dbw SEAFOAM_ISLANDS_B3F, SeafoamIslands4HiddenObjects
- dbw SEAFOAM_ISLANDS_B4F, SeafoamIslands5HiddenObjects
- dbw VIRIDIAN_FOREST, ViridianForestHiddenObjects
- dbw MT_MOON_B2F, MtMoon3HiddenObjects
- dbw SS_ANNE_B1F_ROOMS, SSAnne10HiddenObjects
- dbw SS_ANNE_KITCHEN, SSAnne6HiddenObjects
- dbw UNDERGROUND_PATH_NORTH_SOUTH, UndergroundPathNsHiddenObjects
- dbw UNDERGROUND_PATH_WEST_EAST, UndergroundPathWeHiddenObjects
- dbw ROCKET_HIDEOUT_B1F, RocketHideout1HiddenObjects
- dbw ROCKET_HIDEOUT_B3F, RocketHideout3HiddenObjects
- dbw ROCKET_HIDEOUT_B4F, RocketHideout4HiddenObjects
- dbw ROUTE_10, Route10HiddenObjects
- dbw ROCK_TUNNEL_POKECENTER, RockTunnelPokecenterHiddenObjects
- dbw POWER_PLANT, PowerPlantHiddenObjects
- dbw ROUTE_11, Route11HiddenObjects
- dbw ROUTE_12, Route12HiddenObjects
- dbw ROUTE_13, Route13HiddenObjects
- dbw ROUTE_15_GATE_2F, Route15Gate2FHiddenObjects
- dbw ROUTE_17, Route17HiddenObjects
- dbw ROUTE_23, Route23HiddenObjects
- dbw VICTORY_ROAD_2F, VictoryRoad2HiddenObjects
- dbw ROUTE_25, Route25HiddenObjects
- dbw BILLS_HOUSE, BillsHouseHiddenObjects
- dbw ROUTE_4, Route4HiddenObjects
- dbw MT_MOON_POKECENTER, MtMoonPokecenterHiddenObjects
- dbw ROUTE_9, Route9HiddenObjects
- dbw TRADE_CENTER, TradeCenterHiddenObjects
- dbw COLOSSEUM, ColosseumHiddenObjects
- dbw INDIGO_PLATEAU, IndigoPlateauHiddenObjects
- dbw INDIGO_PLATEAU_LOBBY, IndigoPlateauLobbyHiddenObjects
- dbw COPYCATS_HOUSE_2F, CopycatsHouse2FHiddenObjects
- dbw FIGHTING_DOJO, FightingDojoHiddenObjects
- dbw SAFFRON_GYM, SaffronGymHiddenObjects
- dbw SAFFRON_POKECENTER, SaffronPokecenterHiddenObjects
- dbw REDS_HOUSE_2F, RedsHouse2FHiddenObjects
- dbw BLUES_HOUSE, BluesHouseHiddenObjects
- dbw OAKS_LAB, OaksLabHiddenObjects
- dbw VIRIDIAN_CITY, ViridianCityHiddenObjects
- dbw VIRIDIAN_POKECENTER, ViridianPokecenterHiddenObjects
- dbw VIRIDIAN_SCHOOL_HOUSE, ViridianSchoolHiddenObjects
- dbw VIRIDIAN_GYM, ViridianGymHiddenObjects
- dbw MUSEUM_1F, Museum1FHiddenObjects
- dbw PEWTER_GYM, PewterGymHiddenObjects
- dbw PEWTER_POKECENTER, PewterPokecenterHiddenObjects
- dbw CERULEAN_CITY, CeruleanCityHiddenObjects
- dbw CERULEAN_POKECENTER, CeruleanPokecenterHiddenObjects
- dbw CERULEAN_GYM, CeruleanGymHiddenObjects
- dbw BIKE_SHOP, BikeShopHiddenObjects
- dbw CERULEAN_CAVE_1F, CeruleanCave1HiddenObjects
- dbw LAVENDER_POKECENTER, LavenderPokecenterHiddenObjects
- dbw POKEMON_TOWER_5F, Pokemontower5HiddenObjects
- dbw MR_FUJIS_HOUSE, LavenderHouse1HiddenObjects
- dbw VERMILION_CITY, VermilionCityHiddenObjects
- dbw VERMILION_POKECENTER, VermilionPokecenterHiddenObjects
- dbw POKEMON_FAN_CLUB, PokemonFanClubHiddenObjects
- dbw VERMILION_GYM, VermilionGymHiddenObjects
- dbw CELADON_CITY, CeladonCityHiddenObjects
- dbw CELADON_HOTEL, CeladonHotelHiddenObjects
- dbw CELADON_MANSION_2F, CeladonMansion2HiddenObjects
- dbw CELADON_MANSION_ROOF_HOUSE, CeladonMansion5HiddenObjects
- dbw CELADON_POKECENTER, CeladonPokecenterHiddenObjects
- dbw CELADON_GYM, CeladonGymHiddenObjects
- dbw GAME_CORNER, GameCornerHiddenObjects
- dbw FUCHSIA_POKECENTER, FuchsiaPokecenterHiddenObjects
- dbw SAFARI_ZONE_GATE, SafariZoneEntranceHiddenObjects
- dbw FUCHSIA_GYM, FuchsiaGymHiddenObjects
- dbw POKEMON_MANSION_1F, Mansion1HiddenObjects
- dbw CINNABAR_GYM, CinnabarGymHiddenObjects
- dbw CINNABAR_LAB_FOSSIL_ROOM, CinnabarLab4HiddenObjects
- dbw CINNABAR_POKECENTER, CinnabarPokecenterHiddenObjects
- db -1 ; end
-
-MACRO hidden_object
- db \2 ; y coord
- db \1 ; x coord
- db \3 ; item id
- dba \4 ; object routine
-ENDM
-
-MACRO hidden_text_predef
- db \2 ; y coord
- db \1 ; x coord
- db_tx_pre \3 ; text id
- dba \4 ; object routine
-ENDM
-
-; Some hidden objects use SPRITE_FACING_* values,
-; but these do not actually prevent the player
-; from interacting with them in any direction.
-DEF ANY_FACING EQU $d0
-
-SilphCo11FHiddenObjects:
- hidden_object 10, 12, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-SilphCo5FHiddenObjects:
- hidden_object 12, 3, ELIXER, HiddenItems
- db -1 ; end
-
-SilphCo9FHiddenObjects:
- hidden_object 2, 15, MAX_POTION, HiddenItems
- db -1 ; end
-
-Mansion2HiddenObjects:
- hidden_object 2, 11, SPRITE_FACING_UP, Mansion2Script_Switches
- db -1 ; end
-
-Mansion3HiddenObjects:
- hidden_object 1, 9, MAX_REVIVE, HiddenItems
- hidden_object 10, 5, SPRITE_FACING_UP, Mansion3Script_Switches
- db -1 ; end
-
-Mansion4HiddenObjects:
- hidden_object 1, 9, RARE_CANDY, HiddenItems
- hidden_object 20, 3, SPRITE_FACING_UP, Mansion4Script_Switches
- hidden_object 18, 25, SPRITE_FACING_UP, Mansion4Script_Switches
- db -1 ; end
-
-SafariZoneWestHiddenObjects:
- hidden_object 6, 5, REVIVE, HiddenItems
- db -1 ; end
-
-CeruleanCave2HiddenObjects:
- hidden_object 16, 13, PP_UP, HiddenItems
- db -1 ; end
-
-CeruleanCave3HiddenObjects:
- hidden_object 8, 14, PP_UP, HiddenItems
- db -1 ; end
-
-UnusedMap6FHiddenObjects:
- hidden_object 14, 11, MAX_ELIXER, HiddenItems
- db -1 ; end
-
-SeafoamIslands3HiddenObjects:
- hidden_object 15, 15, NUGGET, HiddenItems
- db -1 ; end
-
-SeafoamIslands4HiddenObjects:
- hidden_object 9, 16, MAX_ELIXER, HiddenItems
- db -1 ; end
-
-SeafoamIslands5HiddenObjects:
- hidden_object 25, 17, ULTRA_BALL, HiddenItems
- db -1 ; end
-
-ViridianForestHiddenObjects:
- hidden_object 1, 18, POTION, HiddenItems
- hidden_object 16, 42, ANTIDOTE, HiddenItems
- db -1 ; end
-
-MtMoon3HiddenObjects:
- hidden_object 18, 12, MOON_STONE, HiddenItems
- hidden_object 33, 9, ETHER, HiddenItems
- db -1 ; end
-
-SSAnne10HiddenObjects:
- hidden_object 3, 1, HYPER_POTION, HiddenItems
- db -1 ; end
-
-SSAnne6HiddenObjects:
- hidden_object 13, 5, SPRITE_FACING_DOWN, PrintTrashText
- hidden_object 13, 7, SPRITE_FACING_DOWN, PrintTrashText
- hidden_object 13, 9, GREAT_BALL, HiddenItems
- db -1 ; end
-
-UndergroundPathNsHiddenObjects:
- hidden_object 3, 4, FULL_RESTORE, HiddenItems
- hidden_object 4, 34, X_SPECIAL, HiddenItems
- db -1 ; end
-
-UndergroundPathWeHiddenObjects:
- hidden_object 12, 2, NUGGET, HiddenItems
- hidden_object 21, 5, ELIXER, HiddenItems
- db -1 ; end
-
-RocketHideout1HiddenObjects:
- hidden_object 21, 15, PP_UP, HiddenItems
- db -1 ; end
-
-RocketHideout3HiddenObjects:
- hidden_object 27, 17, NUGGET, HiddenItems
- db -1 ; end
-
-RocketHideout4HiddenObjects:
- hidden_object 25, 1, SUPER_POTION, HiddenItems
- db -1 ; end
-
-Route10HiddenObjects:
- hidden_object 9, 17, SUPER_POTION, HiddenItems
- hidden_object 16, 53, MAX_ETHER, HiddenItems
- db -1 ; end
-
-RockTunnelPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-PowerPlantHiddenObjects:
- hidden_object 17, 16, MAX_ELIXER, HiddenItems
- hidden_object 12, 1, PP_UP, HiddenItems
- db -1 ; end
-
-Route11HiddenObjects:
- hidden_object 48, 5, ESCAPE_ROPE, HiddenItems
- db -1 ; end
-
-Route12HiddenObjects:
- hidden_object 2, 63, HYPER_POTION, HiddenItems
- db -1 ; end
-
-Route13HiddenObjects:
- hidden_object 1, 14, PP_UP, HiddenItems
- hidden_object 16, 13, CALCIUM, HiddenItems
- db -1 ; end
-
-Route15Gate2FHiddenObjects:
- hidden_object 1, 2, SPRITE_FACING_UP, Route15GateLeftBinoculars
- db -1 ; end
-
-Route17HiddenObjects:
- hidden_object 15, 14, RARE_CANDY, HiddenItems
- hidden_object 8, 45, FULL_RESTORE, HiddenItems
- hidden_object 17, 72, PP_UP, HiddenItems
- hidden_object 4, 91, MAX_REVIVE, HiddenItems
- hidden_object 8, 121, MAX_ELIXER, HiddenItems
- db -1 ; end
-
-Route23HiddenObjects:
- hidden_object 9, 44, FULL_RESTORE, HiddenItems
- hidden_object 19, 70, ULTRA_BALL, HiddenItems
- hidden_object 8, 90, MAX_ETHER, HiddenItems
- db -1 ; end
-
-VictoryRoad2HiddenObjects:
- hidden_object 5, 2, ULTRA_BALL, HiddenItems
- hidden_object 26, 7, FULL_RESTORE, HiddenItems
- db -1 ; end
-
-Route25HiddenObjects:
- hidden_object 38, 3, ETHER, HiddenItems
- hidden_object 10, 1, ELIXER, HiddenItems
- db -1 ; end
-
-BillsHouseHiddenObjects:
- hidden_object 1, 4, SPRITE_FACING_UP, BillsHousePC
- db -1 ; end
-
-Route4HiddenObjects:
- hidden_object 40, 3, GREAT_BALL, HiddenItems
- db -1 ; end
-
-MtMoonPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-Route9HiddenObjects:
- hidden_object 14, 7, ETHER, HiddenItems
- db -1 ; end
-
-TradeCenterHiddenObjects:
- hidden_object 5, 4, ANY_FACING, CableClubRightGameboy
- hidden_object 4, 4, ANY_FACING, CableClubLeftGameboy
- db -1 ; end
-
-ColosseumHiddenObjects:
- hidden_object 5, 4, ANY_FACING, CableClubRightGameboy
- hidden_object 4, 4, ANY_FACING, CableClubLeftGameboy
- db -1 ; end
-
-IndigoPlateauHiddenObjects:
- hidden_object 8, 13, $ff, PrintIndigoPlateauHQText ; inaccessible
- hidden_object 11, 13, SPRITE_FACING_DOWN, PrintIndigoPlateauHQText ; inaccessible
- db -1 ; end
-
-IndigoPlateauLobbyHiddenObjects:
- hidden_object 15, 7, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-CopycatsHouse2FHiddenObjects:
- hidden_object 1, 1, NUGGET, HiddenItems
- db -1 ; end
-
-FightingDojoHiddenObjects:
- hidden_object 3, 9, SPRITE_FACING_UP, PrintFightingDojoText
- hidden_object 6, 9, SPRITE_FACING_UP, PrintFightingDojoText
- hidden_object 4, 0, SPRITE_FACING_UP, PrintFightingDojoText2
- hidden_object 5, 0, SPRITE_FACING_UP, PrintFightingDojoText3
- db -1 ; end
-
-SaffronGymHiddenObjects:
- hidden_object 9, 15, SPRITE_FACING_UP, GymStatues
- db -1 ; end
-
-SaffronPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-RedsHouse2FHiddenObjects:
- hidden_object 0, 1, SPRITE_FACING_UP, OpenRedsPC
- hidden_object 3, 5, ANY_FACING, PrintRedSNESText
- db -1 ; end
-
-BluesHouseHiddenObjects:
- hidden_object 0, 1, SPRITE_FACING_UP, PrintBookcaseText
- hidden_object 1, 1, SPRITE_FACING_UP, PrintBookcaseText
- hidden_object 7, 1, SPRITE_FACING_UP, PrintBookcaseText
- db -1 ; end
-
-OaksLabHiddenObjects:
- hidden_object 4, 0, SPRITE_FACING_UP, DisplayOakLabLeftPoster
- hidden_object 5, 0, SPRITE_FACING_UP, DisplayOakLabRightPoster
- hidden_object 0, 1, SPRITE_FACING_UP, DisplayOakLabEmailText
- hidden_object 1, 1, SPRITE_FACING_UP, DisplayOakLabEmailText
- db -1 ; end
-
-ViridianCityHiddenObjects:
- hidden_object 14, 4, POTION, HiddenItems
- db -1 ; end
-
-ViridianPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-ViridianSchoolHiddenObjects:
- hidden_text_predef 3, 4, ViridianSchoolNotebook, PrintNotebookText
- hidden_text_predef 3, 0, ViridianSchoolBlackboard, PrintBlackboardLinkCableText
- db -1 ; end
-
-ViridianGymHiddenObjects:
- hidden_object 15, 15, SPRITE_FACING_UP, GymStatues
- hidden_object 18, 15, SPRITE_FACING_UP, GymStatues
- db -1 ; end
-
-Museum1FHiddenObjects:
- hidden_object 2, 3, SPRITE_FACING_UP, AerodactylFossil
- hidden_object 2, 6, SPRITE_FACING_UP, KabutopsFossil
- db -1 ; end
-
-PewterGymHiddenObjects:
- hidden_object 3, 10, SPRITE_FACING_UP, GymStatues
- hidden_object 6, 10, SPRITE_FACING_UP, GymStatues
- db -1 ; end
-
-PewterPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-CeruleanCityHiddenObjects:
- hidden_object 15, 8, RARE_CANDY, HiddenItems
- db -1 ; end
-
-CeruleanPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-CeruleanGymHiddenObjects:
- hidden_object 3, 11, SPRITE_FACING_UP, GymStatues
- hidden_object 6, 11, SPRITE_FACING_UP, GymStatues
- db -1 ; end
-
-BikeShopHiddenObjects:
- hidden_object 1, 0, ANY_FACING, PrintNewBikeText
- hidden_object 2, 1, ANY_FACING, PrintNewBikeText
- hidden_object 1, 2, ANY_FACING, PrintNewBikeText
- hidden_object 3, 2, ANY_FACING, PrintNewBikeText
- hidden_object 0, 4, ANY_FACING, PrintNewBikeText
- hidden_object 1, 5, ANY_FACING, PrintNewBikeText
- db -1 ; end
-
-CeruleanCave1HiddenObjects:
- hidden_object 18, 7, PP_UP, HiddenItems
- db -1 ; end
-
-LavenderPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-Pokemontower5HiddenObjects:
- hidden_object 4, 12, ELIXER, HiddenItems
- db -1 ; end
-
-LavenderHouse1HiddenObjects:
- hidden_object 0, 1, SPRITE_FACING_DOWN, PrintMagazinesText
- hidden_object 1, 1, SPRITE_FACING_DOWN, PrintMagazinesText
- hidden_object 7, 1, SPRITE_FACING_DOWN, PrintMagazinesText
- db -1 ; end
-
-VermilionCityHiddenObjects:
- hidden_object 14, 11, MAX_ETHER, HiddenItems
- db -1 ; end
-
-VermilionPokecenterHiddenObjects:
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
- db -1 ; end
-
-PokemonFanClubHiddenObjects:
- hidden_object 1, 0, SPRITE_FACING_UP, FanClubPicture1
- hidden_object 6, 0, SPRITE_FACING_UP, FanClubPicture2
- db -1 ; end
-
-VermilionGymHiddenObjects:
- hidden_object 3, 14, SPRITE_FACING_UP, GymStatues
- hidden_object 6, 14, SPRITE_FACING_UP, GymStatues
- hidden_object 6, 1, SPRITE_FACING_DOWN, PrintTrashText
- ; third param: [wGymTrashCanIndex]
- hidden_object 1, 7, 0, GymTrashScript
- hidden_object 1, 9, 1, GymTrashScript
- hidden_object 1, 11, 2, GymTrashScript
- hidden_object 3, 7, 3, GymTrashScript
- hidden_object 3, 9, 4, GymTrashScript
- hidden_object 3, 11, 5, GymTrashScript
- hidden_object 5, 7, 6, GymTrashScript
- hidden_object 5, 9, 7, GymTrashScript
- hidden_object 5, 11, 8, GymTrashScript
- hidden_object 7, 7, 9, GymTrashScript
- hidden_object 7, 9, 10, GymTrashScript
- hidden_object 7, 11, 11, GymTrashScript
- hidden_object 9, 7, 12, GymTrashScript
- hidden_object 9, 9, 13, GymTrashScript
- hidden_object 9, 11, 14, GymTrashScript
- db -1 ; end
-
-CeladonCityHiddenObjects:
- hidden_object 48, 15, PP_UP, HiddenItems
- db -1 ; end
-
-CeladonHotelHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
- db -1 ; end
-
-CeladonMansion2HiddenObjects:
- hidden_object 0, 5, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-CeladonMansion5HiddenObjects:
- hidden_text_predef 3, 0, LinkCableHelp, PrintBlackboardLinkCableText
- hidden_text_predef 4, 0, LinkCableHelp, PrintBlackboardLinkCableText
- hidden_text_predef 3, 4, TMNotebook, PrintNotebookText
- db -1 ; end
-
-CeladonPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-CeladonGymHiddenObjects:
- hidden_object 3, 15, SPRITE_FACING_UP, GymStatues
- hidden_object 6, 15, SPRITE_FACING_UP, GymStatues
- db -1 ; end
-
-GameCornerHiddenObjects:
- hidden_object 18, 15, ANY_FACING, StartSlotMachine
- hidden_object 18, 14, ANY_FACING, StartSlotMachine
- hidden_object 18, 13, ANY_FACING, StartSlotMachine
- hidden_object 18, 12, ANY_FACING, StartSlotMachine
- hidden_object 18, 11, ANY_FACING, StartSlotMachine
- hidden_object 18, 10, SLOTS_SOMEONESKEYS, StartSlotMachine
- hidden_object 13, 10, ANY_FACING, StartSlotMachine
- hidden_object 13, 11, ANY_FACING, StartSlotMachine
- hidden_object 13, 12, SLOTS_OUTTOLUNCH, StartSlotMachine
- hidden_object 13, 13, ANY_FACING, StartSlotMachine
- hidden_object 13, 14, ANY_FACING, StartSlotMachine
- hidden_object 13, 15, ANY_FACING, StartSlotMachine
- hidden_object 12, 15, ANY_FACING, StartSlotMachine
- hidden_object 12, 14, ANY_FACING, StartSlotMachine
- hidden_object 12, 13, ANY_FACING, StartSlotMachine
- hidden_object 12, 12, ANY_FACING, StartSlotMachine
- hidden_object 12, 11, ANY_FACING, StartSlotMachine
- hidden_object 12, 10, ANY_FACING, StartSlotMachine
- hidden_object 7, 10, ANY_FACING, StartSlotMachine
- hidden_object 7, 11, ANY_FACING, StartSlotMachine
- hidden_object 7, 12, ANY_FACING, StartSlotMachine
- hidden_object 7, 13, ANY_FACING, StartSlotMachine
- hidden_object 7, 14, ANY_FACING, StartSlotMachine
- hidden_object 7, 15, ANY_FACING, StartSlotMachine
- hidden_object 6, 15, ANY_FACING, StartSlotMachine
- hidden_object 6, 14, ANY_FACING, StartSlotMachine
- hidden_object 6, 13, ANY_FACING, StartSlotMachine
- hidden_object 6, 12, SLOTS_OUTOFORDER, StartSlotMachine
- hidden_object 6, 11, ANY_FACING, StartSlotMachine
- hidden_object 6, 10, ANY_FACING, StartSlotMachine
- hidden_object 1, 10, ANY_FACING, StartSlotMachine
- hidden_object 1, 11, ANY_FACING, StartSlotMachine
- hidden_object 1, 12, ANY_FACING, StartSlotMachine
- hidden_object 1, 13, ANY_FACING, StartSlotMachine
- hidden_object 1, 14, ANY_FACING, StartSlotMachine
- hidden_object 1, 15, ANY_FACING, StartSlotMachine
- hidden_object 0, 8, COIN+10, HiddenCoins
- hidden_object 1, 16, COIN+10, HiddenCoins
- hidden_object 3, 11, COIN+20, HiddenCoins
- hidden_object 3, 14, COIN+10, HiddenCoins
- hidden_object 4, 12, COIN+10, HiddenCoins
- hidden_object 9, 12, COIN+20, HiddenCoins
- hidden_object 9, 15, COIN+10, HiddenCoins
- hidden_object 16, 14, COIN+10, HiddenCoins
- hidden_object 10, 16, COIN+10, HiddenCoins
- hidden_object 11, 7, COIN+40, HiddenCoins
- hidden_object 15, 8, COIN+100, HiddenCoins
- hidden_object 12, 15, COIN+10, HiddenCoins
- db -1 ; end
-
-FuchsiaPokecenterHiddenObjects:
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
- db -1 ; end
-
-SafariZoneEntranceHiddenObjects:
- hidden_object 10, 1, NUGGET, HiddenItems ; inaccessible
- db -1 ; end
-
-FuchsiaGymHiddenObjects:
- hidden_object 3, 15, SPRITE_FACING_UP, GymStatues
- hidden_object 6, 15, SPRITE_FACING_UP, GymStatues
- db -1 ; end
-
-Mansion1HiddenObjects:
- hidden_object 8, 16, MOON_STONE, HiddenItems
- hidden_object 2, 5, SPRITE_FACING_UP, Mansion1Script_Switches
- db -1 ; end
-
-CinnabarGymHiddenObjects:
- hidden_object 17, 13, SPRITE_FACING_UP, GymStatues
- ; third param: ([hGymGateAnswer] << 4) | [hGymGateIndex]
- hidden_object 15, 7, (FALSE << 4) | 1, PrintCinnabarQuiz
- hidden_object 10, 1, (TRUE << 4) | 2, PrintCinnabarQuiz
- hidden_object 9, 7, (TRUE << 4) | 3, PrintCinnabarQuiz
- hidden_object 9, 13, (TRUE << 4) | 4, PrintCinnabarQuiz
- hidden_object 1, 13, (FALSE << 4) | 5, PrintCinnabarQuiz
- hidden_object 1, 7, (TRUE << 4) | 6, PrintCinnabarQuiz
- db -1 ; end
-
-CinnabarLab4HiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_UP, OpenPokemonCenterPC
- hidden_object 2, 4, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
-
-CinnabarPokecenterHiddenObjects:
- hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
- hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
- db -1 ; end
diff --git a/data/items/names.asm b/data/items/names.asm
index bab26efc..f5c0f27e 100644
--- a/data/items/names.asm
+++ b/data/items/names.asm
@@ -1,5 +1,5 @@
ItemNames::
- list_start
+ list_start ITEM_NAME_LENGTH - 1
li "MASTER BALL"
li "ULTRA BALL"
li "GREAT BALL"
diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm
deleted file mode 100644
index de9eb979..00000000
--- a/data/maps/hide_show_data.asm
+++ /dev/null
@@ -1,582 +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 CeruleanMelaniesHouseHS
- 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
- 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
- db VIRIDIAN_CITY, VIRIDIANCITY_OLD_MAN2, 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 ; removed in yellow
-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_EEVEE_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
-CeruleanMelaniesHouseHS:
- db CERULEAN_MELANIES_HOUSE, CERULEANMELANIESHOUSE_BULBASAUR, SHOW
-CeruleanCaveHS:
- db CERULEAN_CAVE_1F, CERULEANCAVE1F_RARE_CANDY, SHOW
- db CERULEAN_CAVE_1F, CERULEANCAVE1F_MAX_ELIXER, SHOW
- db CERULEAN_CAVE_1F, CERULEANCAVE1F_MAX_REVIVE, SHOW
- db CERULEAN_CAVE_1F, CERULEANCAVE1F_ULTRA_BALL, 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_JESSIE, HIDE
- db POKEMON_TOWER_7F, POKEMONTOWER7F_JAMES, HIDE
- 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_POTION1, SHOW
- db VIRIDIAN_FOREST, VIRIDIANFOREST_POTION2, 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_JESSIE, HIDE
- db MT_MOON_B2F, MTMOONB2F_JAMES, HIDE
- 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_JAMES, HIDE
- db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_JESSIE, HIDE
- 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_JAMES, SHOW
- db SILPH_CO_11F, SILPHCO11F_ROCKET, SHOW
- db SILPH_CO_11F, SILPHCO11F_JESSIE, 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_RARE_CANDY, SHOW
- db CERULEAN_CAVE_2F, CERULEANCAVE2F_ULTRA_BALL, SHOW
- db CERULEAN_CAVE_2F, CERULEANCAVE2F_MAX_REVIVE, SHOW
- db CERULEAN_CAVE_2F, CERULEANCAVE2F_FULL_RESTORE, SHOW
-CeruleanCaveB1FHS:
- db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MEWTWO, SHOW
- db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_ULTRA_BALL1, SHOW
- db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_ULTRA_BALL2, SHOW
- db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MAX_REVIVE, SHOW
- db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MAX_ELIXER, 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
-BluesHouseHSCopy: ; unreferenced
- db BLUES_HOUSE, BLUESHOUSE_DAISY1, SHOW
- db BLUES_HOUSE, BLUESHOUSE_DAISY2, HIDE
- db BLUES_HOUSE, BLUESHOUSE_TOWN_MAP, SHOW
- assert_table_length NUM_HS_OBJECTS
- db -1, 1, SHOW ; end
diff --git a/data/maps/objects/SaffronCity.asm b/data/maps/objects/SaffronCity.asm
index 6b09c84a..26715480 100644
--- a/data/maps/objects/SaffronCity.asm
+++ b/data/maps/objects/SaffronCity.asm
@@ -13,7 +13,7 @@
const_export SAFFRONCITY_PIDGEOT
const_export SAFFRONCITY_ROCKER
const_export SAFFRONCITY_ROCKET8
- const_export SAFFRONCITY_ROCKET9 ; removed in yellow, but still referenced in data/maps/hide_show_data.asm
+ const_export SAFFRONCITY_ROCKET9 ; removed in yellow, but still referenced in data/maps/toggleable_objects.asm
SaffronCity_Object:
db $f ; border block
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..c628bd88
--- /dev/null
+++ b/data/maps/toggleable_objects.asm
@@ -0,0 +1,438 @@
+; toggleable objects for each map
+
+ToggleableObjectMapPointers:
+; entries correspond to map ids
+ table_width 2
+FOR n, NUM_MAPS
+ IF DEF(TOGGLEMAP{n}_NAME) ; defined by `toggle_consts_for`
+ dw ToggleData_{TOGGLEMAP{n}_NAME}
+ 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_\1:
+ IF toggles_ok
+ ASSERT DEF(TOGGLEMAP{toggle_map_id}_ID), \
+ "`toggleable_objects_for \1` is not defined"
+ DEF toggles_ok &= DEF(TOGGLEMAP{toggle_map_id}_ID)
+ IF toggles_ok
+ assert_table_length TOGGLEMAP{toggle_map_id}_ID
+ DEF toggles_ok &= TOGGLEMAP{toggle_map_id}_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
+ toggle_object_state VIRIDIANCITY_OLD_MAN2, 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 ; removed in yellow
+
+ 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_EEVEE_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_MELANIES_HOUSE
+ toggle_object_state CERULEANMELANIESHOUSE_BULBASAUR, ON
+
+ toggleable_objects_for CERULEAN_CAVE_1F
+ toggle_object_state CERULEANCAVE1F_RARE_CANDY, ON
+ toggle_object_state CERULEANCAVE1F_MAX_ELIXER, ON
+ toggle_object_state CERULEANCAVE1F_MAX_REVIVE, ON
+ toggle_object_state CERULEANCAVE1F_ULTRA_BALL, 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_JESSIE, OFF
+ toggle_object_state POKEMONTOWER7F_JAMES, OFF
+ 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_POTION1, ON
+ toggle_object_state VIRIDIANFOREST_POTION2, 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_JESSIE, OFF
+ toggle_object_state MTMOONB2F_JAMES, OFF
+ 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_JAMES, OFF
+ toggle_object_state ROCKETHIDEOUTB4F_JESSIE, OFF
+ 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_JAMES, ON
+ toggle_object_state SILPHCO11F_ROCKET, ON
+ toggle_object_state SILPHCO11F_JESSIE, 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_RARE_CANDY, ON
+ toggle_object_state CERULEANCAVE2F_ULTRA_BALL, ON
+ toggle_object_state CERULEANCAVE2F_MAX_REVIVE, 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_BALL1, ON
+ toggle_object_state CERULEANCAVEB1F_ULTRA_BALL2, ON
+ toggle_object_state CERULEANCAVEB1F_MAX_REVIVE, ON
+ toggle_object_state CERULEANCAVEB1F_MAX_ELIXER, 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
+
+; unreferenced
+ db BLUES_HOUSE, BLUESHOUSE_DAISY1, ON
+ db BLUES_HOUSE, BLUESHOUSE_DAISY2, OFF
+ db BLUES_HOUSE, BLUESHOUSE_TOWN_MAP, ON
+
+ assert_table_length NUM_TOGGLEABLE_OBJECTS
+
+ db -1, 1, ON ; end
diff --git a/data/maps/town_map_entries.asm b/data/maps/town_map_entries.asm
index 0f6976ae..d67f6f97 100644
--- a/data/maps/town_map_entries.asm
+++ b/data/maps/town_map_entries.asm
@@ -1,4 +1,4 @@
-MACRO external_map
+MACRO outdoor_map
dn \2, \1
dw \3
ENDM
@@ -7,114 +7,116 @@ ENDM
ExternalMapEntries:
table_width 3
; x, y, name
- external_map 2, 11, PalletTownName
- external_map 2, 8, ViridianCityName
- external_map 2, 3, PewterCityName
- external_map 10, 2, CeruleanCityName
- external_map 14, 5, LavenderTownName
- external_map 10, 9, VermilionCityName
- external_map 7, 5, CeladonCityName
- external_map 8, 13, FuchsiaCityName
- external_map 2, 15, CinnabarIslandName
- external_map 0, 2, IndigoPlateauName
- external_map 10, 5, SaffronCityName
- external_map 0, 0, PalletTownName ; unused
- external_map 2, 10, Route1Name
- external_map 2, 6, Route2Name
- external_map 4, 3, Route3Name
- external_map 8, 2, Route4Name
- external_map 10, 3, Route5Name
- external_map 10, 8, Route6Name
- external_map 8, 5, Route7Name
- external_map 13, 5, Route8Name
- external_map 13, 2, Route9Name
- external_map 14, 4, Route10Name
- external_map 12, 9, Route11Name
- external_map 14, 9, Route12Name
- external_map 13, 11, Route13Name
- external_map 11, 12, Route14Name
- external_map 10, 13, Route15Name
- external_map 5, 5, Route16Name
- external_map 4, 8, Route17Name
- external_map 6, 13, Route18Name
- external_map 6, 15, Route19Name
- external_map 4, 15, Route20Name
- external_map 2, 13, Route21Name
- external_map 0, 8, Route22Name
- external_map 0, 6, Route23Name
- external_map 10, 1, Route24Name
- external_map 11, 0, Route25Name
+ outdoor_map 2, 11, PalletTownName
+ outdoor_map 2, 8, ViridianCityName
+ outdoor_map 2, 3, PewterCityName
+ outdoor_map 10, 2, CeruleanCityName
+ outdoor_map 14, 5, LavenderTownName
+ outdoor_map 10, 9, VermilionCityName
+ outdoor_map 7, 5, CeladonCityName
+ outdoor_map 8, 13, FuchsiaCityName
+ outdoor_map 2, 15, CinnabarIslandName
+ outdoor_map 0, 2, IndigoPlateauName
+ outdoor_map 10, 5, SaffronCityName
+ outdoor_map 0, 0, PalletTownName ; unused
+ outdoor_map 2, 10, Route1Name
+ outdoor_map 2, 6, Route2Name
+ outdoor_map 4, 3, Route3Name
+ outdoor_map 8, 2, Route4Name
+ outdoor_map 10, 3, Route5Name
+ outdoor_map 10, 8, Route6Name
+ outdoor_map 8, 5, Route7Name
+ outdoor_map 13, 5, Route8Name
+ outdoor_map 13, 2, Route9Name
+ outdoor_map 14, 4, Route10Name
+ outdoor_map 12, 9, Route11Name
+ outdoor_map 14, 9, Route12Name
+ outdoor_map 13, 11, Route13Name
+ outdoor_map 11, 12, Route14Name
+ outdoor_map 10, 13, Route15Name
+ outdoor_map 5, 5, Route16Name
+ outdoor_map 4, 8, Route17Name
+ outdoor_map 6, 13, Route18Name
+ outdoor_map 6, 15, Route19Name
+ outdoor_map 4, 15, Route20Name
+ outdoor_map 2, 13, Route21Name
+ outdoor_map 0, 8, Route22Name
+ outdoor_map 0, 6, Route23Name
+ outdoor_map 10, 1, Route24Name
+ outdoor_map 11, 0, Route25Name
assert_table_length FIRST_INDOOR_MAP
-MACRO internal_map
- db \1 + 1
+MACRO indoor_map
+ db INDOORGROUP_\1
dn \3, \2
dw \4
ENDM
; the appearance of buildings and dungeons in the town map
InternalMapEntries:
- ; maximum map id subject to this rule, x, y, name
- internal_map OAKS_LAB, 2, 11, PalletTownName
- internal_map VIRIDIAN_GYM, 2, 8, ViridianCityName
- internal_map VIRIDIAN_FOREST_SOUTH_GATE, 2, 6, Route2Name
- internal_map VIRIDIAN_FOREST, 2, 4, ViridianForestName
- internal_map PEWTER_POKECENTER, 2, 3, PewterCityName
- internal_map MT_MOON_B2F, 6, 2, MountMoonName
- internal_map CERULEAN_MART, 10, 2, CeruleanCityName
- internal_map MT_MOON_POKECENTER, 5, 2, Route4Name
- internal_map CERULEAN_TRASHED_HOUSE_COPY, 10, 2, CeruleanCityName
- internal_map DAYCARE, 10, 4, Route5Name
- internal_map UNDERGROUND_PATH_ROUTE_6_COPY, 10, 6, Route6Name
- internal_map UNDERGROUND_PATH_ROUTE_7_COPY, 9, 5, Route7Name
- internal_map UNDERGROUND_PATH_ROUTE_8, 11, 5, Route8Name
- internal_map ROCK_TUNNEL_1F, 14, 3, RockTunnelName
- internal_map POWER_PLANT, 15, 4, PowerPlantName
- internal_map ROUTE_11_GATE_2F, 13, 9, Route11Name
- internal_map ROUTE_12_GATE_1F, 14, 7, Route12Name
- internal_map BILLS_HOUSE, 12, 0, SeaCottageName
- internal_map VERMILION_DOCK, 10, 9, VermilionCityName
- internal_map SS_ANNE_B1F_ROOMS, 9, 10, SSAnneName
- internal_map VICTORY_ROAD_1F, 0, 4, VictoryRoadName
- internal_map HALL_OF_FAME, 0, 2, PokemonLeagueName
- internal_map UNDERGROUND_PATH_NORTH_SOUTH, 10, 5, UndergroundPathName
- internal_map CHAMPIONS_ROOM, 0, 2, PokemonLeagueName
- internal_map UNDERGROUND_PATH_WEST_EAST, 10, 5, UndergroundPathName
- internal_map CELADON_HOTEL, 7, 5, CeladonCityName
- internal_map LAVENDER_POKECENTER, 14, 5, LavenderTownName
- internal_map POKEMON_TOWER_7F, 15, 5, PokemonTowerName
- internal_map LAVENDER_CUBONE_HOUSE, 14, 5, LavenderTownName
- internal_map WARDENS_HOUSE, 8, 13, FuchsiaCityName
- internal_map SAFARI_ZONE_GATE, 8, 12, SafariZoneName
- internal_map FUCHSIA_MEETING_ROOM, 8, 13, FuchsiaCityName
- internal_map SEAFOAM_ISLANDS_B4F, 5, 15, SeafoamIslandsName
- internal_map VERMILION_OLD_ROD_HOUSE, 10, 9, VermilionCityName
- internal_map FUCHSIA_GOOD_ROD_HOUSE, 8, 13, FuchsiaCityName
- internal_map POKEMON_MANSION_1F, 2, 15, PokemonMansionName
- internal_map CINNABAR_MART_COPY, 2, 15, CinnabarIslandName
- internal_map INDIGO_PLATEAU_LOBBY, 0, 2, IndigoPlateauName
- internal_map MR_PSYCHICS_HOUSE, 10, 5, SaffronCityName
- internal_map ROUTE_15_GATE_2F, 9, 13, Route15Name
- internal_map ROUTE_16_FLY_HOUSE, 4, 5, Route16Name
- internal_map ROUTE_12_SUPER_ROD_HOUSE, 14, 10, Route12Name
- internal_map ROUTE_18_GATE_2F, 7, 13, Route18Name
- internal_map SEAFOAM_ISLANDS_1F, 5, 15, SeafoamIslandsName
- internal_map ROUTE_22_GATE, 0, 7, Route22Name
- internal_map VICTORY_ROAD_2F, 0, 4, VictoryRoadName
- internal_map ROUTE_12_GATE_2F, 14, 7, Route12Name
- internal_map VERMILION_TRADE_HOUSE, 10, 9, VermilionCityName
- internal_map DIGLETTS_CAVE, 3, 4, DiglettsCaveName
- internal_map VICTORY_ROAD_3F, 0, 4, VictoryRoadName
- internal_map UNUSED_MAP_CE, 7, 5, RocketHQName
- internal_map SILPH_CO_8F, 10, 5, SilphCoName
- internal_map POKEMON_MANSION_B1F, 2, 15, PokemonMansionName
- internal_map SAFARI_ZONE_NORTH_REST_HOUSE, 8, 12, SafariZoneName
- internal_map CERULEAN_CAVE_1F, 9, 1, CeruleanCaveName
- internal_map NAME_RATERS_HOUSE, 14, 5, LavenderTownName
- internal_map CERULEAN_BADGE_HOUSE, 10, 2, CeruleanCityName
- internal_map ROCK_TUNNEL_B1F, 14, 3, RockTunnelName
- internal_map SILPH_CO_ELEVATOR, 10, 5, SilphCoName
- internal_map AGATHAS_ROOM, 0, 2, PokemonLeagueName
- internal_map SUMMER_BEACH_HOUSE, 6, 15, Route19Name
+ table_width 4
+ ; indoor map group, x, y, name
+ indoor_map PALLET_TOWN, 2, 11, PalletTownName
+ indoor_map VIRIDIAN_CITY, 2, 8, ViridianCityName
+ indoor_map ROUTE_2, 2, 6, Route2Name
+ indoor_map VIRIDIAN_FOREST, 2, 4, ViridianForestName
+ indoor_map PEWTER_CITY, 2, 3, PewterCityName
+ indoor_map MT_MOON, 6, 2, MountMoonName
+ indoor_map CERULEAN_CITY, 10, 2, CeruleanCityName
+ indoor_map ROUTE_4, 5, 2, Route4Name
+ indoor_map CERULEAN_CITY_2, 10, 2, CeruleanCityName
+ indoor_map ROUTE_5, 10, 4, Route5Name
+ indoor_map ROUTE_6, 10, 6, Route6Name
+ indoor_map ROUTE_7, 9, 5, Route7Name
+ indoor_map ROUTE_8, 11, 5, Route8Name
+ indoor_map ROCK_TUNNEL, 14, 3, RockTunnelName
+ indoor_map POWER_PLANT, 15, 4, PowerPlantName
+ indoor_map ROUTE_11, 13, 9, Route11Name
+ indoor_map ROUTE_12, 14, 7, Route12Name
+ indoor_map SEA_COTTAGE, 12, 0, SeaCottageName
+ indoor_map VERMILION_CITY, 10, 9, VermilionCityName
+ indoor_map SS_ANNE, 9, 10, SSAnneName
+ indoor_map VICTORY_ROAD, 0, 4, VictoryRoadName
+ indoor_map POKEMON_LEAGUE, 0, 2, PokemonLeagueName
+ indoor_map UNDERGROUND_PATH, 10, 5, UndergroundPathName
+ indoor_map POKEMON_LEAGUE_2, 0, 2, PokemonLeagueName
+ indoor_map UNDERGROUND_PATH_2, 10, 5, UndergroundPathName
+ indoor_map CELADON_CITY, 7, 5, CeladonCityName
+ indoor_map LAVENDER_TOWN, 14, 5, LavenderTownName
+ indoor_map POKEMON_TOWER, 15, 5, PokemonTowerName
+ indoor_map LAVENDER_TOWN_2, 14, 5, LavenderTownName
+ indoor_map FUCHSIA_CITY, 8, 13, FuchsiaCityName
+ indoor_map SAFARI_ZONE, 8, 12, SafariZoneName
+ indoor_map FUCHSIA_CITY_2, 8, 13, FuchsiaCityName
+ indoor_map SEAFOAM_ISLANDS, 5, 15, SeafoamIslandsName
+ indoor_map VERMILION_CITY_2, 10, 9, VermilionCityName
+ indoor_map FUCHSIA_CITY_3, 8, 13, FuchsiaCityName
+ indoor_map POKEMON_MANSION, 2, 15, PokemonMansionName
+ indoor_map CINNABAR_ISLAND, 2, 15, CinnabarIslandName
+ indoor_map INDIGO_PLATEAU, 0, 2, IndigoPlateauName
+ indoor_map SAFFRON_CITY, 10, 5, SaffronCityName
+ indoor_map ROUTE_15, 9, 13, Route15Name
+ indoor_map ROUTE_16, 4, 5, Route16Name
+ indoor_map ROUTE_12_2, 14, 10, Route12Name
+ indoor_map ROUTE_18, 7, 13, Route18Name
+ indoor_map SEAFOAM_ISLANDS_2, 5, 15, SeafoamIslandsName
+ indoor_map ROUTE_22, 0, 7, Route22Name
+ indoor_map VICTORY_ROAD_2, 0, 4, VictoryRoadName
+ indoor_map ROUTE_12_3, 14, 7, Route12Name
+ indoor_map VERMILION_CITY_3, 10, 9, VermilionCityName
+ indoor_map DIGLETTS_CAVE, 3, 4, DiglettsCaveName
+ indoor_map VICTORY_ROAD_3, 0, 4, VictoryRoadName
+ indoor_map ROCKET_HQ, 7, 5, RocketHQName
+ indoor_map SILPH_CO, 10, 5, SilphCoName
+ indoor_map POKEMON_MANSION_2, 2, 15, PokemonMansionName
+ indoor_map SAFARI_ZONE_2, 8, 12, SafariZoneName
+ indoor_map CERULEAN_CAVE, 9, 1, CeruleanCaveName
+ indoor_map LAVENDER_TOWN_3, 14, 5, LavenderTownName
+ indoor_map CERULEAN_CITY_3, 10, 2, CeruleanCityName
+ indoor_map ROCK_TUNNEL_2, 14, 3, RockTunnelName
+ indoor_map SILPH_CO_2, 10, 5, SilphCoName
+ indoor_map POKEMON_LEAGUE_3, 0, 2, PokemonLeagueName
+ indoor_map ROUTE_19, 6, 15, Route19Name
+ assert_table_length NUM_INDOOR_MAP_GROUPS
db -1 ; end
diff --git a/data/moves/grammar.asm b/data/moves/grammar.asm
index e44b1abc..884b4f2f 100644
--- a/data/moves/grammar.asm
+++ b/data/moves/grammar.asm
@@ -1,16 +1,20 @@
-ExclamationPointMoveSets:
-; set 0
+; Used by GetMoveGrammar (see engine/battle/core.asm)
+; Each move is given an identifier for what usedmovetext to use (0-4).
+; Made redundant in English localization, where all are just "[mon]<LINE>used [move]!"
+
+MoveGrammar:
+; 0: originally "[mon]は<LINE>[move]を つかった!" ("[mon]<LINE>used [move]!")
db SWORDS_DANCE
db GROWTH
db 0 ; end set
-; set 1
+; 1: originally "[mon]は<LINE>[move]を した!" ("[mon]<LINE>did [move]!")
db RECOVER
db SELFDESTRUCT
db AMNESIA
db 0 ; end set
-; set 2
+; 2: originally "[mon]は<LINE>[move]した!" ("[mon]<LINE>did [move]!")
db MEDITATE
db AGILITY
db TELEPORT
@@ -20,7 +24,7 @@ ExclamationPointMoveSets:
db BARRAGE
db 0 ; end set
-; set 3
+; 3: originally "[mon]の<LINE>[move] こうげき!" ("[mon]'s<LINE>[move] attack!")
db POUND
db SCRATCH
db VICEGRIP
@@ -69,4 +73,6 @@ ExclamationPointMoveSets:
db SUBSTITUTE
db 0 ; end set
+; 4: originally "[mon]の<LINE>[move]!" ("[mon]'s<LINE>[move]!")
+; Any move not listed above uses this grammar.
db -1 ; end
diff --git a/data/moves/names.asm b/data/moves/names.asm
index 025172d5..caecc06c 100644
--- a/data/moves/names.asm
+++ b/data/moves/names.asm
@@ -1,5 +1,6 @@
MoveNames::
- list_start
+ ; in-battle "used <move name>!" text can only fit 12 (MOVE_NAME_LENGTH - 2) characters
+ list_start MOVE_NAME_LENGTH - 2
li "POUND"
li "KARATE CHOP"
li "DOUBLESLAP"
diff --git a/data/player/names.asm b/data/player/names.asm
new file mode 100644
index 00000000..67f2df36
--- /dev/null
+++ b/data/player/names.asm
@@ -0,0 +1,15 @@
+; see constants/player_constants.asm
+
+DefaultNamesPlayer:
+ db "NEW NAME"
+FOR n, 1, NUM_PLAYER_NAMES + 1
+ next #PLAYERNAME{d:n}
+ENDR
+ db "@"
+
+DefaultNamesRival:
+ db "NEW NAME"
+FOR n, 1, NUM_PLAYER_NAMES + 1
+ next #RIVALNAME{d:n}
+ENDR
+ db "@"
diff --git a/data/player/names_list.asm b/data/player/names_list.asm
new file mode 100644
index 00000000..44f3c7f1
--- /dev/null
+++ b/data/player/names_list.asm
@@ -0,0 +1,17 @@
+; see constants/player_constants.asm
+
+DefaultNamesPlayerList:
+ db "NEW NAME@"
+ list_start PLAYER_NAME_LENGTH - 1
+FOR n, 1, NUM_PLAYER_NAMES + 1
+ li #PLAYERNAME{d:n}
+ENDR
+ assert_list_length NUM_PLAYER_NAMES
+
+DefaultNamesRivalList:
+ db "NEW NAME@"
+ list_start PLAYER_NAME_LENGTH - 1
+FOR n, 1, NUM_PLAYER_NAMES + 1
+ li #RIVALNAME{d:n}
+ENDR
+ assert_list_length NUM_PLAYER_NAMES
diff --git a/data/player_names.asm b/data/player_names.asm
deleted file mode 100644
index cf461a7a..00000000
--- a/data/player_names.asm
+++ /dev/null
@@ -1,13 +0,0 @@
-DefaultNamesPlayer:
- db "NEW NAME"
- next "YELLOW"
- next "ASH"
- next "JACK"
- db "@"
-
-DefaultNamesRival:
- db "NEW NAME"
- next "BLUE"
- next "GARY"
- next "JOHN"
- db "@"
diff --git a/data/player_names_list.asm b/data/player_names_list.asm
deleted file mode 100644
index a5f38919..00000000
--- a/data/player_names_list.asm
+++ /dev/null
@@ -1,11 +0,0 @@
-DefaultNamesPlayerList:
- db "NEW NAME@"
- db "YELLOW@"
- db "ASH@"
- db "JACK@"
-
-DefaultNamesRivalList:
- db "NEW NAME@"
- db "BLUE@"
- db "GARY@"
- db "JOHN@"
diff --git a/data/predef_pointers.asm b/data/predef_pointers.asm
index e6968c46..b3bb1643 100644
--- a/data/predef_pointers.asm
+++ b/data/predef_pointers.asm
@@ -32,14 +32,14 @@ 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
add_predef LearnMoveFromLevelUp
add_predef LearnMove
add_predef GetQuantityOfItemInBag
- add_predef CheckForHiddenObjectOrBookshelfOrCardKeyDoor, $03 ; home bank
+ add_predef CheckForHiddenEventOrBookshelfOrCardKeyDoor, $03 ; home bank
add_predef GiveItem, $03 ; home bank
add_predef ChangeBGPalColor0_4Frames
add_predef FindPathToPlayer
@@ -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
diff --git a/data/text/text_2.asm b/data/text/text_2.asm
index 31f0edb8..fbf0b236 100644
--- a/data/text/text_2.asm
+++ b/data/text/text_2.asm
@@ -1124,21 +1124,21 @@ _MoveIsDisabledText::
cont "disabled!"
prompt
-_MonName1Text::
+_ActorNameText::
text "<USER>@"
text_end
-_Used1Text::
+_UsedMove1Text::
text_start
line "used @"
text_end
-_Used2Text::
+_UsedMove2Text::
text_start
line "used @"
text_end
-_InsteadText::
+_UsedInsteadText::
text "instead,"
cont "@"
text_end
@@ -1147,23 +1147,23 @@ _MoveNameText::
text_ram wStringBuffer
text "@"
-_ExclamationPoint1Text::
+_EndUsedMove1Text::
text "!"
done
-_ExclamationPoint2Text::
+_EndUsedMove2Text::
text "!"
done
-_ExclamationPoint3Text::
+_EndUsedMove3Text::
text "!"
done
-_ExclamationPoint4Text::
+_EndUsedMove4Text::
text "!"
done
-_ExclamationPoint5Text::
+_EndUsedMove5Text::
text "!"
done
diff --git a/data/trainers/move_choices.asm b/data/trainers/move_choices.asm
index eef0579d..118e73cd 100644
--- a/data/trainers/move_choices.asm
+++ b/data/trainers/move_choices.asm
@@ -1,14 +1,15 @@
+DEF __move_choices__ = 0
+
MACRO move_choices
IF _NARG
db \# ; all args
ENDC
db 0 ; end
- DEF list_index += 1
+ DEF __move_choices__ += 1
ENDM
; move choice modification methods that are applied for each trainer class
TrainerClassMoveChoiceModifications:
- list_start
move_choices ; YOUNGSTER
move_choices 1 ; BUG CATCHER
move_choices 1 ; LASS
@@ -56,4 +57,5 @@ TrainerClassMoveChoiceModifications:
move_choices 1 ; CHANNELER
move_choices 1 ; AGATHA
move_choices 1, 3 ; LANCE
- assert_list_length NUM_TRAINERS
+ assert __move_choices__ == NUM_TRAINERS, \
+ "TrainerClassMoveChoiceModifications: expected {d:NUM_TRAINERS} entries, got {d:__move_choices__}"
diff --git a/data/trainers/names.asm b/data/trainers/names.asm
index d7c5677c..1b6f2382 100644
--- a/data/trainers/names.asm
+++ b/data/trainers/names.asm
@@ -1,5 +1,5 @@
TrainerNames::
- list_start
+ list_start TRAINER_NAME_LENGTH - 1
li "YOUNGSTER"
li "BUG CATCHER"
li "LASS"
diff --git a/data/wild/probabilities.asm b/data/wild/probabilities.asm
index 2c56c6b9..6896d937 100644
--- a/data/wild/probabilities.asm
+++ b/data/wild/probabilities.asm
@@ -1,15 +1,28 @@
+DEF wild_chance_slot = 0
+DEF wild_chance_total = 0
+
+MACRO wild_chance
+ DEF wild_chance_total += \1
+ db wild_chance_total - 1
+ db wild_chance_slot * 2
+ DEF wild_chance_slot += 1
+ENDM
+
WildMonEncounterSlotChances:
-; There are 10 slots for wild pokemon, and this is the table that defines how common each of
-; those 10 slots is. A random number is generated and then the first byte of each pair in this
-; table is compared against that random number. If the random number is less than or equal
-; to the first byte, then that slot is chosen. The second byte is double the slot number.
- db 50, $00 ; 51/256 = 19.9% chance of slot 0
- db 101, $02 ; 51/256 = 19.9% chance of slot 1
- db 140, $04 ; 39/256 = 15.2% chance of slot 2
- db 165, $06 ; 25/256 = 9.8% chance of slot 3
- db 190, $08 ; 25/256 = 9.8% chance of slot 4
- db 215, $0A ; 25/256 = 9.8% chance of slot 5
- db 228, $0C ; 13/256 = 5.1% chance of slot 6
- db 241, $0E ; 13/256 = 5.1% chance of slot 7
- db 252, $10 ; 11/256 = 4.3% chance of slot 8
- db 255, $12 ; 3/256 = 1.2% chance of slot 9
+; There are 10 slots for wild pokemon, and this is the list that defines how common each of
+; those 10 slots is. A random number is generated and then the cumulative chance value up to the current
+; slot (included) is compared against that random number. If the random number is less than or equal
+; to said cumulative value, then that slot is chosen.
+ table_width 2
+ wild_chance 51 ; 51/256 = 19.9% chance of slot 0
+ wild_chance 51 ; 51/256 = 19.9% chance of slot 1
+ wild_chance 39 ; 39/256 = 15.2% chance of slot 2
+ wild_chance 25 ; 25/256 = 9.8% chance of slot 3
+ wild_chance 25 ; 25/256 = 9.8% chance of slot 4
+ wild_chance 25 ; 25/256 = 9.8% chance of slot 5
+ wild_chance 13 ; 13/256 = 5.1% chance of slot 6
+ wild_chance 13 ; 13/256 = 5.1% chance of slot 7
+ wild_chance 11 ; 11/256 = 4.3% chance of slot 8
+ wild_chance 3 ; 3/256 = 1.2% chance of slot 9
+ assert_table_length NUM_WILDMONS
+ ASSERT wild_chance_total == 256, "WildMonEncounterSlotChances sum to {d:wild_chance_total}, not 256!"