pokered/scripts/gary.asm

299 lines
4.9 KiB
NASM
Raw Normal View History

2016-06-12 00:24:04 +00:00
GaryScript:
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, GaryScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wGaryCurScript]
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
2016-06-12 00:24:04 +00:00
ResetGaryScript:
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryScriptPointers:
2014-05-18 18:19:10 +00:00
dw GaryScript0
dw GaryScript1
dw GaryScript2
dw GaryScript3
dw GaryScript4
dw GaryScript5
dw GaryScript6
dw GaryScript7
dw GaryScript8
dw GaryScript9
dw GaryScript10
2016-06-12 00:24:04 +00:00
GaryScript0:
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryScript1:
2014-05-18 18:19:10 +00:00
ld a, $ff
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
ld de, GaryEntrance_RLEMovement
2014-05-18 18:19:10 +00:00
call DecodeRLEList
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
2014-05-18 18:19:10 +00:00
ld a, $2
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryEntrance_RLEMovement:
db D_UP,1
db D_RIGHT,1
db D_UP,3
2014-05-18 18:19:10 +00:00
db $ff
2016-06-12 00:24:04 +00:00
GaryScript2:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
call Delay3
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-08-31 02:38:41 +00:00
ld hl, wOptions
res 7, [hl] ; Turn on battle animations to make the battle feel more epic.
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
call Delay3
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
ld hl, GaryDefeatedText
ld de, GaryVictoryText
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
ld a, OPP_SONY3
2015-08-31 02:38:41 +00:00
ld [wCurOpponent], a
2014-05-18 18:19:10 +00:00
; select which team to use during the encounter
2015-08-31 02:38:41 +00:00
ld a, [wRivalStarter]
2014-05-21 12:48:30 +00:00
cp STARTER2
jr nz, .NotStarter2
2014-05-18 18:19:10 +00:00
ld a, $1
jr .saveTrainerId
.NotStarter2
2014-05-21 12:48:30 +00:00
cp STARTER3
jr nz, .NotStarter3
2014-05-18 18:19:10 +00:00
ld a, $2
jr .saveTrainerId
.NotStarter3
2014-05-18 18:19:10 +00:00
ld a, $3
.saveTrainerId
2015-08-31 02:38:41 +00:00
ld [wTrainerNo], a
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [hJoyHeld], a
2014-05-18 18:19:10 +00:00
ld a, $3
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryScript3:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, ResetGaryScript
call UpdateSprites
2015-07-21 17:36:03 +00:00
SetEvent EVENT_BEAT_CHAMPION_RIVAL
2014-05-18 18:19:10 +00:00
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call GaryScript_760c8
ld a, $1
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
call SetSpriteMovementBytesToFF
ld a, $4
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryScript4:
callba Music_Cities1AlternateTempo
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call GaryScript_760c8
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
call SetSpriteMovementBytesToFF
ld de, OakEntranceAfterVictoryMovement
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
call MoveSprite
ld a, HS_CHAMPIONS_ROOM_OAK
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef ShowObject
2014-05-18 18:19:10 +00:00
ld a, $5
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
OakEntranceAfterVictoryMovement:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db $FF
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
GaryScript5:
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
ld a, SPRITE_FACING_LEFT
2015-07-18 15:17:29 +00:00
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
xor a ; SPRITE_FACING_DOWN
2015-07-18 15:17:29 +00:00
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
ld a, $3
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call GaryScript_760c8
ld a, $6
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryScript6:
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
ld a, SPRITE_FACING_RIGHT
2015-07-18 15:17:29 +00:00
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
ld a, $4
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call GaryScript_760c8
ld a, $7
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryScript7:
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
xor a ; SPRITE_FACING_DOWN
2015-07-18 15:17:29 +00:00
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
ld a, $5
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call GaryScript_760c8
ld de, OakExitGaryRoomMovement
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
call MoveSprite
ld a, $8
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
OakExitGaryRoomMovement:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db $FF
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
GaryScript8:
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
ld a, HS_CHAMPIONS_ROOM_OAK
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
2014-05-18 18:19:10 +00:00
ld a, $9
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryScript9:
2014-05-18 18:19:10 +00:00
ld a, $ff
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
ld de, WalkToHallOfFame_RLEMovment
2014-05-18 18:19:10 +00:00
call DecodeRLEList
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
2014-05-18 18:19:10 +00:00
ld a, $a
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
WalkToHallOfFame_RLEMovment:
db D_UP,4
db D_LEFT,1
2014-05-18 18:19:10 +00:00
db $ff
2016-06-12 00:24:04 +00:00
GaryScript10:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld a, $0
2015-08-31 02:38:41 +00:00
ld [wGaryCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryScript_760c8:
2014-05-18 18:19:10 +00:00
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, $ff
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
GaryTextPointers:
2014-05-18 18:19:10 +00:00
dw GaryText1
dw GaryText2
dw GaryText3
dw GaryText4
dw GaryText5
2016-06-12 00:24:04 +00:00
GaryText1:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_CHAMPION_RIVAL
ld hl, GaryChampionIntroText
jr z, .printText
2014-05-18 18:19:10 +00:00
ld hl, GaryText_76103
.printText
2014-05-18 18:19:10 +00:00
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
GaryChampionIntroText:
TX_FAR _GaryChampionIntroText
2014-05-18 18:19:10 +00:00
db "@"
2016-06-12 00:24:04 +00:00
GaryDefeatedText:
TX_FAR _GaryDefeatedText
2014-05-18 18:19:10 +00:00
db "@"
2016-06-12 00:24:04 +00:00
GaryVictoryText:
TX_FAR _GaryVictoryText
2014-05-18 18:19:10 +00:00
db "@"
2016-06-12 00:24:04 +00:00
GaryText_76103:
2014-05-18 18:19:10 +00:00
TX_FAR _GaryText_76103
db "@"
2016-06-12 00:24:04 +00:00
GaryText2:
2014-05-18 18:19:10 +00:00
TX_FAR _GaryText2
db "@"
2016-06-12 00:24:04 +00:00
GaryText3:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-08-31 02:38:41 +00:00
ld a, [wPlayerStarter]
ld [wd11e], a
2014-05-18 18:19:10 +00:00
call GetMonName
ld hl, GaryText_76120
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
GaryText_76120:
2014-05-18 18:19:10 +00:00
TX_FAR _GaryText_76120
db "@"
2016-06-12 00:24:04 +00:00
GaryText4:
2014-05-18 18:19:10 +00:00
TX_FAR _GaryText_76125
db "@"
2016-06-12 00:24:04 +00:00
GaryText5:
2014-05-18 18:19:10 +00:00
TX_FAR _GaryText_7612a
db "@"