summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/rockethideout4.asm428
1 files changed, 312 insertions, 116 deletions
diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm
index 815f6090..75cb7912 100755
--- a/scripts/rockethideout4.asm
+++ b/scripts/rockethideout4.asm
@@ -1,5 +1,4 @@
RocketHideout4Script: ; 4545d (11:545d)
- call RocketHideout4Script_45473
call EnableAutoTextBoxDrawing
ld hl, RocketHideout4TrainerHeader0
ld de, RocketHideout4ScriptPointers
@@ -8,47 +7,44 @@ RocketHideout4Script: ; 4545d (11:545d)
ld [W_ROCKETHIDEOUT4CURSCRIPT], a
ret
-RocketHideout4Script_45473: ; 45473 (11:5473)
- ld hl, wd126
- 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: ; 454a3 (11:54a3)
+RocketHideout4Script_45510: ; 45510 (11:54a3)
+ CheckAndResetEvent EVENT_6A0
+ call nz, RocketHideout4Script_45525
xor a
ld [wJoyIgnore], a
+RocketHideout4Script_4551e:
ld [W_ROCKETHIDEOUT4CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
+RocketHideout4Script_45525:
+ ld a, HS_ROCKET_HIDEOUT_4_JAMES
+ call RocketHideout4Script_45756
+ ld a, HS_ROCKET_HIDEOUT_4_JESSIE
+ call RocketHideout4Script_45756
+ ret
+
RocketHideout4ScriptPointers: ; 454ae (11:54ae)c
- dw CheckFightingMapTrainers
+ 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: ; 454b6 (11:54b6)
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,296 @@ RocketHideout4Script3: ; 454b6 (11:54b6)
ld [W_CURMAPSCRIPT], 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_JessieAndJames)
+ ld a, MUSIC_JESSIE_AND_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 ; 457b2
+ ld de, RocketHideout4JessieJamesEndBattleText ; 457b2
+ 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_JessieAndJames)
+ ld a, MUSIC_JESSIE_AND_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
+ ld hl, wd81b
+ set 2, [hl]
+ 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: ; 45501 (11:5501)
+ 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: ; 45515 (11:5515)
-RocketHideout4TrainerHeader0: ; 45515 (11:5515)
- 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: ; 45521 (11:5521)
- 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: ; 4552d (11:552d)
+RocketHideout4TrainerHeaders:
+RocketHideout4TrainerHeader0:
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 ; 4581d
+ dw RocketHideout4Trainer0AfterText ; 4583a
+ dw RocketHideout4Trainer0EndBattleText ; 45822
+ dw RocketHideout4Trainer0EndBattleText ; 45822
db $ff
-RocketHideout4Text1: ; 4553a (11:553a)
+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 +366,52 @@ RocketHideout4Text1: ; 4553a (11:553a)
ld a, $3
ld [W_ROCKETHIDEOUT4CURSCRIPT], a
ld [W_CURMAPSCRIPT], 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: ; 4557a (11:557a)
+RocketHideout4Text_45804:
TX_FAR _RocketHideout4Text_4557a
db "@"
-RocketHideout4Text_4557f: ; 4557f (11:557f)
+RocketHideout4Text_45809:
TX_FAR _RocketHideout4Text_4557f
db "@"
-RocketHideout4Text10: ; 45584 (11:5584)
+RocketHideout4Text9:
TX_FAR _RocketHideout4Text_45584
db "@"
-RocketHideout4Text2: ; 45589 (11:5589)
+RocketHideout4Text3:
TX_ASM
ld hl, RocketHideout4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
-RocketHideout4BattleText2: ; 45593 (11:5593)
- TX_FAR _RocketHideout4BattleText2
- db "@"
-
-RocketHideout4EndBattleText2: ; 45598 (11:5598)
- TX_FAR _RocketHideout4EndBattleText2
- db "@"
-
-RocketHideout4AfterBattleText2: ; 4559d (11:559d)
- TX_FAR _RocketHide4AfterBattleText2
- db "@"
-
-RocketHideout4Text3: ; 455a2 (11:55a2)
- TX_ASM
- ld hl, RocketHideout4TrainerHeader2
- call TalkToTrainer
- jp TextScriptEnd
-
-RocketHideout4BattleText3: ; 455ac (11:55ac)
- TX_FAR _RocketHideout4BattleText3
- db "@"
-
-RocketHideout4EndBattleText3: ; 455b1 (11:55b1)
- TX_FAR _RocketHideout4EndBattleText3
- db "@"
-
-RocketHideout4AfterBattleText3: ; 455b6 (11:55b6)
- TX_FAR _RocketHide4AfterBattleText3
- db "@"
-
-RocketHideout4Text4: ; 455bb (11:55bb)
- TX_ASM
- ld hl, RocketHideout4TrainerHeader3
- call TalkToTrainer
- jp TextScriptEnd
-
-RocketHideout4BattleText4: ; 455c5 (11:55c5)
+RocketHideout4Trainer0BeforeText:
TX_FAR _RocketHideout4BattleText4
db "@"
-RocketHideout4EndBattleText4: ; 455ca (11:55ca)
+RocketHideout4Trainer0EndBattleText:
TX_FAR _RocketHideout4EndBattleText4
- db "@"
-
-RocketHideout4AfterBattleText4: ; 455cf (11:55cf)
+ 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: ; 455ec (11:55ec)
+RocketHideout4Trainer0AfterText:
+ TX_ASM
+ ld hl, RocketHideout4Text_45844
+ call PrintText
+ jp TextScriptEnd
+
+RocketHideout4Text_45844:
TX_FAR _RocketHideout4Text_455ec
db "@"