diff options
Diffstat (limited to 'scripts/rockethideout4.asm')
-rwxr-xr-x | scripts/rockethideout4.asm | 423 |
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 "@" |