diff --git a/constants/event_constants.asm b/constants/event_constants.asm index b99e7993..81ef39f6 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -785,6 +785,8 @@ ; Safari Zone events const_next $880 + const EVENT_BEAT_CACTUS + const EVENT_BEAT_ZAPDOSG const EVENT_GOT_HM03 const EVENT_GOT_MELTAN diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 27258303..4214c860 100644 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -35,8 +35,6 @@ DEF SHOW EQU $15 const HS_SAFFRON_CITY_E ; 17 const HS_SAFFRON_CITY_F ; 18 const HS_SAFFRON_CITY_UP_GRADE ; 19 - 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 @@ -225,6 +223,8 @@ DEF SHOW EQU $15 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_CACTUS ; 1A was ROUTE_2_ITEM_2 + const HS_ZAPDOSG ; 1B was ROUTE_4_ITEM const HS_SEAFOAM_ISLANDS_1F_BOULDER_1 ; D7 const HS_SEAFOAM_ISLANDS_1F_BOULDER_2 ; D8 const HS_SEAFOAM_ISLANDS_B1F_BOULDER_1 ; D9 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 73c317e8..3e1fb0f8 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -83,7 +83,7 @@ DEF FIRST_STILL_SPRITE EQU const_value const SPRITE_POKEDEX ; $4b const SPRITE_CLIPBOARD ; $4c const SPRITE_SNORLAX ; $4d - const SPRITE_UNUSED_OLD_AMBER ; $4e + const SPRITE_FAKE_TREE ; $4e was SPRITE_UNUSED_OLD_AMBER const SPRITE_OLD_AMBER ; $4f const SPRITE_UNUSED_GAMBLER_ASLEEP_1 ; $50 const SPRITE_UNUSED_GAMBLER_ASLEEP_2 ; $51 diff --git a/constants/sprite_set_constants.asm b/constants/sprite_set_constants.asm index 48460fb5..f1e5dad0 100644 --- a/constants/sprite_set_constants.asm +++ b/constants/sprite_set_constants.asm @@ -13,6 +13,7 @@ const SPRITESET_SILENCE_BRIDGE ; 08 const SPRITESET_CYCLING_ROAD ; 09 const SPRITESET_FUCHSIA ; 0a + const SPRITESET_CITRINE ; 0b DEF NUM_SPRITE_SETS EQU const_value - 1 ; split sprite set ids diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm index 7eb774eb..4de08003 100644 --- a/data/maps/hide_show_data.asm +++ b/data/maps/hide_show_data.asm @@ -17,9 +17,9 @@ MapHSPointers: dw NoHS dw NoHS dw Route1HS - dw Route2HS + dw NoHS ; Route2HS is unnecessary due to new events replacing it. dw NoHS - dw Route4HS + dw NoHS ; Route4HS was made unnecessary from replacements dw NoHS dw NoHS dw NoHS @@ -177,7 +177,7 @@ MapHSPointers: dw NoHS dw NoHS dw NoHS - dw NoHS + dw BrunswickTrailHS dw NoHS dw NoHS dw NoHS @@ -293,11 +293,11 @@ SaffronCityHS: db SAFFRON_CITY, $0E, SHOW db SAFFRON_CITY, $0F, HIDE db SAFFRON_CITY, $1A, HIDE -Route2HS: - ;db ROUTE_2, $01, SHOW - removed for the former - db ROUTE_2, $02, SHOW -Route4HS: - db ROUTE_4, $03, SHOW +;Route2HS: - made redundant. + ;db ROUTE_2, $01, SHOW + ;db ROUTE_2, $02, SHOW +;Route4HS: + ;db ROUTE_4, $03, SHOW Route9HS: db ROUTE_9, $0A, SHOW Route12HS: @@ -555,6 +555,9 @@ VictoryRoad1FHS: db VICTORY_ROAD_1F, $04, SHOW ChampionsRoomHS: db CHAMPIONS_ROOM, $02, HIDE +BrunswickTrailHS: + db BRUNSWICK_TRAIL, $01, SHOW + db BRUNSWICK_TRAIL, $03, SHOW ; to test, SHOW, otherwise HIDE SeafoamIslands1FHS: db SEAFOAM_ISLANDS_1F, $01, SHOW db SEAFOAM_ISLANDS_1F, $02, SHOW diff --git a/data/maps/objects/BrunswickTrail.asm b/data/maps/objects/BrunswickTrail.asm index 29a1f46d..87d96475 100644 --- a/data/maps/objects/BrunswickTrail.asm +++ b/data/maps/objects/BrunswickTrail.asm @@ -7,5 +7,8 @@ BrunswickTrail_Object: def_bg_events def_object_events + object_event 29, 11, SPRITE_FAKE_TREE, STAY, NONE, 1, CACTUS, 60 | OW_POKEMON ; person + object_event 37, 23, SPRITE_BRUNETTE_GIRL, STAY, DOWN, 2 ; person + object_event 46, 7, SPRITE_BIRD, STAY, DOWN, 3, ZAPDOS_G, 70 | OW_POKEMON ; person def_warps_to BRUNSWICK_TRAIL diff --git a/data/maps/objects/CelesteHill.asm b/data/maps/objects/CelesteHill.asm index 2df6d55d..ad71f839 100644 --- a/data/maps/objects/CelesteHill.asm +++ b/data/maps/objects/CelesteHill.asm @@ -2,8 +2,7 @@ CelesteHill_Object: db $0 ; border block def_warp_events - warp_event 13, 23, ROUTE_1, 1 - warp_event 12, 23, ROUTE_1, 1 + warp_event 13, 23, BRUNSWICK_TRAIL, 1 def_bg_events diff --git a/data/maps/sprite_sets.asm b/data/maps/sprite_sets.asm index 47184cd4..7aa7570d 100644 --- a/data/maps/sprite_sets.asm +++ b/data/maps/sprite_sets.asm @@ -14,7 +14,7 @@ MapSpriteSets: db SPRITESET_SAFFRON ; SAFFRON_CITY db SPRITESET_PALLET_VIRIDIAN ; CINNABAR_ISLAND db SPRITESET_INDIGO ; INDIGO_PLATEAU - db SPRITESET_PALLET_VIRIDIAN ; CITRINE_CITY + db SPRITESET_CITRINE ; CITRINE_CITY db SPRITESET_PALLET_VIRIDIAN ; ROUTE_1 db SPLITSET_ROUTE_2 ; ROUTE_2 db SPRITESET_PEWTER_CERULEAN ; ROUTE_3 @@ -198,4 +198,17 @@ SpriteSets: db SPRITE_POKE_BALL db SPRITE_FOSSIL +; SPRITESET_CITRINE + db SPRITE_BRUNETTE_GIRL + db SPRITE_BIRD + db SPRITE_SUPER_NERD ; free slot, add as needed. + db SPRITE_HIKER ; free slot, add as needed. + db SPRITE_GAMBLER ; free slot, add as needed. + db SPRITE_MONSTER ; free slot, add as needed. + db SPRITE_COOLTRAINER_F ; free slot, add as needed. + db SPRITE_COOLTRAINER_M ; free slot, add as needed. + db SPRITE_GUARD ; free slot, add as needed. + db SPRITE_POKE_BALL ; probably not free + db SPRITE_FAKE_TREE + assert_table_length NUM_SPRITE_SETS diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm index b38a76ce..c3be9262 100644 --- a/data/sprites/sprites.asm +++ b/data/sprites/sprites.asm @@ -87,7 +87,7 @@ SpriteSheetPointerTable: overworld_sprite PokedexSprite, 4 ; SPRITE_POKEDEX overworld_sprite ClipboardSprite, 4 ; SPRITE_CLIPBOARD overworld_sprite SnorlaxSprite, 4 ; SPRITE_SNORLAX - overworld_sprite OldAmberSprite, 4 ; SPRITE_UNUSED_OLD_AMBER + overworld_sprite FakeTreeSprite, 4 ; was SPRITE_UNUSED_OLD_AMBER overworld_sprite OldAmberSprite, 4 ; SPRITE_OLD_AMBER overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_UNUSED_GAMBLER_ASLEEP_1 overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_UNUSED_GAMBLER_ASLEEP_2 diff --git a/data/tilesets/tileset_headers.asm b/data/tilesets/tileset_headers.asm index c34b8c81..e14fad5e 100644 --- a/data/tilesets/tileset_headers.asm +++ b/data/tilesets/tileset_headers.asm @@ -36,5 +36,5 @@ Tilesets: tileset PreGym, $3A, $3B, -1, -1, TILEANIM_NONE tileset Citrine, -1, -1, -1, $3F, TILEANIM_WATER_FLOWER tileset Celeste, -1, -1, -1, $19, TILEANIM_WATER_FLOWER - tileset RocketHouse, $0A, -1, -1, -1, TILEANIM_NONE + tileset RocketHouse, $0A, -1, -1, -1, TILEANIM_NONE assert_table_length NUM_TILESETS diff --git a/data/tilesets/warp_tile_ids.asm b/data/tilesets/warp_tile_ids.asm index 94b16224..437b886d 100644 --- a/data/tilesets/warp_tile_ids.asm +++ b/data/tilesets/warp_tile_ids.asm @@ -98,7 +98,7 @@ ENDM warp_tiles $23 .CitrineWarpTileIDs: - warp_tiles $1B, $1C, $0B, $0C + warp_tiles $1B, $1C, $0B, $0C, $58, $59 .CelesteWarpTileIDs: warp_tiles $5A, $5C, $3A, $30, $50, $51 ; Like Forest but a bit better diff --git a/data/wild/grass_water.asm b/data/wild/grass_water.asm index 9577d841..32b92758 100644 --- a/data/wild/grass_water.asm +++ b/data/wild/grass_water.asm @@ -174,7 +174,7 @@ WildDataPointers: dw NothingWildMons dw NothingWildMons dw NothingWildMons - dw NothingWildMons + dw BrunswickTrailMons dw NothingWildMons dw NothingWildMons dw NothingWildMons @@ -333,4 +333,5 @@ INCLUDE "data/wild/maps/FarawayIslandInside.asm" INCLUDE "data/wild/maps/MtMoonCrater.asm" INCLUDE "data/wild/maps/UnderwaterTunnel.asm" INCLUDE "data/wild/maps/BillsGarden.asm" -INCLUDE "data/wild/maps/CelesteHill.asm" \ No newline at end of file +INCLUDE "data/wild/maps/CelesteHill.asm" +INCLUDE "data/wild/maps/BrunswickTrail.asm" \ No newline at end of file diff --git a/data/wild/maps/BrunswickTrail.asm b/data/wild/maps/BrunswickTrail.asm new file mode 100644 index 00000000..c9b0db27 --- /dev/null +++ b/data/wild/maps/BrunswickTrail.asm @@ -0,0 +1,28 @@ +; Given it's the Galarian Zapdos area, let's theme it with racing Pokemon. +; Some of these are Pokemon featured in the Big P Pokemon Race from the anime. +BrunswickTrailMons: + def_grass_wildmons 10 ; encounter rate + db 49, TOEDSCOOL + db 47, DODRIO + db 53, TOEDSCOOL + db 52, DODRIO + db 52, RAPIDASH + db 55, TAUROS + db 55, SANDSLASH + db 56, TOEDSCRUEL + db 56, TOEDSCRUEL + db 55, CACTUS + end_grass_wildmons + + def_water_wildmons 10 ; encounter rate + db 52, WEIRDUCK + db 54, WEIRDUCK + db 50, GOLDUCK + db 56, STARYU + db 50, STARYU + db 52, GOLDUCK ; The fastest swimmer in Kanto, as stated in the Pokedex book. + db 54, GOLDUCK + db 50, SEADRA + db 56, SEADRA + db 50, RATICATE ; Raticate are said to be able to swim; fun Easter Egg; seen in the anime. + end_water_wildmons \ No newline at end of file diff --git a/data/wild/maps/MtMoonCrater.asm b/data/wild/maps/MtMoonCrater.asm index eb36a6aa..fa804787 100644 --- a/data/wild/maps/MtMoonCrater.asm +++ b/data/wild/maps/MtMoonCrater.asm @@ -2,14 +2,14 @@ MtMoonCraterMons: def_grass_wildmons 10 ; encounter rate db 49, DUGTRIO db 47, VENOMOTH - db 53, CHANSEY + db 53, RAICHU db 52, VENOMOTH db 52, DUGTRIO - db 55, RAICHU + db 55, ESPEON db 55, UMBREON - db 56, ESPEON + db 56, SANDY_SHOCKS db 50, SCREAM_TAIL - db 50, SANDY_SHOCKS + db 50, CHANSEY ; I don't like this but I also don't like the Paradox Pokemon not both being 4%. Sue me. end_grass_wildmons def_water_wildmons 10 ; encounter rate diff --git a/gfx/sprites.asm b/gfx/sprites.asm index 9d41a270..857b9194 100644 --- a/gfx/sprites.asm +++ b/gfx/sprites.asm @@ -89,3 +89,4 @@ SurfingPikachuSprite:: INCBIN "gfx/sprites/surfing_pikachu.2bpp" JessieSprite:: INCBIN "gfx/sprites/jessie.2bpp" JamesSprite:: INCBIN "gfx/sprites/james.2bpp" SmallBirdSprite:: INCBIN "gfx/sprites/smallbird.2bpp" +FakeTreeSprite:: INCBIN "gfx/sprites/fake_tree.2bpp" diff --git a/ram/wram.asm b/ram/wram.asm index e5bd4f0d..551e778e 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -2077,7 +2077,7 @@ wSilphCo11FCurScript:: db ds 1 wFuchsiaGymCurScript:: db wSaffronGymCurScript:: db - ds 1 +wBrunswickTrailCurScript:: db wCinnabarGymCurScript:: db wGameCornerCurScript:: db wRoute16Gate1FCurScript:: db @@ -2085,7 +2085,7 @@ wBillsHouseCurScript:: db wRoute5GateCurScript:: db wPowerPlantCurScript:: ; overload wRoute7GateCurScript:: db -wRoute1CurScript:: db ; pls work - for oak +wRoute1CurScript:: db wSSAnne2FCurScript:: db wCitrineCityCurScript:: db wSeafoamIslandsB3FCurScript:: db diff --git a/scripts/BrunswickTrail.asm b/scripts/BrunswickTrail.asm index 8a4d9bc9..5eea36d8 100644 --- a/scripts/BrunswickTrail.asm +++ b/scripts/BrunswickTrail.asm @@ -1,6 +1,92 @@ BrunswickTrail_Script: jp EnableAutoTextBoxDrawing + ld hl, BrunswickTrail_ScriptPointers + ld a, [wBrunswickTrailCurScript] + jp CallFunctionInTable + +BrunswickTrail_ScriptPointers: + dw CheckFightingMapTrainers + dw DisplayEnemyTrainerTextAndStartBattle + dw EndTrainerBattle BrunswickTrail_TextPointers: + dw FakeTreeEvent + dw ZapdosGuy + dw GalarianZapdosText + +BrunswickTrailTrainerHeaders: + def_trainers 0 +CactusTrainerHeader: + trainer EVENT_BEAT_CACTUS, 0, CactusBattleText, CactusBattleText, CactusBattleText +GalarianZapdosTrainerHeader: + trainer EVENT_BEAT_ZAPDOSG, 0, GalarianZapdosBattleText, GalarianZapdosBattleText, GalarianZapdosBattleText + db -1 ; end + +ZapdosGuy: + text_far _ZapdosGuy + text_end + +FakeTreeNoCut: + text_far _FakeTreeNoCut + text_end + +FakeTreePrompt: + text_far _FakeTreePrompt + text_end + +; Ok, so here's how it is. +; So look, I tried to make the text work more efficiently with FakeTreeEvent. +; But one bug literally took me back to the fucking title screen and at that point I gave up and decided to do it this hacky way. +; I wanted to have some text before the CUT check. It did not work. It was terrifying. +; So instead I have two different versions of the same text, despite some being the same. +; It is inefficient, but it works. There's a lot to see in this life, and I'm not wasting it in Notepad++. +FakeTreeEvent: + text_asm +; ld d, CUT +; farcall HasPartyMove +; jr z, .NoCut +; jr nz, .HasCut +;.HasCut + ld hl, FakeTreePrompt + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + + ld a, SFX_CUT + call PlaySound + + ld hl, CactusTrainerHeader + call TalkToTrainer + jp TextScriptEnd ; I have tried a lot of things and it's not disappearing AAA +;.NoCut +; ld hl, FakeTreeNoCut ; Why do you have to be this way? I scream, for I do not know. +; call PrintText +; ret +.refused + jp TextScriptEnd + +CactusBattleText: + text_far _FakeTreeAttack + text_asm + ld a, CACTUS + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +GalarianZapdosText: + text_asm + ld hl, GalarianZapdosTrainerHeader + call TalkToTrainer + jp TextScriptEnd + +GalarianZapdosBattleText: + text_far _GalarianZapdosBattleText + text_asm + ld a, ZAPDOS_G + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd text_end ; unused diff --git a/text/BrunswickTrail.asm b/text/BrunswickTrail.asm index e69de29b..5ae3fd60 100644 --- a/text/BrunswickTrail.asm +++ b/text/BrunswickTrail.asm @@ -0,0 +1,40 @@ +_ZapdosGuy:: + text "Sometimes, a BIRD" + line "#MON with" + cont "strong legs comes" + cont "to race all the" + cont "#MON here." + done + +_FakeTreeNoCut:: + text "This tree can be" + line "CUT!" + done + +_FakeTreePrompt:: + text "This tree can be" + line "CUT!" + + para "Would you like to" + line "use CUT?" + prompt + +; The Cut script currently doesn't load what I want it to. Sp, I commented out the RAM and made it "you". +; For this to work, I need to make a special version of HasPartyMove. +_FakeTreeAttack:: + ;text_ram wcd6d + text "You tried" + line "to hack away..." + + para "But it was a" + line "CACTUS!" + + para "CACTUS retaliated" + line "in a rage!" + prompt + +_GalarianZapdosBattleText:: + text "Kyooo!" + prompt + +; Martha can do the text for her things... diff --git a/text/SilphCo6F.asm b/text/SilphCo6F.asm index 90456b5c..f8e8d913 100644 --- a/text/SilphCo6F.asm +++ b/text/SilphCo6F.asm @@ -73,11 +73,11 @@ _SilphCo6AfterBattleText2:: _SilphCo6BattleText3:: text "That rotten" - line "PRESIDENT!" + line "CHIEF!" para "He shouldn't have" - line "sent me to the" - cont "TIKSI BRANCH!" + line "sent me to PONAYA" + cont "TUNGUSKA!" done _SilphCo6EndBattleText3::