pokecrystal/docs/battle_anim_commands.md

122 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Battle Animation Commands
Defined in [macros/scripts/battle_anims.asm](/macros/scripts/battle_anims.asm) and [data/moves/animations.asm:BattleAnimations](/data/moves/animations.asm).
## `$00``$EF`: `anim_wait` *length*
## `$D0`: `anim_obj` *object*, *x1*, *x2*, *y1*, *y2*, *param*
The *x1*/*x2* and *y1*/*y2* pairs specify the position on screen of the animation object.
*x1*/*y1* specify a tile position, and *x2*/*y2* specify a pixel offset from that tile.
Values for *x2*/*y2* are in the 0-7 range, since 8 pixels make a tile.
Values for *x1* are between -16 to 31. In practice *x1* starts between 0 to 15, then between -16 to -10. Negative values are relative to the opponent, while positive values are relative to the player. Useful values are between 14 to -10 (for the opponent) and between 0 to 13 (for the player).
Some sample values are:
- 0: player left border
- 6: player center
- -15: enemy center
- -10: enemy right border
Values for *y1* are also between -16 to 31; the useful range is between 2 to 14.
Values between 2 to 8 will be in the opponent's area (2 being the top border and 8 being the
bottom border), and values between 8 to 14 will be in the player's area (again, 8 being the top border and 14 being the bottom border).
The center of the body is often 2 to 4 tiles away from the border (i.e., 5-6 for the opponent or 10-11 for the player).
## `$D1`: `anim_1gfx` *gfx*
## `$D2`: `anim_2gfx` *gfx1*, *gfx2*
## `$D3`: `anim_3gfx` *gfx1*, *gfx2*, *gfx3*
## `$D4`: `anim_4gfx` *gfx1*, *gfx2*, *gfx3*, *gfx4*
## `$D5`: `anim_5gfx` *gfx1*, *gfx2*, *gfx3*, *gfx4*, *gfx5*
## `$D6`: `anim_incobj` *id*
## `$D7`: `anim_setobj` *id*, *object*
## `$D8`: `anim_incbgeffect` *effect*
## `$D9`: `anim_enemyfeetobj`
## `$DA`: `anim_playerheadobj`
## `$DB`: `anim_checkpokeball`
## `$DC`: `anim_transform`
## `$DD`: `anim_raisesub`
## `$DE`: `anim_dropsub`
## `$DF`: `anim_resetobp0`
## `$E0`: `anim_sound` *duration*, *tracks*, *id*
## `$E1`: `anim_cry` *pitch*
## `$E2`: `anim_minimizeopp`
## `$E3`: `anim_oamon`
## `$E4`: `anim_oamoff`
## `$E5`: `anim_clearobjs`
## `$E6`: `anim_beatup`
## `$E7`: `anim_0xe7`
## `$E8`: `anim_updateactorpic`
## `$E9`: `anim_minimize`
## `$EA`: `anim_0xea`
## `$EB`: `anim_0xeb`
## `$EC`: `anim_0xec`
## `$ED`: `anim_0xed`
## `$EE`: `anim_if_param_and` *value*, *address*
## `$EF`: `anim_jumpuntil` *address*
## `$F0`: `anim_bgeffect` *effect*, *unknown1*, *unknown2*, *unknown3*
## `$F1`: `anim_bgp` *colors*
## `$F2`: `anim_obp0` *colors*
## `$F3`: `anim_obp1` *colors*
## `$F4`: `anim_clearsprites`
## `$F5`: `anim_0xf5`
## `$F6`: `anim_0xf6`
## `$F7`: `anim_0xf7`
## `$F8`: `anim_if_param_equal` *value*, *address*
## `$F9`: `anim_setvar` *value*
## `$FA`: `anim_incvar`
## `$FB`: `anim_if_var_equal` *value*, *address*
## `$FC`: `anim_jump` *address*
## `$FD`: `anim_loop` *count*, *address*
## `$FE`: `anim_call` *address*
## `$FF`: `anim_ret`