123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473 |
- CinnabarGymScript:
- call CinnabarGymScript_75759
- call EnableAutoTextBoxDrawing
- ld hl, CinnabarGymScriptPointers
- ld a, [wCinnabarGymCurScript]
- jp CallFunctionInTable
- CinnabarGymScript_75759:
- ld hl, wCurrentMapScriptFlags
- bit 6, [hl]
- res 6, [hl]
- push hl
- call nz, CinnabarGymScript_75772
- pop hl
- bit 5, [hl]
- res 5, [hl]
- call nz, UpdateCinnabarGymGateTileBlocks
- ResetEvent EVENT_2A7
- ret
- CinnabarGymScript_75772:
- ld hl, Gym7CityName
- ld de, Gym7LeaderName
- jp LoadGymLeaderAndCityName
- Gym7CityName:
- db "CINNABAR ISLAND@"
- Gym7LeaderName:
- db "BLAINE@"
- CinnabarGymScript_75792:
- xor a
- ld [wJoyIgnore], a
- ld [wCinnabarGymCurScript], a
- ld [wCurMapScript], a
- ld [wOpponentAfterWrongAnswer], a
- ret
- CinnabarGymScript_757a0:
- ld a, [hSpriteIndexOrTextID]
- ld [wTrainerHeaderFlagBit], a
- ret
- CinnabarGymScriptPointers:
- dw CinnabarGymScript0
- dw CinnabarGymScript1
- dw CinnabarGymScript2
- dw CinnabarGymScript3
- CinnabarGymScript0:
- ld a, [wOpponentAfterWrongAnswer]
- and a
- ret z
- ld [H_SPRITEINDEX], a
- cp $4
- jr nz, .asm_757c3
- ld a, PLAYER_DIR_DOWN
- ld [wPlayerMovingDirection], a
- ld de, MovementData_757d7
- jr .asm_757cb
- .asm_757c3
- ld de, MovementData_757da
- ld a, PLAYER_DIR_RIGHT
- ld [wPlayerMovingDirection], a
- .asm_757cb
- call MoveSprite
- ld a, $1
- ld [wCinnabarGymCurScript], a
- ld [wCurMapScript], a
- ret
- MovementData_757d7:
- db NPC_MOVEMENT_LEFT
- db NPC_MOVEMENT_UP
- db $FF
- MovementData_757da:
- db NPC_MOVEMENT_LEFT
- db $FF
- CinnabarGymScript1:
- ld a, [wd730]
- bit 0, a
- ret nz
- xor a
- ld [wJoyIgnore], a
- ld a, [wOpponentAfterWrongAnswer]
- ld [wTrainerHeaderFlagBit], a
- ld [hSpriteIndexOrTextID], a
- jp DisplayTextID
- CinnabarGymFlagAction:
- predef_jump FlagActionPredef
- CinnabarGymScript2:
- ld a, [wIsInBattle]
- cp $ff
- jp z, CinnabarGymScript_75792
- ld a, [wTrainerHeaderFlagBit]
- ld [$ffdb], a
- AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
- ld c, a
- ld b, FLAG_TEST
- EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0
- call CinnabarGymFlagAction
- ld a, c
- and a
- jr nz, .asm_7581b
- call WaitForSoundToFinish
- ld a, SFX_GO_INSIDE
- call PlaySound
- call WaitForSoundToFinish
- .asm_7581b
- ld a, [wTrainerHeaderFlagBit]
- ld [$ffdb], a
- AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
- ld c, a
- ld b, FLAG_SET
- EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0
- call CinnabarGymFlagAction
- ld a, [wTrainerHeaderFlagBit]
- sub $2
- AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0
- ld c, a
- ld b, FLAG_SET
- EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED
- call CinnabarGymFlagAction
- call UpdateCinnabarGymGateTileBlocks
- xor a
- ld [wJoyIgnore], a
- ld [wOpponentAfterWrongAnswer], a
- ld a, $0
- ld [wCinnabarGymCurScript], a
- ld [wCurMapScript], a
- ret
- CinnabarGymScript3:
- ld a, [wIsInBattle]
- cp $ff
- jp z, CinnabarGymScript_75792
- ld a, $f0
- ld [wJoyIgnore], a
- CinnabarGymScript3_75857:
- ld a, $a
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- SetEvent EVENT_BEAT_BLAINE
- lb bc, TM_38, 1
- call GiveItem
- jr nc, .BagFull
- ld a, $b
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- SetEvent EVENT_GOT_TM38
- jr .asm_75880
- .BagFull
- ld a, $c
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- .asm_75880
- ld hl, wObtainedBadges
- set 6, [hl]
- ld hl, wBeatGymFlags
- set 6, [hl]
- ; deactivate gym trainers
- SetEventRange EVENT_BEAT_CINNABAR_GYM_TRAINER_0, EVENT_BEAT_CINNABAR_GYM_TRAINER_6
- ld hl, wCurrentMapScriptFlags
- set 5, [hl]
- jp CinnabarGymScript_75792
- CinnabarGymTextPointers:
- dw CinnabarGymText1
- dw CinnabarGymText2
- dw CinnabarGymText3
- dw CinnabarGymText4
- dw CinnabarGymText5
- dw CinnabarGymText6
- dw CinnabarGymText7
- dw CinnabarGymText8
- dw CinnabarGymText9
- dw BlaineBadgeText
- dw ReceivedTM38Text
- dw TM38NoRoomText
- CinnabarGymScript_758b7:
- ld a, [hSpriteIndexOrTextID]
- ld [wSpriteIndex], a
- call EngageMapTrainer
- call InitBattleEnemyParameters
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
- ld a, [wSpriteIndex]
- cp $1
- jr z, .asm_758d4
- ld a, $2
- jr .asm_758d6
- .asm_758d4
- ld a, $3
- .asm_758d6
- ld [wCinnabarGymCurScript], a
- ld [wCurMapScript], a
- jp TextScriptEnd
- CinnabarGymText1:
- TX_ASM
- CheckEvent EVENT_BEAT_BLAINE
- jr z, .asm_d9332
- CheckEventReuseA EVENT_GOT_TM38
- jr nz, .asm_3012f
- call z, CinnabarGymScript3_75857
- call DisableWaitingAfterTextDisplay
- jp TextScriptEnd
- .asm_3012f
- ld hl, BlaineFireBlastText
- call PrintText
- jp TextScriptEnd
- .asm_d9332
- ld hl, BlaineBattleText
- call PrintText
- ld hl, BlaineEndBattleText
- ld de, BlaineEndBattleText
- call SaveEndBattleTextPointers
- ld a, $7
- ld [wGymLeaderNo], a
- jp CinnabarGymScript_758b7
- BlaineBattleText:
- TX_FAR _BlaineBattleText
- db "@"
- BlaineEndBattleText:
- TX_FAR _BlaineEndBattleText
- TX_SFX_KEY_ITEM ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded
- TX_WAIT
- db "@"
- BlaineFireBlastText:
- TX_FAR _BlaineFireBlastText
- db "@"
- BlaineBadgeText:
- TX_FAR _BlaineBadgeText
- db "@"
- ReceivedTM38Text:
- TX_FAR _ReceivedTM38Text
- TX_SFX_ITEM_1
- TX_FAR _TM38ExplanationText
- db "@"
- TM38NoRoomText:
- TX_FAR _TM38NoRoomText
- db "@"
- CinnabarGymText2:
- TX_ASM
- call CinnabarGymScript_757a0
- CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_0
- jr nz, .asm_46bb4
- ld hl, CinnabarGymText_7595f
- call PrintText
- ld hl, CinnabarGymText_75964
- ld de, CinnabarGymText_75964
- call SaveEndBattleTextPointers
- jp CinnabarGymScript_758b7
- .asm_46bb4
- ld hl, CinnabarGymText_75969
- call PrintText
- jp TextScriptEnd
- CinnabarGymText_7595f:
- TX_FAR _CinnabarGymText_7595f
- db "@"
- CinnabarGymText_75964:
- TX_FAR _CinnabarGymText_75964
- db "@"
- CinnabarGymText_75969:
- TX_FAR _CinnabarGymText_75969
- db "@"
- CinnabarGymText3:
- TX_ASM
- call CinnabarGymScript_757a0
- CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_1
- jr nz, .asm_4b406
- ld hl, CinnabarGymText_75994
- call PrintText
- ld hl, CinnabarGymText_75999
- ld de, CinnabarGymText_75999
- call SaveEndBattleTextPointers
- jp CinnabarGymScript_758b7
- .asm_4b406
- ld hl, CinnabarGymText_7599e
- call PrintText
- jp TextScriptEnd
- CinnabarGymText_75994:
- TX_FAR _CinnabarGymText_75994
- db "@"
- CinnabarGymText_75999:
- TX_FAR _CinnabarGymText_75999
- db "@"
- CinnabarGymText_7599e:
- TX_FAR _CinnabarGymText_7599e
- db "@"
- CinnabarGymText4:
- TX_ASM
- call CinnabarGymScript_757a0
- CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_2
- jr nz, .asm_c0673
- ld hl, CinnabarGymText_759c9
- call PrintText
- ld hl, CinnabarGymText_759ce
- ld de, CinnabarGymText_759ce
- call SaveEndBattleTextPointers
- jp CinnabarGymScript_758b7
- .asm_c0673
- ld hl, CinnabarGymText_759d3
- call PrintText
- jp TextScriptEnd
- CinnabarGymText_759c9:
- TX_FAR _CinnabarGymText_759c9
- db "@"
- CinnabarGymText_759ce:
- TX_FAR _CinnabarGymText_759ce
- db "@"
- CinnabarGymText_759d3:
- TX_FAR _CinnabarGymText_759d3
- db "@"
- CinnabarGymText5:
- TX_ASM
- call CinnabarGymScript_757a0
- CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_3
- jr nz, .asm_5cfd7
- ld hl, CinnabarGymText_759fe
- call PrintText
- ld hl, CinnabarGymText_75a03
- ld de, CinnabarGymText_75a03
- call SaveEndBattleTextPointers
- jp CinnabarGymScript_758b7
- .asm_5cfd7
- ld hl, CinnabarGymText_75a08
- call PrintText
- jp TextScriptEnd
- CinnabarGymText_759fe:
- TX_FAR _CinnabarGymText_759fe
- db "@"
- CinnabarGymText_75a03:
- TX_FAR _CinnabarGymText_75a03
- db "@"
- CinnabarGymText_75a08:
- TX_FAR _CinnabarGymText_75a08
- db "@"
- CinnabarGymText6:
- TX_ASM
- call CinnabarGymScript_757a0
- CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_4
- jr nz, .asm_776b4
- ld hl, CinnabarGymText_75a33
- call PrintText
- ld hl, CinnabarGymText_75a38
- ld de, CinnabarGymText_75a38
- call SaveEndBattleTextPointers
- jp CinnabarGymScript_758b7
- .asm_776b4
- ld hl, CinnabarGymText_75a3d
- call PrintText
- jp TextScriptEnd
- CinnabarGymText_75a33:
- TX_FAR _CinnabarGymText_75a33
- db "@"
- CinnabarGymText_75a38:
- TX_FAR _CinnabarGymText_75a38
- db "@"
- CinnabarGymText_75a3d:
- TX_FAR _CinnabarGymText_75a3d
- db "@"
- CinnabarGymText7:
- TX_ASM
- call CinnabarGymScript_757a0
- CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_5
- jr nz, .asm_2f755
- ld hl, CinnabarGymText_75a68
- call PrintText
- ld hl, CinnabarGymText_75a6d
- ld de, CinnabarGymText_75a6d
- call SaveEndBattleTextPointers
- jp CinnabarGymScript_758b7
- .asm_2f755
- ld hl, CinnabarGymText_75a72
- call PrintText
- jp TextScriptEnd
- CinnabarGymText_75a68:
- TX_FAR _CinnabarGymText_75a68
- db "@"
- CinnabarGymText_75a6d:
- TX_FAR _CinnabarGymText_75a6d
- db "@"
- CinnabarGymText_75a72:
- TX_FAR _CinnabarGymText_75a72
- db "@"
- CinnabarGymText8:
- TX_ASM
- call CinnabarGymScript_757a0
- CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_6
- jr nz, .asm_d87be
- ld hl, CinnabarGymText_75a9d
- call PrintText
- ld hl, CinnabarGymText_75aa2
- ld de, CinnabarGymText_75aa2
- call SaveEndBattleTextPointers
- jp CinnabarGymScript_758b7
- .asm_d87be
- ld hl, CinnabarGymText_75aa7
- call PrintText
- jp TextScriptEnd
- CinnabarGymText_75a9d:
- TX_FAR _CinnabarGymText_75a9d
- db "@"
- CinnabarGymText_75aa2:
- TX_FAR _CinnabarGymText_75aa2
- db "@"
- CinnabarGymText_75aa7:
- TX_FAR _CinnabarGymText_75aa7
- db "@"
- CinnabarGymText9:
- TX_ASM
- CheckEvent EVENT_BEAT_BLAINE
- jr nz, .asm_627d9
- ld hl, CinnabarGymText_75ac2
- jr .asm_0b11d
- .asm_627d9
- ld hl, CinnabarGymText_75ac7
- .asm_0b11d
- call PrintText
- jp TextScriptEnd
- CinnabarGymText_75ac2:
- TX_FAR _CinnabarGymText_75ac2
- db "@"
- CinnabarGymText_75ac7:
- TX_FAR _CinnabarGymText_75ac7
- db "@"
|