123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- GaryScript:
- call EnableAutoTextBoxDrawing
- ld hl, GaryScriptPointers
- ld a, [wGaryCurScript]
- jp CallFunctionInTable
- ResetGaryScript:
- xor a
- ld [wJoyIgnore], a
- ld [wGaryCurScript], a
- ret
- GaryScriptPointers:
- dw GaryScript0
- dw GaryScript1
- dw GaryScript2
- dw GaryScript3
- dw GaryScript4
- dw GaryScript5
- dw GaryScript6
- dw GaryScript7
- dw GaryScript8
- dw GaryScript9
- dw GaryScript10
- GaryScript0:
- ret
- GaryScript1:
- ld a, $ff
- ld [wJoyIgnore], a
- ld hl, wSimulatedJoypadStatesEnd
- ld de, GaryEntrance_RLEMovement
- call DecodeRLEList
- dec a
- ld [wSimulatedJoypadStatesIndex], a
- call StartSimulatingJoypadStates
- ld a, $2
- ld [wGaryCurScript], a
- ret
- GaryEntrance_RLEMovement:
- db D_UP,1
- db D_RIGHT,1
- db D_UP,3
- db $ff
- GaryScript2:
- ld a, [wSimulatedJoypadStatesIndex]
- and a
- ret nz
- call Delay3
- xor a
- ld [wJoyIgnore], a
- ld hl, wOptions
- res 7, [hl] ; Turn on battle animations to make the battle feel more epic.
- ld a, $1
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call Delay3
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
- ld hl, GaryDefeatedText
- ld de, GaryVictoryText
- call SaveEndBattleTextPointers
- ld a, OPP_SONY3
- ld [wCurOpponent], a
- ; select which team to use during the encounter
- ld a, [wRivalStarter]
- cp STARTER2
- jr nz, .NotStarter2
- ld a, $1
- jr .saveTrainerId
- .NotStarter2
- cp STARTER3
- jr nz, .NotStarter3
- ld a, $2
- jr .saveTrainerId
- .NotStarter3
- ld a, $3
- .saveTrainerId
- ld [wTrainerNo], a
- xor a
- ld [hJoyHeld], a
- ld a, $3
- ld [wGaryCurScript], a
- ret
- GaryScript3:
- ld a, [wIsInBattle]
- cp $ff
- jp z, ResetGaryScript
- call UpdateSprites
- SetEvent EVENT_BEAT_CHAMPION_RIVAL
- ld a, $f0
- ld [wJoyIgnore], a
- ld a, $1
- ld [hSpriteIndexOrTextID], a
- call GaryScript_760c8
- ld a, $1
- ld [H_SPRITEINDEX], a
- call SetSpriteMovementBytesToFF
- ld a, $4
- ld [wGaryCurScript], a
- ret
- GaryScript4:
- callba Music_Cities1AlternateTempo
- ld a, $2
- ld [hSpriteIndexOrTextID], a
- call GaryScript_760c8
- ld a, $2
- ld [H_SPRITEINDEX], a
- call SetSpriteMovementBytesToFF
- ld de, OakEntranceAfterVictoryMovement
- ld a, $2
- ld [H_SPRITEINDEX], a
- call MoveSprite
- ld a, HS_CHAMPIONS_ROOM_OAK
- ld [wMissableObjectIndex], a
- predef ShowObject
- ld a, $5
- ld [wGaryCurScript], a
- ret
- OakEntranceAfterVictoryMovement:
- db NPC_MOVEMENT_UP
- db NPC_MOVEMENT_UP
- db NPC_MOVEMENT_UP
- db NPC_MOVEMENT_UP
- db NPC_MOVEMENT_UP
- db $FF
- GaryScript5:
- ld a, [wd730]
- bit 0, a
- ret nz
- ld a, PLAYER_DIR_LEFT
- ld [wPlayerMovingDirection], a
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld a, SPRITE_FACING_LEFT
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $2
- ld [H_SPRITEINDEX], a
- xor a ; SPRITE_FACING_DOWN
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $3
- ld [hSpriteIndexOrTextID], a
- call GaryScript_760c8
- ld a, $6
- ld [wGaryCurScript], a
- ret
- GaryScript6:
- ld a, $2
- ld [H_SPRITEINDEX], a
- ld a, SPRITE_FACING_RIGHT
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $4
- ld [hSpriteIndexOrTextID], a
- call GaryScript_760c8
- ld a, $7
- ld [wGaryCurScript], a
- ret
- GaryScript7:
- ld a, $2
- ld [H_SPRITEINDEX], a
- xor a ; SPRITE_FACING_DOWN
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $5
- ld [hSpriteIndexOrTextID], a
- call GaryScript_760c8
- ld de, OakExitGaryRoomMovement
- ld a, $2
- ld [H_SPRITEINDEX], a
- call MoveSprite
- ld a, $8
- ld [wGaryCurScript], a
- ret
- OakExitGaryRoomMovement:
- db NPC_MOVEMENT_UP
- db NPC_MOVEMENT_UP
- db $FF
- GaryScript8:
- ld a, [wd730]
- bit 0, a
- ret nz
- ld a, HS_CHAMPIONS_ROOM_OAK
- ld [wMissableObjectIndex], a
- predef HideObject
- ld a, $9
- ld [wGaryCurScript], a
- ret
- GaryScript9:
- ld a, $ff
- ld [wJoyIgnore], a
- ld hl, wSimulatedJoypadStatesEnd
- ld de, WalkToHallOfFame_RLEMovment
- call DecodeRLEList
- dec a
- ld [wSimulatedJoypadStatesIndex], a
- call StartSimulatingJoypadStates
- ld a, $a
- ld [wGaryCurScript], a
- ret
- WalkToHallOfFame_RLEMovment:
- db D_UP,4
- db D_LEFT,1
- db $ff
- GaryScript10:
- ld a, [wSimulatedJoypadStatesIndex]
- and a
- ret nz
- xor a
- ld [wJoyIgnore], a
- ld a, $0
- ld [wGaryCurScript], a
- ret
- GaryScript_760c8:
- ld a, $f0
- ld [wJoyIgnore], a
- call DisplayTextID
- ld a, $ff
- ld [wJoyIgnore], a
- ret
- GaryTextPointers:
- dw GaryText1
- dw GaryText2
- dw GaryText3
- dw GaryText4
- dw GaryText5
- GaryText1:
- TX_ASM
- CheckEvent EVENT_BEAT_CHAMPION_RIVAL
- ld hl, GaryChampionIntroText
- jr z, .printText
- ld hl, GaryText_76103
- .printText
- call PrintText
- jp TextScriptEnd
- GaryChampionIntroText:
- TX_FAR _GaryChampionIntroText
- db "@"
- GaryDefeatedText:
- TX_FAR _GaryDefeatedText
- db "@"
- GaryVictoryText:
- TX_FAR _GaryVictoryText
- db "@"
- GaryText_76103:
- TX_FAR _GaryText_76103
- db "@"
- GaryText2:
- TX_FAR _GaryText2
- db "@"
- GaryText3:
- TX_ASM
- ld a, [wPlayerStarter]
- ld [wd11e], a
- call GetMonName
- ld hl, GaryText_76120
- call PrintText
- jp TextScriptEnd
- GaryText_76120:
- TX_FAR _GaryText_76120
- db "@"
- GaryText4:
- TX_FAR _GaryText_76125
- db "@"
- GaryText5:
- TX_FAR _GaryText_7612a
- db "@"
|