Use a battle_anim macro for move animations' special effects and subanimations

Move animations' sound IDs are off by one from move IDs.
This commit is contained in:
Rangi 2020-07-16 21:45:30 -04:00
parent 0db7ee08ff
commit 2f43a41100
6 changed files with 973 additions and 870 deletions

View file

@ -1,6 +1,7 @@
; special effects that are part of move animations
const_def $D8
const_def $C0
FIRST_SE_ID EQU const_value
const_skip $18
const SE_WAVY_SCREEN ; $D8 used in Psywave/Night Shade/Psychic etc.
const SE_SUBSTITUTE_MON ; $D9 used in Substitute (turns the pokemon into a mini sprite)
const SE_SHAKE_BACK_AND_FORTH ; $DA used in Double Team
@ -40,3 +41,92 @@
const SE_RESET_SCREEN_PALETTE ; $FC used in Leer/Thunderpunch/etc.
const SE_DARK_SCREEN_PALETTE ; $FD used in Hyper Beam/Thunderpunch/etc.
const SE_DARK_SCREEN_FLASH ; $FE used in Cut/Take Down/etc.
; subanimations that are part of move animations
const_def
const SUBANIM_00
const SUBANIM_01
const SUBANIM_02
const SUBANIM_03
const SUBANIM_04
const SUBANIM_05
const SUBANIM_06
const SUBANIM_07
const SUBANIM_08
const SUBANIM_09
const SUBANIM_0A
const SUBANIM_0B
const SUBANIM_0C
const SUBANIM_0D
const SUBANIM_0E
const SUBANIM_0F
const SUBANIM_10
const SUBANIM_11
const SUBANIM_12
const SUBANIM_13
const SUBANIM_14
const SUBANIM_15
const SUBANIM_16
const SUBANIM_17
const SUBANIM_18
const SUBANIM_19
const SUBANIM_1A
const SUBANIM_1B
const SUBANIM_1C
const SUBANIM_1D
const SUBANIM_1E
const SUBANIM_1F
const SUBANIM_20
const SUBANIM_21
const SUBANIM_22
const SUBANIM_23
const SUBANIM_24
const SUBANIM_25
const SUBANIM_26
const SUBANIM_27
const SUBANIM_28
const SUBANIM_29
const SUBANIM_2A
const SUBANIM_2B
const SUBANIM_2C
const SUBANIM_2D
const SUBANIM_2E
const SUBANIM_2F
const SUBANIM_30
const SUBANIM_31
const SUBANIM_32
const SUBANIM_33
const SUBANIM_34
const SUBANIM_35
const SUBANIM_36
const SUBANIM_37
const SUBANIM_38
const SUBANIM_39
const SUBANIM_3A
const SUBANIM_3B
const SUBANIM_3C
const SUBANIM_3D
const SUBANIM_3E
const SUBANIM_3F
const SUBANIM_40
const SUBANIM_41
const SUBANIM_42
const SUBANIM_43
const SUBANIM_44
const SUBANIM_45
const SUBANIM_46
const SUBANIM_47
const SUBANIM_48
const SUBANIM_49
const SUBANIM_4A
const SUBANIM_4B
const SUBANIM_4C
const SUBANIM_4D
const SUBANIM_4E
const SUBANIM_4F
const SUBANIM_50
const SUBANIM_51
const SUBANIM_52
const SUBANIM_53
const SUBANIM_54
const SUBANIM_55

View file

@ -131,7 +131,7 @@ FrameBlockPointers:
; third byte = tile id (it's actually tile id - $31)
; fourth byte = tile properties (xflip/yflip/etc.)
FrameBlock01:
db $09
db 9 ; #
db $00, $00, $2c, $00
db $00, $08, $2d, $00
db $00, $10, $2c, $20
@ -143,7 +143,7 @@ FrameBlock01:
db $10, $10, $2c, $60
FrameBlock02:
db $10
db 16 ; #
db $00, $00, $20, $00
db $00, $08, $21, $00
db $00, $10, $21, $20
@ -162,28 +162,28 @@ FrameBlock02:
db $18, $18, $20, $60
FrameBlock03:
db $04
db 4 ; #
db $00, $00, $02, $00
db $00, $08, $02, $20
db $08, $00, $12, $00
db $08, $08, $12, $20
FrameBlock04:
db $04
db 4 ; #
db $00, $00, $06, $00
db $00, $08, $07, $00
db $08, $00, $16, $00
db $08, $08, $17, $00
FrameBlock05:
db $04
db 4 ; #
db $00, $00, $07, $20
db $00, $08, $06, $20
db $08, $00, $17, $20
db $08, $08, $16, $20
FrameBlock06:
db $0c
db 12 ; #
db $00, $08, $23, $00
db $08, $00, $32, $00
db $08, $08, $33, $00
@ -198,7 +198,7 @@ FrameBlock06:
db $18, $10, $23, $60
FrameBlock07:
db $10
db 16 ; #
db $00, $00, $20, $00
db $00, $08, $21, $00
db $08, $00, $30, $00
@ -217,7 +217,7 @@ FrameBlock07:
db $18, $18, $20, $60
FrameBlock08:
db $10
db 16 ; #
db $00, $00, $20, $00
db $00, $08, $21, $00
db $08, $00, $30, $00
@ -236,7 +236,7 @@ FrameBlock08:
db $20, $20, $20, $60
FrameBlock09:
db $0c
db 12 ; #
db $00, $00, $24, $00
db $00, $08, $25, $00
db $08, $00, $34, $00
@ -251,7 +251,7 @@ FrameBlock09:
db $20, $20, $24, $60
FrameBlock0a:
db $0c
db 12 ; #
db $00, $00, $24, $00
db $00, $08, $25, $00
db $08, $00, $34, $00
@ -266,21 +266,21 @@ FrameBlock0a:
db $28, $28, $24, $60
FrameBlock0b:
db $04
db 4 ; #
db $00, $00, $05, $00
db $00, $08, $05, $20
db $08, $00, $15, $00
db $08, $08, $15, $20
FrameBlock0c:
db $04
db 4 ; #
db $00, $00, $04, $00
db $00, $08, $04, $20
db $08, $00, $14, $00
db $08, $08, $14, $20
FrameBlock0d:
db $08
db 8 ; #
db $00, $00, $0c, $00
db $00, $08, $0d, $00
db $08, $00, $1c, $00
@ -291,21 +291,21 @@ FrameBlock0d:
db $18, $08, $0c, $60
FrameBlock0e:
db $04
db 4 ; #
db $20, $00, $0c, $00
db $20, $08, $0d, $00
db $28, $00, $1c, $00
db $28, $08, $1d, $00
FrameBlock0f:
db $04
db 4 ; #
db $30, $00, $1d, $60
db $30, $08, $1c, $60
db $38, $00, $0d, $60
db $38, $08, $0c, $60
FrameBlock10:
db $08
db 8 ; #
db $00, $00, $0e, $00
db $00, $08, $0f, $00
db $08, $00, $1e, $00
@ -316,7 +316,7 @@ FrameBlock10:
db $08, $18, $1e, $20
FrameBlock11:
db $08
db 8 ; #
db $00, $00, $0e, $00
db $00, $08, $0f, $00
db $08, $00, $1e, $00
@ -327,20 +327,20 @@ FrameBlock11:
db $08, $28, $1e, $20
FrameBlock12:
db $03
db 3 ; #
db $00, $00, $37, $00
db $08, $10, $37, $00
db $00, $20, $37, $00
FrameBlock13:
db $04
db 4 ; #
db $00, $00, $36, $00
db $00, $08, $36, $20
db $08, $00, $36, $40
db $08, $08, $36, $60
FrameBlock14:
db $08
db 8 ; #
db $00, $10, $28, $00
db $00, $18, $28, $20
db $08, $10, $38, $00
@ -351,7 +351,7 @@ FrameBlock14:
db $08, $28, $36, $60
FrameBlock15:
db $0c
db 12 ; #
db $00, $00, $28, $00
db $00, $08, $28, $20
db $08, $00, $38, $00
@ -366,7 +366,7 @@ FrameBlock15:
db $08, $28, $38, $20
FrameBlock16:
db $08
db 8 ; #
db $00, $00, $29, $00
db $00, $08, $29, $20
db $08, $00, $39, $00
@ -377,60 +377,60 @@ FrameBlock16:
db $08, $28, $39, $20
FrameBlock17:
db $04
db 4 ; #
db $00, $00, $08, $00
db $00, $08, $09, $00
db $08, $00, $18, $00
db $08, $08, $19, $00
FrameBlock18:
db $01
db 1 ; #
db $18, $00, $45, $60
FrameBlock19:
db $02
db 2 ; #
db $18, $08, $45, $00
db $10, $08, $46, $60
FrameBlock1a:
db $02
db 2 ; #
db $10, $10, $45, $60
db $18, $10, $46, $00
FrameBlock1b:
db $02
db 2 ; #
db $10, $18, $45, $00
db $08, $18, $46, $60
FrameBlock1c:
db $02
db 2 ; #
db $08, $20, $45, $60
db $10, $20, $46, $00
FrameBlock1d:
db $02
db 2 ; #
db $08, $28, $45, $00
db $00, $28, $46, $60
FrameBlock1e:
db $02
db 2 ; #
db $00, $30, $45, $60
db $08, $30, $46, $00
FrameBlock75:
db $04
db 4 ; #
db $00, $00, $43, $00
db $00, $08, $43, $20
db $08, $00, $22, $00
db $08, $08, $43, $60
FrameBlock1f:
db $02
db 2 ; #
db $00, $00, $03, $00
db $00, $30, $03, $20
FrameBlock20:
db $06
db 6 ; #
db $00, $00, $03, $00
db $00, $30, $03, $20
db $08, $08, $03, $00
@ -439,7 +439,7 @@ FrameBlock20:
db $08, $30, $13, $20
FrameBlock21:
db $0c
db 12 ; #
db $00, $00, $03, $00
db $00, $30, $03, $20
db $08, $08, $03, $00
@ -454,7 +454,7 @@ FrameBlock21:
db $10, $30, $03, $20
FrameBlock22:
db $13
db 19 ; #
db $00, $00, $03, $00
db $08, $00, $13, $00
db $10, $00, $03, $00
@ -476,19 +476,19 @@ FrameBlock22:
db $18, $30, $13, $20
FrameBlock23:
db $04
db 4 ; #
db $00, $00, $0a, $00
db $00, $08, $0b, $00
db $08, $00, $1a, $00
db $08, $08, $1b, $00
FrameBlock24:
db $02
db 2 ; #
db $08, $00, $0a, $00
db $08, $08, $0b, $00
FrameBlock25:
db $0c
db 12 ; #
db $10, $00, $0a, $00
db $10, $08, $0b, $00
db $18, $00, $1a, $00
@ -503,14 +503,14 @@ FrameBlock25:
db $10, $28, $1b, $00
FrameBlock26:
db $04
db 4 ; #
db $00, $10, $44, $00
db $00, $18, $44, $20
db $08, $10, $44, $40
db $08, $18, $44, $60
FrameBlock27:
db $05
db 5 ; #
db $08, $08, $44, $00
db $08, $10, $44, $20
db $10, $08, $44, $40
@ -518,7 +518,7 @@ FrameBlock27:
db $00, $18, $47, $00
FrameBlock28:
db $06
db 6 ; #
db $10, $00, $44, $00
db $10, $08, $44, $20
db $18, $00, $44, $40
@ -527,30 +527,30 @@ FrameBlock28:
db $02, $16, $47, $00
FrameBlock29:
db $04
db 4 ; #
db $18, $00, $47, $00
db $12, $06, $47, $00
db $0c, $0c, $47, $00
db $06, $12, $47, $00
FrameBlock2a:
db $04
db 4 ; #
db $00, $00, $44, $00
db $00, $08, $44, $20
db $08, $00, $44, $40
db $08, $08, $44, $60
FrameBlock2b:
db $02
db 2 ; #
db $06, $02, $47, $00
db $00, $08, $47, $00
FrameBlock2c:
db $01
db 1 ; #
db $a0, $00, $4d, $00
FrameBlock2d:
db $08
db 8 ; #
db $00, $00, $26, $00
db $00, $08, $27, $00
db $08, $00, $36, $00
@ -561,7 +561,7 @@ FrameBlock2d:
db $18, $08, $39, $00
FrameBlock2e:
db $08
db 8 ; #
db $00, $00, $27, $20
db $00, $08, $26, $20
db $08, $00, $37, $20
@ -572,25 +572,25 @@ FrameBlock2e:
db $18, $08, $38, $20
FrameBlock2f:
db $04
db 4 ; #
db $00, $00, $0c, $00
db $00, $08, $0d, $00
db $08, $00, $0c, $40
db $08, $08, $0d, $40
FrameBlock30:
db $04
db 4 ; #
db $00, $00, $44, $00
db $00, $08, $44, $20
db $08, $00, $44, $40
db $08, $08, $44, $60
FrameBlock31:
db $01
db 1 ; #
db $00, $00, $45, $00
FrameBlock32:
db $07
db 7 ; #
db $00, $00, $4d, $00
db $00, $08, $2f, $00
db $00, $10, $4d, $20
@ -600,7 +600,7 @@ FrameBlock32:
db $10, $08, $3f, $00
FrameBlock33:
db $07
db 7 ; #
db $00, $08, $3f, $40
db $08, $00, $4e, $40
db $08, $08, $07, $40
@ -610,11 +610,11 @@ FrameBlock33:
db $10, $10, $4d, $60
FrameBlock34:
db $01
db 1 ; #
db $a0, $00, $00, $10
FrameBlock35:
db $06
db 6 ; #
db $00, $00, $2a, $00
db $00, $08, $2b, $00
db $08, $00, $3a, $00
@ -623,42 +623,42 @@ FrameBlock35:
db $18, $08, $2b, $40
FrameBlock36:
db $04
db 4 ; #
db $00, $00, $00, $00
db $00, $08, $01, $00
db $08, $00, $10, $00
db $08, $08, $11, $00
FrameBlock37:
db $04
db 4 ; #
db $00, $00, $01, $a0
db $00, $08, $00, $a0
db $08, $00, $11, $a0
db $08, $08, $10, $a0
FrameBlock38:
db $04
db 4 ; #
db $00, $00, $0a, $00
db $00, $08, $0b, $00
db $08, $00, $1a, $00
db $08, $08, $1b, $00
FrameBlock39:
db $04
db 4 ; #
db $00, $00, $0b, $20
db $00, $08, $0a, $20
db $08, $00, $1b, $20
db $08, $08, $1a, $20
FrameBlock3a:
db $04
db 4 ; #
db $20, $00, $05, $00
db $20, $08, $05, $20
db $28, $00, $15, $00
db $28, $08, $15, $20
FrameBlock3b:
db $05
db 5 ; #
db $18, $00, $04, $00
db $18, $08, $04, $20
db $20, $00, $14, $00
@ -666,7 +666,7 @@ FrameBlock3b:
db $28, $04, $41, $00
FrameBlock3c:
db $06
db 6 ; #
db $10, $00, $05, $00
db $10, $08, $05, $20
db $18, $00, $15, $00
@ -675,7 +675,7 @@ FrameBlock3c:
db $28, $04, $42, $00
FrameBlock3d:
db $07
db 7 ; #
db $08, $00, $04, $00
db $08, $08, $04, $20
db $10, $00, $14, $00
@ -685,7 +685,7 @@ FrameBlock3d:
db $28, $04, $41, $00
FrameBlock3e:
db $08
db 8 ; #
db $00, $00, $05, $00
db $00, $08, $05, $20
db $08, $00, $15, $00
@ -696,7 +696,7 @@ FrameBlock3e:
db $28, $04, $42, $00
FrameBlock3f:
db $08
db 8 ; #
db $00, $00, $04, $00
db $00, $08, $04, $20
db $08, $00, $14, $00
@ -707,20 +707,20 @@ FrameBlock3f:
db $28, $04, $41, $00
FrameBlock40:
db $03
db 3 ; #
db $00, $00, $3d, $00
db $00, $08, $3d, $00
db $08, $08, $3d, $00
FrameBlock41:
db $04
db 4 ; #
db $00, $00, $06, $00
db $00, $08, $06, $20
db $08, $00, $16, $00
db $08, $08, $17, $00
FrameBlock42:
db $0b
db 11 ; #
db $00, $10, $42, $00
db $08, $00, $42, $00
db $08, $08, $42, $00
@ -734,7 +734,7 @@ FrameBlock42:
db $20, $20, $42, $00
FrameBlock43:
db $0b
db 11 ; #
db $00, $10, $41, $00
db $08, $00, $41, $00
db $08, $08, $41, $00
@ -748,42 +748,42 @@ FrameBlock43:
db $20, $20, $41, $00
FrameBlock44:
db $04
db 4 ; #
db $00, $00, $49, $00
db $00, $28, $49, $00
db $28, $00, $49, $00
db $28, $28, $49, $00
FrameBlock45:
db $04
db 4 ; #
db $00, $00, $49, $00
db $00, $18, $49, $00
db $18, $00, $49, $00
db $18, $18, $49, $00
FrameBlock46:
db $04
db 4 ; #
db $00, $00, $49, $00
db $00, $08, $49, $00
db $08, $00, $49, $00
db $08, $08, $49, $00
FrameBlock47:
db $04
db 4 ; #
db $00, $00, $43, $00
db $00, $08, $43, $20
db $08, $00, $43, $40
db $08, $08, $43, $60
SmallBlackCircleFrameBlock:
db $04
db 4 ; #
db $08, $08, $33, $00
db $08, $10, $33, $20
db $10, $08, $33, $40
db $10, $10, $33, $60
LargeBlockCircleFrameBlock:
db $10
db 16 ; #
db $00, $00, $22, $00
db $00, $08, $23, $00
db $00, $10, $23, $20
@ -802,7 +802,7 @@ LargeBlockCircleFrameBlock:
db $18, $18, $22, $60
FrameBlock71:
db $10
db 16 ; #
db $00, $00, $22, $00
db $00, $08, $3b, $00
db $00, $10, $23, $20
@ -821,7 +821,7 @@ FrameBlock71:
db $18, $18, $22, $60
FrameBlock72:
db $0c
db 12 ; #
db $00, $00, $32, $00
db $00, $08, $43, $00
db $00, $10, $43, $20
@ -836,7 +836,7 @@ FrameBlock72:
db $10, $18, $22, $60
FrameBlock73:
db $08
db 8 ; #
db $00, $00, $32, $40
db $00, $08, $43, $40
db $00, $10, $43, $60
@ -847,42 +847,42 @@ FrameBlock73:
db $08, $18, $22, $60
FrameBlock74:
db $04
db 4 ; #
db $00, $00, $22, $40
db $00, $08, $23, $40
db $00, $10, $23, $60
db $00, $18, $22, $60
FrameBlock4a:
db $04
db 4 ; #
db $08, $18, $4c, $20
db $20, $08, $4b, $00
db $30, $20, $4c, $00
db $18, $30, $4b, $40
FrameBlock4b:
db $04
db 4 ; #
db $00, $18, $4c, $00
db $20, $00, $4b, $40
db $38, $20, $4c, $20
db $18, $38, $4b, $00
FrameBlock4c:
db $04
db 4 ; #
db $10, $08, $4a, $40
db $30, $10, $4a, $00
db $28, $30, $4a, $20
db $08, $28, $4a, $60
FrameBlock4d:
db $04
db 4 ; #
db $08, $00, $4a, $20
db $38, $08, $4a, $60
db $30, $38, $4a, $40
db $00, $30, $4a, $00
FrameBlock4e:
db $08
db 8 ; #
db $00, $30, $44, $00
db $00, $38, $44, $20
db $08, $30, $44, $40
@ -893,7 +893,7 @@ FrameBlock4e:
db $2e, $12, $44, $60
FrameBlock4f:
db $0c
db 12 ; #
db $0e, $22, $44, $00
db $0e, $2a, $44, $20
db $16, $22, $44, $40
@ -908,7 +908,7 @@ FrameBlock4f:
db $2a, $0e, $47, $00
FrameBlock50:
db $08
db 8 ; #
db $06, $32, $47, $00
db $00, $38, $47, $00
db $12, $26, $47, $00
@ -919,7 +919,7 @@ FrameBlock50:
db $24, $14, $47, $00
FrameBlock51:
db $08
db 8 ; #
db $00, $00, $35, $20
db $08, $00, $35, $40
db $10, $00, $35, $00
@ -930,33 +930,33 @@ FrameBlock51:
db $18, $40, $35, $40
FrameBlock52:
db $04
db 4 ; #
db $00, $00, $2a, $00
db $00, $08, $2b, $00
db $08, $00, $3a, $00
db $08, $08, $3b, $00
FrameBlock53:
db $03
db 3 ; #
db $00, $00, $3f, $00
db $00, $08, $3f, $00
db $08, $06, $3f, $00
FrameBlock54:
db $04
db 4 ; #
db $00, $00, $0e, $00
db $00, $08, $0e, $20
db $08, $00, $0f, $00
db $08, $08, $0f, $20
FrameBlock55:
db $03
db 3 ; #
db $10, $00, $2c, $00
db $10, $08, $3c, $00
db $10, $10, $2d, $00
FrameBlock56:
db $06
db 6 ; #
db $10, $10, $31, $00
db $10, $18, $31, $00
db $08, $10, $2c, $00
@ -965,7 +965,7 @@ FrameBlock56:
db $10, $20, $2d, $00
FrameBlock57:
db $09
db 9 ; #
db $08, $20, $31, $00
db $10, $20, $31, $00
db $08, $28, $31, $00
@ -977,7 +977,7 @@ FrameBlock57:
db $10, $30, $2d, $00
FrameBlock58:
db $07
db 7 ; #
db $00, $00, $46, $00
db $08, $02, $47, $00
db $10, $03, $48, $00
@ -987,11 +987,11 @@ FrameBlock58:
db $30, $05, $48, $00
FrameBlock59:
db $01
db 1 ; #
db $00, $00, $42, $00
FrameBlock5a:
db $0c
db 12 ; #
db $00, $00, $24, $00
db $00, $08, $25, $00
db $08, $00, $34, $00
@ -1006,14 +1006,14 @@ FrameBlock5a:
db $18, $18, $24, $60
FrameBlock5b:
db $04
db 4 ; #
db $00, $00, $43, $00
db $00, $08, $43, $20
db $08, $00, $43, $40
db $08, $08, $43, $60
FrameBlock5c:
db $08
db 8 ; #
db $00, $00, $49, $00
db $02, $08, $49, $00
db $18, $00, $49, $00
@ -1024,7 +1024,7 @@ FrameBlock5c:
db $10, $08, $43, $60
FrameBlock5d:
db $0b
db 11 ; #
db $00, $00, $49, $00
db $18, $02, $49, $00
db $14, $10, $49, $00
@ -1038,7 +1038,7 @@ FrameBlock5d:
db $0c, $10, $43, $60
FrameBlock5e:
db $0f
db 15 ; #
db $00, $08, $49, $00
db $08, $10, $49, $00
db $20, $00, $49, $00
@ -1056,14 +1056,14 @@ FrameBlock5e:
db $28, $10, $43, $60
FrameBlock5f:
db $04
db 4 ; #
db $00, $00, $49, $00
db $00, $10, $49, $00
db $00, $20, $49, $00
db $00, $30, $49, $00
FrameBlock60:
db $08
db 8 ; #
db $00, $00, $49, $00
db $00, $10, $49, $00
db $00, $20, $49, $00
@ -1074,7 +1074,7 @@ FrameBlock60:
db $08, $38, $49, $00
FrameBlock61:
db $0c
db 12 ; #
db $00, $00, $49, $00
db $00, $10, $49, $00
db $00, $20, $49, $00
@ -1089,7 +1089,7 @@ FrameBlock61:
db $10, $30, $49, $00
FrameBlock62:
db $0f
db 15 ; #
db $00, $00, $49, $00
db $00, $10, $49, $00
db $00, $20, $49, $00
@ -1108,7 +1108,7 @@ FrameBlock62:
db $18, $38, $49, $00 ; unused
FrameBlock63:
db $06
db 6 ; #
db $10, $00, $26, $00
db $10, $08, $27, $00
db $08, $10, $26, $00
@ -1117,7 +1117,7 @@ FrameBlock63:
db $00, $28, $27, $00
FrameBlock64:
db $06
db 6 ; #
db $18, $00, $27, $00
db $10, $08, $26, $00
db $10, $10, $27, $00
@ -1126,7 +1126,7 @@ FrameBlock64:
db $00, $28, $26, $00
FrameBlock65:
db $06
db 6 ; #
db $00, $00, $1c, $00
db $00, $08, $1d, $00
db $10, $00, $1c, $00
@ -1135,27 +1135,27 @@ FrameBlock65:
db $20, $08, $1d, $00
FrameBlock66:
db $02
db 2 ; #
db $00, $00, $03, $00
db $08, $00, $13, $00
FrameBlock67:
db $01
db 1 ; #
db $00, $00, $03, $00
FrameBlock68:
db $04
db 4 ; #
db $00, $00, $03, $00
db $00, $08, $03, $20
db $08, $00, $13, $00
db $08, $08, $13, $20
FrameBlock69:
db $01
db 1 ; #
db $00, $00, $06, $00
FrameBlock6a:
db $08
db 8 ; #
db $00, $00, $2e, $00
db $00, $30, $2e, $20
db $30, $00, $2e, $40
@ -1166,7 +1166,7 @@ FrameBlock6a:
db $18, $30, $3e, $20
FrameBlock6b:
db $08
db 8 ; #
db $00, $00, $2e, $00
db $00, $20, $2e, $20
db $20, $00, $2e, $40
@ -1177,7 +1177,7 @@ FrameBlock6b:
db $10, $20, $3e, $20
FrameBlock6c:
db $08
db 8 ; #
db $00, $00, $2e, $00
db $00, $10, $2e, $20
db $10, $00, $2e, $40
@ -1188,33 +1188,33 @@ FrameBlock6c:
db $08, $10, $3e, $20
FrameBlock6d:
db $02
db 2 ; #
db $00, $00, $1e, $00
db $00, $08, $1f, $00
FrameBlock6e:
db $04
db 4 ; #
db $00, $00, $48, $00
db $00, $08, $48, $20
db $08, $00, $12, $00
db $08, $08, $12, $20
FrameBlock6f:
db $04
db 4 ; #
db $00, $00, $4a, $00
db $00, $08, $07, $00
db $08, $00, $16, $00
db $08, $08, $17, $00
FrameBlock70:
db $04
db 4 ; #
db $00, $00, $07, $20
db $00, $08, $4a, $20
db $08, $00, $17, $20
db $08, $08, $16, $20
FrameBlock76:
db $07
db 7 ; #
db $00, $10, $2f, $00
db $01, $08, $2f, $00
db $01, $18, $2f, $00
@ -1224,18 +1224,18 @@ FrameBlock76:
db $0a, $20, $3e, $20
FrameBlock77:
db $04
db 4 ; #
db $00, $02, $4b, $00
db $00, $0a, $4c, $00
db $08, $00, $4c, $60
db $08, $08, $4b, $60
FrameBlock78:
db $01
db 1 ; #
db $00, $00, $4d, $00
FrameBlock79:
db $01
db 1 ; #
db $00, $00, $4e, $00
FrameBlockBaseCoords:
@ -1418,4 +1418,5 @@ FrameBlockBaseCoords:
db $48, $28
FrameBlock00:
db $00, $00
db 0 ; #
db $00

View file

@ -5,43 +5,43 @@ ENDM
SpecialEffectPointers:
; special effect id, effect routine address
special_effect SE_DARK_SCREEN_FLASH, AnimationFlashScreen ; $FE
special_effect SE_DARK_SCREEN_PALETTE, AnimationDarkScreenPalette ; $FD
special_effect SE_RESET_SCREEN_PALETTE, AnimationResetScreenPalette ; $FC
special_effect SE_SHAKE_SCREEN, AnimationShakeScreen ; $FB
special_effect SE_DARK_SCREEN_FLASH, AnimationFlashScreen ; $FE
special_effect SE_DARK_SCREEN_PALETTE, AnimationDarkScreenPalette ; $FD
special_effect SE_RESET_SCREEN_PALETTE, AnimationResetScreenPalette ; $FC
special_effect SE_SHAKE_SCREEN, AnimationShakeScreen ; $FB
special_effect SE_WATER_DROPLETS_EVERYWHERE, AnimationWaterDropletsEverywhere ; $FA
special_effect SE_DARKEN_MON_PALETTE, AnimationDarkenMonPalette ; $F9
special_effect SE_FLASH_SCREEN_LONG, AnimationFlashScreenLong ; $F8
special_effect SE_SLIDE_MON_UP, AnimationSlideMonUp ; $F7
special_effect SE_SLIDE_MON_DOWN, AnimationSlideMonDown ; $F6
special_effect SE_FLASH_MON_PIC, AnimationFlashMonPic ; $F5
special_effect SE_SLIDE_MON_OFF, AnimationSlideMonOff ; $F4
special_effect SE_BLINK_MON, AnimationBlinkMon ; $F3
special_effect SE_MOVE_MON_HORIZONTALLY, AnimationMoveMonHorizontally ; $F2
special_effect SE_RESET_MON_POSITION, AnimationResetMonPosition ; $F1
special_effect SE_LIGHT_SCREEN_PALETTE, AnimationLightScreenPalette ; $F0
special_effect SE_HIDE_MON_PIC, AnimationHideMonPic ; $EF
special_effect SE_SQUISH_MON_PIC, AnimationSquishMonPic ; $EE
special_effect SE_SHOOT_BALLS_UPWARD, AnimationShootBallsUpward ; $ED
special_effect SE_SHOOT_MANY_BALLS_UPWARD, AnimationShootManyBallsUpward ; $EC
special_effect SE_BOUNCE_UP_AND_DOWN, AnimationBoundUpAndDown ; $EB
special_effect SE_MINIMIZE_MON, AnimationMinimizeMon ; $EA
special_effect SE_SLIDE_MON_DOWN_AND_HIDE, AnimationSlideMonDownAndHide ; $E9
special_effect SE_TRANSFORM_MON, AnimationTransformMon ; $E8
special_effect SE_LEAVES_FALLING, AnimationLeavesFalling ; $E7
special_effect SE_PETALS_FALLING, AnimationPetalsFalling ; $E6
special_effect SE_SLIDE_MON_HALF_OFF, AnimationSlideMonHalfOff ; $E5
special_effect SE_SHAKE_ENEMY_HUD, AnimationShakeEnemyHUD ; $E4
special_effect SE_SHAKE_ENEMY_HUD_2, AnimationShakeEnemyHUD ; unused--same pointer as SE_SHAKE_ENEMY_HUD ($E4)
special_effect SE_SPIRAL_BALLS_INWARD, AnimationSpiralBallsInward ; $E2
special_effect SE_DELAY_ANIMATION_10, AnimationDelay10 ; $E1
special_effect SE_FLASH_ENEMY_MON_PIC, AnimationFlashEnemyMonPic ; unused--same as SE_FLASH_MON_PIC ($F5), but for the enemy mon
special_effect SE_HIDE_ENEMY_MON_PIC, AnimationHideEnemyMonPic ; $DF
special_effect SE_BLINK_ENEMY_MON, AnimationBlinkEnemyMon ; $DE
special_effect SE_SHOW_MON_PIC, AnimationShowMonPic ; $DD
special_effect SE_SHOW_ENEMY_MON_PIC, AnimationShowEnemyMonPic ; $DC
special_effect SE_SLIDE_ENEMY_MON_OFF, AnimationSlideEnemyMonOff ; $DB
special_effect SE_SHAKE_BACK_AND_FORTH, AnimationShakeBackAndForth ; $DA
special_effect SE_SUBSTITUTE_MON, AnimationSubstitute ; $D9
special_effect SE_WAVY_SCREEN, AnimationWavyScreen ; $D8
special_effect SE_DARKEN_MON_PALETTE, AnimationDarkenMonPalette ; $F9
special_effect SE_FLASH_SCREEN_LONG, AnimationFlashScreenLong ; $F8
special_effect SE_SLIDE_MON_UP, AnimationSlideMonUp ; $F7
special_effect SE_SLIDE_MON_DOWN, AnimationSlideMonDown ; $F6
special_effect SE_FLASH_MON_PIC, AnimationFlashMonPic ; $F5
special_effect SE_SLIDE_MON_OFF, AnimationSlideMonOff ; $F4
special_effect SE_BLINK_MON, AnimationBlinkMon ; $F3
special_effect SE_MOVE_MON_HORIZONTALLY, AnimationMoveMonHorizontally ; $F2
special_effect SE_RESET_MON_POSITION, AnimationResetMonPosition ; $F1
special_effect SE_LIGHT_SCREEN_PALETTE, AnimationLightScreenPalette ; $F0
special_effect SE_HIDE_MON_PIC, AnimationHideMonPic ; $EF
special_effect SE_SQUISH_MON_PIC, AnimationSquishMonPic ; $EE
special_effect SE_SHOOT_BALLS_UPWARD, AnimationShootBallsUpward ; $ED
special_effect SE_SHOOT_MANY_BALLS_UPWARD, AnimationShootManyBallsUpward ; $EC
special_effect SE_BOUNCE_UP_AND_DOWN, AnimationBoundUpAndDown ; $EB
special_effect SE_MINIMIZE_MON, AnimationMinimizeMon ; $EA
special_effect SE_SLIDE_MON_DOWN_AND_HIDE, AnimationSlideMonDownAndHide ; $E9
special_effect SE_TRANSFORM_MON, AnimationTransformMon ; $E8
special_effect SE_LEAVES_FALLING, AnimationLeavesFalling ; $E7
special_effect SE_PETALS_FALLING, AnimationPetalsFalling ; $E6
special_effect SE_SLIDE_MON_HALF_OFF, AnimationSlideMonHalfOff ; $E5
special_effect SE_SHAKE_ENEMY_HUD, AnimationShakeEnemyHUD ; $E4
special_effect SE_SHAKE_ENEMY_HUD_2, AnimationShakeEnemyHUD ; $E3 unused
special_effect SE_SPIRAL_BALLS_INWARD, AnimationSpiralBallsInward ; $E2
special_effect SE_DELAY_ANIMATION_10, AnimationDelay10 ; $E1
special_effect SE_FLASH_ENEMY_MON_PIC, AnimationFlashEnemyMonPic ; $E0 unused
special_effect SE_HIDE_ENEMY_MON_PIC, AnimationHideEnemyMonPic ; $DF
special_effect SE_BLINK_ENEMY_MON, AnimationBlinkEnemyMon ; $DE
special_effect SE_SHOW_MON_PIC, AnimationShowMonPic ; $DD
special_effect SE_SHOW_ENEMY_MON_PIC, AnimationShowEnemyMonPic ; $DC
special_effect SE_SLIDE_ENEMY_MON_OFF, AnimationSlideEnemyMonOff ; $DB
special_effect SE_SHAKE_BACK_AND_FORTH, AnimationShakeBackAndForth ; $DA
special_effect SE_SUBSTITUTE_MON, AnimationSubstitute ; $D9
special_effect SE_WAVY_SCREEN, AnimationWavyScreen ; $D8
db -1 ; end

View file

@ -5,28 +5,28 @@ ENDM
AnimationIdSpecialEffects:
; animation id, effect routine address
anim_special_effect MEGA_PUNCH, AnimationFlashScreen
anim_special_effect GUILLOTINE, AnimationFlashScreen
anim_special_effect MEGA_KICK, AnimationFlashScreen
anim_special_effect HEADBUTT, AnimationFlashScreen
anim_special_effect TAIL_WHIP, TailWhipAnimationUnused
anim_special_effect GROWL, DoGrowlSpecialEffects
anim_special_effect DISABLE, AnimationFlashScreen
anim_special_effect BLIZZARD, DoBlizzardSpecialEffects
anim_special_effect BUBBLEBEAM, AnimationFlashScreen
anim_special_effect HYPER_BEAM, FlashScreenEveryFourFrameBlocks
anim_special_effect THUNDERBOLT, FlashScreenEveryEightFrameBlocks
anim_special_effect REFLECT, AnimationFlashScreen
anim_special_effect SELFDESTRUCT, DoExplodeSpecialEffects
anim_special_effect SPORE, AnimationFlashScreen
anim_special_effect EXPLOSION, DoExplodeSpecialEffects
anim_special_effect ROCK_SLIDE, DoRockSlideSpecialEffects
anim_special_effect TRADE_BALL_DROP_ANIM, TradeHidePokemon
anim_special_effect MEGA_PUNCH, AnimationFlashScreen
anim_special_effect GUILLOTINE, AnimationFlashScreen
anim_special_effect MEGA_KICK, AnimationFlashScreen
anim_special_effect HEADBUTT, AnimationFlashScreen
anim_special_effect TAIL_WHIP, TailWhipAnimationUnused
anim_special_effect GROWL, DoGrowlSpecialEffects
anim_special_effect DISABLE, AnimationFlashScreen
anim_special_effect BLIZZARD, DoBlizzardSpecialEffects
anim_special_effect BUBBLEBEAM, AnimationFlashScreen
anim_special_effect HYPER_BEAM, FlashScreenEveryFourFrameBlocks
anim_special_effect THUNDERBOLT, FlashScreenEveryEightFrameBlocks
anim_special_effect REFLECT, AnimationFlashScreen
anim_special_effect SELFDESTRUCT, DoExplodeSpecialEffects
anim_special_effect SPORE, AnimationFlashScreen
anim_special_effect EXPLOSION, DoExplodeSpecialEffects
anim_special_effect ROCK_SLIDE, DoRockSlideSpecialEffects
anim_special_effect TRADE_BALL_DROP_ANIM, TradeHidePokemon
anim_special_effect TRADE_BALL_SHAKE_ANIM, TradeShakePokeball
anim_special_effect TRADE_BALL_TILT_ANIM, TradeJumpPokeball
anim_special_effect TOSS_ANIM, DoBallTossSpecialEffects
anim_special_effect SHAKE_ANIM, DoBallShakeSpecialEffects
anim_special_effect POOF_ANIM, DoPoofSpecialEffects
anim_special_effect GREATTOSS_ANIM, DoBallTossSpecialEffects
anim_special_effect ULTRATOSS_ANIM, DoBallTossSpecialEffects
anim_special_effect TRADE_BALL_TILT_ANIM, TradeJumpPokeball
anim_special_effect TOSS_ANIM, DoBallTossSpecialEffects
anim_special_effect SHAKE_ANIM, DoBallShakeSpecialEffects
anim_special_effect POOF_ANIM, DoPoofSpecialEffects
anim_special_effect GREATTOSS_ANIM, DoBallTossSpecialEffects
anim_special_effect ULTRATOSS_ANIM, DoBallTossSpecialEffects
db -1 ; end

File diff suppressed because it is too large Load diff

View file

@ -177,9 +177,9 @@ PlayAnimation:
ld l, a
.animationLoop
ld a, [hli]
cp $FF
cp -1
jr z, .AnimationOver
cp $C0 ; is this subanimation or a special effect?
cp FIRST_SE_ID ; is this subanimation or a special effect?
jr c, .playSubanimation
.doSpecialEffect
ld c, a
@ -194,7 +194,7 @@ PlayAnimation:
jr .searchSpecialEffectTableLoop
.foundMatch
ld a, [hli]
cp -1 ; is there a sound to play?
cp NO_MOVE - 1 ; is there a sound to play?
jr z, .skipPlayingSound
ld [wAnimSoundID], a ; store sound
push hl
@ -347,18 +347,17 @@ LoadAnimationTileset:
ld c, a ; number of tiles
jp CopyVideoData ; load tileset
anim_tileset: MACRO
db \1
dw \2
db -1 ; padding
ENDM
AnimationTilesetPointers:
db 79 ; number of tiles
dw AnimationTileset1
db $FF
db 79 ; number of tiles
dw AnimationTileset2
db $FF
db 64 ; number of tiles
dw AnimationTileset1
db $FF
; number of tiles, gfx pointer
anim_tileset 79, AnimationTileset1
anim_tileset 79, AnimationTileset2
anim_tileset 64, AnimationTileset1
AnimationTileset1:
INCBIN "gfx/battle/attack_anim_1.2bpp"
@ -412,7 +411,7 @@ MoveAnimation:
ld [wSubAnimSubEntryAddr], a
ld [wUnusedD09B], a
ld [wSubAnimTransform], a
dec a
dec a ; NO_MOVE - 1
ld [wAnimSoundID], a
pop af
pop bc
@ -461,10 +460,10 @@ PlayApplyingAttackAnimation:
jp hl
AnimationTypePointerTable:
dw ShakeScreenVertically ; enemy mon has used a damaging move without a side effect
dw ShakeScreenVertically ; enemy mon has used a damaging move without a side effect
dw ShakeScreenHorizontallyHeavy ; enemy mon has used a damaging move with a side effect
dw ShakeScreenHorizontallySlow ; enemy mon has used a non-damaging move
dw BlinkEnemyMonSprite ; player mon has used a damaging move without a side effect
dw ShakeScreenHorizontallySlow ; enemy mon has used a non-damaging move
dw BlinkEnemyMonSprite ; player mon has used a damaging move without a side effect
dw ShakeScreenHorizontallyLight ; player mon has used a damaging move with a side effect
dw ShakeScreenHorizontallySlow2 ; player mon has used a non-damaging move
@ -549,7 +548,7 @@ SetAnimationPalette:
PlaySubanimation:
ld a, [wAnimSoundID]
cp $FF
cp NO_MOVE - 1
jr z, .skipPlayingSound
call GetMoveSound
call PlaySound