From 91344e05e86eaef47e70612a8bd7a89302ab400e Mon Sep 17 00:00:00 2001 From: MementoMartha Date: Sat, 1 Oct 2022 11:38:00 +0100 Subject: [PATCH] Rocket hideout improvements/changes --- data/maps/hide_show_data.asm | 2 +- data/maps/objects/RocketHideoutB1F.asm | 6 +- data/maps/objects/ViridianCity.asm | 1 + data/maps/objects/ViridianGym.asm | 13 ++- maps/RocketHideoutB1F.blk | 2 +- maps/ViridianGym.blk | 2 +- scripts/RocketHideoutB1F.asm | 118 ++++++++++++++++++++++--- scripts/ViridianCity.asm | 42 +++++++++ scripts/ViridianGym.asm | 11 +-- text/PalletTown.asm | 6 +- text/RocketHideoutB1F.asm | 14 +-- text/ViridianCity.asm | 7 ++ text/ViridianGym.asm | 2 +- 13 files changed, 182 insertions(+), 44 deletions(-) diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm index 027bccec..0cc1576d 100644 --- a/data/maps/hide_show_data.asm +++ b/data/maps/hide_show_data.asm @@ -431,8 +431,8 @@ VictoryRoad3FHS: db VICTORY_ROAD_3F, $06, SHOW db VICTORY_ROAD_3F, $0A, SHOW RocketHideoutB1FHS: + db ROCKET_HIDEOUT_B1F, $05, SHOW db ROCKET_HIDEOUT_B1F, $06, SHOW - db ROCKET_HIDEOUT_B1F, $07, SHOW RocketHideoutB2FHS: db ROCKET_HIDEOUT_B2F, $02, SHOW db ROCKET_HIDEOUT_B2F, $03, SHOW diff --git a/data/maps/objects/RocketHideoutB1F.asm b/data/maps/objects/RocketHideoutB1F.asm index 74c86a38..b83a585e 100644 --- a/data/maps/objects/RocketHideoutB1F.asm +++ b/data/maps/objects/RocketHideoutB1F.asm @@ -2,7 +2,7 @@ RocketHideoutB1F_Object: db $2e ; border block def_warp_events - warp_event 5, 4, VIRIDIAN_GYM, 5 + warp_event 5, 4, VIRIDIAN_GYM, 4 def_bg_events @@ -11,7 +11,7 @@ RocketHideoutB1F_Object: object_event 17, 8, SPRITE_PAPER, STAY, RIGHT, 2 object_event 17, 15, SPRITE_PAPER, STAY, DOWN, 3 object_event 8, 16, SPRITE_PAPER, STAY, RIGHT, 4 - object_event 17, 9, SPRITE_POKE_BALL, STAY, NONE, 6, TM_EARTHQUAKE ; FIXME: doesn't work for some reason - ; object_event 5, 22, SPRITE_POKE_BALL, STAY, NONE, 7, PROTECTOR needs implementing + object_event 17, 22, SPRITE_POKE_BALL, STAY, NONE, 5, TM_EARTHQUAKE + object_event 7, 22, SPRITE_POKE_BALL, STAY, NONE, 6, PROTECTOR def_warps_to ROCKET_HIDEOUT_B1F diff --git a/data/maps/objects/ViridianCity.asm b/data/maps/objects/ViridianCity.asm index 56bf7390..de1c351e 100644 --- a/data/maps/objects/ViridianCity.asm +++ b/data/maps/objects/ViridianCity.asm @@ -7,6 +7,7 @@ ViridianCity_Object: warp_event 21, 15, VIRIDIAN_SCHOOL_HOUSE, 1 warp_event 21, 9, VIRIDIAN_NICKNAME_HOUSE, 1 warp_event 32, 7, VIRIDIAN_GYM, 1 + warp_event 29, 3, VIRIDIAN_GYM, 3 def_bg_events bg_event 17, 17, 8 ; ViridianCityText8 diff --git a/data/maps/objects/ViridianGym.asm b/data/maps/objects/ViridianGym.asm index 921d2d93..21ed7802 100644 --- a/data/maps/objects/ViridianGym.asm +++ b/data/maps/objects/ViridianGym.asm @@ -4,23 +4,22 @@ ViridianGym_Object: def_warp_events warp_event 16, 17, LAST_MAP, 5 ; front door warp_event 17, 17, LAST_MAP, 5 ; front door - warp_event 0, 0, LAST_MAP, 5 ; back door - warp_event 1, 0, LAST_MAP, 5 ; back door - warp_event 2, 0, ROCKET_HIDEOUT_B1F, 1 ; stairs + warp_event 1, 0, LAST_MAP, 6 ; back door + warp_event 4, 2, ROCKET_HIDEOUT_B1F, 1 ; stairs def_bg_events def_object_events - object_event 2, 1, SPRITE_GIOVANNI, STAY, DOWN, 1, OPP_GIOVANNI, 3 + object_event 4, 3, SPRITE_GIOVANNI, STAY, DOWN, 1, OPP_GIOVANNI, 3 object_event 12, 7, SPRITE_COOLTRAINER_M, STAY, DOWN, 2, OPP_COOLTRAINER_M, 9 object_event 11, 11, SPRITE_HIKER, STAY, UP, 3, OPP_BLACKBELT, 6 object_event 10, 7, SPRITE_ROCKER, STAY, DOWN, 4, OPP_TAMER, 3 - object_event 3, 7, SPRITE_HIKER, STAY, LEFT, 5, OPP_BLACKBELT, 7 + object_event 7, 10, SPRITE_HIKER, STAY, LEFT, 5, OPP_BLACKBELT, 7 object_event 13, 5, SPRITE_COOLTRAINER_M, STAY, RIGHT, 6, OPP_COOLTRAINER_M, 10 - object_event 10, 1, SPRITE_HIKER, STAY, DOWN, 7, OPP_BLACKBELT, 8 + object_event 9, 1, SPRITE_HIKER, STAY, DOWN, 7, OPP_BLACKBELT, 8 object_event 2, 16, SPRITE_ROCKER, STAY, RIGHT, 8, OPP_TAMER, 4 - object_event 6, 5, SPRITE_COOLTRAINER_M, STAY, DOWN, 9, OPP_COOLTRAINER_M, 1 + object_event 4, 8, SPRITE_COOLTRAINER_M, STAY, DOWN, 9, OPP_COOLTRAINER_M, 1 object_event 16, 15, SPRITE_GYM_GUIDE, STAY, DOWN, 10 ; person object_event 16, 9, SPRITE_POKE_BALL, STAY, NONE, 11, REVIVE diff --git a/maps/RocketHideoutB1F.blk b/maps/RocketHideoutB1F.blk index 4727a9be..9f983964 100644 --- a/maps/RocketHideoutB1F.blk +++ b/maps/RocketHideoutB1F.blk @@ -1 +1 @@ -............@AAAAAAAB..DoF..@*+B ..D F &MGF..D F 'F..D F 9..D F'..HwEJ55..DF5F..D,^F*+AKB..DGGqF..CS F..HIIJIIIIJ. \ No newline at end of file +............@AAAAAAAB..DoF..@*+B ..D F GF..D F ''F..D F 59..D F'..HwEJ55..DF555..D,^F*+AAB..DGGqF..CS F..HIIJIIIIJ. \ No newline at end of file diff --git a/maps/ViridianGym.blk b/maps/ViridianGym.blk index bfa3fa3e..ea4a538b 100644 --- a/maps/ViridianGym.blk +++ b/maps/ViridianGym.blk @@ -1 +1 @@ -Vp_]KoVcFF^\RFNSTULa`LUHH[L@DLLML,ULQ`G,XHHHZbCEWFFFY21@AB \ No newline at end of file +KII_]KMp[qWFF^\KUUKqLRFFFPHH[L@KMLaDKQ`G,XHHHZbCEWFFFY21@AB \ No newline at end of file diff --git a/scripts/RocketHideoutB1F.asm b/scripts/RocketHideoutB1F.asm index 04f87a7b..b832b9c1 100644 --- a/scripts/RocketHideoutB1F.asm +++ b/scripts/RocketHideoutB1F.asm @@ -1,11 +1,11 @@ RocketHideoutB1F_Script: ;all trainer references are commented out. ;call RocketHideout1Script_44be0 call EnableAutoTextBoxDrawing - ;ld hl, RocketHideout1TrainerHeaders - ;ld de, RocketHideoutB1F_ScriptPointers - ;ld a, [wRocketHideoutB1FCurScript] - ;call ExecuteCurMapScriptInTable - ;ld [wRocketHideoutB1FCurScript], a + ld hl, RocketHideout1TrainerHeaders + ld de, RocketHideoutB1F_ScriptPointers + ld a, [wRocketHideoutB1FCurScript] + call ExecuteCurMapScriptInTable + ld [wRocketHideoutB1FCurScript], a ret ;RocketHideout1Script_44be0: @@ -30,10 +30,106 @@ RocketHideoutB1F_Script: ;all trainer references are commented out. ; lb bc, 8, 12 ; predef_jump ReplaceTileBlock -;RocketHideoutB1F_ScriptPointers: - ;dw CheckFightingMapTrainers - ;dw DisplayEnemyTrainerTextAndStartBattle - ;dw EndTrainerBattle +RocketHideoutB1F_ScriptPointers: + dw RocketHideout1Script0 + dw RocketHideout1Script4 + dw DisplayEnemyTrainerTextAndStartBattle + dw EndTrainerBattle + +RocketHideout1Script0: + ld a, [wYCoord] + ld b, a + ld a, [wXCoord] + ld c, a + ld hl, RocketHideout1ArrowTilePlayerMovement + call DecodeArrowMovementRLE + cp $ff + jp z, CheckFightingMapTrainers + ld hl, wd736 + set 7, [hl] + call StartSimulatingJoypadStates + ld a, SFX_ARROW_TILES + call PlaySound + ld a, $ff + ld [wJoyIgnore], a + ld a, $3 + ld [wCurMapScript], a + ret + +RocketHideout1ArrowTilePlayerMovement: + map_coord_movement 12, 16, RocketHideout1ArrowMovement1 + map_coord_movement 14, 15, RocketHideout1ArrowMovement2 + map_coord_movement 10, 15, RocketHideout1ArrowMovement3 + map_coord_movement 11, 14, RocketHideout1ArrowMovement4 + map_coord_movement 13, 8, RocketHideout1ArrowMovement5 + map_coord_movement 15, 8, RocketHideout1ArrowMovement7 + map_coord_movement 12, 9, RocketHideout1ArrowMovement8 + map_coord_movement 14, 9, RocketHideout1ArrowMovement9 + map_coord_movement 13, 10, RocketHideout1ArrowMovement10 + map_coord_movement 15, 10, RocketHideout1ArrowMovement11 + map_coord_movement 12, 11, RocketHideout1ArrowMovement12 + map_coord_movement 14, 11, RocketHideout1ArrowMovement13 + db -1 ; end + +RocketHideout1ArrowMovement1: + db D_UP, 2 + db -1 ; end + +RocketHideout1ArrowMovement2: + db D_LEFT, 4 + db -1 ; end + +RocketHideout1ArrowMovement3: + db D_UP, 9 + db -1 ; end + +RocketHideout1ArrowMovement4: + db D_RIGHT, 2 + db -1 ; end + +RocketHideout1ArrowMovement5: + db D_RIGHT, 2 + db -1 ; end + +RocketHideout1ArrowMovement7: + db D_DOWN, 2 + db -1 ; end + +RocketHideout1ArrowMovement8: + db D_RIGHT, 2 + db -1 ; end + +RocketHideout1ArrowMovement9: + db D_UP, 1 + db -1 ; end + +RocketHideout1ArrowMovement10: + db D_RIGHT, 2 + db -1 ; end + +RocketHideout1ArrowMovement11: + db D_RIGHT, 3 + db -1 ; end + +RocketHideout1ArrowMovement12: + db D_UP, 2 + db -1 ; end + +RocketHideout1ArrowMovement13: + db D_UP, 2 + db -1 ; end + +RocketHideout1Script4: + ld a, [wSimulatedJoypadStatesIndex] + and a + jp nz, LoadSpinnerArrowTiles + xor a + ld [wJoyIgnore], a + ld hl, wd736 + res 7, [hl] + ld a, $0 + ld [wCurMapScript], a + ret RocketHideoutB1F_TextPointers: dw RocketHideout1Text1 @@ -43,8 +139,8 @@ RocketHideoutB1F_TextPointers: dw PickUpItemText dw PickUpItemText -;RocketHideout1TrainerHeaders: -; def_trainers +RocketHideout1TrainerHeaders: + def_trainers ;RocketHideout1TrainerHeader0: ; trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0, 3, RocketHideout1BattleText2, RocketHideout1EndBattleText2, RocketHideout1AfterBattleTxt2 ;RocketHideout1TrainerHeader1: diff --git a/scripts/ViridianCity.asm b/scripts/ViridianCity.asm index 532451c9..d294468f 100644 --- a/scripts/ViridianCity.asm +++ b/scripts/ViridianCity.asm @@ -12,6 +12,7 @@ ViridianCity_ScriptPointers: ViridianCityScript0: call ViridianCityScript_1900b + call ViridianCityScript_backdoor jp ViridianCityScript_1903d ViridianCityScript_1900b: @@ -113,6 +114,31 @@ ViridianCityScript3: ld [wViridianCityCurScript], a ret +ViridianCityScript_backdoor: + CheckEvent EVENT_VIRIDIAN_GYM_OPEN + ret nz + ld a, [wObtainedBadges] + cp ~(1 << BIT_EARTHBADGE) + jr nz, .gym_closed + SetEvent EVENT_VIRIDIAN_GYM_OPEN + ret +.gym_closed + ld a, [wYCoord] + cp 3 + ret nz + ld a, [wXCoord] + cp 29 + ret nz + ld a, $10 + ldh [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ldh [hJoyHeld], a + call ViridianCityScript_backdoor2 + ld a, $3 + ld [wViridianCityCurScript], a + ret + ViridianCityScript_190cf: call StartSimulatingJoypadStates ld a, $1 @@ -124,6 +150,17 @@ ViridianCityScript_190cf: ld [wJoyIgnore], a ret +ViridianCityScript_backdoor2: + call StartSimulatingJoypadStates + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_UP + ld [wSimulatedJoypadStatesEnd], a + xor a + ld [wSpritePlayerStateData1FacingDirection], a + ld [wJoyIgnore], a + ret + ViridianCity_TextPointers: dw ViridianCityText1 dw ViridianCityText2 @@ -140,6 +177,7 @@ ViridianCity_TextPointers: dw ViridianCityText13 dw ViridianCityText14 dw ViridianCityText15 + dw ViridianCityText16 ViridianCityText1: text_far _ViridianCityText1 @@ -325,3 +363,7 @@ ViridianCityText13: ViridianCityText14: text_far _ViridianCityText14 text_end + +ViridianCityText16: + text_far _ViridianCityText16 + text_end diff --git a/scripts/ViridianGym.asm b/scripts/ViridianGym.asm index 0b90383c..bd214c68 100644 --- a/scripts/ViridianGym.asm +++ b/scripts/ViridianGym.asm @@ -54,9 +54,8 @@ ViridianGymArrowTilePlayerMovement: map_coord_movement 19, 11, ViridianGymArrowMovement1 map_coord_movement 19, 1, ViridianGymArrowMovement2 map_coord_movement 18, 2, ViridianGymArrowMovement3 - map_coord_movement 11, 2, ViridianGymArrowMovement4 + map_coord_movement 10, 2, ViridianGymArrowMovement4 map_coord_movement 16, 10, ViridianGymArrowMovement5 - map_coord_movement 4, 6, ViridianGymArrowMovement6 map_coord_movement 5, 13, ViridianGymArrowMovement7 map_coord_movement 4, 14, ViridianGymArrowMovement8 map_coord_movement 0, 15, ViridianGymArrowMovement9 @@ -78,17 +77,13 @@ ViridianGymArrowMovement3: db -1 ; end ViridianGymArrowMovement4: - db D_RIGHT, 6 + db D_RIGHT, 7 db -1 ; end ViridianGymArrowMovement5: db D_DOWN, 2 db -1 ; end -ViridianGymArrowMovement6: - db D_DOWN, 7 - db -1 ; end - ViridianGymArrowMovement7: db D_RIGHT, 8 db -1 ; end @@ -98,7 +93,7 @@ ViridianGymArrowMovement8: db -1 ; end ViridianGymArrowMovement9: - db D_UP, 8 + db D_UP, 4 db -1 ; end ViridianGymArrowMovement10: diff --git a/text/PalletTown.asm b/text/PalletTown.asm index 15a81da1..caaed3ac 100644 --- a/text/PalletTown.asm +++ b/text/PalletTown.asm @@ -4,11 +4,7 @@ _OakAppearsText:: text_end _OakWalksUpText:: - text "OAK: Phew. Unlike" - line "you, I can't run" - cont "by pressing B..." - - text "It's unsafe!" + text "OAK: It's unsafe!" line "Wild #MON live" cont "in tall grass!" diff --git a/text/RocketHideoutB1F.asm b/text/RocketHideoutB1F.asm index 4224aa7c..88b42fe2 100644 --- a/text/RocketHideoutB1F.asm +++ b/text/RocketHideoutB1F.asm @@ -30,9 +30,11 @@ _RocketHideout1Text1:: line "any evolution" cont "currently" cont "understood in" - cont "KANTO. However," - cont "with force, RHYDON" - cont "can evolve" + cont "KANTO." + + para "However, with" + cont "enough force," + cont "RHYDON can evolve" cont "successfully." para "It unfortunately" @@ -72,10 +74,10 @@ _RocketHideout1Text2:: done _RocketHideout1Text3:: - text "Financial" + text "Various financial" line "documents are" - cont "scattered" - cont "around the desk." + cont "scattered on" + cont "the floor..." para "PROTECTOR: ¥3,000" para "GUARD SPEC: ¥4,200" diff --git a/text/ViridianCity.asm b/text/ViridianCity.asm index 8ee81348..b692b352 100644 --- a/text/ViridianCity.asm +++ b/text/ViridianCity.asm @@ -179,3 +179,10 @@ _ViridianCityText14:: text "The GYM's doors" line "are locked..." done + +_ViridianCityText16:: + text "The GYM has a" + line "back door?!" + + para "It's locked..." + done diff --git a/text/ViridianGym.asm b/text/ViridianGym.asm index 7dc63189..d160374a 100644 --- a/text/ViridianGym.asm +++ b/text/ViridianGym.asm @@ -3,7 +3,7 @@ _GiovanniPreBattleText:: line "my hideout!" para "Once again, you" - line "thrwart me!" + line "thwart me!" cont "So be it! This" cont "time, I'm not" cont "holding back!"