123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497 |
- ViridianGymScript:
- ld hl, Gym8CityName
- ld de, Gym8LeaderName
- call LoadGymLeaderAndCityName
- call EnableAutoTextBoxDrawing
- ld hl, ViridianGymTrainerHeader0
- ld de, ViridianGymScriptPointers
- ld a, [wViridianGymCurScript]
- call ExecuteCurMapScriptInTable
- ld [wViridianGymCurScript], a
- ret
- Gym8CityName:
- db "VIRIDIAN CITY@"
- Gym8LeaderName:
- db "GIOVANNI@"
- ViridianGymScript_748d6:
- xor a
- ld [wJoyIgnore], a
- ld [wViridianGymCurScript], a
- ld [wCurMapScript], a
- ret
- ViridianGymScriptPointers:
- dw ViridianGymScript0
- dw DisplayEnemyTrainerTextAndStartBattle
- dw EndTrainerBattle
- dw ViridianGymScript3
- dw ViridianGymScript4
- ViridianGymScript0:
- ld a, [wYCoord]
- ld b, a
- ld a, [wXCoord]
- ld c, a
- ld hl, ViridianGymArrowTilePlayerMovement
- call DecodeArrowMovementRLE
- cp $ff
- jp z, CheckFightingMapTrainers
- call StartSimulatingJoypadStates
- ld hl, wd736
- set 7, [hl]
- ld a, SFX_ARROW_TILES
- call PlaySound
- ld a, $ff
- ld [wJoyIgnore], a
- ld a, $4
- ld [wCurMapScript], a
- ret
- ;format:
- ;db y,x
- ;dw pointer to movement
- ViridianGymArrowTilePlayerMovement:
- db $b,$13
- dw ViridianGymArrowMovement1
- db $1,$13
- dw ViridianGymArrowMovement2
- db $2,$12
- dw ViridianGymArrowMovement3
- db $2,$b
- dw ViridianGymArrowMovement4
- db $a,$10
- dw ViridianGymArrowMovement5
- db $6,$4
- dw ViridianGymArrowMovement6
- db $d,$5
- dw ViridianGymArrowMovement7
- db $e,$4
- dw ViridianGymArrowMovement8
- db $f,$0
- dw ViridianGymArrowMovement9
- db $f,$1
- dw ViridianGymArrowMovement10
- db $10,$d
- dw ViridianGymArrowMovement11
- db $11,$d
- dw ViridianGymArrowMovement12
- db $FF
- ;format: direction, count
- ViridianGymArrowMovement1:
- db D_UP,$09,$FF
- ViridianGymArrowMovement2:
- db D_LEFT,$08,$FF
- ViridianGymArrowMovement3:
- db D_DOWN,$09,$FF
- ViridianGymArrowMovement4:
- db D_RIGHT,$06,$FF
- ViridianGymArrowMovement5:
- db D_DOWN,$02,$FF
- ViridianGymArrowMovement6:
- db D_DOWN,$07,$FF
- ViridianGymArrowMovement7:
- db D_RIGHT,$08,$FF
- ViridianGymArrowMovement8:
- db D_RIGHT,$09,$FF
- ViridianGymArrowMovement9:
- db D_UP,$08,$FF
- ViridianGymArrowMovement10:
- db D_UP,$06,$FF
- ViridianGymArrowMovement11:
- db D_LEFT,$06,$FF
- ViridianGymArrowMovement12:
- db D_LEFT,$0C,$FF
- ViridianGymScript4:
- ld a, [wSimulatedJoypadStatesIndex]
- and a
- jr nz, .asm_74980
- xor a
- ld [wJoyIgnore], a
- ld hl, wd736
- res 7, [hl]
- ld a, $0
- ld [wCurMapScript], a
- ret
- .asm_74980
- jpba LoadSpinnerArrowTiles
- ViridianGymScript3:
- ld a, [wIsInBattle]
- cp $ff
- jp z, ViridianGymScript_748d6
- ld a, $f0
- ld [wJoyIgnore], a
- ViridianGymScript3_74995:
- ld a, $c
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- SetEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
- lb bc, TM_27, 1
- call GiveItem
- jr nc, .BagFull
- ld a, $d
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- SetEvent EVENT_GOT_TM27
- jr .asm_749be
- .BagFull
- ld a, $e
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- .asm_749be
- ld hl, wObtainedBadges
- set 7, [hl]
- ld hl, wBeatGymFlags
- set 7, [hl]
- ; deactivate gym trainers
- SetEventRange EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0, EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7
- ld a, HS_ROUTE_22_RIVAL_2
- ld [wMissableObjectIndex], a
- predef ShowObject
- SetEvents EVENT_2ND_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
- jp ViridianGymScript_748d6
- ViridianGymTextPointers:
- dw ViridianGymText1
- dw ViridianGymText2
- dw ViridianGymText3
- dw ViridianGymText4
- dw ViridianGymText5
- dw ViridianGymText6
- dw ViridianGymText7
- dw ViridianGymText8
- dw ViridianGymText9
- dw ViridianGymText10
- dw PickUpItemText
- dw ViridianGymText12
- dw ViridianGymText13
- dw ViridianGymText14
- ViridianGymTrainerHeader0:
- dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0
- db ($4 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0
- dw ViridianGymBattleText1 ; TextBeforeBattle
- dw ViridianGymAfterBattleText1 ; TextAfterBattle
- dw ViridianGymEndBattleText1 ; TextEndBattle
- dw ViridianGymEndBattleText1 ; TextEndBattle
- ViridianGymTrainerHeader1:
- dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1
- db ($4 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1
- dw ViridianGymBattleText2 ; TextBeforeBattle
- dw ViridianGymAfterBattleText2 ; TextAfterBattle
- dw ViridianGymEndBattleText2 ; TextEndBattle
- dw ViridianGymEndBattleText2 ; TextEndBattle
- ViridianGymTrainerHeader2:
- dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2
- db ($4 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2
- dw ViridianGymBattleText3 ; TextBeforeBattle
- dw ViridianGymAfterBattleText3 ; TextAfterBattle
- dw ViridianGymEndBattleText3 ; TextEndBattle
- dw ViridianGymEndBattleText3 ; TextEndBattle
- ViridianGymTrainerHeader3:
- dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3
- db ($2 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3
- dw ViridianGymBattleText4 ; TextBeforeBattle
- dw ViridianGymAfterBattleText4 ; TextAfterBattle
- dw ViridianGymEndBattleText4 ; TextEndBattle
- dw ViridianGymEndBattleText4 ; TextEndBattle
- ViridianGymTrainerHeader4:
- dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4
- db ($3 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4
- dw ViridianGymBattleText5 ; TextBeforeBattle
- dw ViridianGymAfterBattleText5 ; TextAfterBattle
- dw ViridianGymEndBattleText5 ; TextEndBattle
- dw ViridianGymEndBattleText5 ; TextEndBattle
- ViridianGymTrainerHeader5:
- dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5
- db ($4 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5
- dw ViridianGymBattleText6 ; TextBeforeBattle
- dw ViridianGymAfterBattleText6 ; TextAfterBattle
- dw ViridianGymEndBattleText6 ; TextEndBattle
- dw ViridianGymEndBattleText6 ; TextEndBattle
- ViridianGymTrainerHeader6:
- dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6, 1
- db ($3 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6, 1
- dw ViridianGymBattleText7 ; TextBeforeBattle
- dw ViridianGymAfterBattleText7 ; TextAfterBattle
- dw ViridianGymEndBattleText7 ; TextEndBattle
- dw ViridianGymEndBattleText7 ; TextEndBattle
- ViridianGymTrainerHeader7:
- dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7, 1
- db ($4 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7, 1
- dw ViridianGymBattleText8 ; TextBeforeBattle
- dw ViridianGymAfterBattleText8 ; TextAfterBattle
- dw ViridianGymEndBattleText8 ; TextEndBattle
- dw ViridianGymEndBattleText8 ; TextEndBattle
- db $ff
- ViridianGymText1:
- TX_ASM
- CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
- jr z, .asm_6de66
- CheckEventReuseA EVENT_GOT_TM27
- jr nz, .asm_9fc95
- call z, ViridianGymScript3_74995
- call DisableWaitingAfterTextDisplay
- jr .asm_6dff7
- .asm_9fc95
- ld a, $1
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld hl, ViridianGymText_74ad9
- call PrintText
- call GBFadeOutToBlack
- ld a, HS_VIRIDIAN_GYM_GIOVANNI
- ld [wMissableObjectIndex], a
- predef HideObject
- call UpdateSprites
- call Delay3
- call GBFadeInFromBlack
- jr .asm_6dff7
- .asm_6de66
- ld hl, ViridianGymText_74ace
- call PrintText
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
- ld hl, ViridianGymText_74ad3
- ld de, ViridianGymText_74ad3
- call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
- ld [wSpriteIndex], a
- call EngageMapTrainer
- call InitBattleEnemyParameters
- ld a, $8
- ld [wGymLeaderNo], a
- ld a, $3
- ld [wViridianGymCurScript], a
- .asm_6dff7
- jp TextScriptEnd
- ViridianGymText_74ace:
- TX_FAR _ViridianGymText_74ace
- db "@"
- ViridianGymText_74ad3:
- TX_FAR _ViridianGymText_74ad3
- TX_SFX_LEVEL_UP ; probably supposed to play SFX_GET_ITEM_1 but the wrong music bank is loaded
- db "@"
- ViridianGymText_74ad9:
- TX_FAR _ViridianGymText_74ad9
- TX_WAIT
- db "@"
- ViridianGymText12:
- TX_FAR _ViridianGymText12
- db "@"
- ViridianGymText13:
- TX_FAR _ReceivedTM27Text
- TX_SFX_ITEM_1
- TM27ExplanationText:
- TX_FAR _TM27ExplanationText
- db "@"
- ViridianGymText14:
- TX_FAR _TM27NoRoomText
- db "@"
- ViridianGymText2:
- TX_ASM
- ld hl, ViridianGymTrainerHeader0
- call TalkToTrainer
- jp TextScriptEnd
- ViridianGymBattleText1:
- TX_FAR _ViridianGymBattleText1
- db "@"
- ViridianGymEndBattleText1:
- TX_FAR _ViridianGymEndBattleText1
- db "@"
- ViridianGymAfterBattleText1:
- TX_FAR _ViridianGymAfterBattleText1
- db "@"
- ViridianGymText3:
- TX_ASM
- ld hl, ViridianGymTrainerHeader1
- call TalkToTrainer
- jp TextScriptEnd
- ViridianGymBattleText2:
- TX_FAR _ViridianGymBattleText2
- db "@"
- ViridianGymEndBattleText2:
- TX_FAR _ViridianGymEndBattleText2
- db "@"
- ViridianGymAfterBattleText2:
- TX_FAR _ViridianGymAfterBattleText2
- db "@"
- ViridianGymText4:
- TX_ASM
- ld hl, ViridianGymTrainerHeader2
- call TalkToTrainer
- jp TextScriptEnd
- ViridianGymBattleText3:
- TX_FAR _ViridianGymBattleText3
- db "@"
- ViridianGymEndBattleText3:
- TX_FAR _ViridianGymEndBattleText3
- db "@"
- ViridianGymAfterBattleText3:
- TX_FAR _ViridianGymAfterBattleText3
- db "@"
- ViridianGymText5:
- TX_ASM
- ld hl, ViridianGymTrainerHeader3
- call TalkToTrainer
- jp TextScriptEnd
- ViridianGymBattleText4:
- TX_FAR _ViridianGymBattleText4
- db "@"
- ViridianGymEndBattleText4:
- TX_FAR _ViridianGymEndBattleText4
- db "@"
- ViridianGymAfterBattleText4:
- TX_FAR _ViridianGymAfterBattleText4
- db "@"
- ViridianGymText6:
- TX_ASM
- ld hl, ViridianGymTrainerHeader4
- call TalkToTrainer
- jp TextScriptEnd
- ViridianGymBattleText5:
- TX_FAR _ViridianGymBattleText5
- db "@"
- ViridianGymEndBattleText5:
- TX_FAR _ViridianGymEndBattleText5
- db "@"
- ViridianGymAfterBattleText5:
- TX_FAR _ViridianGymAfterBattleText5
- db "@"
- ViridianGymText7:
- TX_ASM
- ld hl, ViridianGymTrainerHeader5
- call TalkToTrainer
- jp TextScriptEnd
- ViridianGymBattleText6:
- TX_FAR _ViridianGymBattleText6
- db "@"
- ViridianGymEndBattleText6:
- TX_FAR _ViridianGymEndBattleText6
- db "@"
- ViridianGymAfterBattleText6:
- TX_FAR _ViridianGymAfterBattleText6
- db "@"
- ViridianGymText8:
- TX_ASM
- ld hl, ViridianGymTrainerHeader6
- call TalkToTrainer
- jp TextScriptEnd
- ViridianGymBattleText7:
- TX_FAR _ViridianGymBattleText7
- db "@"
- ViridianGymEndBattleText7:
- TX_FAR _ViridianGymEndBattleText7
- db "@"
- ViridianGymAfterBattleText7:
- TX_FAR _ViridianGymAfterBattleText7
- db "@"
- ViridianGymText9:
- TX_ASM
- ld hl, ViridianGymTrainerHeader7
- call TalkToTrainer
- jp TextScriptEnd
- ViridianGymBattleText8:
- TX_FAR _ViridianGymBattleText8
- db "@"
- ViridianGymEndBattleText8:
- TX_FAR _ViridianGymEndBattleText8
- db "@"
- ViridianGymAfterBattleText8:
- TX_FAR _ViridianGymAfterBattleText8
- db "@"
- ViridianGymText10:
- TX_ASM
- CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI
- jr nz, .asm_1abd1
- ld hl, ViridianGymText_74bd4
- call PrintText
- jr .asm_6064d
- .asm_1abd1
- ld hl, ViridianGymText_74bd9
- call PrintText
- .asm_6064d
- jp TextScriptEnd
- ViridianGymText_74bd4:
- TX_FAR _ViridianGymText_74bd4
- db "@"
- ViridianGymText_74bd9:
- TX_FAR _ViridianGymText_74bd9
- db "@"
|