From 83483f035bce18af2959b7e01872154c5ac97912 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Tue, 27 Jun 2023 22:17:07 +0100 Subject: [PATCH] The Great Constant Compression of June 2023 This is a large-scale compression of KEP's current hide/show constants. RBY's works extremely oddly and is limited to 256 entries. The problem with how RBY's hide/show stuff works, is that even though there are tons of unused constants, you...can't actually remove them. The constant list is tied to the hide/show data entries, so if you replace it with something else, well, now you just have two objects tied to the same constant. If you made the Route 2 item a boss, and someone picked up the item on Route 2, the boss would also disappear, and vice versa. So, we have to get creative. I have reduced what we have to 248, but I think I miscounted when doing the funny list somewhere in the actual list when making sure the hex stuff is ok. Either that, or there's an error somewhere that Martha will, by some obscene miracle of humanity, discover. Anyway, this was achieved by turning multiple current overworld items into hidden ones, keeping them in the game whilst keeping to that all-important limit. I also removed the items in Pokemon Tower 4F for this, just needed a little boost. Well, as you can see by the number, I technically didn't, I just miscounted like 20 times. Look, it's 10:11 PM, my stomach is in pain from an insane injection, and I don't even know if that map will come back, cut me some slack. Or add it back. You definitely can. --- constants/hide_show_constants.asm | 313 +++++++++++++-------------- data/events/hidden_item_coords.asm | 5 + data/events/hidden_objects.asm | 15 ++ data/maps/hide_show_data.asm | 26 +-- data/maps/objects/MtMoonCrater.asm | 13 +- data/maps/objects/PokemonTower4F.asm | 6 +- data/maps/objects/VermilionDock.asm | 1 - scripts/HallOfFame.asm | 1 - scripts/MtMoonCrater.asm | 9 - scripts/PokemonTower4F.asm | 3 - scripts/VermilionDock.asm | 1 - scripts/ViridianPreGym.asm | 57 +++-- text/MtMoonSquare.asm | 2 +- 13 files changed, 212 insertions(+), 240 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index c7ac9f8c..191846ba 100644 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -7,6 +7,8 @@ DEF SHOW EQU $15 ; 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) +; However, these constants are still required to synchronise properly +; with the hide/show list, so you can't just remove them. const_def const HS_PALLET_TOWN_OAK ; 00 @@ -49,8 +51,8 @@ DEF SHOW EQU $15 const HS_NUGGET_BRIDGE_GUY ; 25 const HS_ROUTE_24_ITEM ; 26 X const HS_ROUTE_25_ITEM ; 27 X - const HS_CACTUS ; 28 X - const HS_BRUNSWICK_ZAPDOS_G_1 ; 29 X + const HS_CACTUS ; 28 + const HS_BRUNSWICK_ZAPDOS_G_1 ; 29 const HS_DAISY_SITTING ; 2A const HS_DAISY_WALKING ; 2B const HS_TOWN_MAP ; 2C @@ -70,133 +72,129 @@ DEF SHOW EQU $15 const HS_CERULEAN_CAVE_1F_ITEM_3 ; 3A X const HS_MOLTRES_G ; 3D X const HS_POKEMON_TOWER_2F_RIVAL ; 3E - const HS_BRUNSWICK_ZAPDOS_G_2 ;was const HS_POKEMON_TOWER_3F_ITEM ; 3F X - const HS_POKEMON_TOWER_4F_ITEM_1 ; 40 X - const HS_POKEMON_TOWER_4F_ITEM_2 ; 41 X - const HS_POKEMON_TOWER_4F_ITEM_3 ; 42 X - const HS_POKEMON_TOWER_5F_ITEM ; 43 X - const HS_POKEMON_TOWER_6F_ITEM_1 ; 44 X - const HS_POKEMON_TOWER_6F_ITEM_2 ; 45 X - const HS_POKEMON_TOWER_7F_JESSIE ; 46 X - const HS_POKEMON_TOWER_7F_JAMES ; 47 X - const HS_POKEMON_TOWER_7F_MR_FUJI ; 48 - const HS_MR_FUJIS_HOUSE_MR_FUJI ; 49 - const HS_CELADON_MANSION_EEVEE_GIFT ; 4A - const HS_GAME_CORNER_ROCKET ; 4B - const HS_WARDENS_HOUSE_ITEM ; 4C X - const HS_POKEMON_MANSION_1F_ITEM_1 ; 4D X - const HS_POKEMON_MANSION_1F_ITEM_2 ; 4E X - const HS_FIGHTING_DOJO_GIFT_1 ; 4F - const HS_FIGHTING_DOJO_GIFT_2 ; 50 - const HS_FIGHTING_DOJO_GIFT_3 - const HS_SILPH_CO_1F_RECEPTIONIST ; 51 - const HS_VOLTORB_1 ; 52 X - const HS_VOLTORB_2 ; 53 X - const HS_VOLTORB_3 ; 54 X - const HS_ELECTRODE_1 ; 55 X - const HS_VOLTORB_4 ; 56 X - const HS_VOLTORB_5 ; 57 X - const HS_ELECTRODE_2 ; 58 X - const HS_VOLTORB_6 ; 59 X - const HS_ZAPDOS ; 5A X - const HS_POWER_PLANT_ITEM_1 ; 5B X - const HS_POWER_PLANT_ITEM_2 ; 5C X - const HS_POWER_PLANT_ITEM_3 ; 5D X - const HS_POWER_PLANT_ITEM_4 ; 5E X - const HS_POWER_PLANT_ITEM_5 ; 5F X - const HS_GYAOON ; 60 X - const HS_VICTORY_ROAD_2F_ITEM_1 ; 61 X - const HS_VICTORY_ROAD_2F_ITEM_2 ; 62 X - const HS_VICTORY_ROAD_2F_ITEM_3 ; 63 X - const HS_VICTORY_ROAD_2F_ITEM_4 ; 64 X - const HS_VICTORY_ROAD_2F_BOULDER ; 65 - const HS_BILL_POKEMON ; 66 - const HS_BILL_1 ; 67 - const HS_BILL_2 ; 68 - const HS_BILLS_NIDORINO ; 69 - const HS_VIRIDIAN_FOREST_ITEM_1 ; 6A X - const HS_VIRIDIAN_FOREST_ITEM_2 ; 6B X - const HS_VIRIDIAN_FOREST_ITEM_3 ; 6C X - const HS_MT_MOON_1F_ITEM_1 ; 6D X - const HS_MT_MOON_1F_ITEM_2 ; 6E X - const HS_MT_MOON_1F_ITEM_3 ; 6F X - const HS_MT_MOON_1F_ITEM_4 ; 70 X - const HS_MT_MOON_1F_ITEM_5 ; 71 X - const HS_MT_MOON_1F_ITEM_6 ; 72 X - const HS_MT_MOON_B2F_JESSIE ; 73 - const HS_MT_MOON_B2F_JAMES ; 74 - const HS_MT_MOON_B2F_FOSSIL_1 ; 75 - const HS_MT_MOON_B2F_FOSSIL_2 ; 76 - const HS_MT_MOON_B2F_ITEM_1 ; 77 X - const HS_MT_MOON_B2F_ITEM_2 ; 78 X - const HS_SS_ANNE_2F_RIVAL ; 7A - const HS_SS_ANNE_1F_ROOMS_ITEM ; 7B X - const HS_SS_ANNE_2F_ROOMS_ITEM_1 ; 7C X - const HS_SS_ANNE_2F_ROOMS_ITEM_2 ; 7D X - const HS_SS_ANNE_B1F_ROOMS_ITEM_1 ; 7E X - const HS_SS_ANNE_B1F_ROOMS_ITEM_2 ; 7F X - const HS_SS_ANNE_B1F_ROOMS_ITEM_3 ; 80 X - const HS_WUGTRIO ; 81 X - const HS_VICTORY_ROAD_3F_ITEM_1 ; 82 X - const HS_VICTORY_ROAD_3F_ITEM_2 ; 83 X - const HS_VICTORY_ROAD_3F_BOULDER ; 84 - const HS_ROCKET_HIDEOUT_B1F_ITEM_1 ; 85 X - const HS_ROCKET_HIDEOUT_B1F_ITEM_2 ; 86 X - const HS_ROCKET_HIDEOUT_B2F_ITEM_1 ; 87 X - const HS_ROCKET_HIDEOUT_B2F_ITEM_2 ; 88 X - const HS_ROCKET_HIDEOUT_B2F_ITEM_3 ; 89 X - const HS_ROCKET_HIDEOUT_B2F_ITEM_4 ; 8A X - const HS_ROCKET_HIDEOUT_B3F_ITEM_1 ; 8B X - const HS_ROCKET_HIDEOUT_B3F_ITEM_2 ; 8C X - const HS_ROCKET_HIDEOUT_B4F_GIOVANNI ; 8D - const HS_ROCKET_HIDEOUT_B4F_JAMES ; 8E - const HS_ROCKET_HIDEOUT_B4F_JESSIE ; 8F - const HS_ROCKET_HIDEOUT_B4F_ITEM_1 ; 90 X - const HS_ROCKET_HIDEOUT_B4F_ITEM_2 ; 91 X - const HS_ROCKET_HIDEOUT_B4F_ITEM_3 ; 92 X - const HS_ROCKET_HIDEOUT_B4F_ITEM_4 ; 93 - const HS_ROCKET_HIDEOUT_B4F_ITEM_5 ; 94 - const HS_GARNET_ARTICUNO_G ; 95 - const HS_GARNET_ITEM_1 - const HS_GARNET_ITEM_2 - const HS_ARTICUNO_G_COPY_1 - const HS_ARTICUNO_G_COPY_2 - const HS_SILPH_CO_3F_1 ; 96 - const HS_SILPH_CO_3F_2 ; 97 - const HS_SILPH_CO_3F_ITEM ; 98 X - const HS_SILPH_CO_4F_1 ; 99 - const HS_SILPH_CO_4F_2 ; 9A - const HS_SILPH_CO_4F_3 ; 9B - const HS_SILPH_CO_4F_ITEM_1 ; 9C X - const HS_SILPH_CO_4F_ITEM_2 ; 9D X - const HS_SILPH_CO_4F_ITEM_3 ; 9E X - const HS_SILPH_CO_5F_1 ; 9F - const HS_SILPH_CO_5F_2 ; A0 - const HS_SILPH_CO_5F_3 ; A1 - const HS_SILPH_CO_5F_4 ; A2 - const HS_SILPH_CO_5F_ITEM_1 ; A3 X - const HS_SILPH_CO_5F_ITEM_2 ; A4 X - const HS_SILPH_CO_5F_ITEM_3 ; A5 X - const HS_SILPH_CO_6F_1 ; A6 - const HS_SILPH_CO_6F_2 ; A7 - const HS_SILPH_CO_6F_3 ; A8 - const HS_SILPH_CO_6F_ITEM_1 ; A9 X - const HS_SILPH_CO_6F_ITEM_2 ; AA X - const HS_SILPH_CO_7F_1 ; AB - const HS_SILPH_CO_7F_2 ; AC - const HS_SILPH_CO_7F_3 ; AD - const HS_SILPH_CO_7F_4 ; AE - const HS_SILPH_CO_7F_RIVAL ; AF - const HS_SILPH_CO_7F_ITEM_1 ; B0 X - const HS_SILPH_CO_7F_ITEM_2 ; B1 X - const HS_SILPH_CO_8F_1 ; B3 - const HS_SILPH_CO_8F_2 ; B4 - const HS_SILPH_CO_8F_3 ; B5 - const HS_SILPH_CO_10F_1 ; B6 - const HS_SILPH_CO_10F_2 ; B7 - const HS_SILPH_CO_10F_3 ; B8 XXX never (de)activated? + const HS_BRUNSWICK_ZAPDOS_G_2 ; 3F, was const HS_POKEMON_TOWER_3F_ITEM + const HS_POKEMON_TOWER_5F_ITEM ; 40 X + const HS_POKEMON_TOWER_6F_ITEM_1 ; 41 X + const HS_POKEMON_TOWER_6F_ITEM_2 ; 42 X + const HS_POKEMON_TOWER_7F_JESSIE ; 43 + const HS_POKEMON_TOWER_7F_JAMES ; 44 + const HS_POKEMON_TOWER_7F_MR_FUJI ; 45 + const HS_MR_FUJIS_HOUSE_MR_FUJI ; 46 + const HS_CELADON_MANSION_EEVEE_GIFT ; 47 + const HS_GAME_CORNER_ROCKET ; 48 + const HS_WARDENS_HOUSE_ITEM ; 49 X + const HS_POKEMON_MANSION_1F_ITEM_1 ; 4A X + const HS_POKEMON_MANSION_1F_ITEM_2 ; 4B X + const HS_FIGHTING_DOJO_GIFT_1 ; 4C + const HS_FIGHTING_DOJO_GIFT_2 ; 4D + const HS_FIGHTING_DOJO_GIFT_3 ; 4E + const HS_SILPH_CO_1F_RECEPTIONIST ; 4F + const HS_VOLTORB_1 ; 50 X + const HS_VOLTORB_2 ; 51 X + const HS_VOLTORB_3 ; 52 X + const HS_ELECTRODE_1 ; 53 X + const HS_VOLTORB_4 ; 54 X + const HS_VOLTORB_5 ; 55 X + const HS_ELECTRODE_2 ; 56 X + const HS_VOLTORB_6 ; 57 X + const HS_ZAPDOS ; 58 X + const HS_POWER_PLANT_ITEM_1 ; 59 X + const HS_POWER_PLANT_ITEM_2 ; 5A X + const HS_POWER_PLANT_ITEM_3 ; 5B X + const HS_POWER_PLANT_ITEM_4 ; 5C X + const HS_POWER_PLANT_ITEM_5 ; 5D X + const HS_GYAOON ; 5E X + const HS_VICTORY_ROAD_2F_ITEM_1 ; 5F X + const HS_VICTORY_ROAD_2F_ITEM_2 ; 60 X + const HS_VICTORY_ROAD_2F_ITEM_3 ; 61 X + const HS_VICTORY_ROAD_2F_ITEM_4 ; 62 X + const HS_VICTORY_ROAD_2F_BOULDER ; 63 + const HS_BILL_POKEMON ; 64 + const HS_BILL_1 ; 65 + const HS_BILL_2 ; 66 + const HS_BILLS_NIDORINO ; 67 + const HS_VIRIDIAN_FOREST_ITEM_1 ; 68 X + const HS_VIRIDIAN_FOREST_ITEM_2 ; 69 X + const HS_VIRIDIAN_FOREST_ITEM_3 ; 6A X + const HS_MT_MOON_1F_ITEM_1 ; 6B X + const HS_MT_MOON_1F_ITEM_2 ; 6C X + const HS_MT_MOON_1F_ITEM_3 ; 6D X + const HS_MT_MOON_1F_ITEM_4 ; 6E X + const HS_MT_MOON_1F_ITEM_5 ; 6F X + const HS_MT_MOON_1F_ITEM_6 ; 70 X + const HS_MT_MOON_B2F_JESSIE ; 71 + const HS_MT_MOON_B2F_JAMES ; 72 + const HS_MT_MOON_B2F_FOSSIL_1 ; 73 + const HS_MT_MOON_B2F_FOSSIL_2 ; 74 + const HS_MT_MOON_B2F_ITEM_1 ; 75 X + const HS_MT_MOON_B2F_ITEM_2 ; 76 X + const HS_SS_ANNE_2F_RIVAL ; 77 + const HS_SS_ANNE_1F_ROOMS_ITEM ; 78 X + const HS_SS_ANNE_2F_ROOMS_ITEM_1 ; 79 X + const HS_SS_ANNE_2F_ROOMS_ITEM_2 ; 7A X + const HS_SS_ANNE_B1F_ROOMS_ITEM_1 ; 7B X + const HS_SS_ANNE_B1F_ROOMS_ITEM_2 ; 7C X + const HS_SS_ANNE_B1F_ROOMS_ITEM_3 ; 7D X + const HS_WUGTRIO ; 7E X + const HS_VICTORY_ROAD_3F_ITEM_1 ; 7F X + const HS_VICTORY_ROAD_3F_ITEM_2 ; 80 X + const HS_VICTORY_ROAD_3F_BOULDER ; 81 + const HS_ROCKET_HIDEOUT_B1F_ITEM_1 ; 82 X + const HS_ROCKET_HIDEOUT_B1F_ITEM_2 ; 83 X + const HS_ROCKET_HIDEOUT_B2F_ITEM_1 ; 84 X + const HS_ROCKET_HIDEOUT_B2F_ITEM_2 ; 85 X + const HS_ROCKET_HIDEOUT_B2F_ITEM_3 ; 86 X + const HS_ROCKET_HIDEOUT_B2F_ITEM_4 ; 87 X + const HS_ROCKET_HIDEOUT_B3F_ITEM_1 ; 88 X + const HS_ROCKET_HIDEOUT_B3F_ITEM_2 ; 89 X + const HS_ROCKET_HIDEOUT_B4F_GIOVANNI ; 8A + const HS_ROCKET_HIDEOUT_B4F_JAMES ; 8B + const HS_ROCKET_HIDEOUT_B4F_JESSIE ; 8C + const HS_ROCKET_HIDEOUT_B4F_ITEM_1 ; 8D X + const HS_ROCKET_HIDEOUT_B4F_ITEM_2 ; 8E X + const HS_ROCKET_HIDEOUT_B4F_ITEM_3 ; 8F X + const HS_ROCKET_HIDEOUT_B4F_ITEM_4 ; 90 + const HS_ROCKET_HIDEOUT_B4F_ITEM_5 ; 91 + const HS_GARNET_ARTICUNO_G ; 92 + const HS_GARNET_ITEM_1 ; 93 + const HS_GARNET_ITEM_2 ; 94 + const HS_ARTICUNO_G_COPY_1 ; 95 + const HS_ARTICUNO_G_COPY_2 ; 96 + const HS_SILPH_CO_3F_1 ; 97 + const HS_SILPH_CO_3F_2 ; 98 + const HS_SILPH_CO_3F_ITEM ; 99 X + const HS_SILPH_CO_4F_1 ; 9A + const HS_SILPH_CO_4F_2 ; 9B + const HS_SILPH_CO_4F_3 ; 9C + const HS_SILPH_CO_4F_ITEM_1 ; 9D X + const HS_SILPH_CO_4F_ITEM_2 ; 9E X + const HS_SILPH_CO_4F_ITEM_3 ; 9F X + const HS_SILPH_CO_5F_1 ; A0 + const HS_SILPH_CO_5F_2 ; A1 + const HS_SILPH_CO_5F_3 ; A2 + const HS_SILPH_CO_5F_4 ; A3 + const HS_SILPH_CO_5F_ITEM_1 ; A4 X + const HS_SILPH_CO_5F_ITEM_2 ; A5 X + const HS_SILPH_CO_5F_ITEM_3 ; A6 X + const HS_SILPH_CO_6F_1 ; A7 + const HS_SILPH_CO_6F_2 ; A8 + const HS_SILPH_CO_6F_3 ; A9 + const HS_SILPH_CO_6F_ITEM_1 ; AA X + const HS_SILPH_CO_6F_ITEM_2 ; AB X + const HS_SILPH_CO_7F_1 ; AC + const HS_SILPH_CO_7F_2 ; AE + const HS_SILPH_CO_7F_3 ; AF + const HS_SILPH_CO_7F_4 ; B0 + const HS_SILPH_CO_7F_RIVAL ; B1 + const HS_SILPH_CO_7F_ITEM_1 ; B2 X + const HS_SILPH_CO_7F_ITEM_2 ; B3 X + const HS_SILPH_CO_8F_1 ; B4 + const HS_SILPH_CO_8F_2 ; B5 + const HS_SILPH_CO_8F_3 ; B6 + const HS_SILPH_CO_10F_1 ; B7 + const HS_SILPH_CO_10F_2 ; B8 const HS_SILPH_CO_10F_ITEM_1 ; B9 X - const HS_SILPH_CO_10F_ITEM_2 ; BA X + const HS_SILPH_CO_10F_ITEM_2 ; BA X best deck const HS_SILPH_CO_10F_ITEM_3 ; BB X const HS_SILPH_CO_11F_1 ; BC const HS_SILPH_CO_11F_2 ; BD @@ -231,42 +229,33 @@ DEF SHOW EQU $15 const HS_CERULEAN_CAVE_B1F_ITEM_1 ; DA X const HS_CERULEAN_CAVE_B1F_ITEM_2 ; DB X const HS_VICTORY_ROAD_1F_ITEM_1 ; DC X - const HS_VICTORY_ROAD_1F_ITEM_2 ; DD X - const HS_CHAMPIONS_ROOM_OAK ; DE - const HS_SEAFOAM_ISLANDS_1F_BOULDER_1 ; DF - const HS_SEAFOAM_ISLANDS_1F_BOULDER_2 ; E0 - const HS_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; E1 - const HS_SEAFOAM_ISLANDS_B1F_BOULDER_2 ; E2 - const HS_SEAFOAM_ISLANDS_B2F_BOULDER_1 ; E3 - const HS_SEAFOAM_ISLANDS_B2F_BOULDER_2 ; E4 - const HS_SEAFOAM_ISLANDS_B3F_BOULDER_1 ; E5 - const HS_SEAFOAM_ISLANDS_B3F_BOULDER_2 ; E6 - const HS_SEAFOAM_ISLANDS_B3F_BOULDER_3 ; E7 - const HS_SEAFOAM_ISLANDS_B3F_BOULDER_4 ; E8 - const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E9 - const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; EA - const HS_ARTICUNO ; EB - const HS_OLD_SEA_MAP ; EC (can be removed, we can make the it a hidden item instead) + const HS_VICTORY_ROAD_1F_ITEM_2 ; DE X + const HS_CHAMPIONS_ROOM_OAK ; DF + const HS_SEAFOAM_ISLANDS_1F_BOULDER_1 ; E0 + const HS_SEAFOAM_ISLANDS_1F_BOULDER_2 ; E1 + const HS_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; E2 + const HS_SEAFOAM_ISLANDS_B1F_BOULDER_2 ; E3 + const HS_SEAFOAM_ISLANDS_B2F_BOULDER_1 ; E4 + const HS_SEAFOAM_ISLANDS_B2F_BOULDER_2 ; E5 + const HS_SEAFOAM_ISLANDS_B3F_BOULDER_1 ; E6 + const HS_SEAFOAM_ISLANDS_B3F_BOULDER_2 ; E7 + const HS_SEAFOAM_ISLANDS_B3F_BOULDER_3 ; E8 + const HS_SEAFOAM_ISLANDS_B3F_BOULDER_4 ; E9 + const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; EA sports. to the game. + const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; EB + const HS_ARTICUNO ; EC const HS_MEW ; ED const HS_POKEMON_MANSION_B2F_ITEM_1 ; EE const HS_POKEMON_MANSION_B2F_ITEM_2 ; EF const HS_ROUTE_1_OAK ; F0 - const HS_YUJIROU ; F1 - const HS_YUJIROU_REMATCH ; F2 - const HS_MT_MOON_CRATER_ITEM_1 ; F3 - const HS_MT_MOON_CRATER_ITEM_2 ; F4 - const HS_MT_MOON_CRATER_ITEM_3 ; F5 - const HS_MT_MOON_CRATER_ITEM_4 ; F6 - const HS_MT_MOON_CRATER_ITEM_5 ; F7 - const HS_MT_MOON_CRATER_ITEM_6 ; F8 - const HS_MT_MOON_CRATER_ITEM_7 ; F9 - const HS_MT_MOON_CRATER_ITEM_8 ; FA - const HS_MT_MOON_CRATER_ITEM_9 ; FB - const HS_GIOVANNIS_ROOM_ITEM_1 ; FC - const HS_GIOVANNIS_ROOM_ITEM_2 ; FD - const HS_ROCK_TUNNEL_B1F_DOME ; FE - const HS_ROCK_TUNNEL_B1F_HELIX ; FF - const HS_ROCK_TUNNEL_B1F_AMBER ; 100 - const HS_ROCK_TUNNEL_B1F_WING ; 101 - const HS_MT_MOON_CRATER_GUARD ; 102 + const HS_MT_MOON_CRATER_ITEM_1 ; F1 + const HS_MT_MOON_CRATER_ITEM_2 ; F2 + const HS_MT_MOON_CRATER_ITEM_3 ; F3 + const HS_GIOVANNIS_ROOM_ITEM_1 ; F4 + const HS_GIOVANNIS_ROOM_ITEM_2 ; F5 + const HS_ROCK_TUNNEL_B1F_DOME ; F6 + const HS_ROCK_TUNNEL_B1F_HELIX ; F7 + const HS_ROCK_TUNNEL_B1F_AMBER ; F8 + const HS_ROCK_TUNNEL_B1F_WING ; F9 + const HS_MT_MOON_CRATER_GUARD ; FA DEF NUM_HS_OBJECTS EQU const_value diff --git a/data/events/hidden_item_coords.asm b/data/events/hidden_item_coords.asm index 08e671c3..54a0958e 100644 --- a/data/events/hidden_item_coords.asm +++ b/data/events/hidden_item_coords.asm @@ -57,4 +57,9 @@ HiddenItemCoords: hidden_item VERMILION_CITY, 14, 11 hidden_item CERULEAN_CITY, 15, 8 hidden_item ROUTE_4, 40, 3 + hidden_item VERMILION_DOCK, 21, 0 ; Old Sea Map + hidden_item MT_MOON_CRATER, 17, 20 ; Heart Stone + hidden_item MT_MOON_CRATER, 20, 20 ; Poison Stone + hidden_item MT_MOON_CRATER, 20, 17 ; Black Augurite + hidden_item MT_MOON_CRATER, 32, 45 ; Old Amber db -1 ; end diff --git a/data/events/hidden_objects.asm b/data/events/hidden_objects.asm index fc44eab3..a85c43e4 100644 --- a/data/events/hidden_objects.asm +++ b/data/events/hidden_objects.asm @@ -86,6 +86,8 @@ HiddenObjectMaps: db CELADON_UNIVERSITY_POKECENTER db CITRINE_POKECENTER db BATTLE_TENT + db VERMILION_DOCK + db MT_MOON_CRATER db -1 ; end HiddenObjectPointers: @@ -177,6 +179,8 @@ HiddenObjectPointers: dw CeladonUniversityPokecenterHiddenObjects dw CitrinePokecenterHiddenObjects dw BattleTentHiddenObjects + dw VermilionDockHiddenObjects + dw MtMoonCraterHiddenObjects MACRO hidden_object db \2 ; y coord @@ -640,3 +644,14 @@ Route4HiddenObjects: BattleTentHiddenObjects: hidden_object 9, 16, SPRITE_FACING_UP, OpenPokemonCenterPC db -1 + +VermilionDockHiddenObjects: + hidden_object 21, 0, OLD_SEA_MAP, HiddenItems + db -1 + +MtMoonCraterHiddenObjects: + hidden_object 17, 20, HEART_STONE, HiddenItems + hidden_object 20, 20, POISON_STONE, HiddenItems + hidden_object 20, 17, BLK_AUGURITE, HiddenItems + hidden_object 32, 45, OLD_AMBER, HiddenItems + db -1 diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm index 5fb3bb5f..1b7f5d1f 100644 --- a/data/maps/hide_show_data.asm +++ b/data/maps/hide_show_data.asm @@ -75,7 +75,7 @@ MapHSPointers: dw NoHS dw NoHS dw NoHS - dw ViridianPreGymHS + dw NoHS dw NoHS dw NoHS dw NoHS @@ -100,7 +100,7 @@ MapHSPointers: dw NoHS dw NoHS dw NoHS - dw VermilionDockHS + dw NoHS dw NoHS dw SSAnne2FHS dw NoHS @@ -152,7 +152,7 @@ MapHSPointers: dw PokemonTower2FHS dw BrunswickGrottoHS ; Brunswick Grotto ;dw PokemonTower3FHS - dw PokemonTower4FHS + dw NoHS ; Pokemon Tower 4F, removed for constant space dw PokemonTower5FHS dw PokemonTower6FHS dw PokemonTower7FHS @@ -357,10 +357,10 @@ BrunswickGrottoHS: db BRUNSWICK_GROTTO, $01, SHOW ; HS_BRUNSWICK_ZAPDOS_G_2 ;PokemonTower3FHS: ; db POKEMON_TOWER_3F, $04, SHOW ; HS_POKEMON_TOWER_3F_ITEM -PokemonTower4FHS: - db POKEMON_TOWER_4F, $04, SHOW ; HS_POKEMON_TOWER_4F_ITEM_1 - db POKEMON_TOWER_4F, $05, SHOW ; HS_POKEMON_TOWER_4F_ITEM_2 - db POKEMON_TOWER_4F, $06, SHOW ; HS_POKEMON_TOWER_4F_ITEM_3 +;PokemonTower4FHS: +; db POKEMON_TOWER_4F, $04, SHOW ; HS_POKEMON_TOWER_4F_ITEM_1 +; db POKEMON_TOWER_4F, $05, SHOW ; HS_POKEMON_TOWER_4F_ITEM_2 +; db POKEMON_TOWER_4F, $06, SHOW ; HS_POKEMON_TOWER_4F_ITEM_3 PokemonTower5FHS: db POKEMON_TOWER_5F, $06, SHOW ; HS_POKEMON_TOWER_5F_ITEM PokemonTower6FHS: @@ -518,7 +518,6 @@ SilphCo10FHS: db SILPH_CO_10F, $03, SHOW ; HS_SILPH_CO_10F_3 db SILPH_CO_10F, $04, SHOW ; HS_SILPH_CO_10F_ITEM_1 db SILPH_CO_10F, $05, SHOW ; HS_SILPH_CO_10F_ITEM_2 - db SILPH_CO_10F, $06, SHOW ; HS_SILPH_CO_10F_ITEM_3 SilphCo11FHS: db SILPH_CO_11F, $03, SHOW ; HS_SILPH_CO_11F_1 db SILPH_CO_11F, $04, SHOW ; HS_SILPH_CO_11F_2 @@ -586,8 +585,6 @@ SeafoamIslandsB4FHS: db SEAFOAM_ISLANDS_B4F, $01, HIDE ; HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 db SEAFOAM_ISLANDS_B4F, $02, HIDE ; HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 db SEAFOAM_ISLANDS_B4F, $03, SHOW ; HS_ARTICUNO -VermilionDockHS: - db VERMILION_DOCK, $01, SHOW ; HS_OLD_SEA_MAP FarawayIslandInsideHS: db FARAWAY_ISLAND_INSIDE, $01, SHOW ; HS_MEW PokemonMansionB2FHS: @@ -595,19 +592,11 @@ PokemonMansionB2FHS: db POKEMON_MANSION_B2F, $04, SHOW ; HS_POKEMON_MANSION_B2F_ITEM_2 Route1HS: db ROUTE_1, $03, HIDE ; HS_ROUTE_1_OAK -ViridianPreGymHS: - db VIRIDIAN_PRE_GYM, $01, SHOW ; HS_YUJIROU - db VIRIDIAN_PRE_GYM, $02, HIDE ; HS_YUJIROU_REMATCH MtMoonCraterHS: db MT_MOON_CRATER, $01, SHOW ; HS_MT_MOON_CRATER_ITEM_1 db MT_MOON_CRATER, $02, SHOW ; HS_MT_MOON_CRATER_ITEM_2 db MT_MOON_CRATER, $03, SHOW ; HS_MT_MOON_CRATER_ITEM_3 db MT_MOON_CRATER, $04, SHOW ; HS_MT_MOON_CRATER_ITEM_4 - db MT_MOON_CRATER, $05, SHOW ; HS_MT_MOON_CRATER_ITEM_5 - db MT_MOON_CRATER, $06, SHOW ; HS_MT_MOON_CRATER_ITEM_6 - db MT_MOON_CRATER, $07, SHOW ; HS_MT_MOON_CRATER_ITEM_7 - db MT_MOON_CRATER, $08, SHOW ; HS_MT_MOON_CRATER_ITEM_8 - db MT_MOON_CRATER, $09, SHOW ; HS_MT_MOON_CRATER_ITEM_9 GiovannisRoomHS: db GIOVANNIS_ROOM, $05, SHOW ; HS_GIOVANNIS_ROOM_ITEM_1 db GIOVANNIS_ROOM, $06, SHOW ; HS_GIOVANNIS_ROOM_ITEM_2 @@ -618,5 +607,4 @@ RockTunnelB1FHS: db ROCK_TUNNEL_B1F, $0D, SHOW ; HS_ROCK_TUNNEL_B1F_WING MtMoonSquareHS: db MT_MOON_SQUARE, $04, SHOW ; HS_MT_MOON_CRATER_GUARD - db $FF, $01, SHOW ; end assert_table_length NUM_HS_OBJECTS + 1 diff --git a/data/maps/objects/MtMoonCrater.asm b/data/maps/objects/MtMoonCrater.asm index 4f2a1d2d..33162004 100644 --- a/data/maps/objects/MtMoonCrater.asm +++ b/data/maps/objects/MtMoonCrater.asm @@ -8,14 +8,9 @@ MtMoonCrater_Object: def_bg_events def_object_events - object_event 20, 17, SPRITE_POKE_BALL, STAY, NONE, 1, BLK_AUGURITE - object_event 33, 17, SPRITE_FOSSIL, STAY, NONE, 2, DOME_FOSSIL - object_event 25, 21, SPRITE_FOSSIL, STAY, NONE, 3, WING_FOSSIL - object_event 33, 16, SPRITE_FOSSIL, STAY, NONE, 4, HELIX_FOSSIL - object_event 45, 24, SPRITE_POKE_BALL, STAY, NONE, 5, MAX_ETHER - object_event 44, 17, SPRITE_POKE_BALL, STAY, NONE, 6, MAX_REVIVE - object_event 17, 20, SPRITE_POKE_BALL, STAY, NONE, 7, HEART_STONE - object_event 20, 20, SPRITE_POKE_BALL, STAY, NONE, 8, POISON_STONE - object_event 32, 45, SPRITE_POKE_BALL, STAY, NONE, 9, MAX_ETHER + object_event 33, 17, SPRITE_FOSSIL, STAY, NONE, 1, DOME_FOSSIL + object_event 25, 21, SPRITE_FOSSIL, STAY, NONE, 2, WING_FOSSIL + object_event 33, 16, SPRITE_FOSSIL, STAY, NONE, 3, HELIX_FOSSIL + object_event 45, 24, SPRITE_POKE_BALL, STAY, NONE, 4, MAX_ETHER def_warps_to MT_MOON_CRATER \ No newline at end of file diff --git a/data/maps/objects/PokemonTower4F.asm b/data/maps/objects/PokemonTower4F.asm index a6c10b74..2ff87b50 100644 --- a/data/maps/objects/PokemonTower4F.asm +++ b/data/maps/objects/PokemonTower4F.asm @@ -11,8 +11,8 @@ PokemonTower4F_Object: object_event 5, 10, SPRITE_CHANNELER, STAY, RIGHT, 1, OPP_CHANNELER, 9 object_event 15, 7, SPRITE_CHANNELER, STAY, DOWN, 2, OPP_CHANNELER, 10 object_event 14, 12, SPRITE_CHANNELER, STAY, LEFT, 3, OPP_CHANNELER, 12 - object_event 12, 10, SPRITE_POKE_BALL, STAY, NONE, 4, ELIXER - object_event 9, 10, SPRITE_POKE_BALL, STAY, NONE, 5, AWAKENING - object_event 12, 16, SPRITE_POKE_BALL, STAY, NONE, 6, HP_UP +; object_event 12, 10, SPRITE_POKE_BALL, STAY, NONE, 4, ELIXER +; object_event 9, 10, SPRITE_POKE_BALL, STAY, NONE, 5, AWAKENING +; object_event 12, 16, SPRITE_POKE_BALL, STAY, NONE, 6, HP_UP def_warps_to POKEMON_TOWER_4F diff --git a/data/maps/objects/VermilionDock.asm b/data/maps/objects/VermilionDock.asm index 87184755..86036311 100644 --- a/data/maps/objects/VermilionDock.asm +++ b/data/maps/objects/VermilionDock.asm @@ -8,6 +8,5 @@ VermilionDock_Object: def_bg_events def_object_events - object_event 22, 0, SPRITE_POKE_BALL, STAY, NONE, 2, OLD_SEA_MAP def_warps_to VERMILION_DOCK diff --git a/scripts/HallOfFame.asm b/scripts/HallOfFame.asm index 031d667e..d89f95ec 100644 --- a/scripts/HallOfFame.asm +++ b/scripts/HallOfFame.asm @@ -138,7 +138,6 @@ PostGameSetup: ObjectsToShow: db HS_ROUTE_1_OAK ; Oak post-game fight - db HS_YUJIROU_REMATCH ; Yujirou rematch db -1 ; end ObjectsToHide: diff --git a/scripts/MtMoonCrater.asm b/scripts/MtMoonCrater.asm index dbcccaa9..94c24bbb 100644 --- a/scripts/MtMoonCrater.asm +++ b/scripts/MtMoonCrater.asm @@ -1,19 +1,10 @@ MtMoonCrater_Script: jp EnableAutoTextBoxDrawing - ;ld a, [wMtMoonCraterCurScript] - ;call ExecuteCurMapScriptInTable - ;ld [wMtMoonCraterCurScript], a - ;ret MtMoonCrater_TextPointers: dw PickUpItemText dw PickUpItemText dw PickUpItemText dw PickUpItemText - dw PickUpItemText - dw PickUpItemText - dw PickUpItemText - dw PickUpItemText - dw PickUpItemText text_end ; unused diff --git a/scripts/PokemonTower4F.asm b/scripts/PokemonTower4F.asm index 9bd291d2..f3c5f5b0 100644 --- a/scripts/PokemonTower4F.asm +++ b/scripts/PokemonTower4F.asm @@ -16,9 +16,6 @@ PokemonTower4F_TextPointers: dw PokemonTower4Text1 dw PokemonTower4Text2 dw PokemonTower4Text3 - dw PickUpItemText - dw PickUpItemText - dw PickUpItemText PokemonTower4TrainerHeaders: def_trainers diff --git a/scripts/VermilionDock.asm b/scripts/VermilionDock.asm index 52a473ec..57ee3488 100644 --- a/scripts/VermilionDock.asm +++ b/scripts/VermilionDock.asm @@ -213,7 +213,6 @@ VermilionDock_EraseSSAnne: VermilionDock_TextPointers: dw VermilionDockText1 - dw PickUpItemText VermilionDockText1: text_far _VermilionDockText1 diff --git a/scripts/ViridianPreGym.asm b/scripts/ViridianPreGym.asm index e34b8de3..bde3de30 100644 --- a/scripts/ViridianPreGym.asm +++ b/scripts/ViridianPreGym.asm @@ -34,7 +34,6 @@ YujirouHasBeenBeaten: ViridianPreGym_TextPointers: dw YujirouText dw YujirouHasBeenBeaten - dw YujirouRematch dw ViridianPreGymText1 dw ViridianPreGymText2 dw ViridianPreGymGuide @@ -56,6 +55,9 @@ ViridianPreGymTrainerHeader1: YujirouText: text_asm + CheckEvent EVENT_POST_GAME_ATTAINED ; No need to view previous stuff + jr nz, .rematchMode + CheckEvent EVENT_BEAT_YUJIROU jr nz, .YujirouBeaten @@ -82,6 +84,29 @@ YujirouText: ld [wViridianPreGymCurScript], a ld [wCurMapScript], a jr .done +.rematchMode ; Rematch functionality. Just loads pre-battle text and his trainer. + ld hl, YujirouIntro2 + call PrintText + ld c, BANK(Music_MeetMaleTrainer) + ld a, MUSIC_MEET_MALE_TRAINER + call PlayMusic + set 6, [hl] + set 7, [hl] + ldh a, [hSpriteIndex] + ld [wSpriteIndex], a + ld hl, YujirouLoseText2 + ld de, YujirouWinText + call SaveEndBattleTextPointers + call EngageMapTrainer + ld a, OPP_BROCK + ld [wCurOpponent], a + ld a, 9 + ld [wTrainerNo], a + ld a, 1 + ld [wIsTrainerBattle], a + ld a, $1 + ld [wGymLeaderNo], a + jr .done .YujirouBeaten ld hl, YujirouAfterBattleText call PrintText @@ -105,36 +130,6 @@ YujirouAfterBattleText:: text_far _YujirouAfterBattleText text_end -YujirouRematch: - text_asm - ld hl, YujirouIntro2 - call PrintText - - ld c, BANK(Music_MeetMaleTrainer) - ld a, MUSIC_MEET_MALE_TRAINER - call PlayMusic - - ld hl, wd72d - set 6, [hl] - set 7, [hl] - call Delay3 - ld a, OPP_YUJIROU - ld [wCurOpponent], a - ld a, 2 - ld [wTrainerNo], a - ld [wIsTrainerBattle], a - ld a, $2 - ld [wViridianPreGymCurScript], a - ld hl, YujirouLoseText2 - ld de, YujirouWinText - call SaveEndBattleTextPointers - jp TextScriptEnd - jr .done - .done - ld hl, YujirouAfterBattleText2 - call PrintText - jp TextScriptEnd - YujirouIntro2:: text_far _YujirouIntro2 text_end diff --git a/text/MtMoonSquare.asm b/text/MtMoonSquare.asm index f38395fb..b1701156 100644 --- a/text/MtMoonSquare.asm +++ b/text/MtMoonSquare.asm @@ -19,5 +19,5 @@ _MtMoonSquareText1:: line "research is done," cont "only authorized" cont "individuals may" - cont "enter the crater." + cont "enter the CRATER." done \ No newline at end of file