Character anim cleanup: take 2 (#63)

defining each animation is no longer necessary, as the get_character_anim function now passes through the characterAnim parameter on the principle that mario's animation enums correspond to the character animation enums
only if an animation beyond the range of mario animations is defined, then it is used
this wouldn't allow characters to reuse mario's animations for different slots, but that shouldn't be needed anyways

bye bye macro
This commit is contained in:
Cooliokid956 2024-06-09 01:17:33 -05:00 committed by GitHub
parent cd0ad9260a
commit bc811e730b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 435 deletions

View File

@ -47,9 +47,6 @@ struct Character gCharacters[CT_MAX] = {
// anim
.animOffsetEnabled = false,
// character anims
BASE_ANIMS(),
// sounds
.soundFreqScale = 1.0f,
.soundYahWahHoo = SOUND_MARIO_YAH_WAH_HOO,
@ -116,9 +113,6 @@ struct Character gCharacters[CT_MAX] = {
// anim
.animOffsetEnabled = false,
// character anims
BASE_ANIMS(),
// sounds
.soundFreqScale = 1.0f,
.soundYahWahHoo = SOUND_LUIGI_YAH_WAH_HOO,
@ -185,9 +179,6 @@ struct Character gCharacters[CT_MAX] = {
// anim
.animOffsetEnabled = false,
// character anims
BASE_ANIMS(),
// sounds
.soundFreqScale = 1.0f,
.soundYahWahHoo = SOUND_TOAD_YAH_WAH_HOO,
@ -258,215 +249,8 @@ struct Character gCharacters[CT_MAX] = {
.animOffsetHand = -10,
// character anims
.animSlowLedgeGrab = MARIO_ANIM_SLOW_LEDGE_GRAB,
.animFallOverBackwards = MARIO_ANIM_FALL_OVER_BACKWARDS,
.animBackwardAirKb = MARIO_ANIM_BACKWARD_AIR_KB,
.animDyingOnBack = MARIO_ANIM_DYING_ON_BACK,
.animBackflip = MARIO_ANIM_BACKFLIP,
.animClimbUpPole = MARIO_ANIM_CLIMB_UP_POLE,
.animGrabPoleShort = MARIO_ANIM_GRAB_POLE_SHORT,
.animGrabPoleSwingPart1 = MARIO_ANIM_GRAB_POLE_SWING_PART1,
.animGrabPoleSwingPart2 = MARIO_ANIM_GRAB_POLE_SWING_PART2,
.animHandstandIdle = MARIO_ANIM_HANDSTAND_IDLE,
.animHandstandJump = MARIO_ANIM_HANDSTAND_JUMP,
.animStartHandstand = MARIO_ANIM_START_HANDSTAND,
.animReturnFromHandstand = MARIO_ANIM_RETURN_FROM_HANDSTAND,
.animIdleOnPole = MARIO_ANIM_IDLE_ON_POLE,
.animAPose = MARIO_ANIM_A_POSE,
.animSkidOnGround = MARIO_ANIM_SKID_ON_GROUND,
.animStopSkid = MARIO_ANIM_STOP_SKID,
.animCrouchFromFastLongjump = MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP,
.animCrouchFromSlowLongjump = MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP,
.animFastLongjump = MARIO_ANIM_FAST_LONGJUMP,
.animSlowLongjump = MARIO_ANIM_SLOW_LONGJUMP,
.animAirborneOnStomach = MARIO_ANIM_AIRBORNE_ON_STOMACH,
.animWalkWithLightObj = MARIO_ANIM_WALK_WITH_LIGHT_OBJ,
.animRunWithLightObj = MARIO_ANIM_RUN_WITH_LIGHT_OBJ,
.animSlowWalkWithLightObj = MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ,
.animShiveringWarmingHand = MARIO_ANIM_SHIVERING_WARMING_HAND,
.animShiveringReturnToIdle = MARIO_ANIM_SHIVERING_RETURN_TO_IDLE,
.animShivering = MARIO_ANIM_SHIVERING,
.animClimbDownLedge = MARIO_ANIM_CLIMB_DOWN_LEDGE,
.animCreditsWaving = MARIO_ANIM_CREDITS_WAVING,
.animCreditsLookUp = MARIO_ANIM_CREDITS_LOOK_UP,
.animCreditsReturnFromLookUp = MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP,
.animCreditsRaiseHand = MARIO_ANIM_CREDITS_RAISE_HAND,
.animCreditsLowerHand = MARIO_ANIM_CREDITS_LOWER_HAND,
.animCreditsTakeOffCap = MARIO_ANIM_CREDITS_TAKE_OFF_CAP,
.animCreditsStartWalkLookUp = MARIO_ANIM_CREDITS_START_WALK_LOOK_UP,
.animCreditsLookBackThenRun = MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN,
.animFinalBowserRaiseHandSpin = MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN,
.animFinalBowserWingCapTakeOff = MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF,
.animCreditsPeaceSign = MARIO_ANIM_CREDITS_PEACE_SIGN,
.animStandUpFromLavaBoost = MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST,
.animFireLavaBurn = MARIO_ANIM_FIRE_LAVA_BURN,
.animWingCapFly = MARIO_ANIM_WING_CAP_FLY,
.animHangOnOwl = MARIO_ANIM_HANG_ON_OWL,
.animLandOnStomach = MARIO_ANIM_LAND_ON_STOMACH,
.animAirForwardKb = MARIO_ANIM_AIR_FORWARD_KB,
.animDyingOnStomach = MARIO_ANIM_DYING_ON_STOMACH,
.animSuffocating = MARIO_ANIM_SUFFOCATING,
.animCoughing = MARIO_ANIM_COUGHING,
.animThrowCatchKey = MARIO_ANIM_THROW_CATCH_KEY,
.animDyingFallOver = MARIO_ANIM_DYING_FALL_OVER,
.animIdleOnLedge = MARIO_ANIM_IDLE_ON_LEDGE,
.animFastLedgeGrab = MARIO_ANIM_FAST_LEDGE_GRAB,
.animHangOnCeiling = MARIO_ANIM_HANG_ON_CEILING,
.animPutCapOn = MARIO_ANIM_PUT_CAP_ON,
.animTakeCapOffThenOn = MARIO_ANIM_TAKE_CAP_OFF_THEN_ON,
.animQuicklyPutCapOn = MARIO_ANIM_QUICKLY_PUT_CAP_ON,
.animHeadStuckInGround = MARIO_ANIM_HEAD_STUCK_IN_GROUND,
.animGroundPoundLanding = MARIO_ANIM_GROUND_POUND_LANDING,
.animTripleJumpGroundPound = MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND,
.animStartGroundPound = MARIO_ANIM_START_GROUND_POUND,
.animGroundPound = MARIO_ANIM_GROUND_POUND,
.animBottomStuckInGround = MARIO_ANIM_BOTTOM_STUCK_IN_GROUND,
.animIdleWithLightObj = MARIO_ANIM_IDLE_WITH_LIGHT_OBJ,
.animJumpLandWithLightObj = MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ,
.animJumpWithLightObj = MARIO_ANIM_JUMP_WITH_LIGHT_OBJ,
.animFallLandWithLightObj = MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ,
.animFallWithLightObj = MARIO_ANIM_FALL_WITH_LIGHT_OBJ,
.animFallFromSlidingWithLightObj = MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ,
.animSlidingOnBottomWithLightObj = MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ,
.animStandUpFromSlidingWithLightObj = MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ,
.animRidingShell = MARIO_ANIM_RIDING_SHELL,
.animWalking = WALUIGI_ANIM_WALKING,
.animForwardFlip = MARIO_ANIM_FORWARD_FLIP,
.animJumpRidingShell = MARIO_ANIM_JUMP_RIDING_SHELL,
.animLandFromDoubleJump = MARIO_ANIM_LAND_FROM_DOUBLE_JUMP,
.animDoubleJumpFall = MARIO_ANIM_DOUBLE_JUMP_FALL,
.animSingleJump = MARIO_ANIM_SINGLE_JUMP,
.animLandFromSingleJump = MARIO_ANIM_LAND_FROM_SINGLE_JUMP,
.animAirKick = MARIO_ANIM_AIR_KICK,
.animDoubleJumpRise = MARIO_ANIM_DOUBLE_JUMP_RISE,
.animStartForwardSpinning = MARIO_ANIM_START_FORWARD_SPINNING,
.animThrowLightObject = MARIO_ANIM_THROW_LIGHT_OBJECT,
.animFallFromSlideKick = MARIO_ANIM_FALL_FROM_SLIDE_KICK,
.animBendKnessRidingShell = MARIO_ANIM_BEND_KNESS_RIDING_SHELL,
.animLegsStuckInGround = MARIO_ANIM_LEGS_STUCK_IN_GROUND,
.animGeneralFall = MARIO_ANIM_GENERAL_FALL,
.animGeneralLand = MARIO_ANIM_GENERAL_LAND,
.animBeingGrabbed = MARIO_ANIM_BEING_GRABBED,
.animGrabHeavyObject = MARIO_ANIM_GRAB_HEAVY_OBJECT,
.animSlowLandFromDive = MARIO_ANIM_SLOW_LAND_FROM_DIVE,
.animFlyFromCannon = MARIO_ANIM_FLY_FROM_CANNON,
.animMoveOnWireNetRight = MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT,
.animMoveOnWireNetLeft = MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT,
.animMissingCap = MARIO_ANIM_MISSING_CAP,
.animPullDoorWalkIn = MARIO_ANIM_PULL_DOOR_WALK_IN,
.animPushDoorWalkIn = MARIO_ANIM_PUSH_DOOR_WALK_IN,
.animUnlockDoor = MARIO_ANIM_UNLOCK_DOOR,
.animStartReachPocket = MARIO_ANIM_START_REACH_POCKET,
.animReachPocket = MARIO_ANIM_REACH_POCKET,
.animStopReachPocket = MARIO_ANIM_STOP_REACH_POCKET,
.animGroundThrow = MARIO_ANIM_GROUND_THROW,
.animGroundKick = MARIO_ANIM_GROUND_KICK,
.animFirstPunch = MARIO_ANIM_FIRST_PUNCH,
.animSecondPunch = MARIO_ANIM_SECOND_PUNCH,
.animFirstPunchFast = MARIO_ANIM_FIRST_PUNCH_FAST,
.animSecondPunchFast = MARIO_ANIM_SECOND_PUNCH_FAST,
.animPickUpLightObj = MARIO_ANIM_PICK_UP_LIGHT_OBJ,
.animPushing = MARIO_ANIM_PUSHING,
.animStartRidingShell = MARIO_ANIM_START_RIDING_SHELL,
.animPlaceLightObj = MARIO_ANIM_PLACE_LIGHT_OBJ,
.animForwardSpinning = MARIO_ANIM_FORWARD_SPINNING,
.animBackwardSpinning = MARIO_ANIM_BACKWARD_SPINNING,
.animBreakdance = MARIO_ANIM_BREAKDANCE,
.animRunning = WALUIGI_ANIM_RUNNING,
.animRunningUnused = MARIO_ANIM_RUNNING_UNUSED,
.animSoftBackKb = MARIO_ANIM_SOFT_BACK_KB,
.animSoftFrontKb = MARIO_ANIM_SOFT_FRONT_KB,
.animDyingInQuicksand = MARIO_ANIM_DYING_IN_QUICKSAND,
.animIdleInQuicksand = MARIO_ANIM_IDLE_IN_QUICKSAND,
.animMoveInQuicksand = MARIO_ANIM_MOVE_IN_QUICKSAND,
.animElectrocution = MARIO_ANIM_ELECTROCUTION,
.animShocked = MARIO_ANIM_SHOCKED,
.animBackwardKb = MARIO_ANIM_BACKWARD_KB,
.animForwardKb = MARIO_ANIM_FORWARD_KB,
.animIdleHeavyObj = MARIO_ANIM_IDLE_HEAVY_OBJ,
.animStandAgainstWall = MARIO_ANIM_STAND_AGAINST_WALL,
.animSidestepLeft = MARIO_ANIM_SIDESTEP_LEFT,
.animSidestepRight = MARIO_ANIM_SIDESTEP_RIGHT,
.animStartSleepIdle = MARIO_ANIM_START_SLEEP_IDLE,
.animStartSleepScratch = MARIO_ANIM_START_SLEEP_SCRATCH,
.animStartSleepYawn = MARIO_ANIM_START_SLEEP_YAWN,
.animStartSleepSitting = MARIO_ANIM_START_SLEEP_SITTING,
.animSleepIdle = MARIO_ANIM_SLEEP_IDLE,
.animSleepStartLying = MARIO_ANIM_SLEEP_START_LYING,
.animSleepLying = MARIO_ANIM_SLEEP_LYING,
.animDive = MARIO_ANIM_DIVE,
.animSlideDive = MARIO_ANIM_SLIDE_DIVE,
.animGroundBonk = MARIO_ANIM_GROUND_BONK,
.animStopSlideLightObj = MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ,
.animSlideKick = MARIO_ANIM_SLIDE_KICK,
.animCrouchFromSlideKick = MARIO_ANIM_CROUCH_FROM_SLIDE_KICK,
.animSlideMotionless = MARIO_ANIM_SLIDE_MOTIONLESS,
.animStopSlide = MARIO_ANIM_STOP_SLIDE,
.animFallFromSlide = MARIO_ANIM_FALL_FROM_SLIDE,
.animSlide = MARIO_ANIM_SLIDE,
.animTiptoe = MARIO_ANIM_TIPTOE,
.animTwirlLand = MARIO_ANIM_TWIRL_LAND,
.animTwirl = MARIO_ANIM_TWIRL,
.animStartTwirl = MARIO_ANIM_START_TWIRL,
.animStopCrouching = MARIO_ANIM_STOP_CROUCHING,
.animStartCrouching = MARIO_ANIM_START_CROUCHING,
.animCrouching = MARIO_ANIM_CROUCHING,
.animCrawling = MARIO_ANIM_CRAWLING,
.animStopCrawling = MARIO_ANIM_STOP_CRAWLING,
.animStartCrawling = MARIO_ANIM_START_CRAWLING,
.animSummonStar = MARIO_ANIM_SUMMON_STAR,
.animReturnStarApproachDoor = MARIO_ANIM_RETURN_STAR_APPROACH_DOOR,
.animBackwardsWaterKb = MARIO_ANIM_BACKWARDS_WATER_KB,
.animSwimWithObjPart1 = MARIO_ANIM_SWIM_WITH_OBJ_PART1,
.animSwimWithObjPart2 = MARIO_ANIM_SWIM_WITH_OBJ_PART2,
.animFlutterkickWithObj = MARIO_ANIM_FLUTTERKICK_WITH_OBJ,
.animWaterActionEndWithObj = MARIO_ANIM_WATER_ACTION_END_WITH_OBJ,
.animStopGrabObjWater = MARIO_ANIM_STOP_GRAB_OBJ_WATER,
.animWaterIdleWithObj = MARIO_ANIM_WATER_IDLE_WITH_OBJ,
.animDrowningPart1 = MARIO_ANIM_DROWNING_PART1,
.animDrowningPart2 = MARIO_ANIM_DROWNING_PART2,
.animWaterDying = MARIO_ANIM_WATER_DYING,
.animWaterForwardKb = MARIO_ANIM_WATER_FORWARD_KB,
.animFallFromWater = MARIO_ANIM_FALL_FROM_WATER,
.animSwimPart1 = MARIO_ANIM_SWIM_PART1,
.animSwimPart2 = MARIO_ANIM_SWIM_PART2,
.animFlutterkick = MARIO_ANIM_FLUTTERKICK,
.animWaterActionEnd = MARIO_ANIM_WATER_ACTION_END,
.animWaterPickUpObj = MARIO_ANIM_WATER_PICK_UP_OBJ,
.animWaterGrabObjPart2 = MARIO_ANIM_WATER_GRAB_OBJ_PART2,
.animWaterGrabObjPart1 = MARIO_ANIM_WATER_GRAB_OBJ_PART1,
.animWaterThrowObj = MARIO_ANIM_WATER_THROW_OBJ,
.animWaterIdle = MARIO_ANIM_WATER_IDLE,
.animWaterStarDance = MARIO_ANIM_WATER_STAR_DANCE,
.animReturnFromWaterStarDance = MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE,
.animGrabBowser = MARIO_ANIM_GRAB_BOWSER,
.animSwingingBowser = MARIO_ANIM_SWINGING_BOWSER,
.animReleaseBowser = MARIO_ANIM_RELEASE_BOWSER,
.animHoldingBowser = MARIO_ANIM_HOLDING_BOWSER,
.animHeavyThrow = MARIO_ANIM_HEAVY_THROW,
.animWalkPanting = MARIO_ANIM_WALK_PANTING,
.animWalkWithHeavyObj = MARIO_ANIM_WALK_WITH_HEAVY_OBJ,
.animTurningPart1 = MARIO_ANIM_TURNING_PART1,
.animTurningPart2 = MARIO_ANIM_TURNING_PART2,
.animSlideflipLand = MARIO_ANIM_SLIDEFLIP_LAND,
.animSlideflip = MARIO_ANIM_SLIDEFLIP,
.animTripleJumpLand = MARIO_ANIM_TRIPLE_JUMP_LAND,
.animTripleJump = MARIO_ANIM_TRIPLE_JUMP,
.animFirstPerson = MARIO_ANIM_FIRST_PERSON,
.animIdleHeadLeft = MARIO_ANIM_IDLE_HEAD_LEFT,
.animIdleHeadRight = MARIO_ANIM_IDLE_HEAD_RIGHT,
.animIdleHeadCenter = MARIO_ANIM_IDLE_HEAD_CENTER,
.animHandstandLeft = MARIO_ANIM_HANDSTAND_LEFT,
.animHandstandRight = MARIO_ANIM_HANDSTAND_RIGHT,
.animWakeFromSleep = MARIO_ANIM_WAKE_FROM_SLEEP,
.animWakeFromLying = MARIO_ANIM_WAKE_FROM_LYING,
.animStartTiptoe = MARIO_ANIM_START_TIPTOE,
.animSlidejump = MARIO_ANIM_SLIDEJUMP,
.animStartWallkick = MARIO_ANIM_START_WALLKICK,
.animStarDance = MARIO_ANIM_STAR_DANCE,
.animReturnFromStarDance = MARIO_ANIM_RETURN_FROM_STAR_DANCE,
.animForwardSpinningFlip = MARIO_ANIM_FORWARD_SPINNING_FLIP,
.animTripleJumpFly = MARIO_ANIM_TRIPLE_JUMP_FLY,
// sounds
.soundFreqScale = 0.99f,
@ -534,9 +318,6 @@ struct Character gCharacters[CT_MAX] = {
// anim
.animOffsetEnabled = false,
// character anims
BASE_ANIMS(),
// sounds
.soundFreqScale = 1.0f,
.soundYahWahHoo = SOUND_WARIO_YAH_WAH_HOO,
@ -731,9 +512,8 @@ void update_character_anim_offset(struct MarioState* m) {
}
s32 get_character_anim(struct MarioState* m, enum CharacterAnimID characterAnim) {
if (m == NULL || m->marioObj == NULL) { return 0; }
if (m == NULL) { return 0; }
struct Character* character = ((m == NULL || m->character == NULL) ? &gCharacters[CT_MARIO] : m->character);
if (!character || characterAnim < 0 || characterAnim >= CHAR_ANIM_MAX) { return characterAnim; }
return character->anims[characterAnim];
struct Character* character = ((m->character == NULL) ? &gCharacters[CT_MARIO] : m->character);
return ((characterAnim >= 0 && characterAnim < CHAR_ANIM_MAX && character->anims[characterAnim] >= CHAR_ANIM_MAX) ? character->anims[characterAnim] : (s32)characterAnim);
}

View File

@ -65,218 +65,6 @@ enum CharacterSound {
CHAR_SOUND_MAX // MUST BE LAST
};
#define BASE_ANIMS() \
.animSlowLedgeGrab = MARIO_ANIM_SLOW_LEDGE_GRAB, \
.animFallOverBackwards = MARIO_ANIM_FALL_OVER_BACKWARDS, \
.animBackwardAirKb = MARIO_ANIM_BACKWARD_AIR_KB, \
.animDyingOnBack = MARIO_ANIM_DYING_ON_BACK, \
.animBackflip = MARIO_ANIM_BACKFLIP, \
.animClimbUpPole = MARIO_ANIM_CLIMB_UP_POLE, \
.animGrabPoleShort = MARIO_ANIM_GRAB_POLE_SHORT, \
.animGrabPoleSwingPart1 = MARIO_ANIM_GRAB_POLE_SWING_PART1, \
.animGrabPoleSwingPart2 = MARIO_ANIM_GRAB_POLE_SWING_PART2, \
.animHandstandIdle = MARIO_ANIM_HANDSTAND_IDLE, \
.animHandstandJump = MARIO_ANIM_HANDSTAND_JUMP, \
.animStartHandstand = MARIO_ANIM_START_HANDSTAND, \
.animReturnFromHandstand = MARIO_ANIM_RETURN_FROM_HANDSTAND, \
.animIdleOnPole = MARIO_ANIM_IDLE_ON_POLE, \
.animAPose = MARIO_ANIM_A_POSE, \
.animSkidOnGround = MARIO_ANIM_SKID_ON_GROUND, \
.animStopSkid = MARIO_ANIM_STOP_SKID, \
.animCrouchFromFastLongjump = MARIO_ANIM_CROUCH_FROM_FAST_LONGJUMP, \
.animCrouchFromSlowLongjump = MARIO_ANIM_CROUCH_FROM_SLOW_LONGJUMP, \
.animFastLongjump = MARIO_ANIM_FAST_LONGJUMP, \
.animSlowLongjump = MARIO_ANIM_SLOW_LONGJUMP, \
.animAirborneOnStomach = MARIO_ANIM_AIRBORNE_ON_STOMACH, \
.animWalkWithLightObj = MARIO_ANIM_WALK_WITH_LIGHT_OBJ, \
.animRunWithLightObj = MARIO_ANIM_RUN_WITH_LIGHT_OBJ, \
.animSlowWalkWithLightObj = MARIO_ANIM_SLOW_WALK_WITH_LIGHT_OBJ, \
.animShiveringWarmingHand = MARIO_ANIM_SHIVERING_WARMING_HAND, \
.animShiveringReturnToIdle = MARIO_ANIM_SHIVERING_RETURN_TO_IDLE, \
.animShivering = MARIO_ANIM_SHIVERING, \
.animClimbDownLedge = MARIO_ANIM_CLIMB_DOWN_LEDGE, \
.animCreditsWaving = MARIO_ANIM_CREDITS_WAVING, \
.animCreditsLookUp = MARIO_ANIM_CREDITS_LOOK_UP, \
.animCreditsReturnFromLookUp = MARIO_ANIM_CREDITS_RETURN_FROM_LOOK_UP, \
.animCreditsRaiseHand = MARIO_ANIM_CREDITS_RAISE_HAND, \
.animCreditsLowerHand = MARIO_ANIM_CREDITS_LOWER_HAND, \
.animCreditsTakeOffCap = MARIO_ANIM_CREDITS_TAKE_OFF_CAP, \
.animCreditsStartWalkLookUp = MARIO_ANIM_CREDITS_START_WALK_LOOK_UP, \
.animCreditsLookBackThenRun = MARIO_ANIM_CREDITS_LOOK_BACK_THEN_RUN, \
.animFinalBowserRaiseHandSpin = MARIO_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN, \
.animFinalBowserWingCapTakeOff = MARIO_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF, \
.animCreditsPeaceSign = MARIO_ANIM_CREDITS_PEACE_SIGN, \
.animStandUpFromLavaBoost = MARIO_ANIM_STAND_UP_FROM_LAVA_BOOST, \
.animFireLavaBurn = MARIO_ANIM_FIRE_LAVA_BURN, \
.animWingCapFly = MARIO_ANIM_WING_CAP_FLY, \
.animHangOnOwl = MARIO_ANIM_HANG_ON_OWL, \
.animLandOnStomach = MARIO_ANIM_LAND_ON_STOMACH, \
.animAirForwardKb = MARIO_ANIM_AIR_FORWARD_KB, \
.animDyingOnStomach = MARIO_ANIM_DYING_ON_STOMACH, \
.animSuffocating = MARIO_ANIM_SUFFOCATING, \
.animCoughing = MARIO_ANIM_COUGHING, \
.animThrowCatchKey = MARIO_ANIM_THROW_CATCH_KEY, \
.animDyingFallOver = MARIO_ANIM_DYING_FALL_OVER, \
.animIdleOnLedge = MARIO_ANIM_IDLE_ON_LEDGE, \
.animFastLedgeGrab = MARIO_ANIM_FAST_LEDGE_GRAB, \
.animHangOnCeiling = MARIO_ANIM_HANG_ON_CEILING, \
.animPutCapOn = MARIO_ANIM_PUT_CAP_ON, \
.animTakeCapOffThenOn = MARIO_ANIM_TAKE_CAP_OFF_THEN_ON, \
.animQuicklyPutCapOn = MARIO_ANIM_QUICKLY_PUT_CAP_ON, \
.animHeadStuckInGround = MARIO_ANIM_HEAD_STUCK_IN_GROUND, \
.animGroundPoundLanding = MARIO_ANIM_GROUND_POUND_LANDING, \
.animTripleJumpGroundPound = MARIO_ANIM_TRIPLE_JUMP_GROUND_POUND, \
.animStartGroundPound = MARIO_ANIM_START_GROUND_POUND, \
.animGroundPound = MARIO_ANIM_GROUND_POUND, \
.animBottomStuckInGround = MARIO_ANIM_BOTTOM_STUCK_IN_GROUND, \
.animIdleWithLightObj = MARIO_ANIM_IDLE_WITH_LIGHT_OBJ, \
.animJumpLandWithLightObj = MARIO_ANIM_JUMP_LAND_WITH_LIGHT_OBJ, \
.animJumpWithLightObj = MARIO_ANIM_JUMP_WITH_LIGHT_OBJ, \
.animFallLandWithLightObj = MARIO_ANIM_FALL_LAND_WITH_LIGHT_OBJ, \
.animFallWithLightObj = MARIO_ANIM_FALL_WITH_LIGHT_OBJ, \
.animFallFromSlidingWithLightObj = MARIO_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ, \
.animSlidingOnBottomWithLightObj = MARIO_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ, \
.animStandUpFromSlidingWithLightObj = MARIO_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ, \
.animRidingShell = MARIO_ANIM_RIDING_SHELL, \
.animWalking = MARIO_ANIM_WALKING, \
.animForwardFlip = MARIO_ANIM_FORWARD_FLIP, \
.animJumpRidingShell = MARIO_ANIM_JUMP_RIDING_SHELL, \
.animLandFromDoubleJump = MARIO_ANIM_LAND_FROM_DOUBLE_JUMP, \
.animDoubleJumpFall = MARIO_ANIM_DOUBLE_JUMP_FALL, \
.animSingleJump = MARIO_ANIM_SINGLE_JUMP, \
.animLandFromSingleJump = MARIO_ANIM_LAND_FROM_SINGLE_JUMP, \
.animAirKick = MARIO_ANIM_AIR_KICK, \
.animDoubleJumpRise = MARIO_ANIM_DOUBLE_JUMP_RISE, \
.animStartForwardSpinning = MARIO_ANIM_START_FORWARD_SPINNING, \
.animThrowLightObject = MARIO_ANIM_THROW_LIGHT_OBJECT, \
.animFallFromSlideKick = MARIO_ANIM_FALL_FROM_SLIDE_KICK, \
.animBendKnessRidingShell = MARIO_ANIM_BEND_KNESS_RIDING_SHELL, \
.animLegsStuckInGround = MARIO_ANIM_LEGS_STUCK_IN_GROUND, \
.animGeneralFall = MARIO_ANIM_GENERAL_FALL, \
.animGeneralLand = MARIO_ANIM_GENERAL_LAND, \
.animBeingGrabbed = MARIO_ANIM_BEING_GRABBED, \
.animGrabHeavyObject = MARIO_ANIM_GRAB_HEAVY_OBJECT, \
.animSlowLandFromDive = MARIO_ANIM_SLOW_LAND_FROM_DIVE, \
.animFlyFromCannon = MARIO_ANIM_FLY_FROM_CANNON, \
.animMoveOnWireNetRight = MARIO_ANIM_MOVE_ON_WIRE_NET_RIGHT, \
.animMoveOnWireNetLeft = MARIO_ANIM_MOVE_ON_WIRE_NET_LEFT, \
.animMissingCap = MARIO_ANIM_MISSING_CAP, \
.animPullDoorWalkIn = MARIO_ANIM_PULL_DOOR_WALK_IN, \
.animPushDoorWalkIn = MARIO_ANIM_PUSH_DOOR_WALK_IN, \
.animUnlockDoor = MARIO_ANIM_UNLOCK_DOOR, \
.animStartReachPocket = MARIO_ANIM_START_REACH_POCKET, \
.animReachPocket = MARIO_ANIM_REACH_POCKET, \
.animStopReachPocket = MARIO_ANIM_STOP_REACH_POCKET, \
.animGroundThrow = MARIO_ANIM_GROUND_THROW, \
.animGroundKick = MARIO_ANIM_GROUND_KICK, \
.animFirstPunch = MARIO_ANIM_FIRST_PUNCH, \
.animSecondPunch = MARIO_ANIM_SECOND_PUNCH, \
.animFirstPunchFast = MARIO_ANIM_FIRST_PUNCH_FAST, \
.animSecondPunchFast = MARIO_ANIM_SECOND_PUNCH_FAST, \
.animPickUpLightObj = MARIO_ANIM_PICK_UP_LIGHT_OBJ, \
.animPushing = MARIO_ANIM_PUSHING, \
.animStartRidingShell = MARIO_ANIM_START_RIDING_SHELL, \
.animPlaceLightObj = MARIO_ANIM_PLACE_LIGHT_OBJ, \
.animForwardSpinning = MARIO_ANIM_FORWARD_SPINNING, \
.animBackwardSpinning = MARIO_ANIM_BACKWARD_SPINNING, \
.animBreakdance = MARIO_ANIM_BREAKDANCE, \
.animRunning = MARIO_ANIM_RUNNING, \
.animRunningUnused = MARIO_ANIM_RUNNING_UNUSED, \
.animSoftBackKb = MARIO_ANIM_SOFT_BACK_KB, \
.animSoftFrontKb = MARIO_ANIM_SOFT_FRONT_KB, \
.animDyingInQuicksand = MARIO_ANIM_DYING_IN_QUICKSAND, \
.animIdleInQuicksand = MARIO_ANIM_IDLE_IN_QUICKSAND, \
.animMoveInQuicksand = MARIO_ANIM_MOVE_IN_QUICKSAND, \
.animElectrocution = MARIO_ANIM_ELECTROCUTION, \
.animShocked = MARIO_ANIM_SHOCKED, \
.animBackwardKb = MARIO_ANIM_BACKWARD_KB, \
.animForwardKb = MARIO_ANIM_FORWARD_KB, \
.animIdleHeavyObj = MARIO_ANIM_IDLE_HEAVY_OBJ, \
.animStandAgainstWall = MARIO_ANIM_STAND_AGAINST_WALL, \
.animSidestepLeft = MARIO_ANIM_SIDESTEP_LEFT, \
.animSidestepRight = MARIO_ANIM_SIDESTEP_RIGHT, \
.animStartSleepIdle = MARIO_ANIM_START_SLEEP_IDLE, \
.animStartSleepScratch = MARIO_ANIM_START_SLEEP_SCRATCH, \
.animStartSleepYawn = MARIO_ANIM_START_SLEEP_YAWN, \
.animStartSleepSitting = MARIO_ANIM_START_SLEEP_SITTING, \
.animSleepIdle = MARIO_ANIM_SLEEP_IDLE, \
.animSleepStartLying = MARIO_ANIM_SLEEP_START_LYING, \
.animSleepLying = MARIO_ANIM_SLEEP_LYING, \
.animDive = MARIO_ANIM_DIVE, \
.animSlideDive = MARIO_ANIM_SLIDE_DIVE, \
.animGroundBonk = MARIO_ANIM_GROUND_BONK, \
.animStopSlideLightObj = MARIO_ANIM_STOP_SLIDE_LIGHT_OBJ, \
.animSlideKick = MARIO_ANIM_SLIDE_KICK, \
.animCrouchFromSlideKick = MARIO_ANIM_CROUCH_FROM_SLIDE_KICK, \
.animSlideMotionless = MARIO_ANIM_SLIDE_MOTIONLESS, \
.animStopSlide = MARIO_ANIM_STOP_SLIDE, \
.animFallFromSlide = MARIO_ANIM_FALL_FROM_SLIDE, \
.animSlide = MARIO_ANIM_SLIDE, \
.animTiptoe = MARIO_ANIM_TIPTOE, \
.animTwirlLand = MARIO_ANIM_TWIRL_LAND, \
.animTwirl = MARIO_ANIM_TWIRL, \
.animStartTwirl = MARIO_ANIM_START_TWIRL, \
.animStopCrouching = MARIO_ANIM_STOP_CROUCHING, \
.animStartCrouching = MARIO_ANIM_START_CROUCHING, \
.animCrouching = MARIO_ANIM_CROUCHING, \
.animCrawling = MARIO_ANIM_CRAWLING, \
.animStopCrawling = MARIO_ANIM_STOP_CRAWLING, \
.animStartCrawling = MARIO_ANIM_START_CRAWLING, \
.animSummonStar = MARIO_ANIM_SUMMON_STAR, \
.animReturnStarApproachDoor = MARIO_ANIM_RETURN_STAR_APPROACH_DOOR, \
.animBackwardsWaterKb = MARIO_ANIM_BACKWARDS_WATER_KB, \
.animSwimWithObjPart1 = MARIO_ANIM_SWIM_WITH_OBJ_PART1, \
.animSwimWithObjPart2 = MARIO_ANIM_SWIM_WITH_OBJ_PART2, \
.animFlutterkickWithObj = MARIO_ANIM_FLUTTERKICK_WITH_OBJ, \
.animWaterActionEndWithObj = MARIO_ANIM_WATER_ACTION_END_WITH_OBJ, \
.animStopGrabObjWater = MARIO_ANIM_STOP_GRAB_OBJ_WATER, \
.animWaterIdleWithObj = MARIO_ANIM_WATER_IDLE_WITH_OBJ, \
.animDrowningPart1 = MARIO_ANIM_DROWNING_PART1, \
.animDrowningPart2 = MARIO_ANIM_DROWNING_PART2, \
.animWaterDying = MARIO_ANIM_WATER_DYING, \
.animWaterForwardKb = MARIO_ANIM_WATER_FORWARD_KB, \
.animFallFromWater = MARIO_ANIM_FALL_FROM_WATER, \
.animSwimPart1 = MARIO_ANIM_SWIM_PART1, \
.animSwimPart2 = MARIO_ANIM_SWIM_PART2, \
.animFlutterkick = MARIO_ANIM_FLUTTERKICK, \
.animWaterActionEnd = MARIO_ANIM_WATER_ACTION_END, \
.animWaterPickUpObj = MARIO_ANIM_WATER_PICK_UP_OBJ, \
.animWaterGrabObjPart2 = MARIO_ANIM_WATER_GRAB_OBJ_PART2, \
.animWaterGrabObjPart1 = MARIO_ANIM_WATER_GRAB_OBJ_PART1, \
.animWaterThrowObj = MARIO_ANIM_WATER_THROW_OBJ, \
.animWaterIdle = MARIO_ANIM_WATER_IDLE, \
.animWaterStarDance = MARIO_ANIM_WATER_STAR_DANCE, \
.animReturnFromWaterStarDance = MARIO_ANIM_RETURN_FROM_WATER_STAR_DANCE, \
.animGrabBowser = MARIO_ANIM_GRAB_BOWSER, \
.animSwingingBowser = MARIO_ANIM_SWINGING_BOWSER, \
.animReleaseBowser = MARIO_ANIM_RELEASE_BOWSER, \
.animHoldingBowser = MARIO_ANIM_HOLDING_BOWSER, \
.animHeavyThrow = MARIO_ANIM_HEAVY_THROW, \
.animWalkPanting = MARIO_ANIM_WALK_PANTING, \
.animWalkWithHeavyObj = MARIO_ANIM_WALK_WITH_HEAVY_OBJ, \
.animTurningPart1 = MARIO_ANIM_TURNING_PART1, \
.animTurningPart2 = MARIO_ANIM_TURNING_PART2, \
.animSlideflipLand = MARIO_ANIM_SLIDEFLIP_LAND, \
.animSlideflip = MARIO_ANIM_SLIDEFLIP, \
.animTripleJumpLand = MARIO_ANIM_TRIPLE_JUMP_LAND, \
.animTripleJump = MARIO_ANIM_TRIPLE_JUMP, \
.animFirstPerson = MARIO_ANIM_FIRST_PERSON, \
.animIdleHeadLeft = MARIO_ANIM_IDLE_HEAD_LEFT, \
.animIdleHeadRight = MARIO_ANIM_IDLE_HEAD_RIGHT, \
.animIdleHeadCenter = MARIO_ANIM_IDLE_HEAD_CENTER, \
.animHandstandLeft = MARIO_ANIM_HANDSTAND_LEFT, \
.animHandstandRight = MARIO_ANIM_HANDSTAND_RIGHT, \
.animWakeFromSleep = MARIO_ANIM_WAKE_FROM_SLEEP, \
.animWakeFromLying = MARIO_ANIM_WAKE_FROM_LYING, \
.animStartTiptoe = MARIO_ANIM_START_TIPTOE, \
.animSlidejump = MARIO_ANIM_SLIDEJUMP, \
.animStartWallkick = MARIO_ANIM_START_WALLKICK, \
.animStarDance = MARIO_ANIM_STAR_DANCE, \
.animReturnFromStarDance = MARIO_ANIM_RETURN_FROM_STAR_DANCE, \
.animForwardSpinningFlip = MARIO_ANIM_FORWARD_SPINNING_FLIP, \
.animTripleJumpFly = MARIO_ANIM_TRIPLE_JUMP_FLY \
struct Character {
enum CharacterType type;
char* name;