diff options
Diffstat (limited to 'scripts/gary.asm')
-rwxr-xr-x | scripts/gary.asm | 231 |
1 files changed, 118 insertions, 113 deletions
diff --git a/scripts/gary.asm b/scripts/gary.asm index c0785cab..1fe65fb0 100755 --- a/scripts/gary.asm +++ b/scripts/gary.asm @@ -1,16 +1,16 @@ -GaryScript: ; 75f1d (1d:5f1d) +GaryScript: call EnableAutoTextBoxDrawing ld hl, GaryScriptPointers - ld a, [W_GARYCURSCRIPT] + ld a, [wGaryCurScript] jp CallFunctionInTable -GaryScript_75f29: ; 75f29 (1d:5f29) +ResetGaryScript: xor a ld [wJoyIgnore], a - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -GaryScriptPointers: ; 75f31 (1d:5f31) +GaryScriptPointers: dw GaryScript0 dw GaryScript1 dw GaryScript2 @@ -23,209 +23,215 @@ GaryScriptPointers: ; 75f31 (1d:5f31) dw GaryScript9 dw GaryScript10 -GaryScript0: ; 75f47 (1d:5f47) +GaryScript0: ret -GaryScript1: ; 75f48 (1d:5f48) +GaryScript1: ld a, $ff ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd - ld de, RLEMovement75f63 + ld de, GaryEntrance_RLEMovement call DecodeRLEList dec a ld [wSimulatedJoypadStatesIndex], a call StartSimulatingJoypadStates ld a, $2 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -RLEMovement75f63: ; 75f63 (1d:5f63) - db $40,1 - db $10,1 - db $40,3 +GaryEntrance_RLEMovement: + db D_UP,1 + db D_RIGHT,1 + db D_UP,3 db $ff -GaryScript2: ; 75f6a (1d:5f6a) +GaryScript2: ld a, [wSimulatedJoypadStatesIndex] and a ret nz call Delay3 xor a ld [wJoyIgnore], a - ld hl, W_OPTIONS - res 7, [hl] + ld hl, wOptions + res 7, [hl] ; Turn on battle animations to make the battle feel more epic. ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld hl, wd72d set 6, [hl] set 7, [hl] - ld hl, GaryText_760f9 - ld de, GaryText_760fe + ld hl, GaryDefeatedText + ld de, GaryVictoryText call SaveEndBattleTextPointers - ld a, SONY3 + $c8 - ld [W_CUROPPONENT], a + ld a, OPP_SONY3 + ld [wCurOpponent], a ; select which team to use during the encounter - ld a, [W_RIVALSTARTER] + ld a, [wRivalStarter] cp STARTER2 - jr nz, .NotSquirtle ; 0x75f9f $4 + jr nz, .NotStarter2 ld a, $1 - jr .done -.NotSquirtle + jr .saveTrainerId +.NotStarter2 cp STARTER3 - jr nz, .Charmander ; 0x75fa7 $4 + jr nz, .NotStarter3 ld a, $2 - jr .done -.Charmander + jr .saveTrainerId +.NotStarter3 ld a, $3 -.done - ld [W_TRAINERNO], a +.saveTrainerId + ld [wTrainerNo], a xor a ld [hJoyHeld], a ld a, $3 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -GaryScript3: ; 75fbb (1d:5fbb) - ld a, [W_ISINBATTLE] +GaryScript3: + ld a, [wIsInBattle] cp $ff - jp z, GaryScript_75f29 - call UpdateSprites ; move sprites - ld hl, wd867 - set 1, [hl] + jp z, ResetGaryScript + call UpdateSprites + SetEvent EVENT_BEAT_CHAMPION_RIVAL ld a, $f0 ld [wJoyIgnore], a ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld a, $4 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -GaryScript4: ; 75fe4 (1d:5fe4) +GaryScript4: callba Music_Cities1AlternateTempo ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF - ld de, MovementData_76014 + ld de, OakEntranceAfterVictoryMovement ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, HS_CHAMPIONS_ROOM_OAK - ld [wcc4d], a + ld [wMissableObjectIndex], a predef ShowObject ld a, $5 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -MovementData_76014: ; 76014 (1d:6014) - db $40,$40,$40,$40,$40,$FF +OakEntranceAfterVictoryMovement: + db NPC_MOVEMENT_UP + db NPC_MOVEMENT_UP + db NPC_MOVEMENT_UP + db NPC_MOVEMENT_UP + db NPC_MOVEMENT_UP + db $FF -GaryScript5: ; 7601a (1d:601a) +GaryScript5: ld a, [wd730] bit 0, a ret nz - ld a, $2 - ld [wd528], a + ld a, PLAYER_DIR_LEFT + ld [wPlayerMovingDirection], a ld a, $1 - ld [$ff8c], a - ld a, $8 - ld [$ff8d], a + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_LEFT + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $2 - ld [$ff8c], a - xor a - ld [$ff8d], a - call SetSpriteFacingDirectionAndDelay ; face object + ld [H_SPRITEINDEX], a + xor a ; SPRITE_FACING_DOWN + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $6 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -GaryScript6: ; 76047 (1d:6047) +GaryScript6: ld a, $2 - ld [$ff8c], a - ld a, $c - ld [$ff8d], a - call SetSpriteFacingDirectionAndDelay ; face object + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_RIGHT + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay ld a, $4 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $7 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -GaryScript7: ; 7605f (1d:605f) +GaryScript7: ld a, $2 - ld [$ff8c], a - xor a - ld [$ff8d], a - call SetSpriteFacingDirectionAndDelay ; face object + ld [H_SPRITEINDEX], a + xor a ; SPRITE_FACING_DOWN + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay ld a, $5 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 - ld de, MovementData_76080 + ld de, OakExitGaryRoomMovement ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $8 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -MovementData_76080: ; 76080 (1d:6080) - db $40,$40,$FF +OakExitGaryRoomMovement: + db NPC_MOVEMENT_UP + db NPC_MOVEMENT_UP + db $FF -GaryScript8: ; 76083 (1d:6083) +GaryScript8: ld a, [wd730] bit 0, a ret nz ld a, HS_CHAMPIONS_ROOM_OAK - ld [wcc4d], a + ld [wMissableObjectIndex], a predef HideObject ld a, $9 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -GaryScript9: ; 76099 (1d:6099) +GaryScript9: ld a, $ff ld [wJoyIgnore], a ld hl, wSimulatedJoypadStatesEnd - ld de, RLEMovement760b4 + ld de, WalkToHallOfFame_RLEMovment call DecodeRLEList dec a ld [wSimulatedJoypadStatesIndex], a call StartSimulatingJoypadStates ld a, $a - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -RLEMovement760b4 ; 760b4 (1d:60b4) - db $40,4 - db $20,1 +WalkToHallOfFame_RLEMovment: + db D_UP,4 + db D_LEFT,1 db $ff -GaryScript10: ; 760b9 (1d:60b9) +GaryScript10: ld a, [wSimulatedJoypadStatesIndex] and a ret nz xor a ld [wJoyIgnore], a ld a, $0 - ld [W_GARYCURSCRIPT], a + ld [wGaryCurScript], a ret -GaryScript_760c8 ; 760c8 (1d:60c8) +GaryScript_760c8: ld a, $f0 ld [wJoyIgnore], a call DisplayTextID @@ -233,61 +239,60 @@ GaryScript_760c8 ; 760c8 (1d:60c8) ld [wJoyIgnore], a ret -GaryTextPointers: ; 760d6 (1d:60d6) +GaryTextPointers: dw GaryText1 dw GaryText2 dw GaryText3 dw GaryText4 dw GaryText5 -GaryText1: ; 760e0 (1d:60e0) - db $08 ; asm - ld a, [wd867] - bit 1, a - ld hl, GaryText_760f4 - jr z, .asm_17e9f ; 0x760e9 +GaryText1: + TX_ASM + CheckEvent EVENT_BEAT_CHAMPION_RIVAL + ld hl, GaryChampionIntroText + jr z, .printText ld hl, GaryText_76103 -.asm_17e9f ; 0x760ee +.printText call PrintText jp TextScriptEnd -GaryText_760f4: ; 760f4 (1d:60f4) - TX_FAR _GaryText_760f4 +GaryChampionIntroText: + TX_FAR _GaryChampionIntroText db "@" -GaryText_760f9: ; 760f9 (1d:60f9) - TX_FAR _GaryText_760f9 +GaryDefeatedText: + TX_FAR _GaryDefeatedText db "@" -GaryText_760fe: ; 760fe (1d:60fe) - TX_FAR _GaryText_760fe +GaryVictoryText: + TX_FAR _GaryVictoryText db "@" -GaryText_76103: ; 76103 (1d:6103) +GaryText_76103: TX_FAR _GaryText_76103 db "@" -GaryText2: ; 76108 (1d:6108) +GaryText2: TX_FAR _GaryText2 db "@" -GaryText3: ; 7610d (1d:610d) - db $8 - ld a, [W_PLAYERSTARTER] +GaryText3: + TX_ASM + ld a, [wPlayerStarter] ld [wd11e], a call GetMonName ld hl, GaryText_76120 call PrintText jp TextScriptEnd -GaryText_76120: ; 76120 (1d:6120) +GaryText_76120: TX_FAR _GaryText_76120 db "@" -GaryText4: ; 76125 (1d:6125) +GaryText4: TX_FAR _GaryText_76125 db "@" -GaryText5: ; 7612a (1d:612a) +GaryText5: TX_FAR _GaryText_7612a db "@" |