From bc811e730b050ce5a1d579397ff293acfbec2748 Mon Sep 17 00:00:00 2001 From: Cooliokid956 <68075390+Cooliokid956@users.noreply.github.com> Date: Sun, 9 Jun 2024 01:17:33 -0500 Subject: [PATCH] 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 --- src/game/characters.c | 226 +----------------------------------------- src/game/characters.h | 212 --------------------------------------- 2 files changed, 3 insertions(+), 435 deletions(-) diff --git a/src/game/characters.c b/src/game/characters.c index b22e12df..1d7e3043 100644 --- a/src/game/characters.c +++ b/src/game/characters.c @@ -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); } diff --git a/src/game/characters.h b/src/game/characters.h index 1199273d..d9accb69 100644 --- a/src/game/characters.h +++ b/src/game/characters.h @@ -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;