Use macros to enforce "missable/hide/show object" constraints, and rename them to "toggleable objects" (#557)

This commit is contained in:
Rangi
2026-01-07 22:05:20 -05:00
committed by GitHub
parent 2f76b969c3
commit fe1e76466b
52 changed files with 1137 additions and 1128 deletions

View File

@@ -1,240 +0,0 @@
DEF HIDE EQU $11
DEF SHOW EQU $15
; MissableObjects indexes (see data/maps/hide_show_data.asm)
; this is a list of the sprites that can be enabled/disabled during the game
; sprites marked with an X are constants that are never used
; because those sprites are not (de)activated in a map's script
; (they are either items or sprites that deactivate after battle
; and are detected in wMissableObjectList)
const_def
const HS_PALLET_TOWN_OAK ; 00
const HS_LYING_OLD_MAN ; 01
const HS_OLD_MAN ; 02
const HS_MUSEUM_GUY ; 03
const HS_GYM_GUY ; 04
const HS_CERULEAN_RIVAL ; 05
const HS_CERULEAN_ROCKET ; 06
const HS_CERULEAN_GUARD_1 ; 07
const HS_CERULEAN_CAVE_GUY ; 08
const HS_CERULEAN_GUARD_2 ; 09
const HS_SAFFRON_CITY_1 ; 0A
const HS_SAFFRON_CITY_2 ; 0B
const HS_SAFFRON_CITY_3 ; 0C
const HS_SAFFRON_CITY_4 ; 0D
const HS_SAFFRON_CITY_5 ; 0E
const HS_SAFFRON_CITY_6 ; 0F
const HS_SAFFRON_CITY_7 ; 10
const HS_SAFFRON_CITY_8 ; 11
const HS_SAFFRON_CITY_9 ; 12
const HS_SAFFRON_CITY_A ; 13
const HS_SAFFRON_CITY_B ; 14
const HS_SAFFRON_CITY_C ; 15
const HS_SAFFRON_CITY_D ; 16
const HS_SAFFRON_CITY_E ; 17
const HS_SAFFRON_CITY_F ; 18
const HS_ROUTE_2_ITEM_1 ; 19 X
const HS_ROUTE_2_ITEM_2 ; 1A X
const HS_ROUTE_4_ITEM ; 1B X
const HS_ROUTE_9_ITEM ; 1C X
const HS_ROUTE_12_SNORLAX ; 1D
const HS_ROUTE_12_ITEM_1 ; 1E X
const HS_ROUTE_12_ITEM_2 ; 1F X
const HS_ROUTE_15_ITEM ; 20 X
const HS_ROUTE_16_SNORLAX ; 21
const HS_ROUTE_22_RIVAL_1 ; 22
const HS_ROUTE_22_RIVAL_2 ; 23
const HS_NUGGET_BRIDGE_GUY ; 24
const HS_ROUTE_24_ITEM ; 25 X
const HS_ROUTE_25_ITEM ; 26 X
const HS_DAISY_SITTING ; 27
const HS_DAISY_WALKING ; 28
const HS_TOWN_MAP ; 29
const HS_OAKS_LAB_RIVAL ; 2A
const HS_STARTER_BALL_1 ; 2B
const HS_STARTER_BALL_2 ; 2C
const HS_STARTER_BALL_3 ; 2D
const HS_OAKS_LAB_OAK_1 ; 2E
const HS_POKEDEX_1 ; 2F
const HS_POKEDEX_2 ; 30
const HS_OAKS_LAB_OAK_2 ; 31
const HS_VIRIDIAN_GYM_GIOVANNI ; 32
const HS_VIRIDIAN_GYM_ITEM ; 33 X
const HS_OLD_AMBER ; 34
const HS_CERULEAN_CAVE_1F_ITEM_1 ; 35 X
const HS_CERULEAN_CAVE_1F_ITEM_2 ; 36 X
const HS_CERULEAN_CAVE_1F_ITEM_3 ; 37 X
const HS_POKEMON_TOWER_2F_RIVAL ; 38
const HS_POKEMON_TOWER_3F_ITEM ; 39 X
const HS_POKEMON_TOWER_4F_ITEM_1 ; 3A X
const HS_POKEMON_TOWER_4F_ITEM_2 ; 3B X
const HS_POKEMON_TOWER_4F_ITEM_3 ; 3C X
const HS_POKEMON_TOWER_5F_ITEM ; 3D X
const HS_POKEMON_TOWER_6F_ITEM_1 ; 3E X
const HS_POKEMON_TOWER_6F_ITEM_2 ; 3F X
const HS_POKEMON_TOWER_7F_ROCKET_1 ; 40 X
const HS_POKEMON_TOWER_7F_ROCKET_2 ; 41 X
const HS_POKEMON_TOWER_7F_ROCKET_3 ; 42 X
const HS_POKEMON_TOWER_7F_MR_FUJI ; 43
const HS_MR_FUJIS_HOUSE_MR_FUJI ; 44
const HS_CELADON_MANSION_EEVEE_GIFT ; 45
const HS_GAME_CORNER_ROCKET ; 46
const HS_WARDENS_HOUSE_ITEM ; 47 X
const HS_POKEMON_MANSION_1F_ITEM_1 ; 48 X
const HS_POKEMON_MANSION_1F_ITEM_2 ; 49 X
const HS_FIGHTING_DOJO_GIFT_1 ; 4A
const HS_FIGHTING_DOJO_GIFT_2 ; 4B
const HS_SILPH_CO_1F_RECEPTIONIST ; 4C
const HS_VOLTORB_1 ; 4D X
const HS_VOLTORB_2 ; 4E X
const HS_VOLTORB_3 ; 4F X
const HS_ELECTRODE_1 ; 50 X
const HS_VOLTORB_4 ; 51 X
const HS_VOLTORB_5 ; 52 X
const HS_ELECTRODE_2 ; 53 X
const HS_VOLTORB_6 ; 54 X
const HS_ZAPDOS ; 55 X
const HS_POWER_PLANT_ITEM_1 ; 56 X
const HS_POWER_PLANT_ITEM_2 ; 57 X
const HS_POWER_PLANT_ITEM_3 ; 58 X
const HS_POWER_PLANT_ITEM_4 ; 59 X
const HS_POWER_PLANT_ITEM_5 ; 5A X
const HS_MOLTRES ; 5B X
const HS_VICTORY_ROAD_2F_ITEM_1 ; 5C X
const HS_VICTORY_ROAD_2F_ITEM_2 ; 5D X
const HS_VICTORY_ROAD_2F_ITEM_3 ; 5E X
const HS_VICTORY_ROAD_2F_ITEM_4 ; 5F X
const HS_VICTORY_ROAD_2F_BOULDER ; 60
const HS_BILL_POKEMON ; 61
const HS_BILL_1 ; 62
const HS_BILL_2 ; 63
const HS_VIRIDIAN_FOREST_ITEM_1 ; 64 X
const HS_VIRIDIAN_FOREST_ITEM_2 ; 65 X
const HS_VIRIDIAN_FOREST_ITEM_3 ; 66 X
const HS_MT_MOON_1F_ITEM_1 ; 67 X
const HS_MT_MOON_1F_ITEM_2 ; 68 X
const HS_MT_MOON_1F_ITEM_3 ; 69 X
const HS_MT_MOON_1F_ITEM_4 ; 6A X
const HS_MT_MOON_1F_ITEM_5 ; 6B X
const HS_MT_MOON_1F_ITEM_6 ; 6C X
const HS_MT_MOON_B2F_FOSSIL_1 ; 6D
const HS_MT_MOON_B2F_FOSSIL_2 ; 6E
const HS_MT_MOON_B2F_ITEM_1 ; 6F X
const HS_MT_MOON_B2F_ITEM_2 ; 70 X
const HS_SS_ANNE_2F_RIVAL ; 71
const HS_SS_ANNE_1F_ROOMS_ITEM ; 72 X
const HS_SS_ANNE_2F_ROOMS_ITEM_1 ; 73 X
const HS_SS_ANNE_2F_ROOMS_ITEM_2 ; 74 X
const HS_SS_ANNE_B1F_ROOMS_ITEM_1 ; 75 X
const HS_SS_ANNE_B1F_ROOMS_ITEM_2 ; 76 X
const HS_SS_ANNE_B1F_ROOMS_ITEM_3 ; 77 X
const HS_VICTORY_ROAD_3F_ITEM_1 ; 78 X
const HS_VICTORY_ROAD_3F_ITEM_2 ; 79 X
const HS_VICTORY_ROAD_3F_BOULDER ; 7A
const HS_ROCKET_HIDEOUT_B1F_ITEM_1 ; 7B X
const HS_ROCKET_HIDEOUT_B1F_ITEM_2 ; 7C X
const HS_ROCKET_HIDEOUT_B2F_ITEM_1 ; 7D X
const HS_ROCKET_HIDEOUT_B2F_ITEM_2 ; 7E X
const HS_ROCKET_HIDEOUT_B2F_ITEM_3 ; 7F X
const HS_ROCKET_HIDEOUT_B2F_ITEM_4 ; 80 X
const HS_ROCKET_HIDEOUT_B3F_ITEM_1 ; 81 X
const HS_ROCKET_HIDEOUT_B3F_ITEM_2 ; 82 X
const HS_ROCKET_HIDEOUT_B4F_GIOVANNI ; 83
const HS_ROCKET_HIDEOUT_B4F_ITEM_1 ; 84 X
const HS_ROCKET_HIDEOUT_B4F_ITEM_2 ; 85 X
const HS_ROCKET_HIDEOUT_B4F_ITEM_3 ; 86 X
const HS_ROCKET_HIDEOUT_B4F_ITEM_4 ; 87
const HS_ROCKET_HIDEOUT_B4F_ITEM_5 ; 88
const HS_SILPH_CO_2F_1 ; 89 XXX never (de)activated?
const HS_SILPH_CO_2F_2 ; 8A
const HS_SILPH_CO_2F_3 ; 8B
const HS_SILPH_CO_2F_4 ; 8C
const HS_SILPH_CO_2F_5 ; 8D
const HS_SILPH_CO_3F_1 ; 8E
const HS_SILPH_CO_3F_2 ; 8F
const HS_SILPH_CO_3F_ITEM ; 90 X
const HS_SILPH_CO_4F_1 ; 91
const HS_SILPH_CO_4F_2 ; 92
const HS_SILPH_CO_4F_3 ; 93
const HS_SILPH_CO_4F_ITEM_1 ; 94 X
const HS_SILPH_CO_4F_ITEM_2 ; 95 X
const HS_SILPH_CO_4F_ITEM_3 ; 96 X
const HS_SILPH_CO_5F_1 ; 97
const HS_SILPH_CO_5F_2 ; 98
const HS_SILPH_CO_5F_3 ; 99
const HS_SILPH_CO_5F_4 ; 9A
const HS_SILPH_CO_5F_ITEM_1 ; 9B X
const HS_SILPH_CO_5F_ITEM_2 ; 9C X
const HS_SILPH_CO_5F_ITEM_3 ; 9D X
const HS_SILPH_CO_6F_1 ; 9E
const HS_SILPH_CO_6F_2 ; 9F
const HS_SILPH_CO_6F_3 ; A0
const HS_SILPH_CO_6F_ITEM_1 ; A1 X
const HS_SILPH_CO_6F_ITEM_2 ; A2 X
const HS_SILPH_CO_7F_1 ; A3
const HS_SILPH_CO_7F_2 ; A4
const HS_SILPH_CO_7F_3 ; A5
const HS_SILPH_CO_7F_4 ; A6
const HS_SILPH_CO_7F_RIVAL ; A7
const HS_SILPH_CO_7F_ITEM_1 ; A8 X
const HS_SILPH_CO_7F_ITEM_2 ; A9 X
const HS_SILPH_CO_7F_8 ; AA XXX sprite doesn't exist
const HS_SILPH_CO_8F_1 ; AB
const HS_SILPH_CO_8F_2 ; AC
const HS_SILPH_CO_8F_3 ; AD
const HS_SILPH_CO_9F_1 ; AE
const HS_SILPH_CO_9F_2 ; AF
const HS_SILPH_CO_9F_3 ; B0
const HS_SILPH_CO_10F_1 ; B1
const HS_SILPH_CO_10F_2 ; B2
const HS_SILPH_CO_10F_3 ; B3 XXX never (de)activated?
const HS_SILPH_CO_10F_ITEM_1 ; B4 X
const HS_SILPH_CO_10F_ITEM_2 ; B5 X
const HS_SILPH_CO_10F_ITEM_3 ; B6 X
const HS_SILPH_CO_11F_1 ; B7
const HS_SILPH_CO_11F_2 ; B8
const HS_SILPH_CO_11F_3 ; B9
const HS_UNUSED_MAP_F4_1 ; BA XXX sprite doesn't exist
const HS_POKEMON_MANSION_2F_ITEM ; BB X
const HS_POKEMON_MANSION_3F_ITEM_1 ; BC X
const HS_POKEMON_MANSION_3F_ITEM_2 ; BD X
const HS_POKEMON_MANSION_B1F_ITEM_1 ; BE X
const HS_POKEMON_MANSION_B1F_ITEM_2 ; BF X
const HS_POKEMON_MANSION_B1F_ITEM_3 ; C0 X
const HS_POKEMON_MANSION_B1F_ITEM_4 ; C1 X
const HS_POKEMON_MANSION_B1F_ITEM_5 ; C2 X
const HS_SAFARI_ZONE_EAST_ITEM_1 ; C3 X
const HS_SAFARI_ZONE_EAST_ITEM_2 ; C4 X
const HS_SAFARI_ZONE_EAST_ITEM_3 ; C5 X
const HS_SAFARI_ZONE_EAST_ITEM_4 ; C6 X
const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C7 X
const HS_SAFARI_ZONE_NORTH_ITEM_2 ; C8 X
const HS_SAFARI_ZONE_WEST_ITEM_1 ; C9 X
const HS_SAFARI_ZONE_WEST_ITEM_2 ; CA X
const HS_SAFARI_ZONE_WEST_ITEM_3 ; CB X
const HS_SAFARI_ZONE_WEST_ITEM_4 ; CC X
const HS_SAFARI_ZONE_CENTER_ITEM ; CD X
const HS_CERULEAN_CAVE_2F_ITEM_1 ; CE X
const HS_CERULEAN_CAVE_2F_ITEM_2 ; CF X
const HS_CERULEAN_CAVE_2F_ITEM_3 ; D0 X
const HS_MEWTWO ; D1 X
const HS_CERULEAN_CAVE_B1F_ITEM_1 ; D2 X
const HS_CERULEAN_CAVE_B1F_ITEM_2 ; D3 X
const HS_VICTORY_ROAD_1F_ITEM_1 ; D4 X
const HS_VICTORY_ROAD_1F_ITEM_2 ; D5 X
const HS_CHAMPIONS_ROOM_OAK ; D6
const HS_SEAFOAM_ISLANDS_1F_BOULDER_1 ; D7
const HS_SEAFOAM_ISLANDS_1F_BOULDER_2 ; D8
const HS_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; D9
const HS_SEAFOAM_ISLANDS_B1F_BOULDER_2 ; DA
const HS_SEAFOAM_ISLANDS_B2F_BOULDER_1 ; DB
const HS_SEAFOAM_ISLANDS_B2F_BOULDER_2 ; DC
const HS_SEAFOAM_ISLANDS_B3F_BOULDER_1 ; DD
const HS_SEAFOAM_ISLANDS_B3F_BOULDER_2 ; DE
const HS_SEAFOAM_ISLANDS_B3F_BOULDER_3 ; DF
const HS_SEAFOAM_ISLANDS_B3F_BOULDER_4 ; E0
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E1
const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; E2
const HS_ARTICUNO ; E3 X
DEF NUM_HS_OBJECTS EQU const_value

View File

@@ -16,7 +16,7 @@ ENDM
; - MapHeaderBanks (see data/maps/map_header_banks.asm)
; - MapHeaderPointers (see data/maps/map_header_pointers.asm)
; - MapSongBanks (see data/maps/songs.asm)
; - MapHSPointers (see data/maps/hide_show_data.asm)
; - ToggleableObjectMapPointers (see data/maps/toggleable_objects.asm)
; - MapSpriteSets (see data/maps/sprite_sets.asm)
; - ExternalMapEntries (see data/maps/town_map_entries.asm)
; - WildDataPointers (see data/wild/grass_water.asm)

View File

@@ -0,0 +1,393 @@
DEF OFF EQU $11
DEF ON EQU $15
MACRO toggle_consts_for
DEF TOGGLEMAP{\1} EQU const_value
ENDM
; ToggleableObjectStates indexes (see data/maps/toggleable_objects.asm)
; This lists the object_events that can be toggled by ShowObject/HideObject.
; The constants marked with an X are never used, because those object_events
; are not toggled on/off in any map's script.
; (The X-ed ones are either items or static Pokemon encounters that deactivate
; after battle and are detected in wToggleableObjectList.)
const_def
toggle_consts_for PALLET_TOWN
const TOGGLE_PALLET_TOWN_OAK ; 00
toggle_consts_for VIRIDIAN_CITY
const TOGGLE_LYING_OLD_MAN ; 01
const TOGGLE_OLD_MAN ; 02
toggle_consts_for PEWTER_CITY
const TOGGLE_MUSEUM_GUY ; 03
const TOGGLE_GYM_GUY ; 04
toggle_consts_for CERULEAN_CITY
const TOGGLE_CERULEAN_RIVAL ; 05
const TOGGLE_CERULEAN_ROCKET ; 06
const TOGGLE_CERULEAN_GUARD_1 ; 07
const TOGGLE_CERULEAN_CAVE_GUY ; 08
const TOGGLE_CERULEAN_GUARD_2 ; 09
toggle_consts_for SAFFRON_CITY
const TOGGLE_SAFFRON_CITY_1 ; 0A
const TOGGLE_SAFFRON_CITY_2 ; 0B
const TOGGLE_SAFFRON_CITY_3 ; 0C
const TOGGLE_SAFFRON_CITY_4 ; 0D
const TOGGLE_SAFFRON_CITY_5 ; 0E
const TOGGLE_SAFFRON_CITY_6 ; 0F
const TOGGLE_SAFFRON_CITY_7 ; 10
const TOGGLE_SAFFRON_CITY_8 ; 11
const TOGGLE_SAFFRON_CITY_9 ; 12
const TOGGLE_SAFFRON_CITY_A ; 13
const TOGGLE_SAFFRON_CITY_B ; 14
const TOGGLE_SAFFRON_CITY_C ; 15
const TOGGLE_SAFFRON_CITY_D ; 16
const TOGGLE_SAFFRON_CITY_E ; 17
const TOGGLE_SAFFRON_CITY_F ; 18
toggle_consts_for ROUTE_2
const TOGGLE_ROUTE_2_ITEM_1 ; 19 X
const TOGGLE_ROUTE_2_ITEM_2 ; 1A X
toggle_consts_for ROUTE_4
const TOGGLE_ROUTE_4_ITEM ; 1B X
toggle_consts_for ROUTE_9
const TOGGLE_ROUTE_9_ITEM ; 1C X
toggle_consts_for ROUTE_12
const TOGGLE_ROUTE_12_SNORLAX ; 1D
const TOGGLE_ROUTE_12_ITEM_1 ; 1E X
const TOGGLE_ROUTE_12_ITEM_2 ; 1F X
toggle_consts_for ROUTE_15
const TOGGLE_ROUTE_15_ITEM ; 20 X
toggle_consts_for ROUTE_16
const TOGGLE_ROUTE_16_SNORLAX ; 21
toggle_consts_for ROUTE_22
const TOGGLE_ROUTE_22_RIVAL_1 ; 22
const TOGGLE_ROUTE_22_RIVAL_2 ; 23
toggle_consts_for ROUTE_24
const TOGGLE_NUGGET_BRIDGE_GUY ; 24
const TOGGLE_ROUTE_24_ITEM ; 25 X
toggle_consts_for ROUTE_25
const TOGGLE_ROUTE_25_ITEM ; 26 X
toggle_consts_for BLUES_HOUSE
const TOGGLE_DAISY_SITTING ; 27
const TOGGLE_DAISY_WALKING ; 28
const TOGGLE_TOWN_MAP ; 29
toggle_consts_for OAKS_LAB
const TOGGLE_OAKS_LAB_RIVAL ; 2A
const TOGGLE_STARTER_BALL_1 ; 2B
const TOGGLE_STARTER_BALL_2 ; 2C
const TOGGLE_STARTER_BALL_3 ; 2D
const TOGGLE_OAKS_LAB_OAK_1 ; 2E
const TOGGLE_POKEDEX_1 ; 2F
const TOGGLE_POKEDEX_2 ; 30
const TOGGLE_OAKS_LAB_OAK_2 ; 31
toggle_consts_for VIRIDIAN_GYM
const TOGGLE_VIRIDIAN_GYM_GIOVANNI ; 32
const TOGGLE_VIRIDIAN_GYM_ITEM ; 33 X
toggle_consts_for MUSEUM_1F
const TOGGLE_OLD_AMBER ; 34
toggle_consts_for CERULEAN_CAVE_1F
const TOGGLE_CERULEAN_CAVE_1F_ITEM_1 ; 35 X
const TOGGLE_CERULEAN_CAVE_1F_ITEM_2 ; 36 X
const TOGGLE_CERULEAN_CAVE_1F_ITEM_3 ; 37 X
toggle_consts_for POKEMON_TOWER_2F
const TOGGLE_POKEMON_TOWER_2F_RIVAL ; 38
toggle_consts_for POKEMON_TOWER_3F
const TOGGLE_POKEMON_TOWER_3F_ITEM ; 39 X
toggle_consts_for POKEMON_TOWER_4F
const TOGGLE_POKEMON_TOWER_4F_ITEM_1 ; 3A X
const TOGGLE_POKEMON_TOWER_4F_ITEM_2 ; 3B X
const TOGGLE_POKEMON_TOWER_4F_ITEM_3 ; 3C X
toggle_consts_for POKEMON_TOWER_5F
const TOGGLE_POKEMON_TOWER_5F_ITEM ; 3D X
toggle_consts_for POKEMON_TOWER_6F
const TOGGLE_POKEMON_TOWER_6F_ITEM_1 ; 3E X
const TOGGLE_POKEMON_TOWER_6F_ITEM_2 ; 3F X
toggle_consts_for POKEMON_TOWER_7F
const TOGGLE_POKEMON_TOWER_7F_ROCKET_1 ; 40 X
const TOGGLE_POKEMON_TOWER_7F_ROCKET_2 ; 41 X
const TOGGLE_POKEMON_TOWER_7F_ROCKET_3 ; 42 X
const TOGGLE_POKEMON_TOWER_7F_MR_FUJI ; 43
toggle_consts_for MR_FUJIS_HOUSE
const TOGGLE_MR_FUJIS_HOUSE_MR_FUJI ; 44
toggle_consts_for CELADON_MANSION_ROOF_HOUSE
const TOGGLE_CELADON_MANSION_EEVEE_GIFT ; 45
toggle_consts_for GAME_CORNER
const TOGGLE_GAME_CORNER_ROCKET ; 46
toggle_consts_for WARDENS_HOUSE
const TOGGLE_WARDENS_HOUSE_ITEM ; 47 X
toggle_consts_for POKEMON_MANSION_1F
const TOGGLE_POKEMON_MANSION_1F_ITEM_1 ; 48 X
const TOGGLE_POKEMON_MANSION_1F_ITEM_2 ; 49 X
toggle_consts_for FIGHTING_DOJO
const TOGGLE_FIGHTING_DOJO_GIFT_1 ; 4A
const TOGGLE_FIGHTING_DOJO_GIFT_2 ; 4B
toggle_consts_for SILPH_CO_1F
const TOGGLE_SILPH_CO_1F_RECEPTIONIST ; 4C
toggle_consts_for POWER_PLANT
const TOGGLE_VOLTORB_1 ; 4D X
const TOGGLE_VOLTORB_2 ; 4E X
const TOGGLE_VOLTORB_3 ; 4F X
const TOGGLE_ELECTRODE_1 ; 50 X
const TOGGLE_VOLTORB_4 ; 51 X
const TOGGLE_VOLTORB_5 ; 52 X
const TOGGLE_ELECTRODE_2 ; 53 X
const TOGGLE_VOLTORB_6 ; 54 X
const TOGGLE_ZAPDOS ; 55 X
const TOGGLE_POWER_PLANT_ITEM_1 ; 56 X
const TOGGLE_POWER_PLANT_ITEM_2 ; 57 X
const TOGGLE_POWER_PLANT_ITEM_3 ; 58 X
const TOGGLE_POWER_PLANT_ITEM_4 ; 59 X
const TOGGLE_POWER_PLANT_ITEM_5 ; 5A X
toggle_consts_for VICTORY_ROAD_2F
const TOGGLE_MOLTRES ; 5B X
const TOGGLE_VICTORY_ROAD_2F_ITEM_1 ; 5C X
const TOGGLE_VICTORY_ROAD_2F_ITEM_2 ; 5D X
const TOGGLE_VICTORY_ROAD_2F_ITEM_3 ; 5E X
const TOGGLE_VICTORY_ROAD_2F_ITEM_4 ; 5F X
const TOGGLE_VICTORY_ROAD_2F_BOULDER ; 60
toggle_consts_for BILLS_HOUSE
const TOGGLE_BILL_POKEMON ; 61
const TOGGLE_BILL_1 ; 62
const TOGGLE_BILL_2 ; 63
toggle_consts_for VIRIDIAN_FOREST
const TOGGLE_VIRIDIAN_FOREST_ITEM_1 ; 64 X
const TOGGLE_VIRIDIAN_FOREST_ITEM_2 ; 65 X
const TOGGLE_VIRIDIAN_FOREST_ITEM_3 ; 66 X
toggle_consts_for MT_MOON_1F
const TOGGLE_MT_MOON_1F_ITEM_1 ; 67 X
const TOGGLE_MT_MOON_1F_ITEM_2 ; 68 X
const TOGGLE_MT_MOON_1F_ITEM_3 ; 69 X
const TOGGLE_MT_MOON_1F_ITEM_4 ; 6A X
const TOGGLE_MT_MOON_1F_ITEM_5 ; 6B X
const TOGGLE_MT_MOON_1F_ITEM_6 ; 6C X
toggle_consts_for MT_MOON_B2F
const TOGGLE_MT_MOON_B2F_FOSSIL_1 ; 6D
const TOGGLE_MT_MOON_B2F_FOSSIL_2 ; 6E
const TOGGLE_MT_MOON_B2F_ITEM_1 ; 6F X
const TOGGLE_MT_MOON_B2F_ITEM_2 ; 70 X
toggle_consts_for SS_ANNE_2F
const TOGGLE_SS_ANNE_2F_RIVAL ; 71
toggle_consts_for SS_ANNE_1F_ROOMS
const TOGGLE_SS_ANNE_1F_ROOMS_ITEM ; 72 X
toggle_consts_for SS_ANNE_2F_ROOMS
const TOGGLE_SS_ANNE_2F_ROOMS_ITEM_1 ; 73 X
const TOGGLE_SS_ANNE_2F_ROOMS_ITEM_2 ; 74 X
toggle_consts_for SS_ANNE_B1F_ROOMS
const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_1 ; 75 X
const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_2 ; 76 X
const TOGGLE_SS_ANNE_B1F_ROOMS_ITEM_3 ; 77 X
toggle_consts_for VICTORY_ROAD_3F
const TOGGLE_VICTORY_ROAD_3F_ITEM_1 ; 78 X
const TOGGLE_VICTORY_ROAD_3F_ITEM_2 ; 79 X
const TOGGLE_VICTORY_ROAD_3F_BOULDER ; 7A
toggle_consts_for ROCKET_HIDEOUT_B1F
const TOGGLE_ROCKET_HIDEOUT_B1F_ITEM_1 ; 7B X
const TOGGLE_ROCKET_HIDEOUT_B1F_ITEM_2 ; 7C X
toggle_consts_for ROCKET_HIDEOUT_B2F
const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_1 ; 7D X
const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_2 ; 7E X
const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_3 ; 7F X
const TOGGLE_ROCKET_HIDEOUT_B2F_ITEM_4 ; 80 X
toggle_consts_for ROCKET_HIDEOUT_B3F
const TOGGLE_ROCKET_HIDEOUT_B3F_ITEM_1 ; 81 X
const TOGGLE_ROCKET_HIDEOUT_B3F_ITEM_2 ; 82 X
toggle_consts_for ROCKET_HIDEOUT_B4F
const TOGGLE_ROCKET_HIDEOUT_B4F_GIOVANNI ; 83
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_1 ; 84 X
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_2 ; 85 X
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_3 ; 86 X
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_4 ; 87
const TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_5 ; 88
toggle_consts_for SILPH_CO_2F
const TOGGLE_SILPH_CO_2F_1 ; 89 XXX never (de)activated?
const TOGGLE_SILPH_CO_2F_2 ; 8A
const TOGGLE_SILPH_CO_2F_3 ; 8B
const TOGGLE_SILPH_CO_2F_4 ; 8C
const TOGGLE_SILPH_CO_2F_5 ; 8D
toggle_consts_for SILPH_CO_3F
const TOGGLE_SILPH_CO_3F_1 ; 8E
const TOGGLE_SILPH_CO_3F_2 ; 8F
const TOGGLE_SILPH_CO_3F_ITEM ; 90 X
toggle_consts_for SILPH_CO_4F
const TOGGLE_SILPH_CO_4F_1 ; 91
const TOGGLE_SILPH_CO_4F_2 ; 92
const TOGGLE_SILPH_CO_4F_3 ; 93
const TOGGLE_SILPH_CO_4F_ITEM_1 ; 94 X
const TOGGLE_SILPH_CO_4F_ITEM_2 ; 95 X
const TOGGLE_SILPH_CO_4F_ITEM_3 ; 96 X
toggle_consts_for SILPH_CO_5F
const TOGGLE_SILPH_CO_5F_1 ; 97
const TOGGLE_SILPH_CO_5F_2 ; 98
const TOGGLE_SILPH_CO_5F_3 ; 99
const TOGGLE_SILPH_CO_5F_4 ; 9A
const TOGGLE_SILPH_CO_5F_ITEM_1 ; 9B X
const TOGGLE_SILPH_CO_5F_ITEM_2 ; 9C X
const TOGGLE_SILPH_CO_5F_ITEM_3 ; 9D X
toggle_consts_for SILPH_CO_6F
const TOGGLE_SILPH_CO_6F_1 ; 9E
const TOGGLE_SILPH_CO_6F_2 ; 9F
const TOGGLE_SILPH_CO_6F_3 ; A0
const TOGGLE_SILPH_CO_6F_ITEM_1 ; A1 X
const TOGGLE_SILPH_CO_6F_ITEM_2 ; A2 X
toggle_consts_for SILPH_CO_7F
const TOGGLE_SILPH_CO_7F_1 ; A3
const TOGGLE_SILPH_CO_7F_2 ; A4
const TOGGLE_SILPH_CO_7F_3 ; A5
const TOGGLE_SILPH_CO_7F_4 ; A6
const TOGGLE_SILPH_CO_7F_RIVAL ; A7
const TOGGLE_SILPH_CO_7F_ITEM_1 ; A8 X
const TOGGLE_SILPH_CO_7F_ITEM_2 ; A9 X
const TOGGLE_SILPH_CO_7F_8 ; AA XXX sprite doesn't exist
toggle_consts_for SILPH_CO_8F
const TOGGLE_SILPH_CO_8F_1 ; AB
const TOGGLE_SILPH_CO_8F_2 ; AC
const TOGGLE_SILPH_CO_8F_3 ; AD
toggle_consts_for SILPH_CO_9F
const TOGGLE_SILPH_CO_9F_1 ; AE
const TOGGLE_SILPH_CO_9F_2 ; AF
const TOGGLE_SILPH_CO_9F_3 ; B0
toggle_consts_for SILPH_CO_10F
const TOGGLE_SILPH_CO_10F_1 ; B1
const TOGGLE_SILPH_CO_10F_2 ; B2
const TOGGLE_SILPH_CO_10F_3 ; B3 XXX never (de)activated?
const TOGGLE_SILPH_CO_10F_ITEM_1 ; B4 X
const TOGGLE_SILPH_CO_10F_ITEM_2 ; B5 X
const TOGGLE_SILPH_CO_10F_ITEM_3 ; B6 X
toggle_consts_for SILPH_CO_11F
const TOGGLE_SILPH_CO_11F_1 ; B7
const TOGGLE_SILPH_CO_11F_2 ; B8
const TOGGLE_SILPH_CO_11F_3 ; B9
toggle_consts_for UNUSED_MAP_F4
const TOGGLE_UNUSED_MAP_F4_1 ; BA XXX sprite doesn't exist
toggle_consts_for POKEMON_MANSION_2F
const TOGGLE_POKEMON_MANSION_2F_ITEM ; BB X
toggle_consts_for POKEMON_MANSION_3F
const TOGGLE_POKEMON_MANSION_3F_ITEM_1 ; BC X
const TOGGLE_POKEMON_MANSION_3F_ITEM_2 ; BD X
toggle_consts_for POKEMON_MANSION_B1F
const TOGGLE_POKEMON_MANSION_B1F_ITEM_1 ; BE X
const TOGGLE_POKEMON_MANSION_B1F_ITEM_2 ; BF X
const TOGGLE_POKEMON_MANSION_B1F_ITEM_3 ; C0 X
const TOGGLE_POKEMON_MANSION_B1F_ITEM_4 ; C1 X
const TOGGLE_POKEMON_MANSION_B1F_ITEM_5 ; C2 X
toggle_consts_for SAFARI_ZONE_EAST
const TOGGLE_SAFARI_ZONE_EAST_ITEM_1 ; C3 X
const TOGGLE_SAFARI_ZONE_EAST_ITEM_2 ; C4 X
const TOGGLE_SAFARI_ZONE_EAST_ITEM_3 ; C5 X
const TOGGLE_SAFARI_ZONE_EAST_ITEM_4 ; C6 X
toggle_consts_for SAFARI_ZONE_NORTH
const TOGGLE_SAFARI_ZONE_NORTH_ITEM_1 ; C7 X
const TOGGLE_SAFARI_ZONE_NORTH_ITEM_2 ; C8 X
toggle_consts_for SAFARI_ZONE_WEST
const TOGGLE_SAFARI_ZONE_WEST_ITEM_1 ; C9 X
const TOGGLE_SAFARI_ZONE_WEST_ITEM_2 ; CA X
const TOGGLE_SAFARI_ZONE_WEST_ITEM_3 ; CB X
const TOGGLE_SAFARI_ZONE_WEST_ITEM_4 ; CC X
toggle_consts_for SAFARI_ZONE_CENTER
const TOGGLE_SAFARI_ZONE_CENTER_ITEM ; CD X
toggle_consts_for CERULEAN_CAVE_2F
const TOGGLE_CERULEAN_CAVE_2F_ITEM_1 ; CE X
const TOGGLE_CERULEAN_CAVE_2F_ITEM_2 ; CF X
const TOGGLE_CERULEAN_CAVE_2F_ITEM_3 ; D0 X
toggle_consts_for CERULEAN_CAVE_B1F
const TOGGLE_MEWTWO ; D1 X
const TOGGLE_CERULEAN_CAVE_B1F_ITEM_1 ; D2 X
const TOGGLE_CERULEAN_CAVE_B1F_ITEM_2 ; D3 X
toggle_consts_for VICTORY_ROAD_1F
const TOGGLE_VICTORY_ROAD_1F_ITEM_1 ; D4 X
const TOGGLE_VICTORY_ROAD_1F_ITEM_2 ; D5 X
toggle_consts_for CHAMPIONS_ROOM
const TOGGLE_CHAMPIONS_ROOM_OAK ; D6
toggle_consts_for SEAFOAM_ISLANDS_1F
const TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_1 ; D7
const TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_2 ; D8
toggle_consts_for SEAFOAM_ISLANDS_B1F
const TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; D9
const TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_2 ; DA
toggle_consts_for SEAFOAM_ISLANDS_B2F
const TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_1 ; DB
const TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_2 ; DC
toggle_consts_for SEAFOAM_ISLANDS_B3F
const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_1 ; DD
const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_2 ; DE
const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_3 ; DF
const TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_4 ; E0
toggle_consts_for SEAFOAM_ISLANDS_B4F
const TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E1
const TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; E2
const TOGGLE_ARTICUNO ; E3 X
DEF NUM_TOGGLEABLE_OBJECTS EQU const_value

View File

@@ -1,568 +0,0 @@
; default hidden/shown objects for each map
MapHSPointers:
; entries correspond to map ids
table_width 2
dw PalletTownHS
dw ViridianCityHS
dw PewterCityHS
dw CeruleanCityHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw SaffronCityHS
dw NoHS
dw NoHS
dw Route2HS
dw NoHS
dw Route4HS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw Route9HS
dw NoHS
dw NoHS
dw Route12HS
dw NoHS
dw NoHS
dw Route15HS
dw Route16HS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw Route22HS
dw NoHS
dw Route24HS
dw Route25HS
dw NoHS
dw NoHS
dw BluesHouseHS
dw OaksLabHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw ViridianGymHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw ViridianForestHS
dw Museum1FHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw MtMoon1FHS
dw NoHS
dw MtMoonB2FHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw PowerPlantHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw BillsHouseHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw SSAnne2FHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw SSAnne1FRoomsHS
dw SSAnne2FRoomsHS
dw SSAnneB1FRoomsHS
dw NoHS
dw NoHS
dw NoHS
dw VictoryRoad1FHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw ChampionsRoomHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw CeladonMansionRoofHouseHS
dw NoHS
dw NoHS
dw GameCornerHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw PokemonTower2FHS
dw PokemonTower3FHS
dw PokemonTower4FHS
dw PokemonTower5FHS
dw PokemonTower6FHS
dw PokemonTower7FHS
dw MrFujisHouseHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw WardensHouseHS
dw NoHS
dw NoHS
dw NoHS
dw SeafoamIslandsB1FHS
dw SeafoamIslandsB2FHS
dw SeafoamIslandsB3FHS
dw SeafoamIslandsB4FHS
dw NoHS
dw NoHS
dw PokemonMansion1FHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw FightingDojoHS
dw NoHS
dw NoHS
dw NoHS
dw SilphCo1FHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw SeafoamIslands1FHS
dw NoHS
dw VictoryRoad2FHS
dw NoHS
dw NoHS
dw NoHS
dw VictoryRoad3FHS
dw RocketHideoutB1FHS
dw RocketHideoutB2FHS
dw RocketHideoutB3FHS
dw RocketHideoutB4FHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw SilphCo2FHS
dw SilphCo3FHS
dw SilphCo4FHS
dw SilphCo5FHS
dw SilphCo6FHS
dw SilphCo7FHS
dw SilphCo8FHS
dw PokemonMansion2FHS
dw PokemonMansion3FHS
dw PokemonMansionB1FHS
dw SafariZoneEastHS
dw SafariZoneNorthHS
dw SafariZoneWestHS
dw SafariZoneCenterHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw CeruleanCave2FHS
dw CeruleanCaveB1FHS
dw CeruleanCaveHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw SilphCo9FHS
dw SilphCo10FHS
dw SilphCo11FHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw UnusedMapF4HS
dw NoHS
dw NoHS
dw NoHS
assert_table_length NUM_MAPS
dw -1 ; end
NoHS:
db -1, -1, -1 ; end
MissableObjects:
; entries correspond to HS_* constants (see constants/hide_show_constants)
table_width 3
; format: map id, object id, HIDE/SHOW
PalletTownHS:
db PALLET_TOWN, PALLETTOWN_OAK, HIDE
ViridianCityHS:
db VIRIDIAN_CITY, VIRIDIANCITY_OLD_MAN_SLEEPY, SHOW
db VIRIDIAN_CITY, VIRIDIANCITY_OLD_MAN, HIDE
PewterCityHS:
db PEWTER_CITY, PEWTERCITY_SUPER_NERD1, SHOW
db PEWTER_CITY, PEWTERCITY_YOUNGSTER, SHOW
CeruleanCityHS:
db CERULEAN_CITY, CERULEANCITY_RIVAL, HIDE
db CERULEAN_CITY, CERULEANCITY_ROCKET, SHOW
db CERULEAN_CITY, CERULEANCITY_GUARD1, HIDE
db CERULEAN_CITY, CERULEANCITY_SUPER_NERD3, SHOW
db CERULEAN_CITY, CERULEANCITY_GUARD2, SHOW
SaffronCityHS:
db SAFFRON_CITY, SAFFRONCITY_ROCKET1, SHOW
db SAFFRON_CITY, SAFFRONCITY_ROCKET2, SHOW
db SAFFRON_CITY, SAFFRONCITY_ROCKET3, SHOW
db SAFFRON_CITY, SAFFRONCITY_ROCKET4, SHOW
db SAFFRON_CITY, SAFFRONCITY_ROCKET5, SHOW
db SAFFRON_CITY, SAFFRONCITY_ROCKET6, SHOW
db SAFFRON_CITY, SAFFRONCITY_ROCKET7, SHOW
db SAFFRON_CITY, SAFFRONCITY_SCIENTIST, HIDE
db SAFFRON_CITY, SAFFRONCITY_SILPH_WORKER_M, HIDE
db SAFFRON_CITY, SAFFRONCITY_SILPH_WORKER_F, HIDE
db SAFFRON_CITY, SAFFRONCITY_GENTLEMAN, HIDE
db SAFFRON_CITY, SAFFRONCITY_PIDGEOT, HIDE
db SAFFRON_CITY, SAFFRONCITY_ROCKER, HIDE
db SAFFRON_CITY, SAFFRONCITY_ROCKET8, SHOW
db SAFFRON_CITY, SAFFRONCITY_ROCKET9, HIDE
Route2HS:
db ROUTE_2, ROUTE2_MOON_STONE, SHOW
db ROUTE_2, ROUTE2_HP_UP, SHOW
Route4HS:
db ROUTE_4, ROUTE4_TM_WHIRLWIND, SHOW
Route9HS:
db ROUTE_9, ROUTE9_TM_TELEPORT, SHOW
Route12HS:
db ROUTE_12, ROUTE12_SNORLAX, SHOW
db ROUTE_12, ROUTE12_TM_PAY_DAY, SHOW
db ROUTE_12, ROUTE12_IRON, SHOW
Route15HS:
db ROUTE_15, ROUTE15_TM_RAGE, SHOW
Route16HS:
db ROUTE_16, ROUTE16_SNORLAX, SHOW
Route22HS:
db ROUTE_22, ROUTE22_RIVAL1, HIDE
db ROUTE_22, ROUTE22_RIVAL2, HIDE
Route24HS:
db ROUTE_24, ROUTE24_COOLTRAINER_M1, SHOW
db ROUTE_24, ROUTE24_TM_THUNDER_WAVE, SHOW
Route25HS:
db ROUTE_25, ROUTE25_TM_SEISMIC_TOSS, SHOW
BluesHouseHS:
db BLUES_HOUSE, BLUESHOUSE_DAISY1, SHOW
db BLUES_HOUSE, BLUESHOUSE_DAISY2, HIDE
db BLUES_HOUSE, BLUESHOUSE_TOWN_MAP, SHOW
OaksLabHS:
db OAKS_LAB, OAKSLAB_RIVAL, SHOW
db OAKS_LAB, OAKSLAB_CHARMANDER_POKE_BALL, SHOW
db OAKS_LAB, OAKSLAB_SQUIRTLE_POKE_BALL, SHOW
db OAKS_LAB, OAKSLAB_BULBASAUR_POKE_BALL, SHOW
db OAKS_LAB, OAKSLAB_OAK1, HIDE
db OAKS_LAB, OAKSLAB_POKEDEX1, SHOW
db OAKS_LAB, OAKSLAB_POKEDEX2, SHOW
db OAKS_LAB, OAKSLAB_OAK2, HIDE
ViridianGymHS:
db VIRIDIAN_GYM, VIRIDIANGYM_GIOVANNI, SHOW
db VIRIDIAN_GYM, VIRIDIANGYM_REVIVE, SHOW
Museum1FHS:
db MUSEUM_1F, MUSEUM1F_OLD_AMBER, SHOW
CeruleanCaveHS:
db CERULEAN_CAVE_1F, CERULEANCAVE1F_FULL_RESTORE, SHOW
db CERULEAN_CAVE_1F, CERULEANCAVE1F_MAX_ELIXER, SHOW
db CERULEAN_CAVE_1F, CERULEANCAVE1F_NUGGET, SHOW
PokemonTower2FHS:
db POKEMON_TOWER_2F, POKEMONTOWER2F_RIVAL, SHOW
PokemonTower3FHS:
db POKEMON_TOWER_3F, POKEMONTOWER3F_ESCAPE_ROPE, SHOW
PokemonTower4FHS:
db POKEMON_TOWER_4F, POKEMONTOWER4F_ELIXER, SHOW
db POKEMON_TOWER_4F, POKEMONTOWER4F_AWAKENING, SHOW
db POKEMON_TOWER_4F, POKEMONTOWER4F_HP_UP, SHOW
PokemonTower5FHS:
db POKEMON_TOWER_5F, POKEMONTOWER5F_NUGGET, SHOW
PokemonTower6FHS:
db POKEMON_TOWER_6F, POKEMONTOWER6F_RARE_CANDY, SHOW
db POKEMON_TOWER_6F, POKEMONTOWER6F_X_ACCURACY, SHOW
PokemonTower7FHS:
db POKEMON_TOWER_7F, POKEMONTOWER7F_ROCKET1, SHOW
db POKEMON_TOWER_7F, POKEMONTOWER7F_ROCKET2, SHOW
db POKEMON_TOWER_7F, POKEMONTOWER7F_ROCKET3, SHOW
db POKEMON_TOWER_7F, POKEMONTOWER7F_MR_FUJI, SHOW
MrFujisHouseHS:
db MR_FUJIS_HOUSE, MRFUJISHOUSE_MR_FUJI, HIDE
CeladonMansionRoofHouseHS:
db CELADON_MANSION_ROOF_HOUSE, CELADONMANSION_ROOF_HOUSE_EEVEE_POKEBALL, SHOW
GameCornerHS:
db GAME_CORNER, GAMECORNER_ROCKET, SHOW
WardensHouseHS:
db WARDENS_HOUSE, WARDENSHOUSE_RARE_CANDY, SHOW
PokemonMansion1FHS:
db POKEMON_MANSION_1F, POKEMONMANSION1F_ESCAPE_ROPE, SHOW
db POKEMON_MANSION_1F, POKEMONMANSION1F_CARBOS, SHOW
FightingDojoHS:
db FIGHTING_DOJO, FIGHTINGDOJO_HITMONLEE_POKE_BALL, SHOW
db FIGHTING_DOJO, FIGHTINGDOJO_HITMONCHAN_POKE_BALL, SHOW
SilphCo1FHS:
db SILPH_CO_1F, SILPHCO1F_LINK_RECEPTIONIST, HIDE
PowerPlantHS:
db POWER_PLANT, POWERPLANT_VOLTORB1, SHOW
db POWER_PLANT, POWERPLANT_VOLTORB2, SHOW
db POWER_PLANT, POWERPLANT_VOLTORB3, SHOW
db POWER_PLANT, POWERPLANT_ELECTRODE1, SHOW
db POWER_PLANT, POWERPLANT_VOLTORB4, SHOW
db POWER_PLANT, POWERPLANT_VOLTORB5, SHOW
db POWER_PLANT, POWERPLANT_ELECTRODE2, SHOW
db POWER_PLANT, POWERPLANT_VOLTORB6, SHOW
db POWER_PLANT, POWERPLANT_ZAPDOS, SHOW
db POWER_PLANT, POWERPLANT_CARBOS, SHOW
db POWER_PLANT, POWERPLANT_HP_UP, SHOW
db POWER_PLANT, POWERPLANT_RARE_CANDY, SHOW
db POWER_PLANT, POWERPLANT_TM_THUNDER, SHOW
db POWER_PLANT, POWERPLANT_TM_REFLECT, SHOW
VictoryRoad2FHS:
db VICTORY_ROAD_2F, VICTORYROAD2F_MOLTRES, SHOW
db VICTORY_ROAD_2F, VICTORYROAD2F_TM_SUBMISSION, SHOW
db VICTORY_ROAD_2F, VICTORYROAD2F_FULL_HEAL, SHOW
db VICTORY_ROAD_2F, VICTORYROAD2F_TM_MEGA_KICK, SHOW
db VICTORY_ROAD_2F, VICTORYROAD2F_GUARD_SPEC, SHOW
db VICTORY_ROAD_2F, VICTORYROAD2F_BOULDER3, SHOW
BillsHouseHS:
db BILLS_HOUSE, BILLSHOUSE_BILL_POKEMON, SHOW
db BILLS_HOUSE, BILLSHOUSE_BILL1, HIDE
db BILLS_HOUSE, BILLSHOUSE_BILL2, HIDE
ViridianForestHS:
db VIRIDIAN_FOREST, VIRIDIANFOREST_ANTIDOTE, SHOW
db VIRIDIAN_FOREST, VIRIDIANFOREST_POTION, SHOW
db VIRIDIAN_FOREST, VIRIDIANFOREST_POKE_BALL, SHOW
MtMoon1FHS:
db MT_MOON_1F, MTMOON1F_POTION1, SHOW
db MT_MOON_1F, MTMOON1F_MOON_STONE, SHOW
db MT_MOON_1F, MTMOON1F_RARE_CANDY, SHOW
db MT_MOON_1F, MTMOON1F_ESCAPE_ROPE, SHOW
db MT_MOON_1F, MTMOON1F_POTION2, SHOW
db MT_MOON_1F, MTMOON1F_TM_WATER_GUN, SHOW
MtMoonB2FHS:
db MT_MOON_B2F, MTMOONB2F_DOME_FOSSIL, SHOW
db MT_MOON_B2F, MTMOONB2F_HELIX_FOSSIL, SHOW
db MT_MOON_B2F, MTMOONB2F_HP_UP, SHOW
db MT_MOON_B2F, MTMOONB2F_TM_MEGA_PUNCH, SHOW
SSAnne2FHS:
db SS_ANNE_2F, SSANNE2F_RIVAL, HIDE
SSAnne1FRoomsHS:
db SS_ANNE_1F_ROOMS, SSANNE1FROOMS_TM_BODY_SLAM, SHOW
SSAnne2FRoomsHS:
db SS_ANNE_2F_ROOMS, SSANNE2FROOMS_MAX_ETHER, SHOW
db SS_ANNE_2F_ROOMS, SSANNE2FROOMS_RARE_CANDY, SHOW
SSAnneB1FRoomsHS:
db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_ETHER, SHOW
db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_TM_REST, SHOW
db SS_ANNE_B1F_ROOMS, SSANNEB1FROOMS_MAX_POTION, SHOW
VictoryRoad3FHS:
db VICTORY_ROAD_3F, VICTORYROAD3F_MAX_REVIVE, SHOW
db VICTORY_ROAD_3F, VICTORYROAD3F_TM_EXPLOSION, SHOW
db VICTORY_ROAD_3F, VICTORYROAD3F_BOULDER4, SHOW
RocketHideoutB1FHS:
db ROCKET_HIDEOUT_B1F, ROCKETHIDEOUTB1F_ESCAPE_ROPE, SHOW
db ROCKET_HIDEOUT_B1F, ROCKETHIDEOUTB1F_HYPER_POTION, SHOW
RocketHideoutB2FHS:
db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_MOON_STONE, SHOW
db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_NUGGET, SHOW
db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_TM_HORN_DRILL, SHOW
db ROCKET_HIDEOUT_B2F, ROCKETHIDEOUTB2F_SUPER_POTION, SHOW
RocketHideoutB3FHS:
db ROCKET_HIDEOUT_B3F, ROCKETHIDEOUTB3F_TM_DOUBLE_EDGE, SHOW
db ROCKET_HIDEOUT_B3F, ROCKETHIDEOUTB3F_RARE_CANDY, SHOW
RocketHideoutB4FHS:
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_GIOVANNI, SHOW
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_HP_UP, SHOW
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_TM_RAZOR_WIND, SHOW
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_IRON, SHOW
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_SILPH_SCOPE, HIDE
db ROCKET_HIDEOUT_B4F, ROCKETHIDEOUTB4F_LIFT_KEY, HIDE
SilphCo2FHS:
db SILPH_CO_2F, SILPHCO2F_SILPH_WORKER_F, SHOW
db SILPH_CO_2F, SILPHCO2F_SCIENTIST1, SHOW
db SILPH_CO_2F, SILPHCO2F_SCIENTIST2, SHOW
db SILPH_CO_2F, SILPHCO2F_ROCKET1, SHOW
db SILPH_CO_2F, SILPHCO2F_ROCKET2, SHOW
SilphCo3FHS:
db SILPH_CO_3F, SILPHCO3F_ROCKET, SHOW
db SILPH_CO_3F, SILPHCO3F_SCIENTIST, SHOW
db SILPH_CO_3F, SILPHCO3F_HYPER_POTION, SHOW
SilphCo4FHS:
db SILPH_CO_4F, SILPHCO4F_ROCKET1, SHOW
db SILPH_CO_4F, SILPHCO4F_SCIENTIST, SHOW
db SILPH_CO_4F, SILPHCO4F_ROCKET2, SHOW
db SILPH_CO_4F, SILPHCO4F_FULL_HEAL, SHOW
db SILPH_CO_4F, SILPHCO4F_MAX_REVIVE, SHOW
db SILPH_CO_4F, SILPHCO4F_ESCAPE_ROPE, SHOW
SilphCo5FHS:
db SILPH_CO_5F, SILPHCO5F_ROCKET1, SHOW
db SILPH_CO_5F, SILPHCO5F_SCIENTIST, SHOW
db SILPH_CO_5F, SILPHCO5F_ROCKER, SHOW
db SILPH_CO_5F, SILPHCO5F_ROCKET2, SHOW
db SILPH_CO_5F, SILPHCO5F_TM_TAKE_DOWN, SHOW
db SILPH_CO_5F, SILPHCO5F_PROTEIN, SHOW
db SILPH_CO_5F, SILPHCO5F_CARD_KEY, SHOW
SilphCo6FHS:
db SILPH_CO_6F, SILPHCO6F_ROCKET1, SHOW
db SILPH_CO_6F, SILPHCO6F_SCIENTIST, SHOW
db SILPH_CO_6F, SILPHCO6F_ROCKET2, SHOW
db SILPH_CO_6F, SILPHCO6F_HP_UP, SHOW
db SILPH_CO_6F, SILPHCO6F_X_ACCURACY, SHOW
SilphCo7FHS:
db SILPH_CO_7F, SILPHCO7F_ROCKET1, SHOW
db SILPH_CO_7F, SILPHCO7F_SCIENTIST, SHOW
db SILPH_CO_7F, SILPHCO7F_ROCKET2, SHOW
db SILPH_CO_7F, SILPHCO7F_ROCKET3, SHOW
db SILPH_CO_7F, SILPHCO7F_RIVAL, SHOW
db SILPH_CO_7F, SILPHCO7F_CALCIUM, SHOW
db SILPH_CO_7F, SILPHCO7F_TM_SWORDS_DANCE, SHOW
db SILPH_CO_7F, SILPHCO7F_UNUSED, SHOW
SilphCo8FHS:
db SILPH_CO_8F, SILPHCO8F_ROCKET1, SHOW
db SILPH_CO_8F, SILPHCO8F_SCIENTIST, SHOW
db SILPH_CO_8F, SILPHCO8F_ROCKET2, SHOW
SilphCo9FHS:
db SILPH_CO_9F, SILPHCO9F_ROCKET1, SHOW
db SILPH_CO_9F, SILPHCO9F_SCIENTIST, SHOW
db SILPH_CO_9F, SILPHCO9F_ROCKET2, SHOW
SilphCo10FHS:
db SILPH_CO_10F, SILPHCO10F_ROCKET, SHOW
db SILPH_CO_10F, SILPHCO10F_SCIENTIST, SHOW
db SILPH_CO_10F, SILPHCO10F_SILPH_WORKER_F, SHOW
db SILPH_CO_10F, SILPHCO10F_TM_EARTHQUAKE, SHOW
db SILPH_CO_10F, SILPHCO10F_RARE_CANDY, SHOW
db SILPH_CO_10F, SILPHCO10F_CARBOS, SHOW
SilphCo11FHS:
db SILPH_CO_11F, SILPHCO11F_GIOVANNI, SHOW
db SILPH_CO_11F, SILPHCO11F_ROCKET1, SHOW
db SILPH_CO_11F, SILPHCO11F_ROCKET2, SHOW
UnusedMapF4HS:
db UNUSED_MAP_F4, $02, SHOW ; unused
PokemonMansion2FHS:
db POKEMON_MANSION_2F, POKEMONMANSION2F_CALCIUM, SHOW
PokemonMansion3FHS:
db POKEMON_MANSION_3F, POKEMONMANSION3F_MAX_POTION, SHOW
db POKEMON_MANSION_3F, POKEMONMANSION3F_IRON, SHOW
PokemonMansionB1FHS:
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_RARE_CANDY, SHOW
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_FULL_RESTORE, SHOW
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_TM_BLIZZARD, SHOW
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_TM_SOLARBEAM, SHOW
db POKEMON_MANSION_B1F, POKEMONMANSIONB1F_SECRET_KEY, SHOW
SafariZoneEastHS:
db SAFARI_ZONE_EAST, SAFARIZONEEAST_FULL_RESTORE, SHOW
db SAFARI_ZONE_EAST, SAFARIZONEEAST_MAX_RESTORE, SHOW
db SAFARI_ZONE_EAST, SAFARIZONEEAST_CARBOS, SHOW
db SAFARI_ZONE_EAST, SAFARIZONEEAST_TM_EGG_BOMB, SHOW
SafariZoneNorthHS:
db SAFARI_ZONE_NORTH, SAFARIZONENORTH_PROTEIN, SHOW
db SAFARI_ZONE_NORTH, SAFARIZONENORTH_TM_SKULL_BASH, SHOW
SafariZoneWestHS:
db SAFARI_ZONE_WEST, SAFARIZONEWEST_MAX_POTION, SHOW
db SAFARI_ZONE_WEST, SAFARIZONEWEST_TM_DOUBLE_TEAM, SHOW
db SAFARI_ZONE_WEST, SAFARIZONEWEST_MAX_REVIVE, SHOW
db SAFARI_ZONE_WEST, SAFARIZONEWEST_GOLD_TEETH, SHOW
SafariZoneCenterHS:
db SAFARI_ZONE_CENTER, SAFARIZONECENTER_NUGGET, SHOW
CeruleanCave2FHS:
db CERULEAN_CAVE_2F, CERULEANCAVE2F_PP_UP, SHOW
db CERULEAN_CAVE_2F, CERULEANCAVE2F_ULTRA_BALL, SHOW
db CERULEAN_CAVE_2F, CERULEANCAVE2F_FULL_RESTORE, SHOW
CeruleanCaveB1FHS:
db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MEWTWO, SHOW
db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_ULTRA_BALL, SHOW
db CERULEAN_CAVE_B1F, CERULEANCAVEB1F_MAX_REVIVE, SHOW
VictoryRoad1FHS:
db VICTORY_ROAD_1F, VICTORYROAD1F_TM_SKY_ATTACK, SHOW
db VICTORY_ROAD_1F, VICTORYROAD1F_RARE_CANDY, SHOW
ChampionsRoomHS:
db CHAMPIONS_ROOM, CHAMPIONSROOM_OAK, HIDE
SeafoamIslands1FHS:
db SEAFOAM_ISLANDS_1F, SEAFOAMISLANDS1F_BOULDER1, SHOW
db SEAFOAM_ISLANDS_1F, SEAFOAMISLANDS1F_BOULDER2, SHOW
SeafoamIslandsB1FHS:
db SEAFOAM_ISLANDS_B1F, SEAFOAMISLANDSB1F_BOULDER1, HIDE
db SEAFOAM_ISLANDS_B1F, SEAFOAMISLANDSB1F_BOULDER2, HIDE
SeafoamIslandsB2FHS:
db SEAFOAM_ISLANDS_B2F, SEAFOAMISLANDSB2F_BOULDER1, HIDE
db SEAFOAM_ISLANDS_B2F, SEAFOAMISLANDSB2F_BOULDER2, HIDE
SeafoamIslandsB3FHS:
db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER2, SHOW
db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER3, SHOW
db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER5, HIDE
db SEAFOAM_ISLANDS_B3F, SEAFOAMISLANDSB3F_BOULDER6, HIDE
SeafoamIslandsB4FHS:
db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_BOULDER1, HIDE
db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_BOULDER2, HIDE
db SEAFOAM_ISLANDS_B4F, SEAFOAMISLANDSB4F_ARTICUNO, SHOW
assert_table_length NUM_HS_OBJECTS
db -1, 1, SHOW ; end

View File

@@ -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

View File

@@ -0,0 +1,423 @@
; toggleable objects for each map
ToggleableObjectMapPointers:
; entries correspond to map ids
table_width 2
FOR n, NUM_MAPS
IF DEF(TOGGLEMAP{n}) ; defined by `toggle_consts_for`
dw ToggleData{n}
ELSE
dw NoToggleData
ENDC
ENDR
assert_table_length NUM_MAPS
dw -1 ; end
NoToggleData:
db -1, -1, -1 ; end
DEF toggles_ok = 1
MACRO? toggleable_objects_for
DEF toggle_map_id = \1 ; map id
ToggleData{toggle_map_id}:
IF toggles_ok
ASSERT DEF(TOGGLEMAP{toggle_map_id}), \
"`toggleable_objects_for \1` is not defined"
DEF toggles_ok &= DEF(TOGGLEMAP{toggle_map_id})
IF toggles_ok
assert_table_length TOGGLEMAP{toggle_map_id}
DEF toggles_ok &= TOGGLEMAP{toggle_map_id} * 3 == @ - ToggleableObjectStates
ENDC
ENDC
ENDM
MACRO toggle_object_state
db toggle_map_id ; from previous `toggleable_objects_for`
db \1 ; object id
db \2 ; OFF/ON
ENDM
ToggleableObjectStates:
; entries correspond to TOGGLE_* constants (see constants/toggle_constants.asm)
table_width 3
toggleable_objects_for PALLET_TOWN
toggle_object_state PALLETTOWN_OAK, OFF
toggleable_objects_for VIRIDIAN_CITY
toggle_object_state VIRIDIANCITY_OLD_MAN_SLEEPY, ON
toggle_object_state VIRIDIANCITY_OLD_MAN, OFF
toggleable_objects_for PEWTER_CITY
toggle_object_state PEWTERCITY_SUPER_NERD1, ON
toggle_object_state PEWTERCITY_YOUNGSTER, ON
toggleable_objects_for CERULEAN_CITY
toggle_object_state CERULEANCITY_RIVAL, OFF
toggle_object_state CERULEANCITY_ROCKET, ON
toggle_object_state CERULEANCITY_GUARD1, OFF
toggle_object_state CERULEANCITY_SUPER_NERD3, ON
toggle_object_state CERULEANCITY_GUARD2, ON
toggleable_objects_for SAFFRON_CITY
toggle_object_state SAFFRONCITY_ROCKET1, ON
toggle_object_state SAFFRONCITY_ROCKET2, ON
toggle_object_state SAFFRONCITY_ROCKET3, ON
toggle_object_state SAFFRONCITY_ROCKET4, ON
toggle_object_state SAFFRONCITY_ROCKET5, ON
toggle_object_state SAFFRONCITY_ROCKET6, ON
toggle_object_state SAFFRONCITY_ROCKET7, ON
toggle_object_state SAFFRONCITY_SCIENTIST, OFF
toggle_object_state SAFFRONCITY_SILPH_WORKER_M, OFF
toggle_object_state SAFFRONCITY_SILPH_WORKER_F, OFF
toggle_object_state SAFFRONCITY_GENTLEMAN, OFF
toggle_object_state SAFFRONCITY_PIDGEOT, OFF
toggle_object_state SAFFRONCITY_ROCKER, OFF
toggle_object_state SAFFRONCITY_ROCKET8, ON
toggle_object_state SAFFRONCITY_ROCKET9, OFF
toggleable_objects_for ROUTE_2
toggle_object_state ROUTE2_MOON_STONE, ON
toggle_object_state ROUTE2_HP_UP, ON
toggleable_objects_for ROUTE_4
toggle_object_state ROUTE4_TM_WHIRLWIND, ON
toggleable_objects_for ROUTE_9
toggle_object_state ROUTE9_TM_TELEPORT, ON
toggleable_objects_for ROUTE_12
toggle_object_state ROUTE12_SNORLAX, ON
toggle_object_state ROUTE12_TM_PAY_DAY, ON
toggle_object_state ROUTE12_IRON, ON
toggleable_objects_for ROUTE_15
toggle_object_state ROUTE15_TM_RAGE, ON
toggleable_objects_for ROUTE_16
toggle_object_state ROUTE16_SNORLAX, ON
toggleable_objects_for ROUTE_22
toggle_object_state ROUTE22_RIVAL1, OFF
toggle_object_state ROUTE22_RIVAL2, OFF
toggleable_objects_for ROUTE_24
toggle_object_state ROUTE24_COOLTRAINER_M1, ON
toggle_object_state ROUTE24_TM_THUNDER_WAVE, ON
toggleable_objects_for ROUTE_25
toggle_object_state ROUTE25_TM_SEISMIC_TOSS, ON
toggleable_objects_for BLUES_HOUSE
toggle_object_state BLUESHOUSE_DAISY1, ON
toggle_object_state BLUESHOUSE_DAISY2, OFF
toggle_object_state BLUESHOUSE_TOWN_MAP, ON
toggleable_objects_for OAKS_LAB
toggle_object_state OAKSLAB_RIVAL, ON
toggle_object_state OAKSLAB_CHARMANDER_POKE_BALL, ON
toggle_object_state OAKSLAB_SQUIRTLE_POKE_BALL, ON
toggle_object_state OAKSLAB_BULBASAUR_POKE_BALL, ON
toggle_object_state OAKSLAB_OAK1, OFF
toggle_object_state OAKSLAB_POKEDEX1, ON
toggle_object_state OAKSLAB_POKEDEX2, ON
toggle_object_state OAKSLAB_OAK2, OFF
toggleable_objects_for VIRIDIAN_GYM
toggle_object_state VIRIDIANGYM_GIOVANNI, ON
toggle_object_state VIRIDIANGYM_REVIVE, ON
toggleable_objects_for MUSEUM_1F
toggle_object_state MUSEUM1F_OLD_AMBER, ON
toggleable_objects_for CERULEAN_CAVE_1F
toggle_object_state CERULEANCAVE1F_FULL_RESTORE, ON
toggle_object_state CERULEANCAVE1F_MAX_ELIXER, ON
toggle_object_state CERULEANCAVE1F_NUGGET, ON
toggleable_objects_for POKEMON_TOWER_2F
toggle_object_state POKEMONTOWER2F_RIVAL, ON
toggleable_objects_for POKEMON_TOWER_3F
toggle_object_state POKEMONTOWER3F_ESCAPE_ROPE, ON
toggleable_objects_for POKEMON_TOWER_4F
toggle_object_state POKEMONTOWER4F_ELIXER, ON
toggle_object_state POKEMONTOWER4F_AWAKENING, ON
toggle_object_state POKEMONTOWER4F_HP_UP, ON
toggleable_objects_for POKEMON_TOWER_5F
toggle_object_state POKEMONTOWER5F_NUGGET, ON
toggleable_objects_for POKEMON_TOWER_6F
toggle_object_state POKEMONTOWER6F_RARE_CANDY, ON
toggle_object_state POKEMONTOWER6F_X_ACCURACY, ON
toggleable_objects_for POKEMON_TOWER_7F
toggle_object_state POKEMONTOWER7F_ROCKET1, ON
toggle_object_state POKEMONTOWER7F_ROCKET2, ON
toggle_object_state POKEMONTOWER7F_ROCKET3, ON
toggle_object_state POKEMONTOWER7F_MR_FUJI, ON
toggleable_objects_for MR_FUJIS_HOUSE
toggle_object_state MRFUJISHOUSE_MR_FUJI, OFF
toggleable_objects_for CELADON_MANSION_ROOF_HOUSE
toggle_object_state CELADONMANSION_ROOF_HOUSE_EEVEE_POKEBALL, ON
toggleable_objects_for GAME_CORNER
toggle_object_state GAMECORNER_ROCKET, ON
toggleable_objects_for WARDENS_HOUSE
toggle_object_state WARDENSHOUSE_RARE_CANDY, ON
toggleable_objects_for POKEMON_MANSION_1F
toggle_object_state POKEMONMANSION1F_ESCAPE_ROPE, ON
toggle_object_state POKEMONMANSION1F_CARBOS, ON
toggleable_objects_for FIGHTING_DOJO
toggle_object_state FIGHTINGDOJO_HITMONLEE_POKE_BALL, ON
toggle_object_state FIGHTINGDOJO_HITMONCHAN_POKE_BALL, ON
toggleable_objects_for SILPH_CO_1F
toggle_object_state SILPHCO1F_LINK_RECEPTIONIST, OFF
toggleable_objects_for POWER_PLANT
toggle_object_state POWERPLANT_VOLTORB1, ON
toggle_object_state POWERPLANT_VOLTORB2, ON
toggle_object_state POWERPLANT_VOLTORB3, ON
toggle_object_state POWERPLANT_ELECTRODE1, ON
toggle_object_state POWERPLANT_VOLTORB4, ON
toggle_object_state POWERPLANT_VOLTORB5, ON
toggle_object_state POWERPLANT_ELECTRODE2, ON
toggle_object_state POWERPLANT_VOLTORB6, ON
toggle_object_state POWERPLANT_ZAPDOS, ON
toggle_object_state POWERPLANT_CARBOS, ON
toggle_object_state POWERPLANT_HP_UP, ON
toggle_object_state POWERPLANT_RARE_CANDY, ON
toggle_object_state POWERPLANT_TM_THUNDER, ON
toggle_object_state POWERPLANT_TM_REFLECT, ON
toggleable_objects_for VICTORY_ROAD_2F
toggle_object_state VICTORYROAD2F_MOLTRES, ON
toggle_object_state VICTORYROAD2F_TM_SUBMISSION, ON
toggle_object_state VICTORYROAD2F_FULL_HEAL, ON
toggle_object_state VICTORYROAD2F_TM_MEGA_KICK, ON
toggle_object_state VICTORYROAD2F_GUARD_SPEC, ON
toggle_object_state VICTORYROAD2F_BOULDER3, ON
toggleable_objects_for BILLS_HOUSE
toggle_object_state BILLSHOUSE_BILL_POKEMON, ON
toggle_object_state BILLSHOUSE_BILL1, OFF
toggle_object_state BILLSHOUSE_BILL2, OFF
toggleable_objects_for VIRIDIAN_FOREST
toggle_object_state VIRIDIANFOREST_ANTIDOTE, ON
toggle_object_state VIRIDIANFOREST_POTION, ON
toggle_object_state VIRIDIANFOREST_POKE_BALL, ON
toggleable_objects_for MT_MOON_1F
toggle_object_state MTMOON1F_POTION1, ON
toggle_object_state MTMOON1F_MOON_STONE, ON
toggle_object_state MTMOON1F_RARE_CANDY, ON
toggle_object_state MTMOON1F_ESCAPE_ROPE, ON
toggle_object_state MTMOON1F_POTION2, ON
toggle_object_state MTMOON1F_TM_WATER_GUN, ON
toggleable_objects_for MT_MOON_B2F
toggle_object_state MTMOONB2F_DOME_FOSSIL, ON
toggle_object_state MTMOONB2F_HELIX_FOSSIL, ON
toggle_object_state MTMOONB2F_HP_UP, ON
toggle_object_state MTMOONB2F_TM_MEGA_PUNCH, ON
toggleable_objects_for SS_ANNE_2F
toggle_object_state SSANNE2F_RIVAL, OFF
toggleable_objects_for SS_ANNE_1F_ROOMS
toggle_object_state SSANNE1FROOMS_TM_BODY_SLAM, ON
toggleable_objects_for SS_ANNE_2F_ROOMS
toggle_object_state SSANNE2FROOMS_MAX_ETHER, ON
toggle_object_state SSANNE2FROOMS_RARE_CANDY, ON
toggleable_objects_for SS_ANNE_B1F_ROOMS
toggle_object_state SSANNEB1FROOMS_ETHER, ON
toggle_object_state SSANNEB1FROOMS_TM_REST, ON
toggle_object_state SSANNEB1FROOMS_MAX_POTION, ON
toggleable_objects_for VICTORY_ROAD_3F
toggle_object_state VICTORYROAD3F_MAX_REVIVE, ON
toggle_object_state VICTORYROAD3F_TM_EXPLOSION, ON
toggle_object_state VICTORYROAD3F_BOULDER4, ON
toggleable_objects_for ROCKET_HIDEOUT_B1F
toggle_object_state ROCKETHIDEOUTB1F_ESCAPE_ROPE, ON
toggle_object_state ROCKETHIDEOUTB1F_HYPER_POTION, ON
toggleable_objects_for ROCKET_HIDEOUT_B2F
toggle_object_state ROCKETHIDEOUTB2F_MOON_STONE, ON
toggle_object_state ROCKETHIDEOUTB2F_NUGGET, ON
toggle_object_state ROCKETHIDEOUTB2F_TM_HORN_DRILL, ON
toggle_object_state ROCKETHIDEOUTB2F_SUPER_POTION, ON
toggleable_objects_for ROCKET_HIDEOUT_B3F
toggle_object_state ROCKETHIDEOUTB3F_TM_DOUBLE_EDGE, ON
toggle_object_state ROCKETHIDEOUTB3F_RARE_CANDY, ON
toggleable_objects_for ROCKET_HIDEOUT_B4F
toggle_object_state ROCKETHIDEOUTB4F_GIOVANNI, ON
toggle_object_state ROCKETHIDEOUTB4F_HP_UP, ON
toggle_object_state ROCKETHIDEOUTB4F_TM_RAZOR_WIND, ON
toggle_object_state ROCKETHIDEOUTB4F_IRON, ON
toggle_object_state ROCKETHIDEOUTB4F_SILPH_SCOPE, OFF
toggle_object_state ROCKETHIDEOUTB4F_LIFT_KEY, OFF
toggleable_objects_for SILPH_CO_2F
toggle_object_state SILPHCO2F_SILPH_WORKER_F, ON
toggle_object_state SILPHCO2F_SCIENTIST1, ON
toggle_object_state SILPHCO2F_SCIENTIST2, ON
toggle_object_state SILPHCO2F_ROCKET1, ON
toggle_object_state SILPHCO2F_ROCKET2, ON
toggleable_objects_for SILPH_CO_3F
toggle_object_state SILPHCO3F_ROCKET, ON
toggle_object_state SILPHCO3F_SCIENTIST, ON
toggle_object_state SILPHCO3F_HYPER_POTION, ON
toggleable_objects_for SILPH_CO_4F
toggle_object_state SILPHCO4F_ROCKET1, ON
toggle_object_state SILPHCO4F_SCIENTIST, ON
toggle_object_state SILPHCO4F_ROCKET2, ON
toggle_object_state SILPHCO4F_FULL_HEAL, ON
toggle_object_state SILPHCO4F_MAX_REVIVE, ON
toggle_object_state SILPHCO4F_ESCAPE_ROPE, ON
toggleable_objects_for SILPH_CO_5F
toggle_object_state SILPHCO5F_ROCKET1, ON
toggle_object_state SILPHCO5F_SCIENTIST, ON
toggle_object_state SILPHCO5F_ROCKER, ON
toggle_object_state SILPHCO5F_ROCKET2, ON
toggle_object_state SILPHCO5F_TM_TAKE_DOWN, ON
toggle_object_state SILPHCO5F_PROTEIN, ON
toggle_object_state SILPHCO5F_CARD_KEY, ON
toggleable_objects_for SILPH_CO_6F
toggle_object_state SILPHCO6F_ROCKET1, ON
toggle_object_state SILPHCO6F_SCIENTIST, ON
toggle_object_state SILPHCO6F_ROCKET2, ON
toggle_object_state SILPHCO6F_HP_UP, ON
toggle_object_state SILPHCO6F_X_ACCURACY, ON
toggleable_objects_for SILPH_CO_7F
toggle_object_state SILPHCO7F_ROCKET1, ON
toggle_object_state SILPHCO7F_SCIENTIST, ON
toggle_object_state SILPHCO7F_ROCKET2, ON
toggle_object_state SILPHCO7F_ROCKET3, ON
toggle_object_state SILPHCO7F_RIVAL, ON
toggle_object_state SILPHCO7F_CALCIUM, ON
toggle_object_state SILPHCO7F_TM_SWORDS_DANCE, ON
toggle_object_state SILPHCO7F_UNUSED, ON
toggleable_objects_for SILPH_CO_8F
toggle_object_state SILPHCO8F_ROCKET1, ON
toggle_object_state SILPHCO8F_SCIENTIST, ON
toggle_object_state SILPHCO8F_ROCKET2, ON
toggleable_objects_for SILPH_CO_9F
toggle_object_state SILPHCO9F_ROCKET1, ON
toggle_object_state SILPHCO9F_SCIENTIST, ON
toggle_object_state SILPHCO9F_ROCKET2, ON
toggleable_objects_for SILPH_CO_10F
toggle_object_state SILPHCO10F_ROCKET, ON
toggle_object_state SILPHCO10F_SCIENTIST, ON
toggle_object_state SILPHCO10F_SILPH_WORKER_F, ON
toggle_object_state SILPHCO10F_TM_EARTHQUAKE, ON
toggle_object_state SILPHCO10F_RARE_CANDY, ON
toggle_object_state SILPHCO10F_CARBOS, ON
toggleable_objects_for SILPH_CO_11F
toggle_object_state SILPHCO11F_GIOVANNI, ON
toggle_object_state SILPHCO11F_ROCKET1, ON
toggle_object_state SILPHCO11F_ROCKET2, ON
toggleable_objects_for UNUSED_MAP_F4
toggle_object_state $02, ON ; unused
toggleable_objects_for POKEMON_MANSION_2F
toggle_object_state POKEMONMANSION2F_CALCIUM, ON
toggleable_objects_for POKEMON_MANSION_3F
toggle_object_state POKEMONMANSION3F_MAX_POTION, ON
toggle_object_state POKEMONMANSION3F_IRON, ON
toggleable_objects_for POKEMON_MANSION_B1F
toggle_object_state POKEMONMANSIONB1F_RARE_CANDY, ON
toggle_object_state POKEMONMANSIONB1F_FULL_RESTORE, ON
toggle_object_state POKEMONMANSIONB1F_TM_BLIZZARD, ON
toggle_object_state POKEMONMANSIONB1F_TM_SOLARBEAM, ON
toggle_object_state POKEMONMANSIONB1F_SECRET_KEY, ON
toggleable_objects_for SAFARI_ZONE_EAST
toggle_object_state SAFARIZONEEAST_FULL_RESTORE, ON
toggle_object_state SAFARIZONEEAST_MAX_RESTORE, ON
toggle_object_state SAFARIZONEEAST_CARBOS, ON
toggle_object_state SAFARIZONEEAST_TM_EGG_BOMB, ON
toggleable_objects_for SAFARI_ZONE_NORTH
toggle_object_state SAFARIZONENORTH_PROTEIN, ON
toggle_object_state SAFARIZONENORTH_TM_SKULL_BASH, ON
toggleable_objects_for SAFARI_ZONE_WEST
toggle_object_state SAFARIZONEWEST_MAX_POTION, ON
toggle_object_state SAFARIZONEWEST_TM_DOUBLE_TEAM, ON
toggle_object_state SAFARIZONEWEST_MAX_REVIVE, ON
toggle_object_state SAFARIZONEWEST_GOLD_TEETH, ON
toggleable_objects_for SAFARI_ZONE_CENTER
toggle_object_state SAFARIZONECENTER_NUGGET, ON
toggleable_objects_for CERULEAN_CAVE_2F
toggle_object_state CERULEANCAVE2F_PP_UP, ON
toggle_object_state CERULEANCAVE2F_ULTRA_BALL, ON
toggle_object_state CERULEANCAVE2F_FULL_RESTORE, ON
toggleable_objects_for CERULEAN_CAVE_B1F
toggle_object_state CERULEANCAVEB1F_MEWTWO, ON
toggle_object_state CERULEANCAVEB1F_ULTRA_BALL, ON
toggle_object_state CERULEANCAVEB1F_MAX_REVIVE, ON
toggleable_objects_for VICTORY_ROAD_1F
toggle_object_state VICTORYROAD1F_TM_SKY_ATTACK, ON
toggle_object_state VICTORYROAD1F_RARE_CANDY, ON
toggleable_objects_for CHAMPIONS_ROOM
toggle_object_state CHAMPIONSROOM_OAK, OFF
toggleable_objects_for SEAFOAM_ISLANDS_1F
toggle_object_state SEAFOAMISLANDS1F_BOULDER1, ON
toggle_object_state SEAFOAMISLANDS1F_BOULDER2, ON
toggleable_objects_for SEAFOAM_ISLANDS_B1F
toggle_object_state SEAFOAMISLANDSB1F_BOULDER1, OFF
toggle_object_state SEAFOAMISLANDSB1F_BOULDER2, OFF
toggleable_objects_for SEAFOAM_ISLANDS_B2F
toggle_object_state SEAFOAMISLANDSB2F_BOULDER1, OFF
toggle_object_state SEAFOAMISLANDSB2F_BOULDER2, OFF
toggleable_objects_for SEAFOAM_ISLANDS_B3F
toggle_object_state SEAFOAMISLANDSB3F_BOULDER2, ON
toggle_object_state SEAFOAMISLANDSB3F_BOULDER3, ON
toggle_object_state SEAFOAMISLANDSB3F_BOULDER5, OFF
toggle_object_state SEAFOAMISLANDSB3F_BOULDER6, OFF
toggleable_objects_for SEAFOAM_ISLANDS_B4F
toggle_object_state SEAFOAMISLANDSB4F_BOULDER1, OFF
toggle_object_state SEAFOAMISLANDSB4F_BOULDER2, OFF
toggle_object_state SEAFOAMISLANDSB4F_ARTICUNO, ON
assert_table_length NUM_TOGGLEABLE_OBJECTS
db -1, 1, ON ; end

View File

@@ -32,7 +32,7 @@ PredefPointers::
add_predef ApplyOutOfBattlePoisonDamage
add_predef AnyPartyAlive
add_predef ShowObject
add_predef ShowObject2
add_predef ShowObject2 ; identical to ShowObject
add_predef ReplaceTileBlock
add_predef InitPlayerData2
add_predef LoadTilesetHeader
@@ -75,7 +75,7 @@ PredefPointers::
add_predef WriteMonMoves
add_predef SaveMenu
add_predef LoadSGB
add_predef MarkTownVisitedAndLoadMissableObjects
add_predef MarkTownVisitedAndLoadToggleableObjects
add_predef SetPartyMonTypes
add_predef CanLearnTM
add_predef TMToMove

View File

@@ -3,19 +3,19 @@ PickUpItem:
ldh a, [hSpriteIndex]
ld b, a
ld hl, wMissableObjectList
.missableObjectsListLoop
ld hl, wToggleableObjectList
.toggleableObjectsListLoop
ld a, [hli]
cp $ff
ret z
cp b
jr z, .isMissable
jr z, .isToggleable
inc hl
jr .missableObjectsListLoop
jr .toggleableObjectsListLoop
.isMissable
.isToggleable
ld a, [hl]
ldh [hMissableObjectIndex], a
ldh [hToggleableObjectIndex], a
ld hl, wMapSpriteExtraData
ldh a, [hSpriteIndex]
@@ -30,8 +30,8 @@ PickUpItem:
call GiveItem
jr nc, .BagFull
ldh a, [hMissableObjectIndex]
ld [wMissableObjectIndex], a
ldh a, [hToggleableObjectIndex]
ld [wToggleableObjectIndex], a
predef HideObject
ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a

View File

@@ -45,7 +45,7 @@ DEF START_MONEY EQU $3000
ld bc, wGameProgressFlagsEnd - wGameProgressFlags
call FillMemory ; clear all game progress flags
jp InitializeMissableObjectsFlags
jp InitializeToggleableObjectsFlags
InitializeEmptyList:
xor a ; count

View File

@@ -148,8 +148,8 @@ PalletMovementScript_Done:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret nz
ld a, HS_PALLET_TOWN_OAK
ld [wMissableObjectIndex], a
ld a, TOGGLE_PALLET_TOWN_OAK
ld [wToggleableObjectIndex], a
predef HideObject
ld hl, wStatusFlags5
res BIT_SCRIPTED_MOVEMENT_STATE, [hl]

View File

@@ -478,7 +478,7 @@ InitializeSpriteScreenPosition:
; tests if sprite is off screen or otherwise unable to do anything
CheckSpriteAvailability:
predef IsObjectHidden
ldh a, [hIsHiddenMissableObject]
ldh a, [hIsToggleableObjectOff]
and a
jp nz, .spriteInvisible
ld h, HIGH(wSpriteStateData2)

View File

@@ -1,4 +1,4 @@
MarkTownVisitedAndLoadMissableObjects::
MarkTownVisitedAndLoadToggleableObjects::
ld a, [wCurMap]
cp FIRST_ROUTE_MAP
jr nc, .notInTown
@@ -7,17 +7,17 @@ MarkTownVisitedAndLoadMissableObjects::
ld hl, wTownVisitedFlag ; mark town as visited (for flying)
predef FlagActionPredef
.notInTown
ld hl, MapHSPointers
ld hl, ToggleableObjectMapPointers
ld a, [wCurMap]
ld b, $0
ld c, a
add hl, bc
add hl, bc
ld a, [hli] ; load missable objects pointer in hl
ld a, [hli] ; load toggleable objects pointer in hl
ld h, [hl]
ld l, a
push hl
ld de, MissableObjects ; calculate difference between out pointer and the base pointer
ld de, ToggleableObjectStates ; calculate difference between out pointer and the base pointer
ld a, l
sub e
jr nc, .noCarry
@@ -27,6 +27,7 @@ MarkTownVisitedAndLoadMissableObjects::
ld a, h
sub d
ld h, a
; divide difference by 3, resulting in the global offset (number of toggleable items before ours)
ld a, h
ldh [hDividend], a
ld a, l
@@ -37,14 +38,14 @@ MarkTownVisitedAndLoadMissableObjects::
ld a, $3
ldh [hDivisor], a
ld b, $2
call Divide ; divide difference by 3, resulting in the global offset (number of missable items before ours)
call Divide
ld a, [wCurMap]
ld b, a
ldh a, [hDividend+3]
ld c, a ; store global offset in c
ld de, wMissableObjectList
ld de, wToggleableObjectList
pop hl
.writeMissableObjectsListLoop
.writeToggleableObjectsListLoop
ld a, [hli]
cp -1
jr z, .done ; end of list
@@ -56,92 +57,92 @@ MarkTownVisitedAndLoadMissableObjects::
inc de
ld a, c
inc c
ld [de], a ; write (global) missable object index
ld [de], a ; write (global) toggleable object index
inc de
jr .writeMissableObjectsListLoop
jr .writeToggleableObjectsListLoop
.done
ld a, -1
ld [de], a ; write sentinel
ret
InitializeMissableObjectsFlags:
ld hl, wMissableObjectFlags
ld bc, wMissableObjectFlagsEnd - wMissableObjectFlags
InitializeToggleableObjectsFlags:
ld hl, wToggleableObjectFlags
ld bc, wToggleableObjectFlagsEnd - wToggleableObjectFlags
xor a
call FillMemory ; clear missable objects flags
ld hl, MissableObjects
call FillMemory ; clear toggleable objects flags
ld hl, ToggleableObjectStates
xor a
ld [wMissableObjectCounter], a
.missableObjectsLoop
ld [wToggleableObjectCounter], a
.toggleableObjectsLoop
ld a, [hli]
cp -1 ; end of list
cp -1 ; end of list
ret z
push hl
inc hl
ld a, [hl]
cp HIDE
cp OFF
jr nz, .skip
ld hl, wMissableObjectFlags
ld a, [wMissableObjectCounter]
ld hl, wToggleableObjectFlags
ld a, [wToggleableObjectCounter]
ld c, a
ld b, FLAG_SET
call MissableObjectFlagAction ; set flag if Item is hidden
call ToggleableObjectFlagAction ; set flag if object is toggled off
.skip
ld hl, wMissableObjectCounter
ld hl, wToggleableObjectCounter
inc [hl]
pop hl
inc hl
inc hl
jr .missableObjectsLoop
jr .toggleableObjectsLoop
; tests if current sprite is a missable object that is hidden/has been removed
; tests if current object is toggled off/has been hidden
IsObjectHidden:
ldh a, [hCurrentSpriteOffset]
swap a
ld b, a
ld hl, wMissableObjectList
ld hl, wToggleableObjectList
.loop
ld a, [hli]
cp -1
jr z, .notHidden ; not missable -> not hidden
jr z, .notHidden ; not toggleable -> not hidden
cp b
ld a, [hli]
jr nz, .loop
ld c, a
ld b, FLAG_TEST
ld hl, wMissableObjectFlags
call MissableObjectFlagAction
ld hl, wToggleableObjectFlags
call ToggleableObjectFlagAction
ld a, c
and a
jr nz, .hidden
.notHidden
xor a
.hidden
ldh [hIsHiddenMissableObject], a
ldh [hIsToggleableObjectOff], a
ret
; adds missable object (items, leg. pokemon, etc.) to the map
; [wMissableObjectIndex]: index of the missable object to be added (global index)
; adds toggleable object (items, leg. pokemon, etc.) to the map
; [wToggleableObjectIndex]: index of the toggleable object to be added (global index)
ShowObject:
ShowObject2:
ld hl, wMissableObjectFlags
ld a, [wMissableObjectIndex]
ld hl, wToggleableObjectFlags
ld a, [wToggleableObjectIndex]
ld c, a
ld b, FLAG_RESET
call MissableObjectFlagAction ; reset "removed" flag
call ToggleableObjectFlagAction ; reset "removed" flag
jp UpdateSprites
; removes missable object (items, leg. pokemon, etc.) from the map
; [wMissableObjectIndex]: index of the missable object to be removed (global index)
; removes toggleable object (items, leg. pokemon, etc.) from the map
; [wToggleableObjectIndex]: index of the toggleable object to be removed (global index)
HideObject:
ld hl, wMissableObjectFlags
ld a, [wMissableObjectIndex]
ld hl, wToggleableObjectFlags
ld a, [wToggleableObjectIndex]
ld c, a
ld b, FLAG_SET
call MissableObjectFlagAction ; set "removed" flag
call ToggleableObjectFlagAction ; set "removed" flag
jp UpdateSprites
MissableObjectFlagAction:
ToggleableObjectFlagAction:
; identical to FlagAction
push hl

View File

@@ -2003,7 +2003,7 @@ LoadPlayerSpriteGraphicsCommon::
; function to load data from the map header
LoadMapHeader::
farcall MarkTownVisitedAndLoadMissableObjects
farcall MarkTownVisitedAndLoadToggleableObjects
ld a, [wCurMapTileset]
ld [wUnusedCurMapTilesetCopy], a
ld a, [wCurMap]

View File

@@ -202,13 +202,13 @@ EndTrainerBattle::
ld a, [wEnemyMonOrTrainerClass]
cp OPP_ID_OFFSET
jr nc, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite)
ld hl, wMissableObjectList
ld hl, wToggleableObjectList
ld de, $2
ld a, [wSpriteIndex]
call IsInArray ; search for sprite ID
inc hl
ld a, [hl]
ld [wMissableObjectIndex], a ; load corresponding missable object index and remove it
ld [wToggleableObjectIndex], a ; load corresponding toggleable object index and remove it
predef HideObject
.skipRemoveSprite
ld hl, wStatusFlags5

View File

@@ -41,7 +41,7 @@ INCLUDE "constants/list_constants.asm"
INCLUDE "constants/map_constants.asm"
INCLUDE "constants/map_data_constants.asm"
INCLUDE "constants/map_object_constants.asm"
INCLUDE "constants/hide_show_constants.asm"
INCLUDE "constants/toggle_constants.asm"
INCLUDE "constants/sprite_set_constants.asm"
INCLUDE "constants/credits_constants.asm"
INCLUDE "constants/audio_constants.asm"

View File

@@ -49,7 +49,7 @@ INCLUDE "engine/overworld/player_state.asm"
INCLUDE "engine/events/poison.asm"
INCLUDE "engine/overworld/tilesets.asm"
INCLUDE "engine/overworld/daycare_exp.asm"
INCLUDE "data/maps/hide_show_data.asm"
INCLUDE "data/maps/toggleable_objects.asm"
INCLUDE "engine/overworld/field_move_messages.asm"
INCLUDE "engine/items/inventory.asm"
INCLUDE "engine/overworld/wild_mons.asm"
@@ -57,7 +57,7 @@ INCLUDE "engine/items/item_effects.asm"
INCLUDE "engine/menus/draw_badges.asm"
INCLUDE "engine/overworld/update_map.asm"
INCLUDE "engine/overworld/cut.asm"
INCLUDE "engine/overworld/missable_objects.asm"
INCLUDE "engine/overworld/toggleable_objects.asm"
INCLUDE "engine/overworld/push_boulder.asm"
INCLUDE "engine/pokemon/add_mon.asm"
INCLUDE "engine/flag_action.asm"

View File

@@ -325,7 +325,7 @@ hItemToRemoveIndex:: db
NEXTU
hItemCounter::
hSavedCoordIndex::
hMissableObjectIndex::
hToggleableObjectIndex::
hGymTrashCanRandNumMask::
hInteractedWithBookshelf::
db
@@ -350,7 +350,7 @@ hDivisor2:: db
hQuotient2:: db
NEXTU
hIsHiddenMissableObject:: db
hIsToggleableObjectOff:: db
ENDU
hMapROMBank:: db

View File

@@ -324,7 +324,7 @@ wCheckFor180DegreeTurn:: db
ds 1
wMissableObjectIndex:: db
wToggleableObjectIndex:: db
wPredefID:: db
wPredefHL:: dw
@@ -1224,7 +1224,7 @@ ENDU
; money received after battle = base money × level of last enemy mon
wTrainerBaseMoney:: dw ; BCD
wMissableObjectCounter:: db
wToggleableObjectCounter:: db
ds 1
@@ -1909,9 +1909,9 @@ wUnusedMapVariable:: db
wPlayerCoins:: dw ; BCD
; bit array of missable objects. set = removed
wMissableObjectFlags:: flag_array $100
wMissableObjectFlagsEnd::
; bit array of toggleable objects; bit set = toggled off
wToggleableObjectFlags:: flag_array $100
wToggleableObjectFlagsEnd::
ds 7
@@ -1920,9 +1920,9 @@ wSavedSpriteImageIndex:: db
; each entry consists of 2 bytes
; * the sprite ID (depending on the current map)
; * the missable object index (global, used for wMissableObjectFlags)
; * the toggleable object index (global, used for wToggleableObjectFlags)
; terminated with $FF
wMissableObjectList:: ds 16 * 2 + 1
wToggleableObjectList:: ds 16 * 2 + 1
ds 1

View File

@@ -49,8 +49,8 @@ BillsHousePokemonEntersMachineScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_BILL_POKEMON
ld [wMissableObjectIndex], a
ld a, TOGGLE_BILL_POKEMON
ld [wToggleableObjectIndex], a
predef HideObject
SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR
xor a
@@ -75,8 +75,8 @@ BillsHouseBillExitsMachineScript:
ld a, 5
ldh [hSpriteMapXCoord], a
call SetSpritePosition1
ld a, HS_BILL_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_BILL_1
ld [wToggleableObjectIndex], a
predef ShowObject
ld c, 8
call DelayFrames
@@ -171,11 +171,11 @@ BillsHouseBillSSTicketText:
ld hl, .SSTicketReceivedText
call PrintText
SetEvent EVENT_GOT_SS_TICKET
ld a, HS_CERULEAN_GUARD_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_GUARD_1
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, HS_CERULEAN_GUARD_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_GUARD_2
ld [wToggleableObjectIndex], a
predef HideObject
.got_ss_ticket
ld hl, .WhyDontYouGoInsteadOfMeText

View File

@@ -40,8 +40,8 @@ BluesHouseDaisySittingText:
lb bc, TOWN_MAP, 1
call GiveItem
jr nc, .bag_full
ld a, HS_TOWN_MAP
ld [wMissableObjectIndex], a
ld a, TOGGLE_TOWN_MAP
ld [wToggleableObjectIndex], a
predef HideObject
ld hl, GotMapText
call PrintText

View File

@@ -15,8 +15,8 @@ CeladonMansionRoofHouseEeveePokeballText:
lb bc, EEVEE, 25
call GivePokemon
jr nc, .party_full
ld a, HS_CELADON_MANSION_EEVEE_GIFT
ld [wMissableObjectIndex], a
ld a, TOGGLE_CELADON_MANSION_EEVEE_GIFT
ld [wToggleableObjectIndex], a
predef HideObject
.party_full
jp TextScriptEnd

View File

@@ -8,8 +8,8 @@ CeruleanCityClearScripts:
xor a ; SCRIPT_CERULEANCITY_DEFAULT
ld [wJoyIgnore], a
ld [wCeruleanCityCurScript], a
ld a, HS_CERULEAN_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_RIVAL
ld [wToggleableObjectIndex], a
predef_jump HideObject
CeruleanCity_ScriptPointers:
@@ -90,8 +90,8 @@ ENDC
call GetPointerWithinSpriteStateData2
ld [hl], 25
.playerOnRightSideOfBridge
ld a, HS_CERULEAN_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_RIVAL
ld [wToggleableObjectIndex], a
predef ShowObject
ld de, CeruleanCityMovement1
ld a, CERULEANCITY_RIVAL
@@ -222,8 +222,8 @@ CeruleanCityRivalCleanupScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_CERULEAN_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_RIVAL
ld [wToggleableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a

View File

@@ -3,14 +3,14 @@ CeruleanHideRocket:
; one is called after you beat the Rocket that gives you TM28 DIG.
; the screen then fades out, he disappears, and fades back in
call GBFadeOutToBlack
ld a, HS_CERULEAN_GUARD_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_GUARD_1
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, HS_CERULEAN_GUARD_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_GUARD_2
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_CERULEAN_ROCKET
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_ROCKET
ld [wToggleableObjectIndex], a
predef HideObject
call GBFadeInFromBlack
ret

View File

@@ -120,8 +120,8 @@ ChampionsRoomOakArrivesScript:
ld a, CHAMPIONSROOM_OAK
ldh [hSpriteIndex], a
call MoveSprite
ld a, HS_CHAMPIONS_ROOM_OAK
ld [wMissableObjectIndex], a
ld a, TOGGLE_CHAMPIONS_ROOM_OAK
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, SCRIPT_CHAMPIONSROOM_OAK_CONGRATULATES_PLAYER
ld [wChampionsRoomCurScript], a
@@ -197,8 +197,8 @@ ChampionsRoomOakExitsScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_CHAMPIONS_ROOM_OAK
ld [wMissableObjectIndex], a
ld a, TOGGLE_CHAMPIONS_ROOM_OAK
ld [wToggleableObjectIndex], a
predef HideObject
ld a, SCRIPT_CHAMPIONSROOM_PLAYER_FOLLOWS_OAK
ld [wChampionsRoomCurScript], a

View File

@@ -246,8 +246,8 @@ FightingDojoHitmonleePokeBallText:
jr nc, .done
; once Poké Ball is taken, hide sprite
ld a, HS_FIGHTING_DOJO_GIFT_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_FIGHTING_DOJO_GIFT_1
ld [wToggleableObjectIndex], a
predef HideObject
SetEvents EVENT_GOT_HITMONLEE, EVENT_DEFEATED_FIGHTING_DOJO
.done
@@ -281,8 +281,8 @@ FightingDojoHitmonchanPokeBallText:
SetEvents EVENT_GOT_HITMONCHAN, EVENT_DEFEATED_FIGHTING_DOJO
; once Poké Ball is taken, hide sprite
ld a, HS_FIGHTING_DOJO_GIFT_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_FIGHTING_DOJO_GIFT_2
ld [wToggleableObjectIndex], a
predef HideObject
.done
jp TextScriptEnd

View File

@@ -107,8 +107,8 @@ GameCornerRocketExitScript:
ret nz
xor a
ld [wJoyIgnore], a
ld a, HS_GAME_CORNER_ROCKET
ld [wMissableObjectIndex], a
ld a, TOGGLE_GAME_CORNER_ROCKET
ld [wToggleableObjectIndex], a
predef HideObject
ld hl, wCurrentMapScriptFlags
set BIT_CUR_MAP_LOADED_1, [hl]

View File

@@ -96,8 +96,8 @@ HallOfFameOakCongratulationsScript:
call DisplayTextID
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_CERULEAN_CAVE_GUY
ld [wMissableObjectIndex], a
ld a, TOGGLE_CERULEAN_CAVE_GUY
ld [wToggleableObjectIndex], a
predef HideObject
ld a, SCRIPT_HALLOFFAME_RESET_EVENTS_AND_SAVE
ld [wHallOfFameCurScript], a

View File

@@ -141,12 +141,12 @@ MtMoonB2FSuperNerdTakesOtherFossilScript:
call DisplayTextID
CheckEvent EVENT_GOT_DOME_FOSSIL
jr z, .got_dome_fossil
ld a, HS_MT_MOON_B2F_FOSSIL_2
ld a, TOGGLE_MT_MOON_B2F_FOSSIL_2
jr .continue
.got_dome_fossil
ld a, HS_MT_MOON_B2F_FOSSIL_1
ld a, TOGGLE_MT_MOON_B2F_FOSSIL_1
.continue
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -250,8 +250,8 @@ MtMoonB2FDomeFossilText:
call GiveItem
jp nc, MtMoonB2FYouHaveNoRoomText
call MtMoonB2FReceivedFossilText
ld a, HS_MT_MOON_B2F_FOSSIL_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_MT_MOON_B2F_FOSSIL_1
ld [wToggleableObjectIndex], a
predef HideObject
SetEvent EVENT_GOT_DOME_FOSSIL
ld a, SCRIPT_MTMOONB2F_MOVE_SUPER_NERD
@@ -278,8 +278,8 @@ MtMoonB2FHelixFossilText:
call GiveItem
jp nc, MtMoonB2FYouHaveNoRoomText
call MtMoonB2FReceivedFossilText
ld a, HS_MT_MOON_B2F_FOSSIL_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_MT_MOON_B2F_FOSSIL_2
ld [wToggleableObjectIndex], a
predef HideObject
SetEvent EVENT_GOT_HELIX_FOSSIL
ld a, SCRIPT_MTMOONB2F_MOVE_SUPER_NERD

View File

@@ -197,8 +197,8 @@ Museum1FScientist2Text:
call GiveItem
jr nc, .bag_full
SetEvent EVENT_GOT_OLD_AMBER
ld a, HS_OLD_AMBER
ld [wMissableObjectIndex], a
ld a, TOGGLE_OLD_AMBER
ld [wToggleableObjectIndex], a
predef HideObject
ld hl, .ReceivedOldAmberText
jr .done

View File

@@ -13,7 +13,7 @@ OaksLab_ScriptPointers:
def_script_pointers
dw_const OaksLabDefaultScript, SCRIPT_OAKSLAB_DEFAULT
dw_const OaksLabOakEntersLabScript, SCRIPT_OAKSLAB_OAK_ENTERS_LAB
dw_const OaksLabHideShowOaksScript, SCRIPT_OAKSLAB_HIDE_SHOW_OAKS
dw_const OaksLabToggleOaksScript, SCRIPT_OAKSLAB_TOGGLE_OAKS
dw_const OaksLabPlayerEntersLabScript, SCRIPT_OAKSLAB_PLAYER_ENTERS_LAB
dw_const OaksLabFollowedOakScript, SCRIPT_OAKSLAB_FOLLOWED_OAK
dw_const OaksLabOakChooseMonSpeechScript, SCRIPT_OAKSLAB_OAK_CHOOSE_MON_SPEECH
@@ -37,8 +37,8 @@ OaksLabDefaultScript:
ld a, [wNPCMovementScriptFunctionNum]
and a
ret nz
ld a, HS_OAKS_LAB_OAK_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_OAKS_LAB_OAK_2
ld [wToggleableObjectIndex], a
predef ShowObject
ld hl, wStatusFlags4
res BIT_NO_BATTLES, [hl]
@@ -53,7 +53,7 @@ OaksLabOakEntersLabScript:
ld de, OakEntryMovement
call MoveSprite
ld a, SCRIPT_OAKSLAB_HIDE_SHOW_OAKS
ld a, SCRIPT_OAKSLAB_TOGGLE_OAKS
ld [wOaksLabCurScript], a
ret
@@ -63,15 +63,15 @@ OakEntryMovement:
db NPC_MOVEMENT_UP
db -1 ; end
OaksLabHideShowOaksScript:
OaksLabToggleOaksScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_OAKS_LAB_OAK_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_OAKS_LAB_OAK_2
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_OAKS_LAB_OAK_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_OAKS_LAB_OAK_1
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, SCRIPT_OAKSLAB_PLAYER_ENTERS_LAB
@@ -306,17 +306,17 @@ OaksLabRivalChoosesStarterScript:
ld a, [wRivalStarterBallSpriteIndex]
cp OAKSLAB_CHARMANDER_POKE_BALL
jr nz, .not_charmander
ld a, HS_STARTER_BALL_1
ld a, TOGGLE_STARTER_BALL_1
jr .hideBallAndContinue
.not_charmander
cp OAKSLAB_SQUIRTLE_POKE_BALL
jr nz, .not_squirtle
ld a, HS_STARTER_BALL_2
ld a, TOGGLE_STARTER_BALL_2
jr .hideBallAndContinue
.not_squirtle
ld a, HS_STARTER_BALL_3
ld a, TOGGLE_STARTER_BALL_3
.hideBallAndContinue
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef HideObject
call Delay3
ld a, [wRivalStarterTemp]
@@ -475,8 +475,8 @@ OaksLabPlayerWatchRivalExitScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
jr nz, .checkRivalPosition
ld a, HS_OAKS_LAB_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_OAKS_LAB_RIVAL
ld [wToggleableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -519,8 +519,8 @@ OaksLabRivalArrivesAtOaksRequestScript:
ldh [hTextID], a
call DisplayTextID
call OaksLabCalcRivalMovementScript
ld a, HS_OAKS_LAB_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_OAKS_LAB_RIVAL
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, [wNPCMovementDirections2Index]
ld [wSavedNPCMovementDirections2Index], a
@@ -578,11 +578,11 @@ OaksLabOakGivesPokedexScript:
ldh [hTextID], a
call DisplayTextID
call Delay3
ld a, HS_POKEDEX_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_POKEDEX_1
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_POKEDEX_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_POKEDEX_2
ld [wToggleableObjectIndex], a
predef HideObject
call OaksLabRivalFaceUpOakFaceDownScript
ld a, TEXT_OAKSLAB_OAK_THAT_WAS_MY_DREAM
@@ -599,11 +599,11 @@ OaksLabOakGivesPokedexScript:
call DisplayTextID
SetEvent EVENT_GOT_POKEDEX
SetEvent EVENT_OAK_GOT_PARCEL
ld a, HS_LYING_OLD_MAN
ld [wMissableObjectIndex], a
ld a, TOGGLE_LYING_OLD_MAN
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_OLD_MAN
ld [wMissableObjectIndex], a
ld a, TOGGLE_OLD_MAN
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, [wSavedNPCMovementDirections2Index]
ld b, 0
@@ -630,14 +630,14 @@ OaksLabRivalLeavesWithPokedexScript:
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
call PlayDefaultMusic
ld a, HS_OAKS_LAB_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_OAKS_LAB_RIVAL
ld [wToggleableObjectIndex], a
predef HideObject
SetEvent EVENT_1ST_ROUTE22_RIVAL_BATTLE
ResetEventReuseHL EVENT_2ND_ROUTE22_RIVAL_BATTLE
SetEventReuseHL EVENT_ROUTE22_RIVAL_WANTS_BATTLE
ld a, HS_ROUTE_22_RIVAL_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROUTE_22_RIVAL_1
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, SCRIPT_PALLETTOWN_DAISY
ld [wPalletTownCurScript], a
@@ -904,17 +904,17 @@ OaksLabMonChoiceMenu:
ld a, [wSpriteIndex]
cp OAKSLAB_CHARMANDER_POKE_BALL
jr nz, .not_charmander
ld a, HS_STARTER_BALL_1
ld a, TOGGLE_STARTER_BALL_1
jr .continue
.not_charmander
cp OAKSLAB_SQUIRTLE_POKE_BALL
jr nz, .not_squirtle
ld a, HS_STARTER_BALL_2
ld a, TOGGLE_STARTER_BALL_2
jr .continue
.not_squirtle
ld a, HS_STARTER_BALL_3
ld a, TOGGLE_STARTER_BALL_3
.continue
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef HideObject
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a

View File

@@ -51,8 +51,8 @@ PalletTownOakHeyWaitScript:
call DisplayTextID
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_PALLET_TOWN_OAK
ld [wMissableObjectIndex], a
ld a, TOGGLE_PALLET_TOWN_OAK
ld [wToggleableObjectIndex], a
predef ShowObject
; trigger the next script
@@ -136,11 +136,11 @@ PalletTownDaisyScript:
CheckBothEventsSet EVENT_GOT_TOWN_MAP, EVENT_ENTERED_BLUES_HOUSE, 1
jr nz, .next
SetEvent EVENT_DAISY_WALKING
ld a, HS_DAISY_SITTING
ld [wMissableObjectIndex], a
ld a, TOGGLE_DAISY_SITTING
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_DAISY_WALKING
ld [wMissableObjectIndex], a
ld a, TOGGLE_DAISY_WALKING
ld [wToggleableObjectIndex], a
predef_jump ShowObject
.next
CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK

View File

@@ -92,8 +92,8 @@ PewterCityHideSuperNerd1Script:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_MUSEUM_GUY
ld [wMissableObjectIndex], a
ld a, TOGGLE_MUSEUM_GUY
ld [wToggleableObjectIndex], a
predef HideObject
ld a, SCRIPT_PEWTERCITY_RESET_SUPER_NERD1
ld [wPewterCityCurScript], a
@@ -103,8 +103,8 @@ PewterCityResetSuperNerd1Script:
ld a, PEWTERCITY_SUPER_NERD1
ld [wSpriteIndex], a
call SetSpritePosition2
ld a, HS_MUSEUM_GUY
ld [wMissableObjectIndex], a
ld a, TOGGLE_MUSEUM_GUY
ld [wToggleableObjectIndex], a
predef ShowObject
xor a
ld [wJoyIgnore], a
@@ -161,8 +161,8 @@ PewterCityHideYoungsterScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_GYM_GUY
ld [wMissableObjectIndex], a
ld a, TOGGLE_GYM_GUY
ld [wToggleableObjectIndex], a
predef HideObject
ld a, SCRIPT_PEWTERCITY_RESET_YOUNGSTER
ld [wPewterCityCurScript], a
@@ -172,8 +172,8 @@ PewterCityResetYoungsterScript:
ld a, PEWTERCITY_YOUNGSTER
ld [wSpriteIndex], a
call SetSpritePosition2
ld a, HS_GYM_GUY
ld [wMissableObjectIndex], a
ld a, TOGGLE_GYM_GUY
ld [wToggleableObjectIndex], a
predef ShowObject
xor a
ld [wJoyIgnore], a

View File

@@ -66,11 +66,11 @@ PewterGymScriptReceiveTM34:
ld hl, wBeatGymFlags
set BIT_BOULDERBADGE, [hl]
ld a, HS_GYM_GUY
ld [wMissableObjectIndex], a
ld a, TOGGLE_GYM_GUY
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_ROUTE_22_RIVAL_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROUTE_22_RIVAL_1
ld [wToggleableObjectIndex], a
predef HideObject
ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE

View File

@@ -116,8 +116,8 @@ PokemonTower2FRivalExitsScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_POKEMON_TOWER_2F_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_POKEMON_TOWER_2F_RIVAL
ld [wToggleableObjectIndex], a
predef HideObject
xor a
ld [wJoyIgnore], a

View File

@@ -44,15 +44,15 @@ PokemonTower7FHideNPCScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld hl, wMissableObjectList
ld hl, wToggleableObjectList
ld a, [wSpriteIndex]
ld b, a
.missableObjectsListLoop
.toggleableObjectsListLoop
ld a, [hli]
cp b ; search for sprite ID in missing objects list
cp b ; search for sprite ID in toggleable objects list
ld a, [hli]
jr nz, .missableObjectsListLoop
ld [wMissableObjectIndex], a ; remove missable object
jr nz, .toggleableObjectsListLoop
ld [wToggleableObjectIndex], a ; remove toggleable object
predef HideObject
xor a
ld [wJoyIgnore], a
@@ -67,8 +67,8 @@ PokemonTower7FHideNPCScript:
PokemonTower7FWarpToMrFujiHouseScript:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, HS_POKEMON_TOWER_7F_MR_FUJI
ld [wMissableObjectIndex], a
ld a, TOGGLE_POKEMON_TOWER_7F_MR_FUJI
ld [wToggleableObjectIndex], a
predef HideObject
ld a, SPRITE_FACING_UP
ld [wSpritePlayerStateData1FacingDirection], a
@@ -228,14 +228,14 @@ PokemonTower7FMrFujiText:
call PrintText
SetEvent EVENT_RESCUED_MR_FUJI
SetEvent EVENT_RESCUED_MR_FUJI_2
ld a, HS_MR_FUJIS_HOUSE_MR_FUJI
ld [wMissableObjectIndex], a
ld a, TOGGLE_MR_FUJIS_HOUSE_MR_FUJI
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, HS_SAFFRON_CITY_E
ld [wMissableObjectIndex], a
ld a, TOGGLE_SAFFRON_CITY_E
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_SAFFRON_CITY_F
ld [wMissableObjectIndex], a
ld a, TOGGLE_SAFFRON_CITY_F
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, SCRIPT_POKEMONTOWER7F_WARP_TO_MR_FUJI_HOUSE
ld [wPokemonTower7FCurScript], a

View File

@@ -56,11 +56,11 @@ RocketHideoutB4FBeatGiovanniScript:
ldh [hTextID], a
call DisplayTextID
call GBFadeOutToBlack
ld a, HS_ROCKET_HIDEOUT_B4F_GIOVANNI
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_GIOVANNI
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_ROCKET_HIDEOUT_B4F_ITEM_4
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_4
ld [wToggleableObjectIndex], a
predef ShowObject
call UpdateSprites
call GBFadeInFromBlack
@@ -192,8 +192,8 @@ RocketHideoutB4FRocket3AfterBattleText:
call PrintText
CheckAndSetEvent EVENT_ROCKET_DROPPED_LIFT_KEY
jr nz, .done
ld a, HS_ROCKET_HIDEOUT_B4F_ITEM_5
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_5
ld [wToggleableObjectIndex], a
predef ShowObject
.done
jp TextScriptEnd

View File

@@ -34,8 +34,8 @@ Route12DefaultScript:
ld [wCurOpponent], a
ld a, 30
ld [wCurEnemyLevel], a
ld a, HS_ROUTE_12_SNORLAX
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROUTE_12_SNORLAX
ld [wToggleableObjectIndex], a
predef HideObject
ld a, SCRIPT_ROUTE12_SNORLAX_POST_BATTLE
ld [wRoute12CurScript], a

View File

@@ -34,8 +34,8 @@ Route16DefaultScript:
ld [wCurOpponent], a
ld a, 30
ld [wCurEnemyLevel], a
ld a, HS_ROUTE_16_SNORLAX
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROUTE_16_SNORLAX
ld [wToggleableObjectIndex], a
predef HideObject
call UpdateSprites
ld a, SCRIPT_ROUTE16_SNORLAX_POST_BATTLE

View File

@@ -12,48 +12,48 @@ Route20_Script:
Route20BoulderScript:
CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE
jr z, .next_boulder_check
ld a, HS_SEAFOAM_ISLANDS_1F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_1
call Route20ShowObjectScript
ld a, HS_SEAFOAM_ISLANDS_1F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_2
call Route20ShowObjectScript
ld hl, .MissableObjectIDs
.hide_missable_objects
ld hl, .ToggleableObjectIDs
.hide_toggleable_objects
ld a, [hli]
cp $ff
jr z, .next_boulder_check
push hl
call Route20HideObjectScript
pop hl
jr .hide_missable_objects
jr .hide_toggleable_objects
.MissableObjectIDs:
db HS_SEAFOAM_ISLANDS_B1F_BOULDER_1
db HS_SEAFOAM_ISLANDS_B1F_BOULDER_2
db HS_SEAFOAM_ISLANDS_B2F_BOULDER_1
db HS_SEAFOAM_ISLANDS_B2F_BOULDER_2
db HS_SEAFOAM_ISLANDS_B3F_BOULDER_3
db HS_SEAFOAM_ISLANDS_B3F_BOULDER_4
.ToggleableObjectIDs:
db TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_1
db TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_2
db TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_1
db TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_2
db TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_3
db TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_4
db -1 ; end
.next_boulder_check
CheckBothEventsSet EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE
ret z
ld a, HS_SEAFOAM_ISLANDS_B3F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_1
call Route20ShowObjectScript
ld a, HS_SEAFOAM_ISLANDS_B3F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_2
call Route20ShowObjectScript
ld a, HS_SEAFOAM_ISLANDS_B4F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_1
call Route20HideObjectScript
ld a, HS_SEAFOAM_ISLANDS_B4F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_2
call Route20HideObjectScript
ret
Route20ShowObjectScript:
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef_jump ShowObject
Route20HideObjectScript:
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef_jump HideObject
Route20_ScriptPointers:

View File

@@ -224,8 +224,8 @@ Route22Rival1ExitScript:
ret nz
xor a
ld [wJoyIgnore], a
ld a, HS_ROUTE_22_RIVAL_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROUTE_22_RIVAL_1
ld [wToggleableObjectIndex], a
predef HideObject
call PlayDefaultMusic
ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
@@ -368,8 +368,8 @@ Route22Rival2ExitScript:
ret nz
xor a
ld [wJoyIgnore], a
ld a, HS_ROUTE_22_RIVAL_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROUTE_22_RIVAL_2
ld [wToggleableObjectIndex], a
predef HideObject
call PlayDefaultMusic
ResetEvents EVENT_2ND_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE

View File

@@ -12,11 +12,11 @@ Route23SetVictoryRoadBoulders:
ret z
ResetEvents EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2
ResetEvents EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
ld a, HS_VICTORY_ROAD_3F_BOULDER
ld [wMissableObjectIndex], a
ld a, TOGGLE_VICTORY_ROAD_3F_BOULDER
ld [wToggleableObjectIndex], a
predef ShowObject
ld a, HS_VICTORY_ROAD_2F_BOULDER
ld [wMissableObjectIndex], a
ld a, TOGGLE_VICTORY_ROAD_2F_BOULDER
ld [wToggleableObjectIndex], a
predef_jump HideObject
Route23_ScriptPointers:

View File

@@ -1,5 +1,5 @@
Route25_Script:
call Route25ShowHideBillScript
call Route25ToggleBillsScript
call EnableAutoTextBoxDrawing
ld hl, Route25TrainerHeaders
ld de, Route25_ScriptPointers
@@ -8,7 +8,7 @@ Route25_Script:
ld [wRoute25CurScript], a
ret
Route25ShowHideBillScript:
Route25ToggleBillsScript:
ld hl, wCurrentMapScriptFlags
bit BIT_CUR_MAP_LOADED_2, [hl]
res BIT_CUR_MAP_LOADED_2, [hl]
@@ -18,21 +18,21 @@ Route25ShowHideBillScript:
CheckEventReuseHL EVENT_MET_BILL_2
jr nz, .met_bill
ResetEventReuseHL EVENT_BILL_SAID_USE_CELL_SEPARATOR
ld a, HS_BILL_POKEMON
ld [wMissableObjectIndex], a
ld a, TOGGLE_BILL_POKEMON
ld [wToggleableObjectIndex], a
predef_jump ShowObject
.met_bill
CheckEventAfterBranchReuseHL EVENT_GOT_SS_TICKET, EVENT_MET_BILL_2
ret z
SetEventReuseHL EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING
ld a, HS_NUGGET_BRIDGE_GUY
ld [wMissableObjectIndex], a
ld a, TOGGLE_NUGGET_BRIDGE_GUY
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_BILL_1
ld [wMissableObjectIndex], a
ld a, TOGGLE_BILL_1
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_BILL_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_BILL_2
ld [wToggleableObjectIndex], a
predef_jump ShowObject
Route25_ScriptPointers:

View File

@@ -33,8 +33,8 @@ SSAnne2FDefaultScript:
call PlayMusic
ld a, [wCoordIndex]
ldh [hSavedCoordIndex], a
ld a, HS_SS_ANNE_2F_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_SS_ANNE_2F_RIVAL
ld [wToggleableObjectIndex], a
predef ShowObject
call Delay3
ld a, SSANNE2F_RIVAL
@@ -169,8 +169,8 @@ SSAnne2FRivalExitScript:
ret nz
xor a
ld [wJoyIgnore], a
ld a, HS_SS_ANNE_2F_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_SS_ANNE_2F_RIVAL
ld [wToggleableObjectIndex], a
predef HideObject
call PlayDefaultMusic
ld a, SCRIPT_SSANNE2F_NOOP

View File

@@ -13,23 +13,23 @@ SeafoamIslands1F_Script:
cp $1
jr nz, .boulder2FellDownHole
SetEventReuseHL EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_1F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_1
ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_B1F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_1
ld [wObjectToShow], a
jr .hideAndShowBoulderObjects
.boulder2FellDownHole
SetEventAfterBranchReuseHL EVENT_SEAFOAM1_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_1F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_1F_BOULDER_2
ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_B1F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_2
ld [wObjectToShow], a
.hideAndShowBoulderObjects
ld a, [wObjectToHide]
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef HideObject
ld a, [wObjectToShow]
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef_jump ShowObject
.noBoulderWasPushed
ld a, SEAFOAM_ISLANDS_B1F

View File

@@ -12,23 +12,23 @@ SeafoamIslandsB1F_Script:
cp $1
jr nz, .boulder2FellDownHole
SetEventReuseHL EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_B1F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_1
ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_B2F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_1
ld [wObjectToShow], a
jr .hideAndShowBoulderObjects
.boulder2FellDownHole
SetEventAfterBranchReuseHL EVENT_SEAFOAM2_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_B1F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_B1F_BOULDER_2
ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_B2F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_2
ld [wObjectToShow], a
.hideAndShowBoulderObjects
ld a, [wObjectToHide]
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef HideObject
ld a, [wObjectToShow]
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef_jump ShowObject
.noBoulderWasPushed
ld a, SEAFOAM_ISLANDS_B2F

View File

@@ -12,23 +12,23 @@ SeafoamIslandsB2F_Script:
cp $1
jr nz, .boulder2FellDownHole
SetEventReuseHL EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_B2F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_1
ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_B3F_BOULDER_3
ld a, TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_3
ld [wObjectToShow], a
jr .hideAndShowBoulderObjects
.boulder2FellDownHole
SetEventAfterBranchReuseHL EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_B2F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_B2F_BOULDER_2
ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_B3F_BOULDER_4
ld a, TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_4
ld [wObjectToShow], a
.hideAndShowBoulderObjects
ld a, [wObjectToHide]
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef HideObject
ld a, [wObjectToShow]
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef_jump ShowObject
.noBoulderWasPushed
ld a, SEAFOAM_ISLANDS_B3F

View File

@@ -12,23 +12,23 @@ SeafoamIslandsB3F_Script:
cp $1
jr nz, .boulder2FellDownHole
SetEventReuseHL EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_B3F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_1
ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_B4F_BOULDER_1
ld a, TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_1
ld [wObjectToShow], a
jr .hideAndShowBoulderObjects
.boulder2FellDownHole
SetEventAfterBranchReuseHL EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
ld a, HS_SEAFOAM_ISLANDS_B3F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_B3F_BOULDER_2
ld [wObjectToHide], a
ld a, HS_SEAFOAM_ISLANDS_B4F_BOULDER_2
ld a, TOGGLE_SEAFOAM_ISLANDS_B4F_BOULDER_2
ld [wObjectToShow], a
.hideAndShowBoulderObjects
ld a, [wObjectToHide]
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef HideObject
ld a, [wObjectToShow]
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef ShowObject
jr .runCurrentMapScript
.noBoulderWasPushed

View File

@@ -71,78 +71,78 @@ SilphCo11FSetUnlockedDoorEventScript:
ret
SilphCo11FTeamRocketLeavesScript:
ld hl, .HideMissableObjectIDs
ld hl, .HideToggleableObjectIDs
.hide_loop
ld a, [hli]
cp $ff
jr z, .done_hiding
push hl
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef HideObject
pop hl
jr .hide_loop
.done_hiding
ld hl, .ShowMissableObjectIDs
ld hl, .ShowToggleableObjectIDs
.show_loop
ld a, [hli]
cp -1
ret z
push hl
ld [wMissableObjectIndex], a
ld [wToggleableObjectIndex], a
predef ShowObject
pop hl
jr .show_loop
.ShowMissableObjectIDs:
db HS_SAFFRON_CITY_8
db HS_SAFFRON_CITY_9
db HS_SAFFRON_CITY_A
db HS_SAFFRON_CITY_B
db HS_SAFFRON_CITY_C
db HS_SAFFRON_CITY_D
.ShowToggleableObjectIDs:
db TOGGLE_SAFFRON_CITY_8
db TOGGLE_SAFFRON_CITY_9
db TOGGLE_SAFFRON_CITY_A
db TOGGLE_SAFFRON_CITY_B
db TOGGLE_SAFFRON_CITY_C
db TOGGLE_SAFFRON_CITY_D
db -1 ; end
.HideMissableObjectIDs:
db HS_SAFFRON_CITY_1
db HS_SAFFRON_CITY_2
db HS_SAFFRON_CITY_3
db HS_SAFFRON_CITY_4
db HS_SAFFRON_CITY_5
db HS_SAFFRON_CITY_6
db HS_SAFFRON_CITY_7
db HS_SAFFRON_CITY_E
db HS_SAFFRON_CITY_F
db HS_SILPH_CO_2F_2
db HS_SILPH_CO_2F_3
db HS_SILPH_CO_2F_4
db HS_SILPH_CO_2F_5
db HS_SILPH_CO_3F_1
db HS_SILPH_CO_3F_2
db HS_SILPH_CO_4F_1
db HS_SILPH_CO_4F_2
db HS_SILPH_CO_4F_3
db HS_SILPH_CO_5F_1
db HS_SILPH_CO_5F_2
db HS_SILPH_CO_5F_3
db HS_SILPH_CO_5F_4
db HS_SILPH_CO_6F_1
db HS_SILPH_CO_6F_2
db HS_SILPH_CO_6F_3
db HS_SILPH_CO_7F_1
db HS_SILPH_CO_7F_2
db HS_SILPH_CO_7F_3
db HS_SILPH_CO_7F_4
db HS_SILPH_CO_8F_1
db HS_SILPH_CO_8F_2
db HS_SILPH_CO_8F_3
db HS_SILPH_CO_9F_1
db HS_SILPH_CO_9F_2
db HS_SILPH_CO_9F_3
db HS_SILPH_CO_10F_1
db HS_SILPH_CO_10F_2
db HS_SILPH_CO_11F_1
db HS_SILPH_CO_11F_2
db HS_SILPH_CO_11F_3
.HideToggleableObjectIDs:
db TOGGLE_SAFFRON_CITY_1
db TOGGLE_SAFFRON_CITY_2
db TOGGLE_SAFFRON_CITY_3
db TOGGLE_SAFFRON_CITY_4
db TOGGLE_SAFFRON_CITY_5
db TOGGLE_SAFFRON_CITY_6
db TOGGLE_SAFFRON_CITY_7
db TOGGLE_SAFFRON_CITY_E
db TOGGLE_SAFFRON_CITY_F
db TOGGLE_SILPH_CO_2F_2
db TOGGLE_SILPH_CO_2F_3
db TOGGLE_SILPH_CO_2F_4
db TOGGLE_SILPH_CO_2F_5
db TOGGLE_SILPH_CO_3F_1
db TOGGLE_SILPH_CO_3F_2
db TOGGLE_SILPH_CO_4F_1
db TOGGLE_SILPH_CO_4F_2
db TOGGLE_SILPH_CO_4F_3
db TOGGLE_SILPH_CO_5F_1
db TOGGLE_SILPH_CO_5F_2
db TOGGLE_SILPH_CO_5F_3
db TOGGLE_SILPH_CO_5F_4
db TOGGLE_SILPH_CO_6F_1
db TOGGLE_SILPH_CO_6F_2
db TOGGLE_SILPH_CO_6F_3
db TOGGLE_SILPH_CO_7F_1
db TOGGLE_SILPH_CO_7F_2
db TOGGLE_SILPH_CO_7F_3
db TOGGLE_SILPH_CO_7F_4
db TOGGLE_SILPH_CO_8F_1
db TOGGLE_SILPH_CO_8F_2
db TOGGLE_SILPH_CO_8F_3
db TOGGLE_SILPH_CO_9F_1
db TOGGLE_SILPH_CO_9F_2
db TOGGLE_SILPH_CO_9F_3
db TOGGLE_SILPH_CO_10F_1
db TOGGLE_SILPH_CO_10F_2
db TOGGLE_SILPH_CO_11F_1
db TOGGLE_SILPH_CO_11F_2
db TOGGLE_SILPH_CO_11F_3
db -1 ; end
SilphCo11FResetCurScript:

View File

@@ -4,8 +4,8 @@ SilphCo1F_Script:
ret z
CheckAndSetEvent EVENT_SILPH_CO_RECEPTIONIST_AT_DESK
ret nz
ld a, HS_SILPH_CO_1F_RECEPTIONIST
ld [wMissableObjectIndex], a
ld a, TOGGLE_SILPH_CO_1F_RECEPTIONIST
ld [wToggleableObjectIndex], a
predef_jump ShowObject
SilphCo1F_TextPointers:

View File

@@ -255,8 +255,8 @@ SilphCo7FRivalExitScript:
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, HS_SILPH_CO_7F_RIVAL
ld [wMissableObjectIndex], a
ld a, TOGGLE_SILPH_CO_7F_RIVAL
ld [wToggleableObjectIndex], a
predef HideObject
call PlayDefaultMusic
xor a

View File

@@ -44,11 +44,11 @@ VictoryRoad3FDefaultScript:
.handle_hole
CheckAndSetEvent EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
jr nz, .check_switch_hole
ld a, HS_VICTORY_ROAD_3F_BOULDER
ld [wMissableObjectIndex], a
ld a, TOGGLE_VICTORY_ROAD_3F_BOULDER
ld [wToggleableObjectIndex], a
predef HideObject
ld a, HS_VICTORY_ROAD_2F_BOULDER
ld [wMissableObjectIndex], a
ld a, TOGGLE_VICTORY_ROAD_2F_BOULDER
ld [wToggleableObjectIndex], a
predef_jump ShowObject
.SwitchOrHoleCoords:

View File

@@ -161,8 +161,8 @@ ViridianGymReceiveTM27:
; deactivate gym trainers
SetEventRange EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0, EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7
ld a, HS_ROUTE_22_RIVAL_2
ld [wMissableObjectIndex], a
ld a, TOGGLE_ROUTE_22_RIVAL_2
ld [wToggleableObjectIndex], a
predef ShowObject
SetEvents EVENT_2ND_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
jp ViridianGymResetScripts
@@ -219,8 +219,8 @@ ViridianGymGiovanniText:
ld hl, .PostBattleAdviceText
call PrintText
call GBFadeOutToBlack
ld a, HS_VIRIDIAN_GYM_GIOVANNI
ld [wMissableObjectIndex], a
ld a, TOGGLE_VIRIDIAN_GYM_GIOVANNI
ld [wToggleableObjectIndex], a
predef HideObject
call UpdateSprites
call Delay3