diff options
-rw-r--r-- | constants/move_animation_constants.asm | 94 | ||||
-rw-r--r-- | data/battle_anims/frame_blocks.asm | 245 | ||||
-rw-r--r-- | data/battle_anims/special_effect_pointers.asm | 76 | ||||
-rw-r--r-- | data/battle_anims/special_effects.asm | 46 | ||||
-rwxr-xr-x | data/moves/animations.asm | 1345 | ||||
-rwxr-xr-x | engine/battle/animations.asm | 37 |
6 files changed, 973 insertions, 870 deletions
diff --git a/constants/move_animation_constants.asm b/constants/move_animation_constants.asm index d2025f4e..41dc240d 100644 --- 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 diff --git a/data/battle_anims/frame_blocks.asm b/data/battle_anims/frame_blocks.asm index 2eb26748..34915a96 100644 --- a/data/battle_anims/frame_blocks.asm +++ b/data/battle_anims/frame_blocks.asm @@ -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 diff --git a/data/battle_anims/special_effect_pointers.asm b/data/battle_anims/special_effect_pointers.asm index ae60abb8..4e2fb857 100644 --- a/data/battle_anims/special_effect_pointers.asm +++ b/data/battle_anims/special_effect_pointers.asm @@ -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 diff --git a/data/battle_anims/special_effects.asm b/data/battle_anims/special_effects.asm index 50c89ffb..98385d47 100644 --- a/data/battle_anims/special_effects.asm +++ b/data/battle_anims/special_effects.asm @@ -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 diff --git a/data/moves/animations.asm b/data/moves/animations.asm index 838065d3..40cb89fa 100755 --- a/data/moves/animations.asm +++ b/data/moves/animations.asm @@ -203,1059 +203,1072 @@ AttackAnimationPointers: 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 diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 2e478e5c..e27642c1 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -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 -AnimationTilesetPointers: - db 79 ; number of tiles - dw AnimationTileset1 - db $FF - - db 79 ; number of tiles - dw AnimationTileset2 - db $FF +anim_tileset: MACRO + db \1 + dw \2 + db -1 ; padding +ENDM - db 64 ; number of tiles - dw AnimationTileset1 - db $FF +AnimationTilesetPointers: + ; 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 |