Use macros to enforce "hidden object" constraints, and rename them to "hidden events" (#559)

This commit is contained in:
Rangi 2026-01-07 22:05:37 -05:00 committed by GitHub
parent fe1e76466b
commit 0e49aef88e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
40 changed files with 684 additions and 753 deletions

View File

@ -0,0 +1,599 @@
DEF num_hidden_event_maps = 0
MACRO hidden_event_map
db \1 ; map id
DEF HIDDENEVENTMAP{num_hidden_event_maps} EQUS "\1"
DEF num_hidden_event_maps += 1
ENDM
HiddenEventMaps:
hidden_event_map REDS_HOUSE_2F
hidden_event_map BLUES_HOUSE
hidden_event_map OAKS_LAB
hidden_event_map VIRIDIAN_POKECENTER
hidden_event_map VIRIDIAN_MART
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_MART
hidden_event_map PEWTER_POKECENTER
hidden_event_map CERULEAN_POKECENTER
hidden_event_map CERULEAN_GYM
hidden_event_map CERULEAN_MART
hidden_event_map LAVENDER_POKECENTER
hidden_event_map VERMILION_POKECENTER
hidden_event_map VERMILION_GYM
hidden_event_map CELADON_MANSION_2F
hidden_event_map CELADON_POKECENTER
hidden_event_map CELADON_GYM
hidden_event_map GAME_CORNER
hidden_event_map CELADON_HOTEL
hidden_event_map FUCHSIA_POKECENTER
hidden_event_map FUCHSIA_GYM
hidden_event_map CINNABAR_GYM
hidden_event_map CINNABAR_POKECENTER
hidden_event_map SAFFRON_GYM
hidden_event_map MT_MOON_POKECENTER
hidden_event_map ROCK_TUNNEL_POKECENTER
hidden_event_map TRADE_CENTER
hidden_event_map COLOSSEUM
hidden_event_map VIRIDIAN_FOREST
hidden_event_map MT_MOON_B2F
hidden_event_map INDIGO_PLATEAU
hidden_event_map ROUTE_25
hidden_event_map ROUTE_9
hidden_event_map SS_ANNE_KITCHEN
hidden_event_map SS_ANNE_B1F_ROOMS
hidden_event_map ROCKET_HIDEOUT_B1F
hidden_event_map ROCKET_HIDEOUT_B3F
hidden_event_map ROCKET_HIDEOUT_B4F
hidden_event_map SAFFRON_POKECENTER
hidden_event_map POKEMON_TOWER_5F
hidden_event_map ROUTE_13
hidden_event_map SAFARI_ZONE_GATE
hidden_event_map SAFARI_ZONE_WEST
hidden_event_map SILPH_CO_5F
hidden_event_map SILPH_CO_9F
hidden_event_map COPYCATS_HOUSE_2F
hidden_event_map CERULEAN_CAVE_1F
hidden_event_map CERULEAN_CAVE_B1F
hidden_event_map POWER_PLANT
hidden_event_map SEAFOAM_ISLANDS_B2F
hidden_event_map SEAFOAM_ISLANDS_B4F
hidden_event_map POKEMON_MANSION_1F
hidden_event_map POKEMON_MANSION_3F
hidden_event_map ROUTE_23
hidden_event_map VICTORY_ROAD_2F
hidden_event_map UNUSED_MAP_6F
hidden_event_map BILLS_HOUSE
hidden_event_map VIRIDIAN_CITY
hidden_event_map SAFARI_ZONE_WEST_REST_HOUSE
hidden_event_map SAFARI_ZONE_EAST_REST_HOUSE
hidden_event_map SAFARI_ZONE_NORTH_REST_HOUSE
hidden_event_map ROUTE_15_GATE_2F
hidden_event_map MR_FUJIS_HOUSE
hidden_event_map CELADON_MANSION_ROOF_HOUSE
hidden_event_map FIGHTING_DOJO
hidden_event_map ROUTE_10
hidden_event_map INDIGO_PLATEAU_LOBBY
hidden_event_map CINNABAR_LAB_FOSSIL_ROOM
hidden_event_map BIKE_SHOP
hidden_event_map ROUTE_11
hidden_event_map ROUTE_12
hidden_event_map POKEMON_MANSION_2F
hidden_event_map POKEMON_MANSION_B1F
hidden_event_map SILPH_CO_11F
hidden_event_map ROUTE_17
hidden_event_map UNDERGROUND_PATH_NORTH_SOUTH
hidden_event_map UNDERGROUND_PATH_WEST_EAST
hidden_event_map CELADON_CITY
hidden_event_map SEAFOAM_ISLANDS_B3F
hidden_event_map VERMILION_CITY
hidden_event_map CERULEAN_CITY
hidden_event_map ROUTE_4
db -1 ; end
HiddenEventPointers:
; each of these pointers is for the corresponding map in HiddenEventMaps
FOR n, num_hidden_event_maps
dw HiddenEventsFor_{HIDDENEVENTMAP{n}}
ENDR
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 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 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_POKECENTER
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
db -1 ; end
hidden_events_for VIRIDIAN_MART
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_MART
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_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 CERULEAN_MART
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 VERMILION_POKECENTER
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
hidden_event 0, 4, PrintBenchGuyText, 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_MANSION_2F
hidden_event 0, 5, OpenPokemonCenterPC, SPRITE_FACING_UP
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 CELADON_HOTEL
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
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 FUCHSIA_GYM
hidden_event 3, 15, GymStatues, SPRITE_FACING_UP
hidden_event 6, 15, GymStatues, 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_POKECENTER
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
hidden_event 13, 3, OpenPokemonCenterPC, 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 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 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 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 INDIGO_PLATEAU
hidden_event 8, 13, PrintIndigoPlateauHQText, $ff ; inaccessible
hidden_event 11, 13, PrintIndigoPlateauHQText, SPRITE_FACING_DOWN ; inaccessible
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 ROUTE_9
hidden_event 14, 7, HiddenItems, ETHER
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 SS_ANNE_B1F_ROOMS
hidden_event 3, 1, HiddenItems, HYPER_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 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 SAFFRON_POKECENTER
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_UP
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 ROUTE_13
hidden_event 1, 14, HiddenItems, PP_UP
hidden_event 16, 13, HiddenItems, CALCIUM
db -1 ; end
hidden_events_for SAFARI_ZONE_GATE
hidden_event 10, 1, HiddenItems, NUGGET ; inaccessible
db -1 ; end
hidden_events_for SAFARI_ZONE_WEST
hidden_event 6, 5, HiddenItems, REVIVE
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 COPYCATS_HOUSE_2F
hidden_event 1, 1, HiddenItems, NUGGET
db -1 ; end
hidden_events_for CERULEAN_CAVE_1F
hidden_event 14, 11, HiddenItems, RARE_CANDY
db -1 ; end
hidden_events_for CERULEAN_CAVE_B1F
hidden_event 27, 3, HiddenItems, ULTRA_BALL
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 SEAFOAM_ISLANDS_B2F
hidden_event 15, 15, HiddenItems, NUGGET
db -1 ; end
hidden_events_for SEAFOAM_ISLANDS_B4F
hidden_event 25, 17, HiddenItems, ULTRA_BALL
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 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 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 UNUSED_MAP_6F
hidden_event 14, 11, HiddenItems, MAX_ELIXER
db -1 ; end
hidden_events_for BILLS_HOUSE
hidden_event 1, 4, BillsHousePC, SPRITE_FACING_UP
db -1 ; end
hidden_events_for VIRIDIAN_CITY
hidden_event 14, 4, HiddenItems, POTION
db -1 ; end
hidden_events_for SAFARI_ZONE_WEST_REST_HOUSE
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
db -1 ; end
hidden_events_for SAFARI_ZONE_EAST_REST_HOUSE
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
db -1 ; end
hidden_events_for SAFARI_ZONE_NORTH_REST_HOUSE
hidden_event 0, 4, PrintBenchGuyText, SPRITE_FACING_LEFT
hidden_event 13, 3, OpenPokemonCenterPC, SPRITE_FACING_UP
db -1 ; end
hidden_events_for ROUTE_15_GATE_2F
hidden_event 1, 2, Route15GateLeftBinoculars, SPRITE_FACING_UP
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 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 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 INDIGO_PLATEAU_LOBBY
hidden_event 15, 7, OpenPokemonCenterPC, SPRITE_FACING_UP
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 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 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 SILPH_CO_11F
hidden_event 10, 12, OpenPokemonCenterPC, 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 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 CELADON_CITY
hidden_event 48, 15, HiddenItems, PP_UP
db -1 ; end
hidden_events_for SEAFOAM_ISLANDS_B3F
hidden_event 9, 16, HiddenItems, MAX_ELIXER
db -1 ; end
hidden_events_for VERMILION_CITY
hidden_event 14, 11, HiddenItems, MAX_ETHER
db -1 ; end
hidden_events_for CERULEAN_CITY
hidden_event 15, 8, HiddenItems, RARE_CANDY
db -1 ; end
hidden_events_for ROUTE_4
hidden_event 40, 3, HiddenItems, GREAT_BALL
db -1 ; end

View File

@ -1,668 +0,0 @@
HiddenObjectMaps:
db REDS_HOUSE_2F
db BLUES_HOUSE
db OAKS_LAB
db VIRIDIAN_POKECENTER
db VIRIDIAN_MART
db VIRIDIAN_SCHOOL_HOUSE
db VIRIDIAN_GYM
db MUSEUM_1F
db PEWTER_GYM
db PEWTER_MART
db PEWTER_POKECENTER
db CERULEAN_POKECENTER
db CERULEAN_GYM
db CERULEAN_MART
db LAVENDER_POKECENTER
db VERMILION_POKECENTER
db VERMILION_GYM
db CELADON_MANSION_2F
db CELADON_POKECENTER
db CELADON_GYM
db GAME_CORNER
db CELADON_HOTEL
db FUCHSIA_POKECENTER
db FUCHSIA_GYM
db CINNABAR_GYM
db CINNABAR_POKECENTER
db SAFFRON_GYM
db MT_MOON_POKECENTER
db ROCK_TUNNEL_POKECENTER
db TRADE_CENTER
db COLOSSEUM
db VIRIDIAN_FOREST
db MT_MOON_B2F
db INDIGO_PLATEAU
db ROUTE_25
db ROUTE_9
db SS_ANNE_KITCHEN
db SS_ANNE_B1F_ROOMS
db ROCKET_HIDEOUT_B1F
db ROCKET_HIDEOUT_B3F
db ROCKET_HIDEOUT_B4F
db SAFFRON_POKECENTER
db POKEMON_TOWER_5F
db ROUTE_13
db SAFARI_ZONE_GATE
db SAFARI_ZONE_WEST
db SILPH_CO_5F
db SILPH_CO_9F
db COPYCATS_HOUSE_2F
db CERULEAN_CAVE_1F
db CERULEAN_CAVE_B1F
db POWER_PLANT
db SEAFOAM_ISLANDS_B2F
db SEAFOAM_ISLANDS_B4F
db POKEMON_MANSION_1F
db POKEMON_MANSION_3F
db ROUTE_23
db VICTORY_ROAD_2F
db UNUSED_MAP_6F
db BILLS_HOUSE
db VIRIDIAN_CITY
db SAFARI_ZONE_WEST_REST_HOUSE
db SAFARI_ZONE_EAST_REST_HOUSE
db SAFARI_ZONE_NORTH_REST_HOUSE
db ROUTE_15_GATE_2F
db MR_FUJIS_HOUSE
db CELADON_MANSION_ROOF_HOUSE
db FIGHTING_DOJO
db ROUTE_10
db INDIGO_PLATEAU_LOBBY
db CINNABAR_LAB_FOSSIL_ROOM
db BIKE_SHOP
db ROUTE_11
db ROUTE_12
db POKEMON_MANSION_2F
db POKEMON_MANSION_B1F
db SILPH_CO_11F
db ROUTE_17
db UNDERGROUND_PATH_NORTH_SOUTH
db UNDERGROUND_PATH_WEST_EAST
db CELADON_CITY
db SEAFOAM_ISLANDS_B3F
db VERMILION_CITY
db CERULEAN_CITY
db ROUTE_4
db -1 ; end
HiddenObjectPointers:
; each of these pointers is for the corresponding map in HiddenObjectMaps
dw RedsHouse2FHiddenObjects
dw BluesHouseHiddenObjects
dw OaksLabHiddenObjects
dw ViridianPokecenterHiddenObjects
dw ViridianMartHiddenObjects
dw ViridianSchoolHiddenObjects
dw ViridianGymHiddenObjects
dw Museum1FHiddenObjects
dw PewterGymHiddenObjects
dw PewterMartHiddenObjects
dw PewterPokecenterHiddenObjects
dw CeruleanPokecenterHiddenObjects
dw CeruleanGymHiddenObjects
dw CeruleanMartHiddenObjects
dw LavenderPokecenterHiddenObjects
dw VermilionPokecenterHiddenObjects
dw VermilionGymHiddenObjects
dw CeladonMansion2HiddenObjects
dw CeladonPokecenterHiddenObjects
dw CeladonGymHiddenObjects
dw GameCornerHiddenObjects
dw CeladonHotelHiddenObjects
dw FuchsiaPokecenterHiddenObjects
dw FuchsiaGymHiddenObjects
dw CinnabarGymHiddenObjects
dw CinnabarPokecenterHiddenObjects
dw SaffronGymHiddenObjects
dw MtMoonPokecenterHiddenObjects
dw RockTunnelPokecenterHiddenObjects
dw TradeCenterHiddenObjects
dw ColosseumHiddenObjects
dw ViridianForestHiddenObjects
dw MtMoon3HiddenObjects
dw IndigoPlateauHiddenObjects
dw Route25HiddenObjects
dw Route9HiddenObjects
dw SSAnne6HiddenObjects
dw SSAnne10HiddenObjects
dw RocketHideout1HiddenObjects
dw RocketHideout3HiddenObjects
dw RocketHideout4HiddenObjects
dw SaffronPokecenterHiddenObjects
dw PokemonTower5HiddenObjects
dw Route13HiddenObjects
dw SafariZoneEntranceHiddenObjects
dw SafariZoneWestHiddenObjects
dw SilphCo5FHiddenObjects
dw SilphCo9FHiddenObjects
dw CopycatsHouse2FHiddenObjects
dw CeruleanCave1HiddenObjects
dw CeruleanCave3HiddenObjects
dw PowerPlantHiddenObjects
dw SeafoamIslands3HiddenObjects
dw SeafoamIslands5HiddenObjects
dw Mansion1HiddenObjects
dw Mansion3HiddenObjects
dw Route23HiddenObjects
dw VictoryRoad2HiddenObjects
dw Unused6FHiddenObjects
dw BillsHouseHiddenObjects
dw ViridianCityHiddenObjects
dw SafariZoneRestHouse2HiddenObjects
dw SafariZoneRestHouse3HiddenObjects
dw SafariZoneRestHouse4HiddenObjects
dw Route15GateUpstairsHiddenObjects
dw LavenderHouse1HiddenObjects
dw CeladonMansion5HiddenObjects
dw FightingDojoHiddenObjects
dw Route10HiddenObjects
dw IndigoPlateauLobbyHiddenObjects
dw CinnabarLab4HiddenObjects
dw BikeShopHiddenObjects
dw Route11HiddenObjects
dw Route12HiddenObjects
dw Mansion2HiddenObjects
dw Mansion4HiddenObjects
dw SilphCo11FHiddenObjects
dw Route17HiddenObjects
dw UndergroundPathNsHiddenObjects
dw UndergroundPathWeHiddenObjects
dw CeladonCityHiddenObjects
dw SeafoamIslands4HiddenObjects
dw VermilionCityHiddenObjects
dw CeruleanCityHiddenObjects
dw Route4HiddenObjects
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
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
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
ViridianPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
ViridianMartHiddenObjects:
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
PewterMartHiddenObjects:
db -1 ; end
PewterPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
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
CeruleanMartHiddenObjects:
db -1 ; end
LavenderPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
VermilionPokecenterHiddenObjects:
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
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
CeladonMansion2HiddenObjects:
hidden_object 0, 5, SPRITE_FACING_UP, OpenPokemonCenterPC
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
CeladonHotelHiddenObjects:
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
db -1 ; end
FuchsiaPokecenterHiddenObjects:
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
db -1 ; end
FuchsiaGymHiddenObjects:
hidden_object 3, 15, SPRITE_FACING_UP, GymStatues
hidden_object 6, 15, SPRITE_FACING_UP, GymStatues
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
CinnabarPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
SaffronGymHiddenObjects:
hidden_object 9, 15, SPRITE_FACING_UP, GymStatues
db -1 ; end
MtMoonPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
RockTunnelPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
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
IndigoPlateauHiddenObjects:
hidden_object 8, 13, $ff, PrintIndigoPlateauHQText ; inaccessible
hidden_object 11, 13, SPRITE_FACING_DOWN, PrintIndigoPlateauHQText ; inaccessible
db -1 ; end
Route25HiddenObjects:
hidden_object 38, 3, ETHER, HiddenItems
hidden_object 10, 1, ELIXER, HiddenItems
db -1 ; end
Route9HiddenObjects:
hidden_object 14, 7, ETHER, 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
SSAnne10HiddenObjects:
hidden_object 3, 1, HYPER_POTION, HiddenItems
db -1 ; end
Route10HiddenObjects:
hidden_object 9, 17, SUPER_POTION, HiddenItems
hidden_object 16, 53, MAX_ETHER, 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
SaffronPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
PokemonTower5HiddenObjects:
hidden_object 4, 12, ELIXER, HiddenItems
db -1 ; end
Route13HiddenObjects:
hidden_object 1, 14, PP_UP, HiddenItems
hidden_object 16, 13, CALCIUM, HiddenItems
db -1 ; end
SafariZoneEntranceHiddenObjects:
hidden_object 10, 1, NUGGET, HiddenItems ; inaccessible
db -1 ; end
SafariZoneWestHiddenObjects:
hidden_object 6, 5, REVIVE, HiddenItems
db -1 ; end
SilphCo5FHiddenObjects:
hidden_object 12, 3, ELIXER, HiddenItems
db -1 ; end
SilphCo9FHiddenObjects:
hidden_object 2, 15, MAX_POTION, HiddenItems
db -1 ; end
CopycatsHouse2FHiddenObjects:
hidden_object 1, 1, NUGGET, HiddenItems
db -1 ; end
CeruleanCave1HiddenObjects:
hidden_object 14, 11, RARE_CANDY, HiddenItems
db -1 ; end
CeruleanCave3HiddenObjects:
hidden_object 27, 3, ULTRA_BALL, HiddenItems
db -1 ; end
PowerPlantHiddenObjects:
hidden_object 17, 16, MAX_ELIXER, HiddenItems
hidden_object 12, 1, PP_UP, HiddenItems
db -1 ; end
SeafoamIslands3HiddenObjects:
hidden_object 15, 15, NUGGET, HiddenItems
db -1 ; end
SeafoamIslands5HiddenObjects:
hidden_object 25, 17, ULTRA_BALL, HiddenItems
db -1 ; end
Mansion1HiddenObjects:
hidden_object 8, 16, MOON_STONE, HiddenItems
hidden_object 2, 5, SPRITE_FACING_UP, Mansion1Script_Switches
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
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
Unused6FHiddenObjects:
hidden_object 14, 11, MAX_ELIXER, HiddenItems
db -1 ; end
BillsHouseHiddenObjects:
hidden_object 1, 4, SPRITE_FACING_UP, BillsHousePC
db -1 ; end
ViridianCityHiddenObjects:
hidden_object 14, 4, POTION, HiddenItems
db -1 ; end
SafariZoneRestHouse2HiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
SafariZoneRestHouse3HiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
SafariZoneRestHouse4HiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
Route15GateUpstairsHiddenObjects:
hidden_object 1, 2, SPRITE_FACING_UP, Route15GateLeftBinoculars
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
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
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
IndigoPlateauLobbyHiddenObjects:
hidden_object 15, 7, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
CinnabarLab4HiddenObjects:
hidden_object 0, 4, SPRITE_FACING_UP, OpenPokemonCenterPC
hidden_object 2, 4, SPRITE_FACING_UP, OpenPokemonCenterPC
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
Route11HiddenObjects:
hidden_object 48, 5, ESCAPE_ROPE, HiddenItems
db -1 ; end
Route12HiddenObjects:
hidden_object 2, 63, HYPER_POTION, HiddenItems
db -1 ; end
SilphCo11FHiddenObjects:
hidden_object 10, 12, SPRITE_FACING_UP, OpenPokemonCenterPC
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
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
CeladonCityHiddenObjects:
hidden_object 48, 15, PP_UP, HiddenItems
db -1 ; end
SeafoamIslands4HiddenObjects:
hidden_object 9, 16, MAX_ELIXER, HiddenItems
db -1 ; end
VermilionCityHiddenObjects:
hidden_object 14, 11, MAX_ETHER, HiddenItems
db -1 ; end
CeruleanCityHiddenObjects:
hidden_object 15, 8, RARE_CANDY, HiddenItems
db -1 ; end
Route4HiddenObjects:
hidden_object 40, 3, GREAT_BALL, HiddenItems
db -1 ; end

View File

@ -39,7 +39,7 @@ PredefPointers::
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

View File

@ -9,7 +9,7 @@ CinnabarGymQuiz::
text_asm
xor a
ld [wOpponentAfterWrongAnswer], a
ld a, [wHiddenObjectFunctionArgument]
ld a, [wHiddenEventFunctionArgument]
push af
and $f
ldh [hGymGateIndex], a

View File

@ -2,7 +2,7 @@ PrintBlackboardLinkCableText:
call EnableAutoTextBoxDrawing
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, [wHiddenObjectFunctionArgument]
ld a, [wHiddenEventFunctionArgument]
call PrintPredefTextID
ret

View File

@ -2,7 +2,7 @@ PrintNotebookText:
call EnableAutoTextBoxDrawing
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, [wHiddenObjectFunctionArgument]
ld a, [wHiddenEventFunctionArgument]
jp PrintPredefTextID
TMNotebook::

View File

@ -8,7 +8,7 @@ VermilionGymTrashText::
GymTrashScript:
call EnableAutoTextBoxDrawing
ld a, [wHiddenObjectFunctionArgument]
ld a, [wHiddenEventFunctionArgument]
ld [wGymTrashCanIndex], a
; Don't do the trash can puzzle if it's already been done.

View File

@ -13,7 +13,7 @@ HiddenItems:
call EnableAutoTextBoxDrawing
ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, [wHiddenObjectFunctionArgument] ; item ID
ld a, [wHiddenEventFunctionArgument] ; item ID
ld [wNamedObjectIndex], a
call GetItemName
tx_pre_jump FoundHiddenItemText
@ -23,7 +23,7 @@ INCLUDE "data/events/hidden_item_coords.asm"
FoundHiddenItemText::
text_far _FoundHiddenItemText
text_asm
ld a, [wHiddenObjectFunctionArgument] ; item ID
ld a, [wHiddenEventFunctionArgument] ; item ID
ld b, a
ld c, 1
call GiveItem
@ -70,7 +70,7 @@ HiddenCoins:
ldh [hUnusedCoinsByte], a
ldh [hCoins], a
ldh [hCoins + 1], a
ld a, [wHiddenObjectFunctionArgument]
ld a, [wHiddenEventFunctionArgument]
sub COIN
cp 10
jr z, .bcd10
@ -132,9 +132,9 @@ DroppedHiddenCoinsText::
text_end
FindHiddenItemOrCoinsIndex:
ld a, [wHiddenObjectY]
ld a, [wHiddenEventY]
ld d, a
ld a, [wHiddenObjectX]
ld a, [wHiddenEventX]
ld e, a
ld a, [wCurMap]
ld b, a

View File

@ -14,16 +14,16 @@ IsPlayerOnDungeonWarp::
set BIT_DUNGEON_WARP, [hl]
ret
; if a hidden object was found, stores $00 in [hDidntFindAnyHiddenObject], else stores $ff
CheckForHiddenObject::
; if a hidden event was found, stores $00 in [hDidntFindAnyHiddenEvent], else stores $ff
CheckForHiddenEvent::
ld hl, hItemAlreadyFound
xor a
ld [hli], a ; [hItemAlreadyFound]
ld [hli], a ; [hSavedMapTextPtr]
ld [hli], a ; [hSavedMapTextPtr + 1]
ld [hl], a ; [hDidntFindAnyHiddenObject]
ld [hl], a ; [hDidntFindAnyHiddenEvent]
ld de, $0
ld hl, HiddenObjectMaps
ld hl, HiddenEventMaps
.hiddenMapLoop
ld a, [hli]
ld b, a
@ -36,52 +36,52 @@ CheckForHiddenObject::
inc de
jr .hiddenMapLoop
.foundMatchingMap
ld hl, HiddenObjectPointers
ld hl, HiddenEventPointers
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
push hl
ld hl, wHiddenObjectFunctionArgument
ld hl, wHiddenEventFunctionArgument
xor a
ld [hli], a
ld [hli], a
ld [hl], a
pop hl
.hiddenObjectLoop
.hiddenEventLoop
ld a, [hli]
cp $ff
jr z, .noMatch
ld [wHiddenObjectY], a
ld [wHiddenEventY], a
ld b, a
ld a, [hli]
ld [wHiddenObjectX], a
ld [wHiddenEventX], a
ld c, a
call CheckIfCoordsInFrontOfPlayerMatch
ldh a, [hCoordsInFrontOfPlayerMatch]
and a
jr z, .foundMatchingObject
jr z, .foundMatchingEvent
inc hl
inc hl
inc hl
inc hl
push hl
ld hl, wHiddenObjectIndex
ld hl, wHiddenEventIndex
inc [hl]
pop hl
jr .hiddenObjectLoop
.foundMatchingObject
jr .hiddenEventLoop
.foundMatchingEvent
ld a, [hli]
ld [wHiddenObjectFunctionArgument], a
ld [wHiddenEventFunctionArgument], a
ld a, [hli]
ld [wHiddenObjectFunctionRomBank], a
ld [wHiddenEventFunctionRomBank], a
ld a, [hli]
ld h, [hl]
ld l, a
ret
.noMatch
ld a, $ff
ldh [hDidntFindAnyHiddenObject], a
ldh [hDidntFindAnyHiddenEvent], a
ret
; checks if the coordinates in front of the player's sprite match Y in b and X in c
@ -130,4 +130,4 @@ CheckIfCoordsInFrontOfPlayerMatch:
ldh [hCoordsInFrontOfPlayerMatch], a
ret
INCLUDE "data/events/hidden_objects.asm"
INCLUDE "data/events/hidden_events.asm"

View File

@ -1,5 +1,5 @@
StartSlotMachine:
ld a, [wHiddenObjectFunctionArgument]
ld a, [wHiddenEventFunctionArgument]
cp SLOTS_OUTOFORDER
jr z, .printOutOfOrder
cp SLOTS_OUTTOLUNCH
@ -10,9 +10,9 @@ StartSlotMachine:
ld a, [wCanPlaySlots]
and a
ret z
ld a, [wLuckySlotHiddenObjectIndex]
ld a, [wLuckySlotHiddenEventIndex]
ld b, a
ld a, [wHiddenObjectIndex]
ld a, [wHiddenEventIndex]
inc a
cp b
jr z, .match

View File

@ -80,5 +80,5 @@ INCLUDE "home/reload_sprites.asm"
INCLUDE "home/give.asm"
INCLUDE "home/random.asm"
INCLUDE "home/predef.asm"
INCLUDE "home/hidden_objects.asm"
INCLUDE "home/hidden_events.asm"
INCLUDE "home/predef_text.asm"

View File

@ -1,21 +1,21 @@
UpdateCinnabarGymGateTileBlocks::
farjp UpdateCinnabarGymGateTileBlocks_
CheckForHiddenObjectOrBookshelfOrCardKeyDoor::
CheckForHiddenEventOrBookshelfOrCardKeyDoor::
ldh a, [hLoadedROMBank]
push af
ldh a, [hJoyHeld]
bit B_PAD_A, a
jr z, .nothingFound
; A button is pressed
ld a, BANK(CheckForHiddenObject)
ld a, BANK(CheckForHiddenEvent)
ld [rROMB], a
ldh [hLoadedROMBank], a
call CheckForHiddenObject
ldh a, [hDidntFindAnyHiddenObject]
call CheckForHiddenEvent
ldh a, [hDidntFindAnyHiddenEvent]
and a
jr nz, .hiddenObjectNotFound
ld a, [wHiddenObjectFunctionRomBank]
jr nz, .hiddenEventNotFound
ld a, [wHiddenEventFunctionRomBank]
ld [rROMB], a
ldh [hLoadedROMBank], a
ld de, .returnAddress
@ -24,7 +24,7 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor::
.returnAddress
xor a
jr .done
.hiddenObjectNotFound
.hiddenEventNotFound
farcall PrintBookshelfText
ldh a, [hInteractedWithBookshelf]
and a

View File

@ -87,10 +87,10 @@ OverworldLoopLessDelay::
jp nz, .noDirectionButtonsPressed
call IsPlayerCharacterBeingControlledByGame
jr nz, .checkForOpponent
call CheckForHiddenObjectOrBookshelfOrCardKeyDoor
call CheckForHiddenEventOrBookshelfOrCardKeyDoor
ldh a, [hItemAlreadyFound]
and a
jp z, OverworldLoop ; jump if a hidden object or bookshelf was found, but not if a card key door was found
jp z, OverworldLoop ; jump if a hidden event or bookshelf was found, but not if a card key door was found
call IsSpriteOrSignInFrontOfPlayer
ldh a, [hTextID]
and a

View File

@ -59,7 +59,7 @@ ROMX $7
"Maps 3"
"Pokémon Names"
"Maps 4"
"Hidden Objects 1"
"Hidden Events 1"
ROMX $8
"Sound Effect Headers 2"
"Music Headers 2"
@ -93,7 +93,7 @@ ROMX $11
"Maps 5"
"Pokédex Rating"
"Maps 6"
"Hidden Objects Core"
"Hidden Events Core"
ROMX $12
"Maps 7"
"Screen Effects"
@ -105,7 +105,7 @@ ROMX $13
ROMX $14
"Maps 10"
"Battle Engine 8"
"Hidden Objects 2"
"Hidden Events 2"
ROMX $15
"Maps 11"
"Battle Engine 9"
@ -121,12 +121,12 @@ ROMX $17
"Maps 15"
"Starter Dex"
"Maps 16"
"Hidden Objects 3"
"Hidden Events 3"
ROMX $18
"Maps 17"
"Cinnabar Lab Fossils"
"Maps 18"
"Hidden Objects 4"
"Hidden Events 4"
ROMX $19
"Tilesets 1"
ROMX $1A

View File

@ -67,12 +67,12 @@ INCLUDE "engine/movie/oak_speech/init_player_data.asm"
INCLUDE "engine/items/get_bag_item_quantity.asm"
INCLUDE "engine/overworld/pathfinding.asm"
INCLUDE "engine/gfx/hp_bar.asm"
INCLUDE "engine/events/hidden_objects/bookshelves.asm"
INCLUDE "engine/events/hidden_objects/indigo_plateau_statues.asm"
INCLUDE "engine/events/hidden_objects/book_or_sculpture.asm"
INCLUDE "engine/events/hidden_objects/elevator.asm"
INCLUDE "engine/events/hidden_objects/town_map.asm"
INCLUDE "engine/events/hidden_objects/pokemon_stuff.asm"
INCLUDE "engine/events/hidden_events/bookshelves.asm"
INCLUDE "engine/events/hidden_events/indigo_plateau_statues.asm"
INCLUDE "engine/events/hidden_events/book_or_sculpture.asm"
INCLUDE "engine/events/hidden_events/elevator.asm"
INCLUDE "engine/events/hidden_events/town_map.asm"
INCLUDE "engine/events/hidden_events/pokemon_stuff.asm"
SECTION "Font Graphics", ROMX
@ -127,16 +127,16 @@ INCLUDE "engine/movie/oak_speech/clear_save.asm"
INCLUDE "engine/events/elevator.asm"
SECTION "Hidden Objects 1", ROMX
SECTION "Hidden Events 1", ROMX
INCLUDE "engine/menus/oaks_pc.asm"
INCLUDE "engine/events/hidden_objects/new_bike.asm"
INCLUDE "engine/events/hidden_objects/oaks_lab_posters.asm"
INCLUDE "engine/events/hidden_objects/safari_game.asm"
INCLUDE "engine/events/hidden_objects/cinnabar_gym_quiz.asm"
INCLUDE "engine/events/hidden_objects/magazines.asm"
INCLUDE "engine/events/hidden_objects/bills_house_pc.asm"
INCLUDE "engine/events/hidden_objects/oaks_lab_email.asm"
INCLUDE "engine/events/hidden_events/new_bike.asm"
INCLUDE "engine/events/hidden_events/oaks_lab_posters.asm"
INCLUDE "engine/events/hidden_events/safari_game.asm"
INCLUDE "engine/events/hidden_events/cinnabar_gym_quiz.asm"
INCLUDE "engine/events/hidden_events/magazines.asm"
INCLUDE "engine/events/hidden_events/bills_house_pc.asm"
INCLUDE "engine/events/hidden_events/oaks_lab_email.asm"
SECTION "Bill's PC", ROMX
@ -217,9 +217,9 @@ SECTION "Pokédex Rating", ROMX
INCLUDE "engine/events/pokedex_rating.asm"
SECTION "Hidden Objects Core", ROMX
SECTION "Hidden Events Core", ROMX
INCLUDE "engine/overworld/hidden_objects.asm"
INCLUDE "engine/overworld/hidden_events.asm"
SECTION "Screen Effects", ROMX
@ -239,13 +239,13 @@ INCLUDE "engine/battle/init_battle_variables.asm"
INCLUDE "engine/battle/move_effects/paralyze.asm"
SECTION "Hidden Objects 2", ROMX
SECTION "Hidden Events 2", ROMX
INCLUDE "engine/events/card_key.asm"
INCLUDE "engine/events/prize_menu.asm"
INCLUDE "engine/events/hidden_objects/school_notebooks.asm"
INCLUDE "engine/events/hidden_objects/fighting_dojo.asm"
INCLUDE "engine/events/hidden_objects/indigo_plateau_hq.asm"
INCLUDE "engine/events/hidden_events/school_notebooks.asm"
INCLUDE "engine/events/hidden_events/fighting_dojo.asm"
INCLUDE "engine/events/hidden_events/indigo_plateau_hq.asm"
SECTION "Battle Engine 9", ROMX
@ -280,14 +280,14 @@ SECTION "Starter Dex", ROMX
INCLUDE "engine/events/starter_dex.asm"
SECTION "Hidden Objects 3", ROMX
SECTION "Hidden Events 3", ROMX
INCLUDE "engine/pokemon/set_types.asm"
INCLUDE "engine/events/hidden_objects/reds_room.asm"
INCLUDE "engine/events/hidden_objects/route_15_binoculars.asm"
INCLUDE "engine/events/hidden_objects/museum_fossils.asm"
INCLUDE "engine/events/hidden_objects/school_blackboard.asm"
INCLUDE "engine/events/hidden_objects/vermilion_gym_trash.asm"
INCLUDE "engine/events/hidden_events/reds_room.asm"
INCLUDE "engine/events/hidden_events/route_15_binoculars.asm"
INCLUDE "engine/events/hidden_events/museum_fossils.asm"
INCLUDE "engine/events/hidden_events/school_blackboard.asm"
INCLUDE "engine/events/hidden_events/vermilion_gym_trash.asm"
SECTION "Cinnabar Lab Fossils", ROMX
@ -295,12 +295,12 @@ SECTION "Cinnabar Lab Fossils", ROMX
INCLUDE "engine/events/cinnabar_lab.asm"
SECTION "Hidden Objects 4", ROMX
SECTION "Hidden Events 4", ROMX
INCLUDE "engine/events/hidden_objects/gym_statues.asm"
INCLUDE "engine/events/hidden_objects/bench_guys.asm"
INCLUDE "engine/events/hidden_objects/blues_room.asm"
INCLUDE "engine/events/hidden_objects/pokecenter_pc.asm"
INCLUDE "engine/events/hidden_events/gym_statues.asm"
INCLUDE "engine/events/hidden_events/bench_guys.asm"
INCLUDE "engine/events/hidden_events/blues_room.asm"
INCLUDE "engine/events/hidden_events/pokecenter_pc.asm"
SECTION "Battle Engine 11", ROMX

View File

@ -370,7 +370,7 @@ hSpriteMapXCoord:: db
NEXTU
hItemAlreadyFound:: db
ds 2
hDidntFindAnyHiddenObject:: db
hDidntFindAnyHiddenEvent:: db
NEXTU
ds 1

View File

@ -390,7 +390,7 @@ wSlotMachineSevenAndBarModeChance:: db
; ROM back to return to when the player is done with the slot machine
wSlotMachineSavedROMBank:: db
ds 166
wLuckySlotHiddenObjectIndex:: db
wLuckySlotHiddenEventIndex:: db
NEXTU
; values between 0-6. Shake screen horizontally, shake screen vertically, blink Pokemon...
@ -744,12 +744,12 @@ wTempCoins1:: dw
wTempCoins2:: dw
NEXTU
wHiddenObjectFunctionArgument:: db
wHiddenObjectFunctionRomBank:: db
wHiddenObjectIndex:: db
wHiddenObjectY:: db
wHiddenEventFunctionArgument:: db
wHiddenEventFunctionRomBank:: db
wHiddenEventIndex:: db
wHiddenEventY:: db
wHiddenItemOrCoinsIndex::
wHiddenObjectX:: db
wHiddenEventX:: db
NEXTU
wPlayerSpinInPlaceAnimFrameDelay:: db

View File

@ -20,7 +20,7 @@ GameCornerSelectLuckySlotMachine:
srl a
srl a
srl a
ld [wLuckySlotHiddenObjectIndex], a
ld [wLuckySlotHiddenEventIndex], a
ret
GameCornerSetRocketHideoutDoorTile:

View File

@ -13,7 +13,7 @@ SafariZoneGate_ScriptPointers:
dw_const SafariZoneGatePlayerMovingDownScript, SCRIPT_SAFARIZONEGATE_PLAYER_MOVING_DOWN
dw_const SafariZoneGateLeavingSafariScript, SCRIPT_SAFARIZONEGATE_LEAVING_SAFARI
dw_const SafariZoneGateSetScriptAfterMoveScript, SCRIPT_SAFARIZONEGATE_SET_SCRIPT_AFTER_MOVE
EXPORT SCRIPT_SAFARIZONEGATE_LEAVING_SAFARI ; used by engine/events/hidden_objects/safari_game.asm
EXPORT SCRIPT_SAFARIZONEGATE_LEAVING_SAFARI ; used by engine/events/hidden_events/safari_game.asm
SafariZoneGateDefaultScript:
ld hl, .PlayerNextToSafariZoneWorker1CoordsArray