pokeemmo/include/pokemon_animation.h
2025-06-02 15:54:37 +02:00

202 lines
5.4 KiB
C

#ifndef GUARD_POKEMON_ANIMATION_H
#define GUARD_POKEMON_ANIMATION_H
// Pokémon back animation sets
enum BackAnim
{
BACK_ANIM_NONE,
BACK_ANIM_H_VIBRATE,
BACK_ANIM_H_SLIDE,
BACK_ANIM_H_SPRING,
BACK_ANIM_H_SPRING_REPEATED,
BACK_ANIM_SHRINK_GROW,
BACK_ANIM_GROW,
BACK_ANIM_CIRCLE_COUNTERCLOCKWISE,
BACK_ANIM_H_SHAKE,
BACK_ANIM_V_SHAKE,
BACK_ANIM_V_SHAKE_H_SLIDE,
BACK_ANIM_V_STRETCH,
BACK_ANIM_H_STRETCH,
BACK_ANIM_GROW_STUTTER,
BACK_ANIM_V_SHAKE_LOW,
BACK_ANIM_TRIANGLE_DOWN,
BACK_ANIM_CONCAVE_ARC_LARGE,
BACK_ANIM_CONVEX_DOUBLE_ARC,
BACK_ANIM_CONCAVE_ARC_SMALL,
BACK_ANIM_DIP_RIGHT_SIDE,
BACK_ANIM_SHRINK_GROW_VIBRATE,
BACK_ANIM_JOLT_RIGHT,
BACK_ANIM_SHAKE_FLASH_YELLOW,
BACK_ANIM_SHAKE_GLOW_RED,
BACK_ANIM_SHAKE_GLOW_GREEN,
BACK_ANIM_SHAKE_GLOW_BLUE,
};
// Pokémon animation function ids (for front and back)
// Each front anim uses 1, and each back anim uses a set of 3
enum AnimFunctionIDs
{
ANIM_V_SQUISH_AND_BOUNCE,
ANIM_CIRCULAR_STRETCH_TWICE,
ANIM_H_VIBRATE,
ANIM_H_SLIDE,
ANIM_V_SLIDE,
ANIM_BOUNCE_ROTATE_TO_SIDES,
ANIM_V_JUMPS_H_JUMPS,
ANIM_ROTATE_TO_SIDES,
ANIM_ROTATE_TO_SIDES_TWICE,
ANIM_GROW_VIBRATE,
ANIM_ZIGZAG_FAST,
ANIM_SWING_CONCAVE,
ANIM_SWING_CONCAVE_FAST,
ANIM_SWING_CONVEX,
ANIM_SWING_CONVEX_FAST,
ANIM_H_SHAKE,
ANIM_V_SHAKE,
ANIM_CIRCULAR_VIBRATE,
ANIM_TWIST,
ANIM_SHRINK_GROW,
ANIM_CIRCLE_C_CLOCKWISE,
ANIM_GLOW_BLACK,
ANIM_H_STRETCH,
ANIM_V_STRETCH,
ANIM_RISING_WOBBLE,
ANIM_V_SHAKE_TWICE,
ANIM_TIP_MOVE_FORWARD,
ANIM_H_PIVOT,
ANIM_V_SLIDE_WOBBLE,
ANIM_H_SLIDE_WOBBLE,
ANIM_V_JUMPS_BIG,
ANIM_SPIN_LONG,
ANIM_GLOW_ORANGE,
ANIM_GLOW_RED,
ANIM_GLOW_BLUE,
ANIM_GLOW_YELLOW,
ANIM_GLOW_PURPLE,
ANIM_BACK_AND_LUNGE,
ANIM_BACK_FLIP,
ANIM_FLICKER,
ANIM_BACK_FLIP_BIG,
ANIM_FRONT_FLIP,
ANIM_TUMBLING_FRONT_FLIP,
ANIM_FIGURE_8,
ANIM_FLASH_YELLOW,
ANIM_SWING_CONCAVE_FAST_SHORT,
ANIM_SWING_CONVEX_FAST_SHORT,
ANIM_ROTATE_UP_SLAM_DOWN,
ANIM_DEEP_V_SQUISH_AND_BOUNCE,
ANIM_H_JUMPS,
ANIM_H_JUMPS_V_STRETCH,
ANIM_ROTATE_TO_SIDES_FAST,
ANIM_ROTATE_UP_TO_SIDES,
ANIM_FLICKER_INCREASING,
ANIM_TIP_HOP_FORWARD,
ANIM_PIVOT_SHAKE,
ANIM_TIP_AND_SHAKE,
ANIM_VIBRATE_TO_CORNERS,
ANIM_GROW_IN_STAGES,
ANIM_V_SPRING,
ANIM_V_REPEATED_SPRING,
ANIM_SPRING_RISING,
ANIM_H_SPRING,
ANIM_H_REPEATED_SPRING_SLOW,
ANIM_H_SLIDE_SHRINK,
ANIM_LUNGE_GROW,
ANIM_CIRCLE_INTO_BG,
ANIM_RAPID_H_HOPS,
ANIM_FOUR_PETAL,
ANIM_V_SQUISH_AND_BOUNCE_SLOW,
ANIM_H_SLIDE_SLOW,
ANIM_V_SLIDE_SLOW,
ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW,
ANIM_ZIGZAG_SLOW,
ANIM_H_SHAKE_SLOW,
ANIM_V_SHAKE_SLOW,
ANIM_TWIST_TWICE,
ANIM_CIRCLE_C_CLOCKWISE_SLOW,
ANIM_V_SHAKE_TWICE_SLOW,
ANIM_V_SLIDE_WOBBLE_SMALL,
ANIM_V_JUMPS_SMALL,
ANIM_SPIN,
ANIM_TUMBLING_FRONT_FLIP_TWICE,
ANIM_DEEP_V_SQUISH_AND_BOUNCE_TWICE,
ANIM_H_JUMPS_V_STRETCH_TWICE,
ANIM_V_SHAKE_BACK,
ANIM_V_SHAKE_BACK_SLOW,
ANIM_V_SHAKE_H_SLIDE_SLOW,
ANIM_V_STRETCH_BOTH_ENDS_SLOW,
ANIM_H_STRETCH_FAR_SLOW,
ANIM_V_SHAKE_LOW_TWICE,
ANIM_H_SHAKE_FAST,
ANIM_H_SLIDE_FAST,
ANIM_H_VIBRATE_FAST,
ANIM_H_VIBRATE_FASTEST,
ANIM_V_SHAKE_BACK_FAST,
ANIM_V_SHAKE_LOW_TWICE_SLOW,
ANIM_V_SHAKE_LOW_TWICE_FAST,
ANIM_CIRCLE_C_CLOCKWISE_LONG,
ANIM_GROW_STUTTER_SLOW,
ANIM_V_SHAKE_H_SLIDE,
ANIM_V_SHAKE_H_SLIDE_FAST,
ANIM_TRIANGLE_DOWN_SLOW,
ANIM_TRIANGLE_DOWN,
ANIM_TRIANGLE_DOWN_TWICE,
ANIM_GROW,
ANIM_GROW_TWICE,
ANIM_H_SPRING_FAST,
ANIM_H_SPRING_SLOW,
ANIM_H_REPEATED_SPRING_FAST,
ANIM_H_REPEATED_SPRING,
ANIM_SHRINK_GROW_FAST,
ANIM_SHRINK_GROW_SLOW,
ANIM_V_STRETCH_BOTH_ENDS,
ANIM_V_STRETCH_BOTH_ENDS_TWICE,
ANIM_H_STRETCH_FAR_TWICE,
ANIM_H_STRETCH_FAR,
ANIM_GROW_STUTTER_TWICE,
ANIM_GROW_STUTTER,
ANIM_CONCAVE_ARC_LARGE_SLOW,
ANIM_CONCAVE_ARC_LARGE,
ANIM_CONCAVE_ARC_LARGE_TWICE,
ANIM_CONVEX_DOUBLE_ARC_SLOW,
ANIM_CONVEX_DOUBLE_ARC,
ANIM_CONVEX_DOUBLE_ARC_TWICE,
ANIM_CONCAVE_ARC_SMALL_SLOW,
ANIM_CONCAVE_ARC_SMALL,
ANIM_CONCAVE_ARC_SMALL_TWICE,
ANIM_H_DIP,
ANIM_H_DIP_FAST,
ANIM_H_DIP_TWICE,
ANIM_SHRINK_GROW_VIBRATE_FAST,
ANIM_SHRINK_GROW_VIBRATE,
ANIM_SHRINK_GROW_VIBRATE_SLOW,
ANIM_JOLT_RIGHT_FAST,
ANIM_JOLT_RIGHT,
ANIM_JOLT_RIGHT_SLOW,
ANIM_SHAKE_FLASH_YELLOW_FAST,
ANIM_SHAKE_FLASH_YELLOW,
ANIM_SHAKE_FLASH_YELLOW_SLOW,
ANIM_SHAKE_GLOW_RED_FAST,
ANIM_SHAKE_GLOW_RED,
ANIM_SHAKE_GLOW_RED_SLOW,
ANIM_SHAKE_GLOW_GREEN_FAST,
ANIM_SHAKE_GLOW_GREEN,
ANIM_SHAKE_GLOW_GREEN_SLOW,
ANIM_SHAKE_GLOW_BLUE_FAST,
ANIM_SHAKE_GLOW_BLUE,
ANIM_SHAKE_GLOW_BLUE_SLOW,
ANIM_SHAKE_GLOW_BLACK_SLOW,
ANIM_SHAKE_GLOW_WHITE_SLOW,
ANIM_SHAKE_GLOW_PURPLE_SLOW,
};
enum BackAnim GetSpeciesBackAnimSet(u16 species);
void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, enum AnimFunctionIDs frontAnimId);
void StartMonSummaryAnimation(struct Sprite *sprite, enum AnimFunctionIDs frontAnimId);
void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, enum BackAnim backAnimSet);
void SetSpriteCB_MonAnimDummy(struct Sprite *sprite);
#endif // GUARD_POKEMON_ANIMATION_H