Refactor Giovanni's Room, restore Rocket Hideout B1F

With the way KEP is shaping up, the Rocket Hideout can easily stay with little issue. I don't expect it to be a problem at all. Therefore, in the interest of keeping Lavender Tower's progression the same, it's being restored. I do expect some Lavender Tower floors to be nommed, though.

I expect Silph to also be salvageable but I also really hate Silph.

Oh, also, the Game Corner guard has been buffed. He sucks. They call that a guard??
This commit is contained in:
Llinos Evans 2023-05-02 02:48:41 +01:00
parent d176c80055
commit abaff60797
22 changed files with 523 additions and 301 deletions

View file

@ -15,7 +15,7 @@ CeladonGameCornerScript_48bcf:
ldh a, [hRandomAdd]
cp $7
jr nc, .asm_48be2
ld a, $7 ; no longer makes the lucky machine a nonexistent one
ld a, $8
.asm_48be2
srl a
srl a
@ -152,7 +152,7 @@ CeladonGameCornerText2:
xor a
ldh [hMoney], a
ldh [hMoney + 2], a
ld a, $80
ld a, $10
ldh [hMoney + 1], a
call HasEnoughMoney
jr nc, .asm_48cdb
@ -162,7 +162,7 @@ CeladonGameCornerText2:
xor a
ldh [hMoney], a
ldh [hMoney + 2], a
ld a, $80
ld a, $10
ldh [hMoney + 1], a
ld hl, hMoney + 2
ld de, wPlayerMoney + 2
@ -170,13 +170,12 @@ CeladonGameCornerText2:
predef SubBCDPredef
xor a
ldh [hUnusedCoinsByte], a
ldh [hCoins + 1], a
ldh [hCoins + 2], a
ld a, $05
ldh [hCoins], a
ld de, wPlayerCoins + 2
ld hl, hCoins + 2
ld c, $3
ld a, $50
ldh [hCoins + 1], a
ld de, wPlayerCoins + 1
ld hl, hCoins + 1
ld c, $2
predef AddBCDPredef
call CeladonGameCornerScript_48f1e
ld hl, CeladonGameCornerText_48d27

170
scripts/GiovannisRoom.asm Normal file
View file

@ -0,0 +1,170 @@
GiovannisRoom_Script:
call EnableAutoTextBoxDrawing
ld hl, GiovannisRoomTrainerHeaders
ld de, RocketHideoutB1F_ScriptPointers
ld a, [wRocketHideoutB1FCurScript]
call ExecuteCurMapScriptInTable
ld [wRocketHideoutB1FCurScript], a
ret
GiovannisRoom_ScriptPointers:
dw GiovannisRoomScript0
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
dw GiovannisRoomScript4
GiovannisRoomScript0:
ld a, [wYCoord]
ld b, a
ld a, [wXCoord]
ld c, a
ld hl, GiovannisRoomArrowTilePlayerMovement
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
GiovannisRoomArrowTilePlayerMovement:
map_coord_movement 12, 16, GiovannisRoomArrowMovement1
map_coord_movement 14, 15, GiovannisRoomArrowMovement2
map_coord_movement 10, 15, GiovannisRoomArrowMovement3
map_coord_movement 11, 14, GiovannisRoomArrowMovement4
map_coord_movement 13, 8, GiovannisRoomArrowMovement5
map_coord_movement 15, 8, GiovannisRoomArrowMovement7
map_coord_movement 12, 9, GiovannisRoomArrowMovement8
map_coord_movement 14, 9, GiovannisRoomArrowMovement9
map_coord_movement 13, 10, GiovannisRoomArrowMovement10
map_coord_movement 15, 10, GiovannisRoomArrowMovement11
map_coord_movement 12, 11, GiovannisRoomArrowMovement12
map_coord_movement 14, 11, GiovannisRoomArrowMovement13
map_coord_movement 14, 5, GiovannisRoomArrowMovement14
db -1 ; end
GiovannisRoomArrowMovement1:
db D_UP, 2
db -1 ; end
GiovannisRoomArrowMovement2:
db D_UP, 9
db D_LEFT, 4
db -1 ; end
GiovannisRoomArrowMovement3:
db D_UP, 9
db -1 ; end
GiovannisRoomArrowMovement4:
db D_RIGHT, 2
db -1 ; end
GiovannisRoomArrowMovement5:
db D_RIGHT, 3
db D_DOWN, 2
db D_RIGHT, 2
db -1 ; end
GiovannisRoomArrowMovement7:
db D_RIGHT, 3
db D_DOWN, 2
db -1 ; end
GiovannisRoomArrowMovement8:
db D_UP, 1
db D_RIGHT, 2
db -1 ; end
GiovannisRoomArrowMovement9:
db D_UP, 1
db -1 ; end
GiovannisRoomArrowMovement10:
db D_RIGHT, 5
db -1 ; end
GiovannisRoomArrowMovement11:
db D_RIGHT, 3
db -1 ; end
GiovannisRoomArrowMovement12:
db D_UP, 1
db D_RIGHT, 2
db D_UP, 2
db -1 ; end
GiovannisRoomArrowMovement13:
db D_UP, 3
db -1 ; end
GiovannisRoomArrowMovement14:
db D_RIGHT, 4
db -1 ; end
GiovannisRoomScript4:
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
GiovannisRoom_TextPointers:
dw GiovannisRoomText1
dw GiovannisRoomText2
dw GiovannisRoomText3
dw GiovannisRoomText4
dw PickUpItemText
dw PickUpItemText
dw GiovannisRoomText7
GiovannisRoomTrainerHeaders:
def_trainers
GiovannisRoomTrainerHeader0:
trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0, 3, GiovannisRoomBattleText2, GiovannisRoomEndBattleText2, GiovannisRoomAfterBattleTxt2
db -1 ; end
GiovannisRoomText1:
text_far _GiovannisRoomText1
text_end
GiovannisRoomText2:
text_far _GiovannisRoomText2
text_end
GiovannisRoomText3:
text_far _GiovannisRoomText3
text_end
GiovannisRoomText4:
text_far _GiovannisRoomText4
text_end
GiovannisRoomText7:
text_asm
ld hl, GiovannisRoomTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
GiovannisRoomBattleText2:
text_far _GiovannisRoomBattleText2
text_end
GiovannisRoomEndBattleText2:
text_far _GiovannisRoomEndBattleText2
text_end
GiovannisRoomAfterBattleTxt2:
text_far _GiovannisRoomAfterBattleTxt2
text_end

View file

@ -1,5 +1,5 @@
RocketHideoutB1F_Script:
;call RocketHideout1Script_44be0
call RocketHideout1Script_44be0
call EnableAutoTextBoxDrawing
ld hl, RocketHideout1TrainerHeaders
ld de, RocketHideoutB1F_ScriptPointers
@ -8,186 +8,97 @@ RocketHideoutB1F_Script:
ld [wRocketHideoutB1FCurScript], a
ret
;RocketHideout1Script_44be0:
; ld hl, wCurrentMapScriptFlags
; bit 5, [hl]
; res 5, [hl]
; ret z
; CheckEvent EVENT_677
; jr nz, .asm_44c01
; CheckEventReuseA EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4
; jr nz, .asm_44bf7
; ld a, $54
; jr .asm_44c03
;.asm_44bf7
; ld a, SFX_GO_INSIDE
; call PlaySound
; CheckEventHL EVENT_677
;.asm_44c01
; ld a, $e
;.asm_44c03
; ld [wNewTileBlockID], a
; lb bc, 8, 12
; predef_jump ReplaceTileBlock
RocketHideout1Script_44be0:
ld hl, wCurrentMapScriptFlags
bit 5, [hl]
res 5, [hl]
ret z
CheckEvent EVENT_677
jr nz, .asm_44c01
CheckEventReuseA EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4
jr nz, .asm_44bf7
ld a, $54
jr .asm_44c03
.asm_44bf7
ld a, SFX_GO_INSIDE
call PlaySound
CheckEventHL EVENT_677
.asm_44c01
ld a, $e
.asm_44c03
ld [wNewTileBlockID], a
lb bc, 8, 12
predef_jump ReplaceTileBlock
RocketHideoutB1F_ScriptPointers:
dw RocketHideout1Script0
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
dw RocketHideout1Script4
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
map_coord_movement 14, 5, RocketHideout1ArrowMovement14
db -1 ; end
RocketHideout1ArrowMovement1:
db D_UP, 2
db -1 ; end
RocketHideout1ArrowMovement2:
db D_UP, 9
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, 3
db D_DOWN, 2
db D_RIGHT, 2
db -1 ; end
RocketHideout1ArrowMovement7:
db D_RIGHT, 3
db D_DOWN, 2
db -1 ; end
RocketHideout1ArrowMovement8:
db D_UP, 1
db D_RIGHT, 2
db -1 ; end
RocketHideout1ArrowMovement9:
db D_UP, 1
db -1 ; end
RocketHideout1ArrowMovement10:
db D_RIGHT, 5
db -1 ; end
RocketHideout1ArrowMovement11:
db D_RIGHT, 3
db -1 ; end
RocketHideout1ArrowMovement12:
db D_UP, 1
db D_RIGHT, 2
db D_UP, 2
db -1 ; end
RocketHideout1ArrowMovement13:
db D_UP, 3
db -1 ; end
RocketHideout1ArrowMovement14:
db D_RIGHT, 4
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
dw RocketHideout1Text2
dw RocketHideout1Text3
dw RocketHideout1Text4
dw RocketHideout1Text5
dw PickUpItemText
dw PickUpItemText
dw RocketHideout1Text7
RocketHideout1TrainerHeaders:
def_trainers
RocketHideout1TrainerHeader0:
trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0, 3, RocketHideout1BattleText2, RocketHideout1EndBattleText2, RocketHideout1AfterBattleTxt2
;RocketHideout1TrainerHeader1:
; trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_1, 2, RocketHideout1BattleText3, RocketHideout1EndBattleText3, RocketHideout1AfterBattleTxt3
;RocketHideout1TrainerHeader2:
; trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2, 2, RocketHideout1BattleText4, RocketHideout1EndBattleText4, RocketHideout1AfterBattleTxt4
;RocketHideout1TrainerHeader3:
; trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3, 3, RocketHideout1BattleText5, RocketHideout1EndBattleText5, RocketHideout1AfterBattleTxt5
;RocketHideout1TrainerHeader4:
; trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4, 3, RocketHideout1BattleText6, RocketHideout1EndBattleText6, RocketHideout1AfterBattleTxt6
RocketHideout1TrainerHeader1:
trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_1, 2, RocketHideout1BattleText3, RocketHideout1EndBattleText3, RocketHideout1AfterBattleTxt3
RocketHideout1TrainerHeader2:
trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2, 2, RocketHideout1BattleText4, RocketHideout1EndBattleText4, RocketHideout1AfterBattleTxt4
RocketHideout1TrainerHeader3:
trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3, 3, RocketHideout1BattleText5, RocketHideout1EndBattleText5, RocketHideout1AfterBattleTxt5
RocketHideout1TrainerHeader4:
trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4, 3, RocketHideout1BattleText6, RocketHideout1EndBattleText6, RocketHideout1AfterBattleTxt6
db -1 ; end
RocketHideout1Text1:
text_far _RocketHideout1Text1
text_end
RocketHideout1Text2:
text_far _RocketHideout1Text2
text_end
RocketHideout1Text3:
text_far _RocketHideout1Text3
text_end
RocketHideout1Text4:
text_far _RocketHideout1Text4
text_end
RocketHideout1Text7:
text_asm
ld hl, RocketHideout1TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
RocketHideout1Text2:
text_asm
ld hl, RocketHideout1TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
RocketHideout1Text3:
text_asm
ld hl, RocketHideout1TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
RocketHideout1Text4:
text_asm
ld hl, RocketHideout1TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
RocketHideout1Text5:
text_asm
ld hl, RocketHideout1TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
RocketHideout1EndBattleText6:
text_far _RocketHideout1EndBattleText6
text_asm
SetEvent EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4
ld hl, RocketHideout1Text_44c9f
ret
RocketHideout1Text_44c9f:
text_promptbutton
text_end
RocketHideout1BattleText2:
text_far _RocketHideout1BattleText2
text_end
@ -198,4 +109,48 @@ RocketHideout1EndBattleText2:
RocketHideout1AfterBattleTxt2:
text_far _RocketHideout1AfterBattleTxt2
text_end
text_end
RocketHideout1BattleText3:
text_far _RocketHideout1BattleText3
text_end
RocketHideout1EndBattleText3:
text_far _RocketHideout1EndBattleText3
text_end
RocketHideout1AfterBattleTxt3:
text_far _RocketHideout1AfterBattleTxt3
text_end
RocketHideout1BattleText4:
text_far _RocketHideout1BattleText4
text_end
RocketHideout1EndBattleText4:
text_far _RocketHideout1EndBattleText4
text_end
RocketHideout1AfterBattleTxt4:
text_far _RocketHideout1AfterBattleTxt4
text_end
RocketHideout1BattleText5:
text_far _RocketHideout1BattleText5
text_end
RocketHideout1EndBattleText5:
text_far _RocketHideout1EndBattleText5
text_end
RocketHideout1AfterBattleTxt5:
text_far _RocketHideout1AfterBattleTxt5
text_end
RocketHideout1BattleText6:
text_far _RocketHideout1BattleText6
text_end
RocketHideout1AfterBattleTxt6:
text_far _RocketHideout1AfterBattleTxt6
text_end