ref: 2f43a411007194aef77849e4ea982e139e37507d
parent: 0db7ee08ff2eb500f6ddd559cb18cc21219f2e70
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Thu Jul 16 17:45:30 EDT 2020
Use a battle_anim macro for move animations' special effects and subanimations Move animations' sound IDs are off by one from move IDs.
--- a/constants/move_animation_constants.asm
+++ b/constants/move_animation_constants.asm
@@ -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
--- a/data/battle_anims/frame_blocks.asm
+++ b/data/battle_anims/frame_blocks.asm
@@ -131,7 +131,7 @@
; 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 @@
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,7 +162,7 @@
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
@@ -169,7 +169,7 @@
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
@@ -176,7 +176,7 @@
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
@@ -183,7 +183,7 @@
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 @@
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 @@
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 @@
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 @@
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,7 +266,7 @@
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
@@ -273,7 +273,7 @@
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
@@ -280,7 +280,7 @@
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,7 +291,7 @@
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
@@ -298,7 +298,7 @@
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
@@ -305,7 +305,7 @@
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 @@
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,13 +327,13 @@
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
@@ -340,7 +340,7 @@
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 @@
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 @@
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,7 +377,7 @@
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
@@ -384,41 +384,41 @@
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
@@ -425,12 +425,12 @@
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 @@
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 @@
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,7 +476,7 @@
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
@@ -483,12 +483,12 @@
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,7 +503,7 @@
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
@@ -510,7 +510,7 @@
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 @@
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,7 +527,7 @@
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
@@ -534,7 +534,7 @@
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
@@ -541,16 +541,16 @@
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 @@
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,7 +572,7 @@
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
@@ -579,7 +579,7 @@
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
@@ -586,11 +586,11 @@
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 @@
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 @@
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,7 +623,7 @@
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
@@ -630,7 +630,7 @@
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
@@ -637,7 +637,7 @@
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
@@ -644,7 +644,7 @@
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
@@ -651,7 +651,7 @@
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
@@ -658,7 +658,7 @@
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 @@
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 @@
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 @@
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 @@
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,13 +707,13 @@
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
@@ -720,7 +720,7 @@
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 @@
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,7 +748,7 @@
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
@@ -755,7 +755,7 @@
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
@@ -762,7 +762,7 @@
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
@@ -769,7 +769,7 @@
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
@@ -776,7 +776,7 @@
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
@@ -783,7 +783,7 @@
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 @@
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 @@
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 @@
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,7 +847,7 @@
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
@@ -854,7 +854,7 @@
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
@@ -861,7 +861,7 @@
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
@@ -868,7 +868,7 @@
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
@@ -875,7 +875,7 @@
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
@@ -882,7 +882,7 @@
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 @@
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 @@
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 @@
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,7 +930,7 @@
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
@@ -937,13 +937,13 @@
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
@@ -950,13 +950,13 @@
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 @@
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 @@
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 @@
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,7 +1006,7 @@
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
@@ -1013,7 +1013,7 @@
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 @@
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 @@
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,7 +1056,7 @@
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
@@ -1063,7 +1063,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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,16 +1135,16 @@
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
@@ -1151,11 +1151,11 @@
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 @@
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 @@
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,12 +1188,12 @@
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
@@ -1200,7 +1200,7 @@
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
@@ -1207,7 +1207,7 @@
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
@@ -1214,7 +1214,7 @@
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,7 +1224,7 @@
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
@@ -1231,11 +1231,11 @@
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 @@
db $48, $28
FrameBlock00:
- db $00, $00
+ db 0 ; #
+ db $00
--- a/data/battle_anims/special_effect_pointers.asm
+++ b/data/battle_anims/special_effect_pointers.asm
@@ -5,43 +5,43 @@
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
--- a/data/battle_anims/special_effects.asm
+++ b/data/battle_anims/special_effects.asm
@@ -5,28 +5,28 @@
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
--- a/data/moves/animations.asm
+++ b/data/moves/animations.asm
@@ -203,1059 +203,1072 @@
dw ThrowBaitAnim
dw ZigZagScreenAnim
-; each animation is a list of subanimations and special effects
-; if first byte < $56
-; db tileset_and_delay, sound_id, subanimation_id
-; if first byte >= $D8
-; db special_effect_id, sound_id
-; $FF terminated
+; each animation is a list of subanimations
+; and/or special effects, terminated by -1
+
+;\1: sound_id
+;\2: special_effect_id or subanimation_id
+; if \2 is a subanimation_id:
+;\3: tileset_id
+;\4: delay
+battle_anim: MACRO
+ IF _NARG == 4
+ db (\3 << 6) | \4
+ db \1 - 1
+ db \2
+ ELSE
+ db \2
+ db \1 - 1
+ ENDC
+ENDM
+
ZigZagScreenAnim:
- db SE_WAVY_SCREEN, $FF
- db $FF
+ battle_anim NO_MOVE, SE_WAVY_SCREEN
+ db -1 ; end
PoundAnim:
StruggleAnim:
- db $08, $00, $01
- db $FF
+ battle_anim POUND, SUBANIM_01, 0, 8
+ db -1 ; end
KarateChopAnim:
- db $08, $01, $03
- db $FF
+ battle_anim KARATE_CHOP, SUBANIM_03, 0, 8
+ db -1 ; end
DoubleSlapAnim:
- db $05, $02, $01
- db $05, $02, $01
- db $FF
+ battle_anim DOUBLESLAP, SUBANIM_01, 0, 5
+ battle_anim DOUBLESLAP, SUBANIM_01, 0, 5
+ db -1 ; end
CometPunchAnim:
- db $04, $03, $02
- db $04, $03, $02
- db $FF
+ battle_anim COMET_PUNCH, SUBANIM_02, 0, 4
+ battle_anim COMET_PUNCH, SUBANIM_02, 0, 4
+ db -1 ; end
MegaPunchAnim:
- db $46, $04, $04
- db $FF
+ battle_anim MEGA_PUNCH, SUBANIM_04, 1, 6
+ db -1 ; end
PayDayAnim:
- db $08, $00, $01
- db $04, $05, $52
- db $FF
+ battle_anim POUND, SUBANIM_01, 0, 8
+ battle_anim PAY_DAY, SUBANIM_52, 0, 4
+ db -1 ; end
FirePunchAnim:
- db $06, $06, $02
- db $46, $FF, $11
- db $FF
+ battle_anim FIRE_PUNCH, SUBANIM_02, 0, 6
+ battle_anim NO_MOVE, SUBANIM_11, 1, 6
+ db -1 ; end
IcePunchAnim:
- db $06, $07, $02
- db $10, $FF, $2F
- db $FF
+ battle_anim ICE_PUNCH, SUBANIM_02, 0, 6
+ battle_anim NO_MOVE, SUBANIM_2F, 0, 16
+ db -1 ; end
ThunderPunchAnim:
- db $06, $08, $02
- db SE_DARK_SCREEN_PALETTE, $FF
- db $46, $FF, $2B
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim THUNDERPUNCH, SUBANIM_02, 0, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_2B, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
ScratchAnim:
- db $06, $09, $0F
- db $FF
+ battle_anim SCRATCH, SUBANIM_0F, 0, 6
+ db -1 ; end
VicegripAnim:
- db $08, $0A, $2A
- db $FF
+ battle_anim VICEGRIP, SUBANIM_2A, 0, 8
+ db -1 ; end
GuillotineAnim:
- db $06, $0B, $2A
- db $FF
+ battle_anim GUILLOTINE, SUBANIM_2A, 0, 6
+ db -1 ; end
RazorWindAnim:
- db $04, $0C, $16
- db $FF
+ battle_anim RAZOR_WIND, SUBANIM_16, 0, 4
+ db -1 ; end
SwordsDanceAnim:
- db $46, $0D, $18
- db $46, $0D, $18
- db $46, $0D, $18
- db $FF
+ battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6
+ battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6
+ battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6
+ db -1 ; end
CutAnim:
- db SE_DARK_SCREEN_FLASH, $0E
- db $04, $FF, $16
- db $FF
+ battle_anim CUT, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_16, 0, 4
+ db -1 ; end
GustAnim:
- db $46, $0F, $10
- db $06, $FF, $02
- db $FF
+ battle_anim GUST, SUBANIM_10, 1, 6
+ battle_anim NO_MOVE, SUBANIM_02, 0, 6
+ db -1 ; end
WingAttackAnim:
- db $46, $10, $04
- db $FF
+ battle_anim WING_ATTACK, SUBANIM_04, 1, 6
+ db -1 ; end
WhirlwindAnim:
- db $46, $11, $10
- db SE_SLIDE_ENEMY_MON_OFF, $FF
- db $FF
+ battle_anim WHIRLWIND, SUBANIM_10, 1, 6
+ battle_anim NO_MOVE, SE_SLIDE_ENEMY_MON_OFF
+ db -1 ; end
FlyAnim:
- db $46, $12, $04
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim FLY, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
BindAnim:
- db $04, $13, $23
- db $04, $13, $23
- db $FF
+ battle_anim BIND, SUBANIM_23, 0, 4
+ battle_anim BIND, SUBANIM_23, 0, 4
+ db -1 ; end
SlamAnim:
- db $06, $14, $02
- db $FF
+ battle_anim SLAM, SUBANIM_02, 0, 6
+ db -1 ; end
VineWhipAnim:
- db $01, $15, $16
- db $08, $FF, $01
- db $FF
+ battle_anim VINE_WHIP, SUBANIM_16, 0, 1
+ battle_anim NO_MOVE, SUBANIM_01, 0, 8
+ db -1 ; end
StompAnim:
- db $48, $16, $05
- db $FF
+ battle_anim STOMP, SUBANIM_05, 1, 8
+ db -1 ; end
DoubleKickAnim:
- db $08, $17, $01
- db $08, $17, $01
- db $FF
+ battle_anim DOUBLE_KICK, SUBANIM_01, 0, 8
+ battle_anim DOUBLE_KICK, SUBANIM_01, 0, 8
+ db -1 ; end
MegaKickAnim:
- db $46, $18, $04
- db $FF
+ battle_anim MEGA_KICK, SUBANIM_04, 1, 6
+ db -1 ; end
JumpKickAnim:
- db $46, $19, $04
- db $FF
+ battle_anim JUMP_KICK, SUBANIM_04, 1, 6
+ db -1 ; end
RollingKickAnim:
- db SE_DARK_SCREEN_FLASH, $1A
- db $46, $FF, $04
- db $FF
+ battle_anim ROLLING_KICK, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_04, 1, 6
+ db -1 ; end
SandAttackAnim:
- db $46, $1B, $28
- db $FF
+ battle_anim SAND_ATTACK, SUBANIM_28, 1, 6
+ db -1 ; end
HeatButtAnim:
- db $46, $1C, $05
- db $FF
+ battle_anim HEADBUTT, SUBANIM_05, 1, 6
+ db -1 ; end
HornAttackAnim:
- db $06, $1D, $45
- db $46, $FF, $05
- db $FF
+ battle_anim HORN_ATTACK, SUBANIM_45, 0, 6
+ battle_anim NO_MOVE, SUBANIM_05, 1, 6
+ db -1 ; end
FuryAttackAnim:
- db $02, $1E, $46
- db $02, $FF, $46
- db $FF
+ battle_anim FURY_ATTACK, SUBANIM_46, 0, 2
+ battle_anim NO_MOVE, SUBANIM_46, 0, 2
+ db -1 ; end
HornDrillAnim:
- db $42, $1F, $05
- db $42, $FF, $05
- db $42, $FF, $05
- db $42, $FF, $05
- db $42, $FF, $05
- db $FF
+ battle_anim HORN_DRILL, SUBANIM_05, 1, 2
+ battle_anim NO_MOVE, SUBANIM_05, 1, 2
+ battle_anim NO_MOVE, SUBANIM_05, 1, 2
+ battle_anim NO_MOVE, SUBANIM_05, 1, 2
+ battle_anim NO_MOVE, SUBANIM_05, 1, 2
+ db -1 ; end
TackleAnim:
- db SE_MOVE_MON_HORIZONTALLY, $48
- db SE_RESET_MON_POSITION, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ db -1 ; end
BodySlamAnim:
- db SE_MOVE_MON_HORIZONTALLY, $48
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_MON_POSITION, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ db -1 ; end
WrapAnim:
- db $04, $22, $23
- db $04, $22, $23
- db $04, $22, $23
- db $FF
+ battle_anim WRAP, SUBANIM_23, 0, 4
+ battle_anim WRAP, SUBANIM_23, 0, 4
+ battle_anim WRAP, SUBANIM_23, 0, 4
+ db -1 ; end
TakeDownAnim:
- db SE_MOVE_MON_HORIZONTALLY, $48
- db SE_DARK_SCREEN_FLASH, $23
- db SE_RESET_MON_POSITION, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY
+ battle_anim TAKE_DOWN, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ db -1 ; end
ThrashAnim:
- db $46, $24, $04
- db $FF
+ battle_anim THRASH, SUBANIM_04, 1, 6
+ db -1 ; end
DoubleEdgeAnim:
- db SE_LIGHT_SCREEN_PALETTE, $48
- db $06, $FF, $2D
- db SE_RESET_SCREEN_PALETTE, $FF
- db SE_MOVE_MON_HORIZONTALLY, $FF
- db SE_DARK_SCREEN_FLASH, $25
- db SE_RESET_MON_POSITION, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_2D, 0, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_MOVE_MON_HORIZONTALLY
+ battle_anim DOUBLE_EDGE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ db -1 ; end
TailWhipAnim:
- db SE_MOVE_MON_HORIZONTALLY, $84
- db SE_DELAY_ANIMATION_10, $FF
- db SE_RESET_MON_POSITION, $84
- db SE_DELAY_ANIMATION_10, $FF
- db SE_MOVE_MON_HORIZONTALLY, $84
- db SE_DELAY_ANIMATION_10, $FF
- db SE_RESET_MON_POSITION, $84
- db $FF
+ battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_RESET_MON_POSITION
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_RESET_MON_POSITION
+ db -1 ; end
PoisonStingAnim:
- db $06, $27, $00
- db $FF
+ battle_anim POISON_STING, SUBANIM_00, 0, 6
+ db -1 ; end
TwineedleAnim:
- db $05, $28, $01
- db $05, $28, $01
- db $FF
+ battle_anim TWINEEDLE, SUBANIM_01, 0, 5
+ battle_anim TWINEEDLE, SUBANIM_01, 0, 5
+ db -1 ; end
PinMissileAnim:
- db $03, $29, $01
- db $FF
+ battle_anim PIN_MISSILE, SUBANIM_01, 0, 3
+ db -1 ; end
LeerAnim:
- db SE_DARK_SCREEN_PALETTE, $48
- db SE_DARK_SCREEN_FLASH, $2A
- db SE_DARK_SCREEN_FLASH, $2A
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim LEER, SE_DARK_SCREEN_FLASH
+ battle_anim LEER, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
BiteAnim:
- db $08, $2B, $02
- db $FF
+ battle_anim BITE, SUBANIM_02, 0, 8
+ db -1 ; end
GrowlAnim:
- db $46, $2C, $12
- db $FF
+ battle_anim GROWL, SUBANIM_12, 1, 6
+ db -1 ; end
RoarAnim:
- db $46, $2D, $15
- db $46, $2D, $15
- db $46, $2D, $15
- db $FF
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ db -1 ; end
SingAnim:
- db $46, $2E, $12
- db $50, $FF, $40
- db $50, $FF, $40
- db $FF
+ battle_anim SING, SUBANIM_12, 1, 6
+ battle_anim NO_MOVE, SUBANIM_40, 1, 16
+ battle_anim NO_MOVE, SUBANIM_40, 1, 16
+ db -1 ; end
SupersonicAnim:
- db $06, $2F, $31
- db $FF
+ battle_anim SUPERSONIC, SUBANIM_31, 0, 6
+ db -1 ; end
SonicBoomAnim:
- db $46, $2D, $15
- db $46, $2D, $15
- db $46, $0F, $10
- db $46, $FF, $05
- db $FF
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ battle_anim GUST, SUBANIM_10, 1, 6
+ battle_anim NO_MOVE, SUBANIM_05, 1, 6
+ db -1 ; end
DisableAnim:
- db SE_DARK_SCREEN_PALETTE, $48
- db SE_DARK_SCREEN_FLASH, $2A
- db SE_DARK_SCREEN_FLASH, $2A
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim LEER, SE_DARK_SCREEN_FLASH
+ battle_anim LEER, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
AcidAnim:
- db $46, $32, $13
- db $46, $32, $14
- db $FF
+ battle_anim ACID, SUBANIM_13, 1, 6
+ battle_anim ACID, SUBANIM_14, 1, 6
+ db -1 ; end
EmberAnim:
- db $46, $33, $11
- db $FF
+ battle_anim EMBER, SUBANIM_11, 1, 6
+ db -1 ; end
FlamethrowerAnim:
- db $46, $34, $1F
- db $46, $34, $0C
- db $46, $34, $0D
- db $FF
+ battle_anim FLAMETHROWER, SUBANIM_1F, 1, 6
+ battle_anim FLAMETHROWER, SUBANIM_0C, 1, 6
+ battle_anim FLAMETHROWER, SUBANIM_0D, 1, 6
+ db -1 ; end
MistAnim:
- db SE_LIGHT_SCREEN_PALETTE, $FF
- db SE_WATER_DROPLETS_EVERYWHERE, $38
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
WaterGunAnim:
- db $06, $36, $2C
- db $FF
+ battle_anim WATER_GUN, SUBANIM_2C, 0, 6
+ db -1 ; end
HydroPumpAnim:
- db $06, $37, $1A
- db $06, $37, $1A
- db $FF
+ battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6
+ battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6
+ db -1 ; end
SurfAnim:
- db SE_WATER_DROPLETS_EVERYWHERE, $38
- db $06, $37, $1A
- db $FF
+ battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE
+ battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6
+ db -1 ; end
IceBeamAnim:
- db $03, $39, $2E
- db $10, $FF, $2F
- db $FF
+ battle_anim ICE_BEAM, SUBANIM_2E, 0, 3
+ battle_anim NO_MOVE, SUBANIM_2F, 0, 16
+ db -1 ; end
BlizzardAnim:
- db $04, $3A, $38
- db $04, $37, $38
- db $FF
+ battle_anim BLIZZARD, SUBANIM_38, 0, 4
+ battle_anim HYDRO_PUMP, SUBANIM_38, 0, 4
+ db -1 ; end
PsyBeamAnim:
- db $03, $3B, $2E
- db SE_FLASH_SCREEN_LONG, $FF
- db $FF
+ battle_anim PSYBEAM, SUBANIM_2E, 0, 3
+ battle_anim NO_MOVE, SE_FLASH_SCREEN_LONG
+ db -1 ; end
BubbleBeamAnim:
- db $12, $3C, $35
- db $FF
+ battle_anim BUBBLEBEAM, SUBANIM_35, 0, 18
+ db -1 ; end
AuroraBeamAnim:
- db $03, $3D, $2E
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db $FF
+ battle_anim AURORA_BEAM, SUBANIM_2E, 0, 3
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ db -1 ; end
HyperBeamAnim:
- db SE_DARK_SCREEN_PALETTE, $48
- db SE_SPIRAL_BALLS_INWARD, $FF
- db $02, $3E, $2E
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_DARK_SCREEN_FLASH, $FF
- db $46, $04, $04
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim HYPER_BEAM, SUBANIM_2E, 0, 2
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim MEGA_PUNCH, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
PeckAnim:
- db $08, $3F, $01
- db $FF
+ battle_anim PECK, SUBANIM_01, 0, 8
+ db -1 ; end
DrillPeckAnim:
- db $46, $40, $04
- db $FF
+ battle_anim DRILL_PECK, SUBANIM_04, 1, 6
+ db -1 ; end
SubmissionAnim:
- db SE_SLIDE_MON_OFF, $41
- db $06, $FF, $01
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim SUBMISSION, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_01, 0, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
LowKickAnim:
- db SE_SLIDE_MON_OFF, $42
- db $46, $FF, $04
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim LOW_KICK, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
CounterAnim:
- db SE_SLIDE_MON_OFF, $43
- db $46, $FF, $04
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim COUNTER, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
SeismicTossAnim:
- db SE_BLINK_ENEMY_MON, $FF
- db $41, $8B, $4E
- db SE_HIDE_ENEMY_MON_PIC, $FF
- db SE_SLIDE_MON_OFF, $FF
- db $42, $44, $4F
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_SHOW_MON_PIC, $FF
- db $41, $44, $50
- db SE_SHOW_ENEMY_MON_PIC, $FF
- db SE_SHAKE_SCREEN, $FF
- db $FF
+ battle_anim NO_MOVE, SE_BLINK_ENEMY_MON
+ battle_anim BARRAGE, SUBANIM_4E, 1, 1
+ battle_anim NO_MOVE, SE_HIDE_ENEMY_MON_PIC
+ battle_anim NO_MOVE, SE_SLIDE_MON_OFF
+ battle_anim SEISMIC_TOSS, SUBANIM_4F, 1, 2
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ battle_anim SEISMIC_TOSS, SUBANIM_50, 1, 1
+ battle_anim NO_MOVE, SE_SHOW_ENEMY_MON_PIC
+ battle_anim NO_MOVE, SE_SHAKE_SCREEN
+ db -1 ; end
StrengthAnim:
- db SE_MOVE_MON_HORIZONTALLY, $48
- db SE_RESET_MON_POSITION, $FF
- db $46, $06, $04
- db $FF
+ battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ battle_anim FIRE_PUNCH, SUBANIM_04, 1, 6
+ db -1 ; end
AbsorbAnim:
- db SE_LIGHT_SCREEN_PALETTE, $46
- db $06, $FF, $21
- db $06, $FF, $22
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim ABSORB, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_21, 0, 6
+ battle_anim NO_MOVE, SUBANIM_22, 0, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
MegaDrainAnim:
- db SE_LIGHT_SCREEN_PALETTE, $47
- db SE_DARK_SCREEN_FLASH, $FF
- db $06, $FF, $21
- db $06, $FF, $22
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim MEGA_DRAIN, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_21, 0, 6
+ battle_anim NO_MOVE, SUBANIM_22, 0, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
LeechSeedAnim:
- db $46, $48, $1B
- db $55, $4D, $1C
- db $FF
+ battle_anim LEECH_SEED, SUBANIM_1B, 1, 6
+ battle_anim STUN_SPORE, SUBANIM_1C, 1, 21
+ db -1 ; end
GrowthAnim:
- db SE_LIGHT_SCREEN_PALETTE, $49
- db SE_SPIRAL_BALLS_INWARD, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim GROWTH, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
RazorLeafAnim:
- db SE_LEAVES_FALLING, $4A
- db $41, $80, $44
- db $01, $0C, $16
- db $FF
+ battle_anim RAZOR_LEAF, SE_LEAVES_FALLING
+ battle_anim SWIFT, SUBANIM_44, 1, 1
+ battle_anim RAZOR_WIND, SUBANIM_16, 0, 1
+ db -1 ; end
SolarBeamAnim:
- db $06, $4B, $2E
- db $06, $FF, $01
- db $FF
+ battle_anim SOLARBEAM, SUBANIM_2E, 0, 6
+ battle_anim NO_MOVE, SUBANIM_01, 0, 6
+ db -1 ; end
PoisonPowderAnim:
- db $06, $4C, $36
- db $FF
+ battle_anim POISONPOWDER, SUBANIM_36, 0, 6
+ db -1 ; end
StunSporeAnim:
- db $06, $4D, $36
- db $FF
+ battle_anim STUN_SPORE, SUBANIM_36, 0, 6
+ db -1 ; end
SleepPowderAnim:
- db $06, $4E, $36
- db $FF
+ battle_anim SLEEP_POWDER, SUBANIM_36, 0, 6
+ db -1 ; end
PedalDanceAnim:
- db SE_LIGHT_SCREEN_PALETTE, $4F
- db SE_PETALS_FALLING, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim PETAL_DANCE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_PETALS_FALLING
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
StringShotAnim:
- db $08, $50, $37
- db $FF
+ battle_anim STRING_SHOT, SUBANIM_37, 0, 8
+ db -1 ; end
DragonRageAnim:
- db $46, $51, $1F
- db $46, $FF, $0C
- db $46, $FF, $0D
- db $46, $FF, $0E
- db $FF
+ battle_anim DRAGON_RAGE, SUBANIM_1F, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0C, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0D, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0E, 1, 6
+ db -1 ; end
FireSpinAnim:
- db $46, $52, $0C
- db $46, $FF, $0D
- db $46, $FF, $0E
- db $FF
+ battle_anim FIRE_SPIN, SUBANIM_0C, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0D, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0E, 1, 6
+ db -1 ; end
ThunderShockAnim:
- db $42, $53, $29
- db $FF
+ battle_anim THUNDERSHOCK, SUBANIM_29, 1, 2
+ db -1 ; end
ThunderBoltAnim:
- db $41, $54, $29
- db $41, $54, $29
- db $FF
+ battle_anim THUNDERBOLT, SUBANIM_29, 1, 1
+ battle_anim THUNDERBOLT, SUBANIM_29, 1, 1
+ db -1 ; end
ThunderWaveAnim:
- db $42, $55, $29
- db $02, $FF, $23
- db $04, $FF, $23
- db $FF
+ battle_anim THUNDER_WAVE, SUBANIM_29, 1, 2
+ battle_anim NO_MOVE, SUBANIM_23, 0, 2
+ battle_anim NO_MOVE, SUBANIM_23, 0, 4
+ db -1 ; end
ThunderAnim:
- db SE_DARK_SCREEN_PALETTE, $56
- db SE_DARK_SCREEN_FLASH, $FF
- db $46, $FF, $2B
- db SE_DARK_SCREEN_FLASH, $FF
- db $42, $54, $29
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim THUNDER, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_2B, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim THUNDERBOLT, SUBANIM_29, 1, 2
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
RockThrowAnim:
- db $04, $57, $30
- db $FF
+ battle_anim ROCK_THROW, SUBANIM_30, 0, 4
+ db -1 ; end
EarthquakeAnim:
- db SE_SHAKE_SCREEN, $58
- db SE_SHAKE_SCREEN, $58
- db $FF
+ battle_anim EARTHQUAKE, SE_SHAKE_SCREEN
+ battle_anim EARTHQUAKE, SE_SHAKE_SCREEN
+ db -1 ; end
FissureAnim:
- db SE_DARK_SCREEN_FLASH, $59
- db SE_SHAKE_SCREEN, $FF
- db SE_DARK_SCREEN_FLASH, $59
- db SE_SHAKE_SCREEN, $FF
- db $FF
+ battle_anim FISSURE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_SHAKE_SCREEN
+ battle_anim FISSURE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_SHAKE_SCREEN
+ db -1 ; end
DigAnim:
- db $46, $5A, $04
- db SE_SLIDE_MON_UP, $FF
- db $FF
+ battle_anim DIG, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SLIDE_MON_UP
+ db -1 ; end
ToxicAnim:
- db SE_WATER_DROPLETS_EVERYWHERE, $38
- db $46, $5B, $14
- db $FF
+ battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE
+ battle_anim TOXIC, SUBANIM_14, 1, 6
+ db -1 ; end
ConfusionAnim:
- db SE_FLASH_SCREEN_LONG, $5C
- db $FF
+ battle_anim CONFUSION, SE_FLASH_SCREEN_LONG
+ db -1 ; end
PsychicAnim:
- db SE_FLASH_SCREEN_LONG, $5D
- db SE_WAVY_SCREEN, $FF
- db $FF
+ battle_anim PSYCHIC_M, SE_FLASH_SCREEN_LONG
+ battle_anim NO_MOVE, SE_WAVY_SCREEN
+ db -1 ; end
HypnosisAnim:
- db SE_FLASH_SCREEN_LONG, $5E
- db $FF
+ battle_anim HYPNOSIS, SE_FLASH_SCREEN_LONG
+ db -1 ; end
MeditateAnim:
- db SE_LIGHT_SCREEN_PALETTE, $5F
- db $46, $FF, $43
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim MEDITATE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
AgilityAnim:
- db SE_LIGHT_SCREEN_PALETTE, $60
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim AGILITY, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
QuickAttackAnim:
- db SE_SLIDE_MON_OFF, $61
- db $46, $FF, $04
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim QUICK_ATTACK, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
RageAnim:
- db $06, $62, $01
- db $FF
+ battle_anim RAGE, SUBANIM_01, 0, 6
+ db -1 ; end
TeleportAnim:
- db SE_SQUISH_MON_PIC, $63
- db SE_SHOOT_BALLS_UPWARD, $FF
- db $FF
+ battle_anim TELEPORT, SE_SQUISH_MON_PIC
+ battle_anim NO_MOVE, SE_SHOOT_BALLS_UPWARD
+ db -1 ; end
NightShadeAnim:
- db SE_FLASH_SCREEN_LONG, $5C
- db SE_WAVY_SCREEN, $FF
- db $FF
+ battle_anim CONFUSION, SE_FLASH_SCREEN_LONG
+ battle_anim NO_MOVE, SE_WAVY_SCREEN
+ db -1 ; end
MimicAnim:
- db $46, $65, $21
- db $46, $65, $22
- db $FF
+ battle_anim MIMIC, SUBANIM_21, 1, 6
+ battle_anim MIMIC, SUBANIM_22, 1, 6
+ db -1 ; end
ScreechAnim:
- db $46, $66, $12
- db $FF
+ battle_anim SCREECH, SUBANIM_12, 1, 6
+ db -1 ; end
DoubleTeamAnim:
- db SE_DARK_SCREEN_PALETTE, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db SE_SHAKE_BACK_AND_FORTH, $67
- db SE_SHOW_MON_PIC, $FF
- db $46, $6F, $33
- db $FF
+ battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ battle_anim DOUBLE_TEAM, SE_SHAKE_BACK_AND_FORTH
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ battle_anim BARRIER, SUBANIM_33, 1, 6
+ db -1 ; end
RecoverAnim:
- db SE_BLINK_MON, $68
- db SE_LIGHT_SCREEN_PALETTE, $FF
- db SE_SPIRAL_BALLS_INWARD, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim RECOVER, SE_BLINK_MON
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
HardenAnim:
- db SE_LIGHT_SCREEN_PALETTE, $69
- db $46, $FF, $43
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim HARDEN, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
MinimizeAnim:
- db SE_LIGHT_SCREEN_PALETTE, $6A
- db SE_SPIRAL_BALLS_INWARD, $FF
- db SE_MINIMIZE_MON, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim MINIMIZE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_MINIMIZE_MON
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
SmokeScreenAnim:
- db $46, $6B, $28
- db $04, $FF, $0A
- db SE_DARKEN_MON_PALETTE, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DARK_SCREEN_PALETTE, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_DARKEN_MON_PALETTE, $FF
- db SE_DELAY_ANIMATION_10, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim SMOKESCREEN, SUBANIM_28, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0A, 0, 4
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
ConfuseRayAnim:
- db SE_DARK_SCREEN_PALETTE, $6C
- db $46, $FF, $3E
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim CONFUSE_RAY, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_3E, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
WithdrawAnim:
- db SE_LIGHT_SCREEN_PALETTE, $6E
- db SE_SLIDE_MON_DOWN, $FF
- db $06, $FF, $51
- db SE_RESET_SCREEN_PALETTE, $FF
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim DEFENSE_CURL, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SLIDE_MON_DOWN
+ battle_anim NO_MOVE, SUBANIM_51, 0, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
DefenseCurlAnim:
- db SE_LIGHT_SCREEN_PALETTE, $6E
- db $06, $FF, $43
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim DEFENSE_CURL, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 0, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
BarrierAnim:
- db $46, $6F, $33
- db $46, $6F, $33
- db $FF
+ battle_anim BARRIER, SUBANIM_33, 1, 6
+ battle_anim BARRIER, SUBANIM_33, 1, 6
+ db -1 ; end
LightScreenAnim:
- db SE_LIGHT_SCREEN_PALETTE, $FF
- db $46, $70, $33
- db $46, $70, $33
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim LIGHT_SCREEN, SUBANIM_33, 1, 6
+ battle_anim LIGHT_SCREEN, SUBANIM_33, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
HazeAnim:
- db SE_DARKEN_MON_PALETTE, $FF
- db SE_WATER_DROPLETS_EVERYWHERE, $38
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
ReflectAnim:
- db SE_DARK_SCREEN_PALETTE, $FF
- db $46, $72, $33
- db $46, $72, $33
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE
+ battle_anim REFLECT, SUBANIM_33, 1, 6
+ battle_anim REFLECT, SUBANIM_33, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
FocusEnergyAnim:
- db SE_SPIRAL_BALLS_INWARD, $73
- db $FF
+ battle_anim FOCUS_ENERGY, SE_SPIRAL_BALLS_INWARD
+ db -1 ; end
BideAnim:
- db $46, $74, $04
- db $FF
+ battle_anim BIDE, SUBANIM_04, 1, 6
+ db -1 ; end
MetronomeAnim:
- db SE_MOVE_MON_HORIZONTALLY, $84
- db SE_DELAY_ANIMATION_10, $FF
- db SE_RESET_MON_POSITION, $84
- db SE_DELAY_ANIMATION_10, $FF
- db SE_MOVE_MON_HORIZONTALLY, $84
- db SE_DELAY_ANIMATION_10, $FF
- db SE_RESET_MON_POSITION, $84
- db $FF
+ battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_RESET_MON_POSITION
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_RESET_MON_POSITION
+ db -1 ; end
MirrorMoveAnim:
- db $08, $76, $01
- db $FF
+ battle_anim MIRROR_MOVE, SUBANIM_01, 0, 8
+ db -1 ; end
SelfdestructAnim:
- db $43, $77, $34
- db $FF
+ battle_anim SELFDESTRUCT, SUBANIM_34, 1, 3
+ db -1 ; end
EggBombAnim:
- db $44, $78, $41
- db $44, $78, $42
- db $FF
+ battle_anim EGG_BOMB, SUBANIM_41, 1, 4
+ battle_anim EGG_BOMB, SUBANIM_42, 1, 4
+ db -1 ; end
LickAnim:
- db $46, $7B, $14
- db $FF
+ battle_anim SLUDGE, SUBANIM_14, 1, 6
+ db -1 ; end
SmogAnim:
- db SE_DARKEN_MON_PALETTE, $48
- db $46, $7A, $19
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_DARKEN_MON_PALETTE
+ battle_anim SMOG, SUBANIM_19, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
SludgeAnim:
- db $46, $7B, $13
- db $46, $7B, $14
- db $FF
+ battle_anim SLUDGE, SUBANIM_13, 1, 6
+ battle_anim SLUDGE, SUBANIM_14, 1, 6
+ db -1 ; end
BoneClubAnim:
- db $08, $7C, $02
- db $FF
+ battle_anim BONE_CLUB, SUBANIM_02, 0, 8
+ db -1 ; end
FireBlastAnim:
- db $46, $7D, $1F
- db $46, $FF, $20
- db $46, $FF, $20
- db $46, $FF, $0C
- db $46, $FF, $0D
- db $FF
+ battle_anim FIRE_BLAST, SUBANIM_1F, 1, 6
+ battle_anim NO_MOVE, SUBANIM_20, 1, 6
+ battle_anim NO_MOVE, SUBANIM_20, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0C, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0D, 1, 6
+ db -1 ; end
WaterfallAnim:
- db SE_SLIDE_MON_DOWN, $48
- db $06, $37, $1A
- db $08, $FF, $02
- db SE_SLIDE_MON_UP, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_SLIDE_MON_DOWN
+ battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6
+ battle_anim NO_MOVE, SUBANIM_02, 0, 8
+ battle_anim NO_MOVE, SE_SLIDE_MON_UP
+ db -1 ; end
ClampAnim:
- db $08, $7F, $2A
- db $06, $83, $23
- db $06, $83, $23
- db $FF
+ battle_anim CLAMP, SUBANIM_2A, 0, 8
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ db -1 ; end
SwiftAnim:
- db $43, $80, $3F
- db $FF
+ battle_anim SWIFT, SUBANIM_3F, 1, 3
+ db -1 ; end
SkullBashAnim:
- db $46, $81, $05
- db $FF
+ battle_anim SKULL_BASH, SUBANIM_05, 1, 6
+ db -1 ; end
SpikeCannonAnim:
- db $44, $82, $04
- db $FF
+ battle_anim SPIKE_CANNON, SUBANIM_04, 1, 4
+ db -1 ; end
ConstrictAnim:
- db $06, $83, $23
- db $06, $83, $23
- db $06, $83, $23
- db $FF
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ db -1 ; end
AmnesiaAnim:
- db $08, $84, $25
- db $08, $84, $25
- db $FF
+ battle_anim AMNESIA, SUBANIM_25, 0, 8
+ battle_anim AMNESIA, SUBANIM_25, 0, 8
+ db -1 ; end
KinesisAnim:
- db $08, $85, $01
- db $FF
+ battle_anim KINESIS, SUBANIM_01, 0, 8
+ db -1 ; end
SoftboiledAnim:
- db SE_SLIDE_MON_HALF_OFF, $48
- db $08, $86, $4C
- db SE_LIGHT_SCREEN_PALETTE, $FF
- db SE_SPIRAL_BALLS_INWARD, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_SLIDE_MON_HALF_OFF
+ battle_anim SOFTBOILED, SUBANIM_4C, 0, 8
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
HiJumpKickAnim:
- db $46, $87, $04
- db $FF
+ battle_anim HI_JUMP_KICK, SUBANIM_04, 1, 6
+ db -1 ; end
GlareAnim:
- db SE_DARK_SCREEN_PALETTE, $48
- db SE_DARK_SCREEN_FLASH, $88
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim GLARE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
DreamEaterAnim:
- db SE_FLASH_SCREEN_LONG, $89
- db SE_DARK_SCREEN_PALETTE, $89
- db $08, $89, $02
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim DREAM_EATER, SE_FLASH_SCREEN_LONG
+ battle_anim DREAM_EATER, SE_DARK_SCREEN_PALETTE
+ battle_anim DREAM_EATER, SUBANIM_02, 0, 8
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
PoisonGasAnim:
- db $46, $8A, $19
- db $FF
+ battle_anim POISON_GAS, SUBANIM_19, 1, 6
+ db -1 ; end
BarrageAnim:
- db $43, $8B, $41
- db $05, $FF, $55
- db $FF
+ battle_anim BARRAGE, SUBANIM_41, 1, 3
+ battle_anim NO_MOVE, SUBANIM_55, 0, 5
+ db -1 ; end
LeechLifeAnim:
- db $08, $8C, $02
- db SE_DARK_SCREEN_FLASH, $FF
- db $06, $FF, $21
- db $06, $FF, $22
- db SE_DARK_SCREEN_FLASH, $FF
- db $FF
+ battle_anim LEECH_LIFE, SUBANIM_02, 0, 8
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_21, 0, 6
+ battle_anim NO_MOVE, SUBANIM_22, 0, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ db -1 ; end
LovelyKissAnim:
- db $06, $8D, $12
- db $FF
+ battle_anim LOVELY_KISS, SUBANIM_12, 0, 6
+ db -1 ; end
SkyAttackAnim:
- db SE_SQUISH_MON_PIC, $8E
- db SE_SHOOT_BALLS_UPWARD, $FF
- db $46, $87, $04
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim SKY_ATTACK, SE_SQUISH_MON_PIC
+ battle_anim NO_MOVE, SE_SHOOT_BALLS_UPWARD
+ battle_anim HI_JUMP_KICK, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
TransformAnim:
- db $46, $8F, $21
- db $44, $8F, $22
- db $08, $FF, $47
- db SE_TRANSFORM_MON, $FF
- db $FF
+ battle_anim TRANSFORM, SUBANIM_21, 1, 6
+ battle_anim TRANSFORM, SUBANIM_22, 1, 4
+ battle_anim NO_MOVE, SUBANIM_47, 0, 8
+ battle_anim NO_MOVE, SE_TRANSFORM_MON
+ db -1 ; end
BubbleAnim:
- db $16, $90, $35
- db $FF
+ battle_anim BUBBLE, SUBANIM_35, 0, 22
+ db -1 ; end
DizzyPunchAnim:
- db $06, $91, $17
- db $06, $91, $17
- db $06, $91, $17
- db $06, $02, $02
- db $FF
+ battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6
+ battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6
+ battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6
+ battle_anim DOUBLESLAP, SUBANIM_02, 0, 6
+ db -1 ; end
SporeAnim:
- db $06, $92, $36
- db $FF
+ battle_anim SPORE, SUBANIM_36, 0, 6
+ db -1 ; end
FlashAnim:
- db SE_LIGHT_SCREEN_PALETTE, $48
- db SE_DARK_SCREEN_FLASH, $88
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_LIGHT_SCREEN_PALETTE
+ battle_anim GLARE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
PsywaveAnim:
- db $06, $2F, $31
- db SE_WAVY_SCREEN, $5C
- db $FF
+ battle_anim SUPERSONIC, SUBANIM_31, 0, 6
+ battle_anim CONFUSION, SE_WAVY_SCREEN
+ db -1 ; end
SplashAnim:
- db SE_BOUNCE_UP_AND_DOWN, $95
- db $FF
+ battle_anim SPLASH, SE_BOUNCE_UP_AND_DOWN
+ db -1 ; end
AcidArmorAnim:
- db SE_SLIDE_MON_DOWN_AND_HIDE, $96
- db $FF
+ battle_anim ACID_ARMOR, SE_SLIDE_MON_DOWN_AND_HIDE
+ db -1 ; end
CrabHammerAnim:
- db $46, $97, $05
- db $06, $FF, $2A
- db $FF
+ battle_anim CRABHAMMER, SUBANIM_05, 1, 6
+ battle_anim NO_MOVE, SUBANIM_2A, 0, 6
+ db -1 ; end
ExplosionAnim:
- db $43, $98, $34
- db $FF
+ battle_anim EXPLOSION, SUBANIM_34, 1, 3
+ db -1 ; end
FurySwipesAnim:
- db $04, $99, $0F
- db $FF
+ battle_anim FURY_SWIPES, SUBANIM_0F, 0, 4
+ db -1 ; end
BonemerangAnim:
- db $06, $9A, $02
- db $FF
+ battle_anim BONEMERANG, SUBANIM_02, 0, 6
+ db -1 ; end
RestAnim:
- db $10, $9B, $3A
- db $10, $9B, $3A
- db $FF
+ battle_anim REST, SUBANIM_3A, 0, 16
+ battle_anim REST, SUBANIM_3A, 0, 16
+ db -1 ; end
RockSlideAnim:
- db $04, $9C, $1D
- db $03, $9C, $1E
- db $46, $9D, $04
- db $FF
+ battle_anim ROCK_SLIDE, SUBANIM_1D, 0, 4
+ battle_anim ROCK_SLIDE, SUBANIM_1E, 0, 3
+ battle_anim HYPER_FANG, SUBANIM_04, 1, 6
+ db -1 ; end
HyperFangAnim:
- db $06, $9D, $02
- db $FF
+ battle_anim HYPER_FANG, SUBANIM_02, 0, 6
+ db -1 ; end
SharpenAnim:
- db SE_LIGHT_SCREEN_PALETTE, $9E
- db $46, $FF, $43
- db SE_DARK_SCREEN_FLASH, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim SHARPEN, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
ConversionAnim:
- db SE_DARK_SCREEN_FLASH, $9F
- db $46, $FF, $21
- db $46, $FF, $22
- db SE_DARK_SCREEN_FLASH, $FF
- db $FF
+ battle_anim CONVERSION, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_21, 1, 6
+ battle_anim NO_MOVE, SUBANIM_22, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ db -1 ; end
TriAttackAnim:
- db SE_DARK_SCREEN_FLASH, $A0
- db $46, $FF, $4D
- db SE_DARK_SCREEN_FLASH, $FF
- db $FF
+ battle_anim TRI_ATTACK, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_4D, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ db -1 ; end
SuperFangAnim:
- db SE_DARK_SCREEN_PALETTE, $48
- db $46, $A1, $04
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim SUPER_FANG, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
SlashAnim:
- db $06, $A2, $0F
- db $FF
+ battle_anim SLASH, SUBANIM_0F, 0, 6
+ db -1 ; end
SubstituteAnim:
- db SE_SLIDE_MON_OFF, $A3
- db $08, $FF, $47
- db SE_SUBSTITUTE_MON, $FF
- db $FF
+ battle_anim SUBSTITUTE, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_47, 0, 8
+ battle_anim NO_MOVE, SE_SUBSTITUTE_MON
+ db -1 ; end
BallTossAnim:
- db $03, $FF, $06
- db $FF
+ battle_anim NO_MOVE, SUBANIM_06, 0, 3
+ db -1 ; end
GreatTossAnim:
- db $03, $FF, $07
- db $FF
+ battle_anim NO_MOVE, SUBANIM_07, 0, 3
+ db -1 ; end
UltraTossAnim:
- db $02, $FF, $08
- db $FF
+ battle_anim NO_MOVE, SUBANIM_08, 0, 2
+ db -1 ; end
BallShakeAnim:
- db $04, $FF, $09
- db $FF
+ battle_anim NO_MOVE, SUBANIM_09, 0, 4
+ db -1 ; end
BallPoofAnim:
- db $04, $FF, $0A
- db $FF
+ battle_anim NO_MOVE, SUBANIM_0A, 0, 4
+ db -1 ; end
ShowPicAnim:
- db SE_SHOW_ENEMY_MON_PIC, $FF
- db $FF
+ battle_anim NO_MOVE, SE_SHOW_ENEMY_MON_PIC
+ db -1 ; end
HidePicAnim:
- db SE_HIDE_ENEMY_MON_PIC, $FF
- db $FF
+ battle_anim NO_MOVE, SE_HIDE_ENEMY_MON_PIC
+ db -1 ; end
EnemyFlashAnim:
- db SE_SHOW_MON_PIC, $FF
- db $FF
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
PlayerFlashAnim:
- db SE_FLASH_MON_PIC, $FF
- db $FF
+ battle_anim NO_MOVE, SE_FLASH_MON_PIC
+ db -1 ; end
EnemyHUDShakeAnim:
- db SE_SHAKE_ENEMY_HUD, $FF
- db $FF
+ battle_anim NO_MOVE, SE_SHAKE_ENEMY_HUD
+ db -1 ; end
TradeBallDropAnim:
- db $86, $FF, $48
- db $FF
+ battle_anim NO_MOVE, SUBANIM_48, 2, 6
+ db -1 ; end
TradeBallAppear1Anim:
- db $84, $FF, $49
- db $FF
+ battle_anim NO_MOVE, SUBANIM_49, 2, 4
+ db -1 ; end
TradeBallAppear2Anim:
- db $86, $FF, $4A
- db $FF
+ battle_anim NO_MOVE, SUBANIM_4A, 2, 6
+ db -1 ; end
TradeBallPoofAnim:
- db $86, $FF, $4B
- db $FF
+ battle_anim NO_MOVE, SUBANIM_4B, 2, 6
+ db -1 ; end
XStatItemAnim:
- db SE_LIGHT_SCREEN_PALETTE, $FF
- db SE_SPIRAL_BALLS_INWARD, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
ShrinkingSquareAnim:
- db SE_LIGHT_SCREEN_PALETTE, $FF
- db $46, $FF, $43
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
XStatItemBlackAnim:
- db SE_DARKEN_MON_PALETTE, $FF
- db SE_SPIRAL_BALLS_INWARD, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
ShrinkingSquareBlackAnim:
- db SE_DARKEN_MON_PALETTE, $FF
- db $46, $FF, $43
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
UnusedAnim:
- db SE_LIGHT_SCREEN_PALETTE, $FF
- db SE_SHOOT_MANY_BALLS_UPWARD, $FF
- db SE_RESET_SCREEN_PALETTE, $FF
- db $FF
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SHOOT_MANY_BALLS_UPWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
ParalyzeAnim:
- db $04, $13, $24
- db $04, $13, $24
- db $FF
+ battle_anim BIND, SUBANIM_24, 0, 4
+ battle_anim BIND, SUBANIM_24, 0, 4
+ db -1 ; end
PoisonAnim:
- db $08, $13, $27
- db $08, $13, $27
- db $FF
+ battle_anim BIND, SUBANIM_27, 0, 8
+ battle_anim BIND, SUBANIM_27, 0, 8
+ db -1 ; end
SleepPlayerAnim:
- db $10, $9B, $3A
- db $10, $9B, $3A
- db $FF
+ battle_anim REST, SUBANIM_3A, 0, 16
+ battle_anim REST, SUBANIM_3A, 0, 16
+ db -1 ; end
SleepEnemyAnim:
- db $10, $9B, $3B
- db $10, $9B, $3B
- db $FF
+ battle_anim REST, SUBANIM_3B, 0, 16
+ battle_anim REST, SUBANIM_3B, 0, 16
+ db -1 ; end
ConfusedPlayerAnim:
- db $08, $84, $25
- db $08, $84, $25
- db $FF
+ battle_anim AMNESIA, SUBANIM_25, 0, 8
+ battle_anim AMNESIA, SUBANIM_25, 0, 8
+ db -1 ; end
ConfusedEnemyAnim:
- db $08, $84, $26
- db $08, $84, $26
- db $FF
+ battle_anim AMNESIA, SUBANIM_26, 0, 8
+ battle_anim AMNESIA, SUBANIM_26, 0, 8
+ db -1 ; end
BallBlockAnim:
- db $03, $FF, $0B
- db $FF
+ battle_anim NO_MOVE, SUBANIM_0B, 0, 3
+ db -1 ; end
FaintAnim:
- db SE_SLIDE_MON_DOWN, $5A
- db $FF
+ battle_anim DIG, SE_SLIDE_MON_DOWN
+ db -1 ; end
ShakeScreenAnim:
- db SE_SHAKE_SCREEN, $FF
- db $FF
+ battle_anim NO_MOVE, SE_SHAKE_SCREEN
+ db -1 ; end
ThrowRockAnim:
- db $03, $8B, $53
- db $FF
+ battle_anim BARRAGE, SUBANIM_53, 0, 3
+ db -1 ; end
ThrowBaitAnim:
- db $03, $8B, $54
- db $FF
+ battle_anim BARRAGE, SUBANIM_54, 0, 3
+ db -1 ; end
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -177,9 +177,9 @@
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 @@
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,19 +347,18 @@
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
+ ; number of tiles, gfx pointer
+ anim_tileset 79, AnimationTileset1
+ anim_tileset 79, AnimationTileset2
+ anim_tileset 64, AnimationTileset1
- db 79 ; number of tiles
- dw AnimationTileset2
- db $FF
-
- db 64 ; number of tiles
- dw AnimationTileset1
- db $FF
-
AnimationTileset1:
INCBIN "gfx/battle/attack_anim_1.2bpp"
@@ -412,7 +411,7 @@
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 @@
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 @@
PlaySubanimation:
ld a, [wAnimSoundID]
- cp $FF
+ cp NO_MOVE - 1
jr z, .skipPlayingSound
call GetMoveSound
call PlaySound