summaryrefslogtreecommitdiff
path: root/scripts/rockethideout4.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/rockethideout4.asm')
-rwxr-xr-xscripts/rockethideout4.asm423
1 files changed, 309 insertions, 114 deletions
diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm
index d918e4b2..2b3e0e89 100755
--- a/scripts/rockethideout4.asm
+++ b/scripts/rockethideout4.asm
@@ -1,5 +1,4 @@
RocketHideout4Script:
- call RocketHideout4Script_45473
call EnableAutoTextBoxDrawing
ld hl, RocketHideout4TrainerHeader0
ld de, RocketHideout4ScriptPointers
@@ -8,47 +7,44 @@ RocketHideout4Script:
ld [wRocketHideout4CurScript], a
ret
-RocketHideout4Script_45473:
- ld hl, wCurrentMapScriptFlags
- bit 5, [hl]
- res 5, [hl]
- ret z
- CheckEvent EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED
- jr nz, .asm_45496
- CheckBothEventsSet EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0, EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2, 1
- jr z, .asm_4548c
- ld a, $2d
- jr .asm_45498
-.asm_4548c
- ld a, SFX_GO_INSIDE
- call PlaySound
- SetEvent EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED
-.asm_45496
- ld a, $e
-.asm_45498
- ld [wNewTileBlockID], a
- lb bc, 5, 12
- predef_jump ReplaceTileBlock
-
-RocketHideout4Script_454a3:
+RocketHideout4Script_45510:
+ CheckAndResetEvent EVENT_6A0
+ call nz, RocketHideout4Script_45525
xor a
ld [wJoyIgnore], a
+RocketHideout4Script_4551e:
ld [wRocketHideout4CurScript], a
ld [wCurMapScript], a
ret
-RocketHideout4ScriptPointers: ; 454ae (11:54ae)c
- dw CheckFightingMapTrainers
+RocketHideout4Script_45525:
+ ld a, HS_ROCKET_HIDEOUT_4_JAMES
+ call RocketHideout4Script_45756
+ ld a, HS_ROCKET_HIDEOUT_4_JESSIE
+ call RocketHideout4Script_45756
+ ret
+
+RocketHideout4ScriptPointers:
+ dw RocketHideout4Script0
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
dw RocketHideout4Script3
+ dw RocketHideout4Script4
+ dw RocketHideout4Script5
+ dw RocketHideout4Script6
+ dw RocketHideout4Script7
+ dw RocketHideout4Script8
+ dw RocketHideout4Script9
+ dw RocketHideout4Script10
+ dw RocketHideout4Script11
+ dw RocketHideout4Script12
+ dw RocketHideout4Script13
RocketHideout4Script3:
ld a, [wIsInBattle]
cp $ff
- jp z, RocketHideout4Script_454a3
- call UpdateSprites
- ld a, $f0
+ jp z, RocketHideout4Script_45510
+ ld a, $fc
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
ld a, $a
@@ -72,61 +68,295 @@ RocketHideout4Script3:
ld [wCurMapScript], a
ret
+RocketHideout4Script0:
+ CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0
+ call z, RocketHideout4Script_455a5
+ CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3
+ call z, CheckFightingMapTrainers
+ ret
+
+RocketHideout4Script_455a5:
+ ld a, [wYCoord]
+ cp $e
+ ret nz
+ ResetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
+ ld a, [wXCoord]
+ cp $18
+ jr z, .asm_455c2
+ ld a, [wXCoord]
+ cp $19
+ ret nz
+ SetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
+.asm_455c2
+ xor a
+ ld [hJoyHeld], a
+ ld a, $fc
+ ld [wJoyIgnore], a
+ call StopAllMusic
+ ld c, BANK(Music_MeetJessieJames)
+ ld a, MUSIC_MEET_JESSIE_JAMES
+ call PlayMusic
+ call UpdateSprites
+ call Delay3
+ call UpdateSprites
+ call Delay3
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld a, $b
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ xor a
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, HS_ROCKET_HIDEOUT_4_JAMES
+ call RocketHideout4Script_45747
+ ld a, HS_ROCKET_HIDEOUT_4_JESSIE
+ call RocketHideout4Script_45747
+ ld a, $4
+ call RocketHideout4Script_4551e
+ ret
+
+RocketHideout4JessieJamesMovementData_45605:
+ db $4
+RocketHideout4JessieJamesMovementData_45606:
+ db $4
+ db $4
+ db $4
+ db $ff
+
+RocketHideout4Script4:
+ ld de, RocketHideout4JessieJamesMovementData_45605
+ CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
+ jr z, .asm_45617
+ ld de, RocketHideout4JessieJamesMovementData_45606
+.asm_45617
+ ld a, $2
+ ld [hSpriteIndexOrTextID], a
+ call MoveSprite
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, $5
+ call RocketHideout4Script_4551e
+ ret
+
+RocketHideout4Script5:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, [wd730]
+ bit 0, a
+ ret nz
+RocketHideout4Script6:
+ ld a, $2
+ ld [wSpriteStateData1 + 2 * $10 + 1], a
+ ld a, SPRITE_FACING_LEFT
+ ld [wSpriteStateData1 + 2 * $10 + 9], a
+ CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
+ jr z, .asm_4564a
+ ld a, SPRITE_FACING_DOWN
+ ld [wSpriteStateData1 + 2 * $10 + 9], a
+.asm_4564a
+ call Delay3
+ ld a, $fc
+ ld [wJoyIgnore], a
+RocketHideout4Script7:
+ ld de, RocketHideout4JessieJamesMovementData_45606
+ CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
+ jr z, .asm_4565f
+ ld de, RocketHideout4JessieJamesMovementData_45605
+.asm_4565f
+ ld a, $3
+ ld [hSpriteIndexOrTextID], a
+ call MoveSprite
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, $8
+ call RocketHideout4Script_4551e
+ ret
+
+RocketHideout4Script8:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, [wd730]
+ bit 0, a
+ ret nz
+ ld a, $fc
+ ld [wJoyIgnore], a
+RocketHideout4Script9:
+ ld a, $2
+ ld [wSpriteStateData1 + 3 * $10 + 1], a
+ ld a, SPRITE_FACING_DOWN
+ ld [wSpriteStateData1 + 3 * $10 + 9], a
+ CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
+ jr z, .asm_45697
+ ld a, SPRITE_FACING_RIGHT
+ ld [wSpriteStateData1 + 3 * $10 + 9], a
+.asm_45697
+ call Delay3
+ ld a, $c
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+RocketHideout4Script10:
+ ld hl, wd72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, RocketHideout4JessieJamesEndBattleText
+ ld de, RocketHideout4JessieJamesEndBattleText
+ call SaveEndBattleTextPointers
+ ld a, OPP_ROCKET
+ ld [wCurOpponent], a
+ ld a, $2b
+ ld [wTrainerNo], a
+ xor a
+ ld [hJoyHeld], a
+ ld [wJoyIgnore], a
+ SetEvent EVENT_6A0
+ ld a, $b
+ call RocketHideout4Script_4551e
+ ret
+
+RocketHideout4Script11:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, [wIsInBattle]
+ cp $ff
+ jp z, RocketHideout4Script_45510
+ ld a, $2
+ ld [wSpriteStateData1 + 2 * $10 + 1], a
+ ld [wSpriteStateData1 + 3 * $10 + 1], a
+ xor a
+ ld [wSpriteStateData1 + 2 * $10 + 9], a
+ ld [wSpriteStateData1 + 3 * $10 + 9], a
+ ld a, $fc
+ ld [wJoyIgnore], a
+ ld a, $1
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ ld a, $d
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ xor a
+ ld [wDoNotWaitForButtonPressAfterDisplayingText], a
+ call StopAllMusic
+ ld c, BANK(Music_MeetJessieJames)
+ ld a, MUSIC_MEET_JESSIE_JAMES
+ call PlayMusic
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld a, $c
+ call RocketHideout4Script_4551e
+ ret
+
+RocketHideout4Script12:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ call GBFadeOutToBlack
+ ld a, HS_ROCKET_HIDEOUT_4_JAMES
+ call RocketHideout4Script_45756
+ ld a, HS_ROCKET_HIDEOUT_4_JESSIE
+ call RocketHideout4Script_45756
+ call UpdateSprites
+ call Delay3
+ call GBFadeInFromBlack
+ ld a, $d
+ call RocketHideout4Script_4551e
+ ret
+
+RocketHideout4Script13:
+ call PlayDefaultMusic
+ xor a
+ ld [hJoyHeld], a
+ ld [wJoyIgnore], a
+ SetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0
+ ld a, $0
+ call RocketHideout4Script_4551e
+ ret
+
+RocketHideout4Script_45747:
+ ld [wMissableObjectIndex], a
+ predef ShowObject
+ call UpdateSprites
+ call Delay3
+ ret
+
+RocketHideout4Script_45756:
+ ld [wMissableObjectIndex], a
+ predef HideObject
+ ret
+
RocketHideout4TextPointers:
+ dw RocketHideout4Text0
dw RocketHideout4Text1
dw RocketHideout4Text2
dw RocketHideout4Text3
- dw RocketHideout4Text4
dw PickUpItemText
dw PickUpItemText
dw PickUpItemText
dw PickUpItemText
dw PickUpItemText
+ dw RocketHideout4Text9
dw RocketHideout4Text10
+ dw RocketHideout4Text11
+ dw RocketHideout4Text12
RocketHideout4TrainerHeaders:
RocketHideout4TrainerHeader0:
- dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0
- db ($0 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0
- dw RocketHideout4BattleText2 ; TextBeforeBattle
- dw RocketHideout4AfterBattleText2 ; TextAfterBattle
- dw RocketHideout4EndBattleText2 ; TextEndBattle
- dw RocketHideout4EndBattleText2 ; TextEndBattle
-
-RocketHideout4TrainerHeader2:
- dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
- db ($0 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
- dw RocketHideout4BattleText3 ; TextBeforeBattle
- dw RocketHideout4AfterBattleText3 ; TextAfterBattle
- dw RocketHideout4EndBattleText3 ; TextEndBattle
- dw RocketHideout4EndBattleText3 ; TextEndBattle
-
-RocketHideout4TrainerHeader3:
dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3
- db ($1 << 4) ; trainer's view range
+ db ($1 << 4)
dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3
- dw RocketHideout4BattleText4 ; TextBeforeBattle
- dw RocketHideout4AfterBattleText4 ; TextAfterBattle
- dw RocketHideout4EndBattleText4 ; TextEndBattle
- dw RocketHideout4EndBattleText4 ; TextEndBattle
-
+ dw RocketHideout4Trainer0BeforeText
+ dw RocketHideout4Trainer0AfterText
+ dw RocketHideout4Trainer0EndBattleText
+ dw RocketHideout4Trainer0EndBattleText
db $ff
RocketHideout4Text1:
+RocketHideout4Text2:
+ db "@"
+
+RocketHideout4Text10:
+ TX_FAR _RocketHideoutJessieJamesText1
+ TX_ASM
+ ld c, 10
+ call DelayFrames
+ ld a, $8
+ ld [wPlayerMovingDirection], a
+ ld a, $0
+ ld [wEmotionBubbleSpriteIndex], a
+ ld a, $0
+ ld [wWhichEmotionBubble], a
+ predef EmotionBubble
+ ld c, 20
+ call DelayFrames
+ jp TextScriptEnd
+
+RocketHideout4Text11:
+ TX_FAR _RocketHideoutJessieJamesText2
+ db "@"
+
+RocketHideout4JessieJamesEndBattleText:
+ TX_FAR _RocketHideoutJessieJamesText3
+ db "@"
+
+RocketHideout4Text12:
+ TX_FAR _RocketHideoutJessieJamesText4
+ TX_ASM
+ ld c, 64
+ call DelayFrames
+ jp TextScriptEnd
+
+RocketHideout4Text0:
TX_ASM
CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
- jp nz, .asm_545571
- ld hl, RocketHideout4Text_4557a
+ jp nz, .asm_457fb
+ ld hl, RocketHideout4Text_45804
call PrintText
ld hl, wd72d
set 6, [hl]
set 7, [hl]
- ld hl, RocketHideout4Text_4557f
- ld de, RocketHideout4Text_4557f
+ ld hl, RocketHideout4Text_45809
+ ld de, RocketHideout4Text_45809
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndexOrTextID]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
@@ -135,87 +365,52 @@ RocketHideout4Text1:
ld a, $3
ld [wRocketHideout4CurScript], a
ld [wCurMapScript], a
- jr .asm_209f0
-.asm_545571
- ld hl, RocketHideout4Text10
+ jr .asm_45801
+
+.asm_457fb
+ ld hl, RocketHideout4Text9
call PrintText
-.asm_209f0
+.asm_45801
jp TextScriptEnd
-RocketHideout4Text_4557a:
+RocketHideout4Text_45804:
TX_FAR _RocketHideout4Text_4557a
db "@"
-RocketHideout4Text_4557f:
+RocketHideout4Text_45809:
TX_FAR _RocketHideout4Text_4557f
db "@"
-RocketHideout4Text10:
+RocketHideout4Text9:
TX_FAR _RocketHideout4Text_45584
db "@"
-RocketHideout4Text2:
- TX_ASM
- ld hl, RocketHideout4TrainerHeader0
- call TalkToTrainer
- jp TextScriptEnd
-
-RocketHideout4BattleText2:
- TX_FAR _RocketHideout4BattleText2
- db "@"
-
-RocketHideout4EndBattleText2:
- TX_FAR _RocketHideout4EndBattleText2
- db "@"
-
-RocketHideout4AfterBattleText2:
- TX_FAR _RocketHide4AfterBattleText2
- db "@"
-
RocketHideout4Text3:
TX_ASM
- ld hl, RocketHideout4TrainerHeader2
- call TalkToTrainer
- jp TextScriptEnd
-
-RocketHideout4BattleText3:
- TX_FAR _RocketHideout4BattleText3
- db "@"
-
-RocketHideout4EndBattleText3:
- TX_FAR _RocketHideout4EndBattleText3
- db "@"
-
-RocketHideout4AfterBattleText3:
- TX_FAR _RocketHide4AfterBattleText3
- db "@"
-
-RocketHideout4Text4:
- TX_ASM
- ld hl, RocketHideout4TrainerHeader3
+ ld hl, RocketHideout4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
-RocketHideout4BattleText4:
+RocketHideout4Trainer0BeforeText:
TX_FAR _RocketHideout4BattleText4
db "@"
-RocketHideout4EndBattleText4:
+RocketHideout4Trainer0EndBattleText:
TX_FAR _RocketHideout4EndBattleText4
- db "@"
-
-RocketHideout4AfterBattleText4:
+ TX_BUTTON_SOUND
TX_ASM
- ld hl, RocketHideout4Text_455ec
- call PrintText
- CheckAndSetEvent EVENT_ROCKET_DROPPED_LIFT_KEY
- jr nz, .asm_455e9
+ SetEvent EVENT_ROCKET_DROPPED_LIFT_KEY
ld a, HS_ROCKET_HIDEOUT_4_ITEM_5
ld [wMissableObjectIndex], a
predef ShowObject
-.asm_455e9
jp TextScriptEnd
-RocketHideout4Text_455ec:
+RocketHideout4Trainer0AfterText:
+ TX_ASM
+ ld hl, RocketHideout4Text_45844
+ call PrintText
+ jp TextScriptEnd
+
+RocketHideout4Text_45844:
TX_FAR _RocketHideout4Text_455ec
db "@"