pokeyellow/scripts/RocketHideoutB4F.asm
dannye bc2354dd66
Some checks failed
CI / build (push) Has been cancelled
CI / build-macos (push) Has been cancelled
Merge branch 'master' of https://github.com/pret/pokered
2026-01-17 22:38:33 -06:00

416 lines
12 KiB
NASM

RocketHideoutB4F_Script:
call EnableAutoTextBoxDrawing
ld hl, RocketHideout4TrainerHeaders
ld de, RocketHideoutB4F_ScriptPointers
ld a, [wRocketHideoutB4FCurScript]
call ExecuteCurMapScriptInTable
ld [wRocketHideoutB4FCurScript], a
ret
RocketHideoutB4FResetScripts:
CheckAndResetEvent EVENT_6A0
call nz, RocketHideoutB4FScript_HideJessieJames
xor a
ld [wJoyIgnore], a
RocketHideoutB4FSetScript:
ld [wRocketHideoutB4FCurScript], a
ld [wCurMapScript], a
ret
RocketHideoutB4FScript_HideJessieJames:
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JAMES
call RocketHideoutB4FScript_HideObject
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JESSIE
call RocketHideoutB4FScript_HideObject
ret
RocketHideoutB4F_ScriptPointers:
def_script_pointers
dw_const RocketHideoutB4FDefaultScript, SCRIPT_ROCKETHIDEOUTB4F_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT1
dw_const EndTrainerBattle, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT2
dw_const RocketHideoutB4FBeatGiovanniScript, SCRIPT_ROCKETHIDEOUTB4F_BEAT_GIOVANNI
dw_const RocketHideoutB4FScript4, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT4
dw_const RocketHideoutB4FScript5, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT5
dw_const RocketHideoutB4FScript6, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT6
dw_const RocketHideoutB4FScript7, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT7
dw_const RocketHideoutB4FScript8, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT8
dw_const RocketHideoutB4FScript9, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT9
dw_const RocketHideoutB4FScript10, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT10
dw_const RocketHideoutB4FScript11, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT11
dw_const RocketHideoutB4FScript12, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT12
dw_const RocketHideoutB4FScript13, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT13
RocketHideoutB4FBeatGiovanniScript:
ld a, [wIsInBattle]
cp $ff
jp z, RocketHideoutB4FResetScripts
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
ld a, TEXT_ROCKETHIDEOUTB4F_GIOVANNI_HOPE_WE_MEET_AGAIN
ldh [hTextID], a
call DisplayTextID
call GBFadeOutToBlack
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_GIOVANNI
ld [wToggleableObjectIndex], a
predef HideObject
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_4
ld [wToggleableObjectIndex], a
predef ShowObject
call UpdateSprites
call GBFadeInFromBlack
xor a
ld [wJoyIgnore], a
ld hl, wCurrentMapScriptFlags
set BIT_CUR_MAP_LOADED_1, [hl]
ld a, SCRIPT_ROCKETHIDEOUTB4F_DEFAULT
ld [wRocketHideoutB4FCurScript], a
ld [wCurMapScript], a
ret
RocketHideoutB4FDefaultScript:
IF DEF(_DEBUG)
call DebugPressedOrHeldB
ret nz
ENDC
CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_JESSIE_JAMES
call z, RocketHideoutB4FScript_455a5
CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2
call z, CheckFightingMapTrainers
ret
RocketHideoutB4FScript_455a5:
ld a, [wYCoord]
cp $e
ret nz
ResetEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
ld a, [wXCoord]
cp $18
jr z, .asm_455c2
ld a, [wXCoord]
cp $19
ret nz
SetEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
.asm_455c2
xor a
ldh [hJoyHeld], a
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
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, TEXT_ROCKETHIDEOUTB4F_TEXT11
ldh [hTextID], a
call DisplayTextID
xor a
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JAMES
call RocketHideoutB4FScript_ShowObject
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JESSIE
call RocketHideoutB4FScript_ShowObject
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT4
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FJessieJamesMovementData_45605:
db $4
RocketHideoutB4FJessieJamesMovementData_45606:
db $4
db $4
db $4
db $ff
RocketHideoutB4FScript4:
ld de, RocketHideoutB4FJessieJamesMovementData_45605
CheckEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
jr z, .asm_45617
ld de, RocketHideoutB4FJessieJamesMovementData_45606
.asm_45617
ld a, ROCKETHIDEOUTB4F_JAMES
ldh [hSpriteIndex], a
call MoveSprite
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT5
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript5:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
RocketHideoutB4FScript6:
ld a, $2
ld [wSprite02StateData1MovementStatus], a
ld a, SPRITE_FACING_LEFT
ld [wSprite02StateData1FacingDirection], a
CheckEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
jr z, .asm_4564a
ld a, SPRITE_FACING_DOWN
ld [wSprite02StateData1FacingDirection], a
.asm_4564a
call Delay3
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
RocketHideoutB4FScript7:
ld de, RocketHideoutB4FJessieJamesMovementData_45606
CheckEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
jr z, .asm_4565f
ld de, RocketHideoutB4FJessieJamesMovementData_45605
.asm_4565f
ld a, ROCKETHIDEOUTB4F_JESSIE
ldh [hSpriteIndex], a
call MoveSprite
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT8
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript8:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wStatusFlags5]
bit BIT_SCRIPTED_NPC_MOVEMENT, a
ret nz
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
RocketHideoutB4FScript9:
ld a, $2
ld [wSprite03StateData1MovementStatus], a
ld a, SPRITE_FACING_DOWN
ld [wSprite03StateData1FacingDirection], a
CheckEvent EVENT_ROCKET_HIDEOUT_4_JESSIE_JAMES_ON_LEFT
jr z, .asm_45697
ld a, SPRITE_FACING_RIGHT
ld [wSprite03StateData1FacingDirection], a
.asm_45697
call Delay3
ld a, TEXT_ROCKETHIDEOUTB4F_TEXT12
ldh [hTextID], a
call DisplayTextID
RocketHideoutB4FScript10:
ld hl, wStatusFlags3
set BIT_TALKED_TO_TRAINER, [hl]
set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, RocketHideoutB4FJessieJamesEndBattleText
ld de, RocketHideoutB4FJessieJamesEndBattleText
call SaveEndBattleTextPointers
ld a, OPP_ROCKET
ld [wCurOpponent], a
ld a, $2b
ld [wTrainerNo], a
xor a
ldh [hJoyHeld], a
ld [wJoyIgnore], a
SetEvent EVENT_6A0
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT11
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript11:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, [wIsInBattle]
cp $ff
jp z, RocketHideoutB4FResetScripts
ld a, $2
ld [wSprite02StateData1MovementStatus], a
ld [wSprite03StateData1MovementStatus], a
xor a
ld [wSprite02StateData1FacingDirection], a
ld [wSprite03StateData1FacingDirection], a
ld a, PAD_SELECT | PAD_START | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, $1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld a, TEXT_ROCKETHIDEOUTB4F_TEXT13
ldh [hTextID], 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, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT12
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript12:
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
call GBFadeOutToBlack
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JAMES
call RocketHideoutB4FScript_HideObject
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_JESSIE
call RocketHideoutB4FScript_HideObject
call UpdateSprites
call Delay3
call GBFadeInFromBlack
ld a, SCRIPT_ROCKETHIDEOUTB4F_SCRIPT13
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript13:
call PlayDefaultMusic
xor a
ldh [hJoyHeld], a
ld [wJoyIgnore], a
SetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_JESSIE_JAMES
ld a, SCRIPT_ROCKETHIDEOUTB4F_DEFAULT
call RocketHideoutB4FSetScript
ret
RocketHideoutB4FScript_ShowObject:
ld [wToggleableObjectIndex], a
predef ShowObject
call UpdateSprites
call Delay3
ret
RocketHideoutB4FScript_HideObject:
ld [wToggleableObjectIndex], a
predef HideObject
ret
RocketHideoutB4F_TextPointers:
def_text_pointers
dw_const RocketHideoutB4FGiovanniText, TEXT_ROCKETHIDEOUTB4F_GIOVANNI
dw_const RocketHideoutB4FJessieJamesText, TEXT_ROCKETHIDEOUTB4F_JAMES
dw_const RocketHideoutB4FJessieJamesText, TEXT_ROCKETHIDEOUTB4F_JESSIE
dw_const RocketHideoutB4FRocketText, TEXT_ROCKETHIDEOUTB4F_ROCKET
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_HP_UP
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_TM_RAZOR_WIND
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_IRON
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_SILPH_SCOPE
dw_const PickUpItemText, TEXT_ROCKETHIDEOUTB4F_LIFT_KEY
dw_const RocketHideoutB4FGiovanniHopeWeMeetAgainText, TEXT_ROCKETHIDEOUTB4F_GIOVANNI_HOPE_WE_MEET_AGAIN
dw_const RocketHideoutB4FText11, TEXT_ROCKETHIDEOUTB4F_TEXT11
dw_const RocketHideoutB4FText12, TEXT_ROCKETHIDEOUTB4F_TEXT12
dw_const RocketHideoutB4FText13, TEXT_ROCKETHIDEOUTB4F_TEXT13
RocketHideout4TrainerHeaders:
def_trainers 4
RocketHideout4TrainerHeader0:
trainer EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2, 1, RocketHideoutB4FRocketBattleText, RocketHideoutB4FRocketEndBattleText, RocketHideoutB4FRocketAfterBattleText
db -1 ; end
RocketHideoutB4FJessieJamesText:
text_end
RocketHideoutB4FText11:
text_far _RocketHideoutJessieJamesText1
text_asm
ld c, 10
call DelayFrames
ld a, $8
ld [wPlayerMovingDirection], a
ld a, $0
ld [wEmotionBubbleSpriteIndex], a
ld a, EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
predef EmotionBubble
ld c, 20
call DelayFrames
jp TextScriptEnd
RocketHideoutB4FText12:
text_far _RocketHideoutJessieJamesText2
text_end
RocketHideoutB4FJessieJamesEndBattleText:
text_far _RocketHideoutJessieJamesText3
text_end
RocketHideoutB4FText13:
text_far _RocketHideoutJessieJamesText4
text_asm
ld c, 64
call DelayFrames
jp TextScriptEnd
RocketHideoutB4FGiovanniText:
text_asm
CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI
jp nz, .beat_giovanni
ld hl, .ImpressedYouGotHereText
call PrintText
ld hl, wStatusFlags3
set BIT_TALKED_TO_TRAINER, [hl]
set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, .WhatCannotBeText
ld de, .WhatCannotBeText
call SaveEndBattleTextPointers
ldh a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
xor a
ldh [hJoyHeld], a
ld a, SCRIPT_ROCKETHIDEOUTB4F_BEAT_GIOVANNI
ld [wRocketHideoutB4FCurScript], a
ld [wCurMapScript], a
jr .done
.beat_giovanni
ld hl, RocketHideoutB4FGiovanniHopeWeMeetAgainText
call PrintText
.done
jp TextScriptEnd
.ImpressedYouGotHereText:
text_far _RocketHideoutB4FGiovanniImpressedYouGotHereText
text_end
.WhatCannotBeText:
text_far _RocketHideoutB4FGiovanniWhatCannotBeText
text_end
RocketHideoutB4FGiovanniHopeWeMeetAgainText:
text_far _RocketHideoutB4FGiovanniHopeWeMeetAgainText
text_end
RocketHideoutB4FRocketText:
text_asm
ld hl, RocketHideout4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
RocketHideoutB4FRocketBattleText:
text_far _RocketHideoutB4FRocketBattleText
text_end
RocketHideoutB4FRocketEndBattleText:
text_far _RocketHideoutB4FRocketEndBattleText
text_promptbutton
text_asm
SetEvent EVENT_ROCKET_DROPPED_LIFT_KEY
ld a, TOGGLE_ROCKET_HIDEOUT_B4F_ITEM_5
ld [wToggleableObjectIndex], a
predef ShowObject
jp TextScriptEnd
RocketHideoutB4FRocketAfterBattleText:
text_asm
ld hl, .Text
call PrintText
jp TextScriptEnd
.Text:
text_far _RocketHideoutB4FRocketAfterBattleText
text_end