mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-25 05:25:14 +00:00
Cleaned up character sound/anim lookup code
This commit is contained in:
parent
27b799055c
commit
b002061609
8 changed files with 346 additions and 540 deletions
|
@ -133,11 +133,48 @@ total_fields = 0
|
|||
|
||||
############################################################################
|
||||
|
||||
def promote_block(before_block, after_block):
|
||||
inside = 1
|
||||
idx = -1
|
||||
|
||||
for character in after_block:
|
||||
idx += 1
|
||||
if character == '{':
|
||||
inside += 1
|
||||
elif character == '}':
|
||||
inside -= 1
|
||||
if inside <= 0:
|
||||
break
|
||||
if inside == 0 and idx > -1 and after_block[idx+1] == ';':
|
||||
return before_block + after_block[:idx] + after_block[idx+2:]
|
||||
|
||||
return None
|
||||
|
||||
def strip_anonymous_blocks(body):
|
||||
while 'union {' in body:
|
||||
before_union = body.split('union {', 1)[0]
|
||||
after_union = body.split('union {', 1)[-1]
|
||||
promoted = promote_block(before_union, after_union)
|
||||
if promoted == None:
|
||||
break
|
||||
body = promoted
|
||||
|
||||
while 'struct {' in body:
|
||||
before_union = body.split('struct {', 1)[0]
|
||||
after_union = body.split('struct {', 1)[-1]
|
||||
promoted = promote_block(before_union, after_union)
|
||||
if promoted == None:
|
||||
break
|
||||
body = promoted
|
||||
|
||||
return body
|
||||
|
||||
def strip_internal_blocks(body):
|
||||
# strip internal structs/enums/etc
|
||||
tmp = body
|
||||
body = ''
|
||||
inside = 0
|
||||
stripped = ''
|
||||
for character in tmp:
|
||||
if character == '{':
|
||||
body += '{ ... }'
|
||||
|
@ -145,6 +182,8 @@ def strip_internal_blocks(body):
|
|||
|
||||
if inside == 0:
|
||||
body += character
|
||||
else:
|
||||
stripped += character
|
||||
|
||||
if character == '}':
|
||||
inside -= 1
|
||||
|
@ -199,6 +238,7 @@ def parse_struct(struct_str):
|
|||
struct['identifier'] = identifier
|
||||
|
||||
body = struct_str.split('{', 1)[1].rsplit('}', 1)[0]
|
||||
body = strip_anonymous_blocks(body)
|
||||
body = strip_internal_blocks(body)
|
||||
|
||||
struct['fields'] = []
|
||||
|
|
|
@ -4700,6 +4700,9 @@ CHAR_ANIM_FORWARD_SPINNING_FLIP = 207
|
|||
--- @type CharacterAnimID
|
||||
CHAR_ANIM_TRIPLE_JUMP_FLY = 208
|
||||
|
||||
--- @type CharacterAnimID
|
||||
CHAR_ANIM_MAX = 209
|
||||
|
||||
--- @class MarioAnimID
|
||||
|
||||
--- @type MarioAnimID
|
||||
|
|
|
@ -1644,6 +1644,7 @@
|
|||
| CHAR_ANIM_RETURN_FROM_STAR_DANCE | 206 |
|
||||
| CHAR_ANIM_FORWARD_SPINNING_FLIP | 207 |
|
||||
| CHAR_ANIM_TRIPLE_JUMP_FLY | 208 |
|
||||
| CHAR_ANIM_MAX | 209 |
|
||||
|
||||
### [enum MarioAnimID](#MarioAnimID)
|
||||
| Identifier | Value |
|
||||
|
|
|
@ -431,7 +431,8 @@ enum CharacterAnimID
|
|||
/* 0xCD */ CHAR_ANIM_STAR_DANCE,
|
||||
/* 0xCE */ CHAR_ANIM_RETURN_FROM_STAR_DANCE,
|
||||
/* 0xCF */ CHAR_ANIM_FORWARD_SPINNING_FLIP,
|
||||
/* 0xD0 */ CHAR_ANIM_TRIPLE_JUMP_FLY
|
||||
/* 0xD0 */ CHAR_ANIM_TRIPLE_JUMP_FLY,
|
||||
CHAR_ANIM_MAX // MUST BE LAST
|
||||
};
|
||||
|
||||
#endif // MARIO_ANIMATION_IDS_H
|
||||
|
|
|
@ -1527,53 +1527,9 @@ static s32 get_character_sound(struct MarioState* m, enum CharacterSound charact
|
|||
}
|
||||
|
||||
struct Character* character = ((m == NULL || m->character == NULL) ? &gCharacters[CT_MARIO] : m->character);
|
||||
switch (characterSound) {
|
||||
case CHAR_SOUND_YAH_WAH_HOO: return character->soundYahWahHoo;
|
||||
case CHAR_SOUND_HOOHOO: return character->soundHoohoo;
|
||||
case CHAR_SOUND_YAHOO: return character->soundYahoo;
|
||||
case CHAR_SOUND_UH: return character->soundUh;
|
||||
case CHAR_SOUND_HRMM: return character->soundHrmm;
|
||||
case CHAR_SOUND_WAH2: return character->soundWah2;
|
||||
case CHAR_SOUND_WHOA: return character->soundWhoa;
|
||||
case CHAR_SOUND_EEUH: return character->soundEeuh;
|
||||
case CHAR_SOUND_ATTACKED: return character->soundAttacked;
|
||||
case CHAR_SOUND_OOOF: return character->soundOoof;
|
||||
case CHAR_SOUND_OOOF2: return character->soundOoof2;
|
||||
case CHAR_SOUND_HERE_WE_GO: return character->soundHereWeGo;
|
||||
case CHAR_SOUND_YAWNING: return character->soundYawning;
|
||||
case CHAR_SOUND_SNORING1: return character->soundSnoring1;
|
||||
case CHAR_SOUND_SNORING2: return character->soundSnoring2;
|
||||
case CHAR_SOUND_WAAAOOOW: return character->soundWaaaooow;
|
||||
case CHAR_SOUND_HAHA: return character->soundHaha;
|
||||
case CHAR_SOUND_HAHA_2: return character->soundHaha_2;
|
||||
case CHAR_SOUND_UH2: return character->soundUh2;
|
||||
case CHAR_SOUND_UH2_2: return character->soundUh2_2;
|
||||
case CHAR_SOUND_ON_FIRE: return character->soundOnFire;
|
||||
case CHAR_SOUND_DYING: return character->soundDying;
|
||||
case CHAR_SOUND_PANTING_COLD: return character->soundPantingCold;
|
||||
case CHAR_SOUND_PANTING: return character->soundPanting;
|
||||
case CHAR_SOUND_COUGHING1: return character->soundCoughing1;
|
||||
case CHAR_SOUND_COUGHING2: return character->soundCoughing2;
|
||||
case CHAR_SOUND_COUGHING3: return character->soundCoughing3;
|
||||
case CHAR_SOUND_PUNCH_YAH: return character->soundPunchYah;
|
||||
case CHAR_SOUND_PUNCH_HOO: return character->soundPunchHoo;
|
||||
case CHAR_SOUND_MAMA_MIA: return character->soundMamaMia;
|
||||
case CHAR_SOUND_GROUND_POUND_WAH: return character->soundGroundPoundWah;
|
||||
case CHAR_SOUND_DROWNING: return character->soundDrowning;
|
||||
case CHAR_SOUND_PUNCH_WAH: return character->soundPunchWah;
|
||||
case CHAR_SOUND_YAHOO_WAHA_YIPPEE: return character->soundYahooWahaYippee;
|
||||
case CHAR_SOUND_DOH: return character->soundDoh;
|
||||
case CHAR_SOUND_GAME_OVER: return character->soundGameOver;
|
||||
case CHAR_SOUND_HELLO: return character->soundHello;
|
||||
case CHAR_SOUND_PRESS_START_TO_PLAY: return character->soundPressStartToPlay;
|
||||
case CHAR_SOUND_TWIRL_BOUNCE: return character->soundTwirlBounce;
|
||||
case CHAR_SOUND_SNORING3: return character->soundSnoring3;
|
||||
case CHAR_SOUND_SO_LONGA_BOWSER: return character->soundSoLongaBowser;
|
||||
case CHAR_SOUND_IMA_TIRED: return character->soundImaTired;
|
||||
case CHAR_SOUND_LETS_A_GO: return character->soundLetsAGo;
|
||||
case CHAR_SOUND_OKEY_DOKEY: return character->soundOkeyDokey;
|
||||
default: return 0;
|
||||
}
|
||||
|
||||
if (characterSound < 0 || characterSound >= CHAR_SOUND_MAX) { return 0; }
|
||||
return character->sounds[characterSound];
|
||||
}
|
||||
|
||||
static void play_character_sound_internal(struct MarioState *m, enum CharacterSound characterSound, u32 offset, u32 flags) {
|
||||
|
@ -1655,216 +1611,6 @@ s32 get_character_anim(struct MarioState* m, enum CharacterAnimID characterAnim)
|
|||
if (m == NULL || m->marioObj == NULL) { return 0; }
|
||||
|
||||
struct Character* character = ((m == NULL || m->character == NULL) ? &gCharacters[CT_MARIO] : m->character);
|
||||
switch (characterAnim) {
|
||||
case CHAR_ANIM_SLOW_LEDGE_GRAB: return character->animSlowLedgeGrab;
|
||||
case CHAR_ANIM_FALL_OVER_BACKWARDS: return character->animFallOverBackwards;
|
||||
case CHAR_ANIM_BACKWARD_AIR_KB: return character->animBackwardAirKb;
|
||||
case CHAR_ANIM_DYING_ON_BACK: return character->animDyingOnBack;
|
||||
case CHAR_ANIM_BACKFLIP: return character->animBackflip;
|
||||
case CHAR_ANIM_CLIMB_UP_POLE: return character->animClimbUpPole;
|
||||
case CHAR_ANIM_GRAB_POLE_SHORT: return character->animGrabPoleShort;
|
||||
case CHAR_ANIM_GRAB_POLE_SWING_PART1: return character->animGrabPoleSwingPart1;
|
||||
case CHAR_ANIM_GRAB_POLE_SWING_PART2: return character->animGrabPoleSwingPart2;
|
||||
case CHAR_ANIM_HANDSTAND_IDLE: return character->animHandstandIdle;
|
||||
case CHAR_ANIM_HANDSTAND_JUMP: return character->animHandstandJump;
|
||||
case CHAR_ANIM_START_HANDSTAND: return character->animStartHandstand;
|
||||
case CHAR_ANIM_RETURN_FROM_HANDSTAND: return character->animReturnFromHandstand;
|
||||
case CHAR_ANIM_IDLE_ON_POLE: return character->animIdleOnPole;
|
||||
case CHAR_ANIM_A_POSE: return character->animAPose;
|
||||
case CHAR_ANIM_SKID_ON_GROUND: return character->animSkidOnGround;
|
||||
case CHAR_ANIM_STOP_SKID: return character->animStopSkid;
|
||||
case CHAR_ANIM_CROUCH_FROM_FAST_LONGJUMP: return character->animCrouchFromFastLongjump;
|
||||
case CHAR_ANIM_CROUCH_FROM_SLOW_LONGJUMP: return character->animCrouchFromSlowLongjump;
|
||||
case CHAR_ANIM_FAST_LONGJUMP: return character->animFastLongjump;
|
||||
case CHAR_ANIM_SLOW_LONGJUMP: return character->animSlowLongjump;
|
||||
case CHAR_ANIM_AIRBORNE_ON_STOMACH: return character->animAirborneOnStomach;
|
||||
case CHAR_ANIM_WALK_WITH_LIGHT_OBJ: return character->animWalkWithLightObj;
|
||||
case CHAR_ANIM_RUN_WITH_LIGHT_OBJ: return character->animRunWithLightObj;
|
||||
case CHAR_ANIM_SLOW_WALK_WITH_LIGHT_OBJ: return character->animSlowWalkWithLightObj;
|
||||
case CHAR_ANIM_SHIVERING_WARMING_HAND: return character->animShiveringWarmingHand;
|
||||
case CHAR_ANIM_SHIVERING_RETURN_TO_IDLE: return character->animShiveringReturnToIdle;
|
||||
case CHAR_ANIM_SHIVERING: return character->animShivering;
|
||||
case CHAR_ANIM_CLIMB_DOWN_LEDGE: return character->animClimbDownLedge;
|
||||
case CHAR_ANIM_CREDITS_WAVING: return character->animCreditsWaving;
|
||||
case CHAR_ANIM_CREDITS_LOOK_UP: return character->animCreditsLookUp;
|
||||
case CHAR_ANIM_CREDITS_RETURN_FROM_LOOK_UP: return character->animCreditsReturnFromLookUp;
|
||||
case CHAR_ANIM_CREDITS_RAISE_HAND: return character->animCreditsRaiseHand;
|
||||
case CHAR_ANIM_CREDITS_LOWER_HAND: return character->animCreditsLowerHand;
|
||||
case CHAR_ANIM_CREDITS_TAKE_OFF_CAP: return character->animCreditsTakeOffCap;
|
||||
case CHAR_ANIM_CREDITS_START_WALK_LOOK_UP: return character->animCreditsStartWalkLookUp;
|
||||
case CHAR_ANIM_CREDITS_LOOK_BACK_THEN_RUN: return character->animCreditsLookBackThenRun;
|
||||
case CHAR_ANIM_FINAL_BOWSER_RAISE_HAND_SPIN: return character->animFinalBowserRaiseHandSpin;
|
||||
case CHAR_ANIM_FINAL_BOWSER_WING_CAP_TAKE_OFF: return character->animFinalBowserWingCapTakeOff;
|
||||
case CHAR_ANIM_CREDITS_PEACE_SIGN: return character->animCreditsPeaceSign;
|
||||
case CHAR_ANIM_STAND_UP_FROM_LAVA_BOOST: return character->animStandUpFromLavaBoost;
|
||||
case CHAR_ANIM_FIRE_LAVA_BURN: return character->animFireLavaBurn;
|
||||
case CHAR_ANIM_WING_CAP_FLY: return character->animWingCapFly;
|
||||
case CHAR_ANIM_HANG_ON_OWL: return character->animHangOnOwl;
|
||||
case CHAR_ANIM_LAND_ON_STOMACH: return character->animLandOnStomach;
|
||||
case CHAR_ANIM_AIR_FORWARD_KB: return character->animAirForwardKb;
|
||||
case CHAR_ANIM_DYING_ON_STOMACH: return character->animDyingOnStomach;
|
||||
case CHAR_ANIM_SUFFOCATING: return character->animSuffocating;
|
||||
case CHAR_ANIM_COUGHING: return character->animCoughing;
|
||||
case CHAR_ANIM_THROW_CATCH_KEY: return character->animThrowCatchKey;
|
||||
case CHAR_ANIM_DYING_FALL_OVER: return character->animDyingFallOver;
|
||||
case CHAR_ANIM_IDLE_ON_LEDGE: return character->animIdleOnLedge;
|
||||
case CHAR_ANIM_FAST_LEDGE_GRAB: return character->animFastLedgeGrab;
|
||||
case CHAR_ANIM_HANG_ON_CEILING: return character->animHangOnCeiling;
|
||||
case CHAR_ANIM_PUT_CAP_ON: return character->animPutCapOn;
|
||||
case CHAR_ANIM_TAKE_CAP_OFF_THEN_ON: return character->animTakeCapOffThenOn;
|
||||
case CHAR_ANIM_QUICKLY_PUT_CAP_ON: return character->animQuicklyPutCapOn;
|
||||
case CHAR_ANIM_HEAD_STUCK_IN_GROUND: return character->animHeadStuckInGround;
|
||||
case CHAR_ANIM_GROUND_POUND_LANDING: return character->animGroundPoundLanding;
|
||||
case CHAR_ANIM_TRIPLE_JUMP_GROUND_POUND: return character->animTripleJumpGroundPound;
|
||||
case CHAR_ANIM_START_GROUND_POUND: return character->animStartGroundPound;
|
||||
case CHAR_ANIM_GROUND_POUND: return character->animGroundPound;
|
||||
case CHAR_ANIM_BOTTOM_STUCK_IN_GROUND: return character->animBottomStuckInGround;
|
||||
case CHAR_ANIM_IDLE_WITH_LIGHT_OBJ: return character->animIdleWithLightObj;
|
||||
case CHAR_ANIM_JUMP_LAND_WITH_LIGHT_OBJ: return character->animJumpLandWithLightObj;
|
||||
case CHAR_ANIM_JUMP_WITH_LIGHT_OBJ: return character->animJumpWithLightObj;
|
||||
case CHAR_ANIM_FALL_LAND_WITH_LIGHT_OBJ: return character->animFallLandWithLightObj;
|
||||
case CHAR_ANIM_FALL_WITH_LIGHT_OBJ: return character->animFallWithLightObj;
|
||||
case CHAR_ANIM_FALL_FROM_SLIDING_WITH_LIGHT_OBJ: return character->animFallFromSlidingWithLightObj;
|
||||
case CHAR_ANIM_SLIDING_ON_BOTTOM_WITH_LIGHT_OBJ: return character->animSlidingOnBottomWithLightObj;
|
||||
case CHAR_ANIM_STAND_UP_FROM_SLIDING_WITH_LIGHT_OBJ:return character->animStandUpFromSlidingWithLightObj;
|
||||
case CHAR_ANIM_RIDING_SHELL: return character->animRidingShell;
|
||||
case CHAR_ANIM_WALKING: return character->animWalking;
|
||||
case CHAR_ANIM_FORWARD_FLIP: return character->animForwardFlip;
|
||||
case CHAR_ANIM_JUMP_RIDING_SHELL: return character->animJumpRidingShell;
|
||||
case CHAR_ANIM_LAND_FROM_DOUBLE_JUMP: return character->animLandFromDoubleJump;
|
||||
case CHAR_ANIM_DOUBLE_JUMP_FALL: return character->animDoubleJumpFall;
|
||||
case CHAR_ANIM_SINGLE_JUMP: return character->animSingleJump;
|
||||
case CHAR_ANIM_LAND_FROM_SINGLE_JUMP: return character->animLandFromSingleJump;
|
||||
case CHAR_ANIM_AIR_KICK: return character->animAirKick;
|
||||
case CHAR_ANIM_DOUBLE_JUMP_RISE: return character->animDoubleJumpRise;
|
||||
case CHAR_ANIM_START_FORWARD_SPINNING: return character->animStartForwardSpinning;
|
||||
case CHAR_ANIM_THROW_LIGHT_OBJECT: return character->animThrowLightObject;
|
||||
case CHAR_ANIM_FALL_FROM_SLIDE_KICK: return character->animFallFromSlideKick;
|
||||
case CHAR_ANIM_BEND_KNESS_RIDING_SHELL: return character->animBendKnessRidingShell;
|
||||
case CHAR_ANIM_LEGS_STUCK_IN_GROUND: return character->animLegsStuckInGround;
|
||||
case CHAR_ANIM_GENERAL_FALL: return character->animGeneralFall;
|
||||
case CHAR_ANIM_GENERAL_LAND: return character->animGeneralLand;
|
||||
case CHAR_ANIM_BEING_GRABBED: return character->animBeingGrabbed;
|
||||
case CHAR_ANIM_GRAB_HEAVY_OBJECT: return character->animGrabHeavyObject;
|
||||
case CHAR_ANIM_SLOW_LAND_FROM_DIVE: return character->animSlowLandFromDive;
|
||||
case CHAR_ANIM_FLY_FROM_CANNON: return character->animFlyFromCannon;
|
||||
case CHAR_ANIM_MOVE_ON_WIRE_NET_RIGHT: return character->animMoveOnWireNetRight;
|
||||
case CHAR_ANIM_MOVE_ON_WIRE_NET_LEFT: return character->animMoveOnWireNetLeft;
|
||||
case CHAR_ANIM_MISSING_CAP: return character->animMissingCap;
|
||||
case CHAR_ANIM_PULL_DOOR_WALK_IN: return character->animPullDoorWalkIn;
|
||||
case CHAR_ANIM_PUSH_DOOR_WALK_IN: return character->animPushDoorWalkIn;
|
||||
case CHAR_ANIM_UNLOCK_DOOR: return character->animUnlockDoor;
|
||||
case CHAR_ANIM_START_REACH_POCKET: return character->animStartReachPocket;
|
||||
case CHAR_ANIM_REACH_POCKET: return character->animReachPocket;
|
||||
case CHAR_ANIM_STOP_REACH_POCKET: return character->animStopReachPocket;
|
||||
case CHAR_ANIM_GROUND_THROW: return character->animGroundThrow;
|
||||
case CHAR_ANIM_GROUND_KICK: return character->animGroundKick;
|
||||
case CHAR_ANIM_FIRST_PUNCH: return character->animFirstPunch;
|
||||
case CHAR_ANIM_SECOND_PUNCH: return character->animSecondPunch;
|
||||
case CHAR_ANIM_FIRST_PUNCH_FAST: return character->animFirstPunchFast;
|
||||
case CHAR_ANIM_SECOND_PUNCH_FAST: return character->animSecondPunchFast;
|
||||
case CHAR_ANIM_PICK_UP_LIGHT_OBJ: return character->animPickUpLightObj;
|
||||
case CHAR_ANIM_PUSHING: return character->animPushing;
|
||||
case CHAR_ANIM_START_RIDING_SHELL: return character->animStartRidingShell;
|
||||
case CHAR_ANIM_PLACE_LIGHT_OBJ: return character->animPlaceLightObj;
|
||||
case CHAR_ANIM_FORWARD_SPINNING: return character->animForwardSpinning;
|
||||
case CHAR_ANIM_BACKWARD_SPINNING: return character->animBackwardSpinning;
|
||||
case CHAR_ANIM_BREAKDANCE: return character->animBreakdance;
|
||||
case CHAR_ANIM_RUNNING: return character->animRunning;
|
||||
case CHAR_ANIM_RUNNING_UNUSED: return character->animRunningUnused;
|
||||
case CHAR_ANIM_SOFT_BACK_KB: return character->animSoftBackKb;
|
||||
case CHAR_ANIM_SOFT_FRONT_KB: return character->animSoftFrontKb;
|
||||
case CHAR_ANIM_DYING_IN_QUICKSAND: return character->animDyingInQuicksand;
|
||||
case CHAR_ANIM_IDLE_IN_QUICKSAND: return character->animIdleInQuicksand;
|
||||
case CHAR_ANIM_MOVE_IN_QUICKSAND: return character->animMoveInQuicksand;
|
||||
case CHAR_ANIM_ELECTROCUTION: return character->animElectrocution;
|
||||
case CHAR_ANIM_SHOCKED: return character->animShocked;
|
||||
case CHAR_ANIM_BACKWARD_KB: return character->animBackwardKb;
|
||||
case CHAR_ANIM_FORWARD_KB: return character->animForwardKb;
|
||||
case CHAR_ANIM_IDLE_HEAVY_OBJ: return character->animIdleHeavyObj;
|
||||
case CHAR_ANIM_STAND_AGAINST_WALL: return character->animStandAgainstWall;
|
||||
case CHAR_ANIM_SIDESTEP_LEFT: return character->animSidestepLeft;
|
||||
case CHAR_ANIM_SIDESTEP_RIGHT: return character->animSidestepRight;
|
||||
case CHAR_ANIM_START_SLEEP_IDLE: return character->animStartSleepIdle;
|
||||
case CHAR_ANIM_START_SLEEP_SCRATCH: return character->animStartSleepScratch;
|
||||
case CHAR_ANIM_START_SLEEP_YAWN: return character->animStartSleepYawn;
|
||||
case CHAR_ANIM_START_SLEEP_SITTING: return character->animStartSleepSitting;
|
||||
case CHAR_ANIM_SLEEP_IDLE: return character->animSleepIdle;
|
||||
case CHAR_ANIM_SLEEP_START_LYING: return character->animSleepStartLying;
|
||||
case CHAR_ANIM_SLEEP_LYING: return character->animSleepLying;
|
||||
case CHAR_ANIM_DIVE: return character->animDive;
|
||||
case CHAR_ANIM_SLIDE_DIVE: return character->animSlideDive;
|
||||
case CHAR_ANIM_GROUND_BONK: return character->animGroundBonk;
|
||||
case CHAR_ANIM_STOP_SLIDE_LIGHT_OBJ: return character->animStopSlideLightObj;
|
||||
case CHAR_ANIM_SLIDE_KICK: return character->animSlideKick;
|
||||
case CHAR_ANIM_CROUCH_FROM_SLIDE_KICK: return character->animCrouchFromSlideKick;
|
||||
case CHAR_ANIM_SLIDE_MOTIONLESS: return character->animSlideMotionless;
|
||||
case CHAR_ANIM_STOP_SLIDE: return character->animStopSlide;
|
||||
case CHAR_ANIM_FALL_FROM_SLIDE: return character->animFallFromSlide;
|
||||
case CHAR_ANIM_SLIDE: return character->animSlide;
|
||||
case CHAR_ANIM_TIPTOE: return character->animTiptoe;
|
||||
case CHAR_ANIM_TWIRL_LAND: return character->animTwirlLand;
|
||||
case CHAR_ANIM_TWIRL: return character->animTwirl;
|
||||
case CHAR_ANIM_START_TWIRL: return character->animStartTwirl;
|
||||
case CHAR_ANIM_STOP_CROUCHING: return character->animStopCrouching;
|
||||
case CHAR_ANIM_START_CROUCHING: return character->animStartCrouching;
|
||||
case CHAR_ANIM_CROUCHING: return character->animCrouching;
|
||||
case CHAR_ANIM_CRAWLING: return character->animCrawling;
|
||||
case CHAR_ANIM_STOP_CRAWLING: return character->animStopCrawling;
|
||||
case CHAR_ANIM_START_CRAWLING: return character->animStartCrawling;
|
||||
case CHAR_ANIM_SUMMON_STAR: return character->animSummonStar;
|
||||
case CHAR_ANIM_RETURN_STAR_APPROACH_DOOR: return character->animReturnStarApproachDoor;
|
||||
case CHAR_ANIM_BACKWARDS_WATER_KB: return character->animBackwardsWaterKb;
|
||||
case CHAR_ANIM_SWIM_WITH_OBJ_PART1: return character->animSwimWithObjPart1;
|
||||
case CHAR_ANIM_SWIM_WITH_OBJ_PART2: return character->animSwimWithObjPart2;
|
||||
case CHAR_ANIM_FLUTTERKICK_WITH_OBJ: return character->animFlutterkickWithObj;
|
||||
case CHAR_ANIM_WATER_ACTION_END_WITH_OBJ: return character->animWaterActionEndWithObj;
|
||||
case CHAR_ANIM_STOP_GRAB_OBJ_WATER: return character->animStopGrabObjWater;
|
||||
case CHAR_ANIM_WATER_IDLE_WITH_OBJ: return character->animWaterIdleWithObj;
|
||||
case CHAR_ANIM_DROWNING_PART1: return character->animDrowningPart1;
|
||||
case CHAR_ANIM_DROWNING_PART2: return character->animDrowningPart2;
|
||||
case CHAR_ANIM_WATER_DYING: return character->animWaterDying;
|
||||
case CHAR_ANIM_WATER_FORWARD_KB: return character->animWaterForwardKb;
|
||||
case CHAR_ANIM_FALL_FROM_WATER: return character->animFallFromWater;
|
||||
case CHAR_ANIM_SWIM_PART1: return character->animSwimPart1;
|
||||
case CHAR_ANIM_SWIM_PART2: return character->animSwimPart2;
|
||||
case CHAR_ANIM_FLUTTERKICK: return character->animFlutterkick;
|
||||
case CHAR_ANIM_WATER_ACTION_END: return character->animWaterActionEnd;
|
||||
case CHAR_ANIM_WATER_PICK_UP_OBJ: return character->animWaterPickUpObj;
|
||||
case CHAR_ANIM_WATER_GRAB_OBJ_PART2: return character->animWaterGrabObjPart2;
|
||||
case CHAR_ANIM_WATER_GRAB_OBJ_PART1: return character->animWaterGrabObjPart1;
|
||||
case CHAR_ANIM_WATER_THROW_OBJ: return character->animWaterThrowObj;
|
||||
case CHAR_ANIM_WATER_IDLE: return character->animWaterIdle;
|
||||
case CHAR_ANIM_WATER_STAR_DANCE: return character->animWaterStarDance;
|
||||
case CHAR_ANIM_RETURN_FROM_WATER_STAR_DANCE: return character->animReturnFromWaterStarDance;
|
||||
case CHAR_ANIM_GRAB_BOWSER: return character->animGrabBowser;
|
||||
case CHAR_ANIM_SWINGING_BOWSER: return character->animSwingingBowser;
|
||||
case CHAR_ANIM_RELEASE_BOWSER: return character->animReleaseBowser;
|
||||
case CHAR_ANIM_HOLDING_BOWSER: return character->animHoldingBowser;
|
||||
case CHAR_ANIM_HEAVY_THROW: return character->animHeavyThrow;
|
||||
case CHAR_ANIM_WALK_PANTING: return character->animWalkPanting;
|
||||
case CHAR_ANIM_WALK_WITH_HEAVY_OBJ: return character->animWalkWithHeavyObj;
|
||||
case CHAR_ANIM_TURNING_PART1: return character->animTurningPart1;
|
||||
case CHAR_ANIM_TURNING_PART2: return character->animTurningPart2;
|
||||
case CHAR_ANIM_SLIDEFLIP_LAND: return character->animSlideflipLand;
|
||||
case CHAR_ANIM_SLIDEFLIP: return character->animSlideflip;
|
||||
case CHAR_ANIM_TRIPLE_JUMP_LAND: return character->animTripleJumpLand;
|
||||
case CHAR_ANIM_TRIPLE_JUMP: return character->animTripleJump;
|
||||
case CHAR_ANIM_FIRST_PERSON: return character->animFirstPerson;
|
||||
case CHAR_ANIM_IDLE_HEAD_LEFT: return character->animIdleHeadLeft;
|
||||
case CHAR_ANIM_IDLE_HEAD_RIGHT: return character->animIdleHeadRight;
|
||||
case CHAR_ANIM_IDLE_HEAD_CENTER: return character->animIdleHeadCenter;
|
||||
case CHAR_ANIM_HANDSTAND_LEFT: return character->animHandstandLeft;
|
||||
case CHAR_ANIM_HANDSTAND_RIGHT: return character->animHandstandRight;
|
||||
case CHAR_ANIM_WAKE_FROM_SLEEP: return character->animWakeFromSleep;
|
||||
case CHAR_ANIM_WAKE_FROM_LYING: return character->animWakeFromLying;
|
||||
case CHAR_ANIM_START_TIPTOE: return character->animStartTiptoe;
|
||||
case CHAR_ANIM_SLIDEJUMP: return character->animSlidejump;
|
||||
case CHAR_ANIM_START_WALLKICK: return character->animStartWallkick;
|
||||
case CHAR_ANIM_STAR_DANCE: return character->animStarDance;
|
||||
case CHAR_ANIM_RETURN_FROM_STAR_DANCE: return character->animReturnFromStarDance;
|
||||
case CHAR_ANIM_FORWARD_SPINNING_FLIP: return character->animForwardSpinningFlip;
|
||||
case CHAR_ANIM_TRIPLE_JUMP_FLY: return character->animTripleJumpFly;
|
||||
default: return 0;
|
||||
}
|
||||
if (characterAnim < 0 || characterAnim >= CHAR_ANIM_MAX) { return 0; }
|
||||
return character->anims[characterAnim];
|
||||
}
|
|
@ -33,284 +33,6 @@ enum CharacterType {
|
|||
CT_MAX
|
||||
};
|
||||
|
||||
struct Character {
|
||||
enum CharacterType type;
|
||||
char* name;
|
||||
char hudHead;
|
||||
struct TextureInfo hudHeadTexture;
|
||||
u32 cameraHudHead;
|
||||
u32 modelId;
|
||||
u32 capModelId;
|
||||
u32 capMetalModelId;
|
||||
u32 capWingModelId;
|
||||
u32 capMetalWingModelId;
|
||||
u8 capEnemyLayer;
|
||||
Gfx* capEnemyGfx;
|
||||
Gfx* capEnemyDecalGfx;
|
||||
f32 torsoRotMult;
|
||||
// anim
|
||||
u8 animOffsetEnabled;
|
||||
f32 animOffsetLowYPoint;
|
||||
f32 animOffsetFeet;
|
||||
f32 animOffsetHand;
|
||||
|
||||
/* 0x00 */s32 animSlowLedgeGrab;
|
||||
/* 0x01 */s32 animFallOverBackwards;
|
||||
/* 0x02 */s32 animBackwardAirKb;
|
||||
/* 0x03 */s32 animDyingOnBack;
|
||||
/* 0x04 */s32 animBackflip;
|
||||
/* 0x05 */s32 animClimbUpPole;
|
||||
/* 0x06 */s32 animGrabPoleShort;
|
||||
/* 0x07 */s32 animGrabPoleSwingPart1;
|
||||
/* 0x08 */s32 animGrabPoleSwingPart2;
|
||||
/* 0x09 */s32 animHandstandIdle;
|
||||
/* 0x0a */s32 animHandstandJump;
|
||||
/* 0x0b */s32 animStartHandstand;
|
||||
/* 0x0c */s32 animReturnFromHandstand;
|
||||
/* 0x0d */s32 animIdleOnPole;
|
||||
/* 0x0e */s32 animAPose;
|
||||
/* 0x0f */s32 animSkidOnGround;
|
||||
/* 0x10 */s32 animStopSkid;
|
||||
/* 0x11 */s32 animCrouchFromFastLongjump;
|
||||
/* 0x12 */s32 animCrouchFromSlowLongjump;
|
||||
/* 0x13 */s32 animFastLongjump;
|
||||
/* 0x14 */s32 animSlowLongjump;
|
||||
/* 0x15 */s32 animAirborneOnStomach;
|
||||
/* 0x16 */s32 animWalkWithLightObj;
|
||||
/* 0x17 */s32 animRunWithLightObj;
|
||||
/* 0x18 */s32 animSlowWalkWithLightObj;
|
||||
/* 0x19 */s32 animShiveringWarmingHand;
|
||||
/* 0x1a */s32 animShiveringReturnToIdle;
|
||||
/* 0x1b */s32 animShivering;
|
||||
/* 0x1c */s32 animClimbDownLedge;
|
||||
/* 0x1d */s32 animCreditsWaving;
|
||||
/* 0x1e */s32 animCreditsLookUp;
|
||||
/* 0x1f */s32 animCreditsReturnFromLookUp;
|
||||
/* 0x20 */s32 animCreditsRaiseHand;
|
||||
/* 0x21 */s32 animCreditsLowerHand;
|
||||
/* 0x22 */s32 animCreditsTakeOffCap;
|
||||
/* 0x23 */s32 animCreditsStartWalkLookUp;
|
||||
/* 0x24 */s32 animCreditsLookBackThenRun;
|
||||
/* 0x25 */s32 animFinalBowserRaiseHandSpin;
|
||||
/* 0x26 */s32 animFinalBowserWingCapTakeOff;
|
||||
/* 0x27 */s32 animCreditsPeaceSign;
|
||||
/* 0x28 */s32 animStandUpFromLavaBoost;
|
||||
/* 0x29 */s32 animFireLavaBurn;
|
||||
/* 0x2a */s32 animWingCapFly;
|
||||
/* 0x2b */s32 animHangOnOwl;
|
||||
/* 0x2c */s32 animLandOnStomach;
|
||||
/* 0x2d */s32 animAirForwardKb;
|
||||
/* 0x2e */s32 animDyingOnStomach;
|
||||
/* 0x2f */s32 animSuffocating;
|
||||
/* 0x30 */s32 animCoughing;
|
||||
/* 0x31 */s32 animThrowCatchKey;
|
||||
/* 0x32 */s32 animDyingFallOver;
|
||||
/* 0x33 */s32 animIdleOnLedge;
|
||||
/* 0x34 */s32 animFastLedgeGrab;
|
||||
/* 0x35 */s32 animHangOnCeiling;
|
||||
/* 0x36 */s32 animPutCapOn;
|
||||
/* 0x37 */s32 animTakeCapOffThenOn;
|
||||
/* 0x38 */s32 animQuicklyPutCapOn;
|
||||
/* 0x39 */s32 animHeadStuckInGround;
|
||||
/* 0x3a */s32 animGroundPoundLanding;
|
||||
/* 0x3b */s32 animTripleJumpGroundPound;
|
||||
/* 0x3c */s32 animStartGroundPound;
|
||||
/* 0x3d */s32 animGroundPound;
|
||||
/* 0x3e */s32 animBottomStuckInGround;
|
||||
/* 0x3f */s32 animIdleWithLightObj;
|
||||
/* 0x40 */s32 animJumpLandWithLightObj;
|
||||
/* 0x41 */s32 animJumpWithLightObj;
|
||||
/* 0x42 */s32 animFallLandWithLightObj;
|
||||
/* 0x43 */s32 animFallWithLightObj;
|
||||
/* 0x44 */s32 animFallFromSlidingWithLightObj;
|
||||
/* 0x45 */s32 animSlidingOnBottomWithLightObj;
|
||||
/* 0x46 */s32 animStandUpFromSlidingWithLightObj;
|
||||
/* 0x47 */s32 animRidingShell;
|
||||
/* 0x48 */s32 animWalking;
|
||||
/* 0x49 */s32 animForwardFlip;
|
||||
/* 0x4a */s32 animJumpRidingShell;
|
||||
/* 0x4b */s32 animLandFromDoubleJump;
|
||||
/* 0x4c */s32 animDoubleJumpFall;
|
||||
/* 0x4d */s32 animSingleJump;
|
||||
/* 0x4e */s32 animLandFromSingleJump;
|
||||
/* 0x4f */s32 animAirKick;
|
||||
/* 0x50 */s32 animDoubleJumpRise;
|
||||
/* 0x51 */s32 animStartForwardSpinning;
|
||||
/* 0x52 */s32 animThrowLightObject;
|
||||
/* 0x53 */s32 animFallFromSlideKick;
|
||||
/* 0x54 */s32 animBendKnessRidingShell;
|
||||
/* 0x55 */s32 animLegsStuckInGround;
|
||||
/* 0x56 */s32 animGeneralFall;
|
||||
/* 0x57 */s32 animGeneralLand;
|
||||
/* 0x58 */s32 animBeingGrabbed;
|
||||
/* 0x59 */s32 animGrabHeavyObject;
|
||||
/* 0x5a */s32 animSlowLandFromDive;
|
||||
/* 0x5b */s32 animFlyFromCannon;
|
||||
/* 0x5c */s32 animMoveOnWireNetRight;
|
||||
/* 0x5d */s32 animMoveOnWireNetLeft;
|
||||
/* 0x5e */s32 animMissingCap;
|
||||
/* 0x5f */s32 animPullDoorWalkIn;
|
||||
/* 0x60 */s32 animPushDoorWalkIn;
|
||||
/* 0x61 */s32 animUnlockDoor;
|
||||
/* 0x62 */s32 animStartReachPocket;
|
||||
/* 0x63 */s32 animReachPocket;
|
||||
/* 0x64 */s32 animStopReachPocket;
|
||||
/* 0x65 */s32 animGroundThrow;
|
||||
/* 0x66 */s32 animGroundKick;
|
||||
/* 0x67 */s32 animFirstPunch;
|
||||
/* 0x68 */s32 animSecondPunch;
|
||||
/* 0x69 */s32 animFirstPunchFast;
|
||||
/* 0x6a */s32 animSecondPunchFast;
|
||||
/* 0x6b */s32 animPickUpLightObj;
|
||||
/* 0x6c */s32 animPushing;
|
||||
/* 0x6d */s32 animStartRidingShell;
|
||||
/* 0x6e */s32 animPlaceLightObj;
|
||||
/* 0x6f */s32 animForwardSpinning;
|
||||
/* 0x70 */s32 animBackwardSpinning;
|
||||
/* 0x71 */s32 animBreakdance;
|
||||
/* 0x72 */s32 animRunning;
|
||||
/* 0x73 */s32 animRunningUnused;
|
||||
/* 0x74 */s32 animSoftBackKb;
|
||||
/* 0x75 */s32 animSoftFrontKb;
|
||||
/* 0x76 */s32 animDyingInQuicksand;
|
||||
/* 0x77 */s32 animIdleInQuicksand;
|
||||
/* 0x78 */s32 animMoveInQuicksand;
|
||||
/* 0x79 */s32 animElectrocution;
|
||||
/* 0x7a */s32 animShocked;
|
||||
/* 0x7b */s32 animBackwardKb;
|
||||
/* 0x7c */s32 animForwardKb;
|
||||
/* 0x7d */s32 animIdleHeavyObj;
|
||||
/* 0x7e */s32 animStandAgainstWall;
|
||||
/* 0x7f */s32 animSidestepLeft;
|
||||
/* 0x80 */s32 animSidestepRight;
|
||||
/* 0x81 */s32 animStartSleepIdle;
|
||||
/* 0x82 */s32 animStartSleepScratch;
|
||||
/* 0x83 */s32 animStartSleepYawn;
|
||||
/* 0x84 */s32 animStartSleepSitting;
|
||||
/* 0x85 */s32 animSleepIdle;
|
||||
/* 0x86 */s32 animSleepStartLying;
|
||||
/* 0x87 */s32 animSleepLying;
|
||||
/* 0x88 */s32 animDive;
|
||||
/* 0x89 */s32 animSlideDive;
|
||||
/* 0x8a */s32 animGroundBonk;
|
||||
/* 0x8b */s32 animStopSlideLightObj;
|
||||
/* 0x8c */s32 animSlideKick;
|
||||
/* 0x8d */s32 animCrouchFromSlideKick;
|
||||
/* 0x8e */s32 animSlideMotionless;
|
||||
/* 0x8f */s32 animStopSlide;
|
||||
/* 0x90 */s32 animFallFromSlide;
|
||||
/* 0x91 */s32 animSlide;
|
||||
/* 0x92 */s32 animTiptoe;
|
||||
/* 0x93 */s32 animTwirlLand;
|
||||
/* 0x94 */s32 animTwirl;
|
||||
/* 0x95 */s32 animStartTwirl;
|
||||
/* 0x96 */s32 animStopCrouching;
|
||||
/* 0x97 */s32 animStartCrouching;
|
||||
/* 0x98 */s32 animCrouching;
|
||||
/* 0x99 */s32 animCrawling;
|
||||
/* 0x9a */s32 animStopCrawling;
|
||||
/* 0x9b */s32 animStartCrawling;
|
||||
/* 0x9c */s32 animSummonStar;
|
||||
/* 0x9d */s32 animReturnStarApproachDoor;
|
||||
/* 0x9e */s32 animBackwardsWaterKb;
|
||||
/* 0x9f */s32 animSwimWithObjPart1;
|
||||
/* 0xa0 */s32 animSwimWithObjPart2;
|
||||
/* 0xa1 */s32 animFlutterkickWithObj;
|
||||
/* 0xa2 */s32 animWaterActionEndWithObj;
|
||||
/* 0xa3 */s32 animStopGrabObjWater;
|
||||
/* 0xa4 */s32 animWaterIdleWithObj;
|
||||
/* 0xa5 */s32 animDrowningPart1;
|
||||
/* 0xa6 */s32 animDrowningPart2;
|
||||
/* 0xa7 */s32 animWaterDying;
|
||||
/* 0xa8 */s32 animWaterForwardKb;
|
||||
/* 0xa9 */s32 animFallFromWater;
|
||||
/* 0xaa */s32 animSwimPart1;
|
||||
/* 0xab */s32 animSwimPart2;
|
||||
/* 0xac */s32 animFlutterkick;
|
||||
/* 0xad */s32 animWaterActionEnd;
|
||||
/* 0xae */s32 animWaterPickUpObj;
|
||||
/* 0xaf */s32 animWaterGrabObjPart2;
|
||||
/* 0xb0 */s32 animWaterGrabObjPart1;
|
||||
/* 0xb1 */s32 animWaterThrowObj;
|
||||
/* 0xb2 */s32 animWaterIdle;
|
||||
/* 0xb3 */s32 animWaterStarDance;
|
||||
/* 0xb4 */s32 animReturnFromWaterStarDance;
|
||||
/* 0xb5 */s32 animGrabBowser;
|
||||
/* 0xb6 */s32 animSwingingBowser;
|
||||
/* 0xb7 */s32 animReleaseBowser;
|
||||
/* 0xb8 */s32 animHoldingBowser;
|
||||
/* 0xb9 */s32 animHeavyThrow;
|
||||
/* 0xba */s32 animWalkPanting;
|
||||
/* 0xbb */s32 animWalkWithHeavyObj;
|
||||
/* 0xbc */s32 animTurningPart1;
|
||||
/* 0xbd */s32 animTurningPart2;
|
||||
/* 0xbe */s32 animSlideflipLand;
|
||||
/* 0xbf */s32 animSlideflip;
|
||||
/* 0xc0 */s32 animTripleJumpLand;
|
||||
/* 0xc1 */s32 animTripleJump;
|
||||
/* 0xc2 */s32 animFirstPerson;
|
||||
/* 0xc3 */s32 animIdleHeadLeft;
|
||||
/* 0xc4 */s32 animIdleHeadRight;
|
||||
/* 0xc5 */s32 animIdleHeadCenter;
|
||||
/* 0xc6 */s32 animHandstandLeft;
|
||||
/* 0xc7 */s32 animHandstandRight;
|
||||
/* 0xc8 */s32 animWakeFromSleep;
|
||||
/* 0xc9 */s32 animWakeFromLying;
|
||||
/* 0xca */s32 animStartTiptoe;
|
||||
/* 0xcb */s32 animSlidejump;
|
||||
/* 0xcc */s32 animStartWallkick;
|
||||
/* 0xcd */s32 animStarDance;
|
||||
/* 0xce */s32 animReturnFromStarDance;
|
||||
/* 0xcf */s32 animForwardSpinningFlip;
|
||||
/* 0xd0 */s32 animTripleJumpFly;
|
||||
// sounds
|
||||
f32 soundFreqScale;
|
||||
s32 soundYahWahHoo;
|
||||
s32 soundHoohoo;
|
||||
s32 soundYahoo;
|
||||
s32 soundUh;
|
||||
s32 soundHrmm;
|
||||
s32 soundWah2;
|
||||
s32 soundWhoa;
|
||||
s32 soundEeuh;
|
||||
s32 soundAttacked;
|
||||
s32 soundOoof;
|
||||
s32 soundOoof2;
|
||||
s32 soundHereWeGo;
|
||||
s32 soundYawning;
|
||||
s32 soundSnoring1;
|
||||
s32 soundSnoring2;
|
||||
s32 soundWaaaooow;
|
||||
s32 soundHaha;
|
||||
s32 soundHaha_2;
|
||||
s32 soundUh2;
|
||||
s32 soundUh2_2;
|
||||
s32 soundOnFire;
|
||||
s32 soundDying;
|
||||
s32 soundPantingCold;
|
||||
s32 soundPanting;
|
||||
s32 soundCoughing1;
|
||||
s32 soundCoughing2;
|
||||
s32 soundCoughing3;
|
||||
s32 soundPunchYah;
|
||||
s32 soundPunchHoo;
|
||||
s32 soundMamaMia;
|
||||
s32 soundGroundPoundWah;
|
||||
s32 soundDrowning;
|
||||
s32 soundPunchWah;
|
||||
s32 soundYahooWahaYippee;
|
||||
s32 soundDoh;
|
||||
s32 soundGameOver;
|
||||
s32 soundHello;
|
||||
s32 soundPressStartToPlay;
|
||||
s32 soundTwirlBounce;
|
||||
s32 soundSnoring3;
|
||||
s32 soundSoLongaBowser;
|
||||
s32 soundImaTired;
|
||||
s32 soundLetsAGo;
|
||||
s32 soundOkeyDokey;
|
||||
};
|
||||
|
||||
enum CharacterSound {
|
||||
CHAR_SOUND_YAH_WAH_HOO,
|
||||
CHAR_SOUND_HOOHOO,
|
||||
|
@ -359,6 +81,296 @@ enum CharacterSound {
|
|||
CHAR_SOUND_MAX // MUST BE LAST
|
||||
};
|
||||
|
||||
struct Character {
|
||||
enum CharacterType type;
|
||||
char* name;
|
||||
char hudHead;
|
||||
struct TextureInfo hudHeadTexture;
|
||||
u32 cameraHudHead;
|
||||
u32 modelId;
|
||||
u32 capModelId;
|
||||
u32 capMetalModelId;
|
||||
u32 capWingModelId;
|
||||
u32 capMetalWingModelId;
|
||||
u8 capEnemyLayer;
|
||||
Gfx* capEnemyGfx;
|
||||
Gfx* capEnemyDecalGfx;
|
||||
f32 torsoRotMult;
|
||||
// anim
|
||||
u8 animOffsetEnabled;
|
||||
f32 animOffsetLowYPoint;
|
||||
f32 animOffsetFeet;
|
||||
f32 animOffsetHand;
|
||||
|
||||
// anims
|
||||
union {
|
||||
struct {
|
||||
/* 0x00 */s32 animSlowLedgeGrab;
|
||||
/* 0x01 */s32 animFallOverBackwards;
|
||||
/* 0x02 */s32 animBackwardAirKb;
|
||||
/* 0x03 */s32 animDyingOnBack;
|
||||
/* 0x04 */s32 animBackflip;
|
||||
/* 0x05 */s32 animClimbUpPole;
|
||||
/* 0x06 */s32 animGrabPoleShort;
|
||||
/* 0x07 */s32 animGrabPoleSwingPart1;
|
||||
/* 0x08 */s32 animGrabPoleSwingPart2;
|
||||
/* 0x09 */s32 animHandstandIdle;
|
||||
/* 0x0a */s32 animHandstandJump;
|
||||
/* 0x0b */s32 animStartHandstand;
|
||||
/* 0x0c */s32 animReturnFromHandstand;
|
||||
/* 0x0d */s32 animIdleOnPole;
|
||||
/* 0x0e */s32 animAPose;
|
||||
/* 0x0f */s32 animSkidOnGround;
|
||||
/* 0x10 */s32 animStopSkid;
|
||||
/* 0x11 */s32 animCrouchFromFastLongjump;
|
||||
/* 0x12 */s32 animCrouchFromSlowLongjump;
|
||||
/* 0x13 */s32 animFastLongjump;
|
||||
/* 0x14 */s32 animSlowLongjump;
|
||||
/* 0x15 */s32 animAirborneOnStomach;
|
||||
/* 0x16 */s32 animWalkWithLightObj;
|
||||
/* 0x17 */s32 animRunWithLightObj;
|
||||
/* 0x18 */s32 animSlowWalkWithLightObj;
|
||||
/* 0x19 */s32 animShiveringWarmingHand;
|
||||
/* 0x1a */s32 animShiveringReturnToIdle;
|
||||
/* 0x1b */s32 animShivering;
|
||||
/* 0x1c */s32 animClimbDownLedge;
|
||||
/* 0x1d */s32 animCreditsWaving;
|
||||
/* 0x1e */s32 animCreditsLookUp;
|
||||
/* 0x1f */s32 animCreditsReturnFromLookUp;
|
||||
/* 0x20 */s32 animCreditsRaiseHand;
|
||||
/* 0x21 */s32 animCreditsLowerHand;
|
||||
/* 0x22 */s32 animCreditsTakeOffCap;
|
||||
/* 0x23 */s32 animCreditsStartWalkLookUp;
|
||||
/* 0x24 */s32 animCreditsLookBackThenRun;
|
||||
/* 0x25 */s32 animFinalBowserRaiseHandSpin;
|
||||
/* 0x26 */s32 animFinalBowserWingCapTakeOff;
|
||||
/* 0x27 */s32 animCreditsPeaceSign;
|
||||
/* 0x28 */s32 animStandUpFromLavaBoost;
|
||||
/* 0x29 */s32 animFireLavaBurn;
|
||||
/* 0x2a */s32 animWingCapFly;
|
||||
/* 0x2b */s32 animHangOnOwl;
|
||||
/* 0x2c */s32 animLandOnStomach;
|
||||
/* 0x2d */s32 animAirForwardKb;
|
||||
/* 0x2e */s32 animDyingOnStomach;
|
||||
/* 0x2f */s32 animSuffocating;
|
||||
/* 0x30 */s32 animCoughing;
|
||||
/* 0x31 */s32 animThrowCatchKey;
|
||||
/* 0x32 */s32 animDyingFallOver;
|
||||
/* 0x33 */s32 animIdleOnLedge;
|
||||
/* 0x34 */s32 animFastLedgeGrab;
|
||||
/* 0x35 */s32 animHangOnCeiling;
|
||||
/* 0x36 */s32 animPutCapOn;
|
||||
/* 0x37 */s32 animTakeCapOffThenOn;
|
||||
/* 0x38 */s32 animQuicklyPutCapOn;
|
||||
/* 0x39 */s32 animHeadStuckInGround;
|
||||
/* 0x3a */s32 animGroundPoundLanding;
|
||||
/* 0x3b */s32 animTripleJumpGroundPound;
|
||||
/* 0x3c */s32 animStartGroundPound;
|
||||
/* 0x3d */s32 animGroundPound;
|
||||
/* 0x3e */s32 animBottomStuckInGround;
|
||||
/* 0x3f */s32 animIdleWithLightObj;
|
||||
/* 0x40 */s32 animJumpLandWithLightObj;
|
||||
/* 0x41 */s32 animJumpWithLightObj;
|
||||
/* 0x42 */s32 animFallLandWithLightObj;
|
||||
/* 0x43 */s32 animFallWithLightObj;
|
||||
/* 0x44 */s32 animFallFromSlidingWithLightObj;
|
||||
/* 0x45 */s32 animSlidingOnBottomWithLightObj;
|
||||
/* 0x46 */s32 animStandUpFromSlidingWithLightObj;
|
||||
/* 0x47 */s32 animRidingShell;
|
||||
/* 0x48 */s32 animWalking;
|
||||
/* 0x49 */s32 animForwardFlip;
|
||||
/* 0x4a */s32 animJumpRidingShell;
|
||||
/* 0x4b */s32 animLandFromDoubleJump;
|
||||
/* 0x4c */s32 animDoubleJumpFall;
|
||||
/* 0x4d */s32 animSingleJump;
|
||||
/* 0x4e */s32 animLandFromSingleJump;
|
||||
/* 0x4f */s32 animAirKick;
|
||||
/* 0x50 */s32 animDoubleJumpRise;
|
||||
/* 0x51 */s32 animStartForwardSpinning;
|
||||
/* 0x52 */s32 animThrowLightObject;
|
||||
/* 0x53 */s32 animFallFromSlideKick;
|
||||
/* 0x54 */s32 animBendKnessRidingShell;
|
||||
/* 0x55 */s32 animLegsStuckInGround;
|
||||
/* 0x56 */s32 animGeneralFall;
|
||||
/* 0x57 */s32 animGeneralLand;
|
||||
/* 0x58 */s32 animBeingGrabbed;
|
||||
/* 0x59 */s32 animGrabHeavyObject;
|
||||
/* 0x5a */s32 animSlowLandFromDive;
|
||||
/* 0x5b */s32 animFlyFromCannon;
|
||||
/* 0x5c */s32 animMoveOnWireNetRight;
|
||||
/* 0x5d */s32 animMoveOnWireNetLeft;
|
||||
/* 0x5e */s32 animMissingCap;
|
||||
/* 0x5f */s32 animPullDoorWalkIn;
|
||||
/* 0x60 */s32 animPushDoorWalkIn;
|
||||
/* 0x61 */s32 animUnlockDoor;
|
||||
/* 0x62 */s32 animStartReachPocket;
|
||||
/* 0x63 */s32 animReachPocket;
|
||||
/* 0x64 */s32 animStopReachPocket;
|
||||
/* 0x65 */s32 animGroundThrow;
|
||||
/* 0x66 */s32 animGroundKick;
|
||||
/* 0x67 */s32 animFirstPunch;
|
||||
/* 0x68 */s32 animSecondPunch;
|
||||
/* 0x69 */s32 animFirstPunchFast;
|
||||
/* 0x6a */s32 animSecondPunchFast;
|
||||
/* 0x6b */s32 animPickUpLightObj;
|
||||
/* 0x6c */s32 animPushing;
|
||||
/* 0x6d */s32 animStartRidingShell;
|
||||
/* 0x6e */s32 animPlaceLightObj;
|
||||
/* 0x6f */s32 animForwardSpinning;
|
||||
/* 0x70 */s32 animBackwardSpinning;
|
||||
/* 0x71 */s32 animBreakdance;
|
||||
/* 0x72 */s32 animRunning;
|
||||
/* 0x73 */s32 animRunningUnused;
|
||||
/* 0x74 */s32 animSoftBackKb;
|
||||
/* 0x75 */s32 animSoftFrontKb;
|
||||
/* 0x76 */s32 animDyingInQuicksand;
|
||||
/* 0x77 */s32 animIdleInQuicksand;
|
||||
/* 0x78 */s32 animMoveInQuicksand;
|
||||
/* 0x79 */s32 animElectrocution;
|
||||
/* 0x7a */s32 animShocked;
|
||||
/* 0x7b */s32 animBackwardKb;
|
||||
/* 0x7c */s32 animForwardKb;
|
||||
/* 0x7d */s32 animIdleHeavyObj;
|
||||
/* 0x7e */s32 animStandAgainstWall;
|
||||
/* 0x7f */s32 animSidestepLeft;
|
||||
/* 0x80 */s32 animSidestepRight;
|
||||
/* 0x81 */s32 animStartSleepIdle;
|
||||
/* 0x82 */s32 animStartSleepScratch;
|
||||
/* 0x83 */s32 animStartSleepYawn;
|
||||
/* 0x84 */s32 animStartSleepSitting;
|
||||
/* 0x85 */s32 animSleepIdle;
|
||||
/* 0x86 */s32 animSleepStartLying;
|
||||
/* 0x87 */s32 animSleepLying;
|
||||
/* 0x88 */s32 animDive;
|
||||
/* 0x89 */s32 animSlideDive;
|
||||
/* 0x8a */s32 animGroundBonk;
|
||||
/* 0x8b */s32 animStopSlideLightObj;
|
||||
/* 0x8c */s32 animSlideKick;
|
||||
/* 0x8d */s32 animCrouchFromSlideKick;
|
||||
/* 0x8e */s32 animSlideMotionless;
|
||||
/* 0x8f */s32 animStopSlide;
|
||||
/* 0x90 */s32 animFallFromSlide;
|
||||
/* 0x91 */s32 animSlide;
|
||||
/* 0x92 */s32 animTiptoe;
|
||||
/* 0x93 */s32 animTwirlLand;
|
||||
/* 0x94 */s32 animTwirl;
|
||||
/* 0x95 */s32 animStartTwirl;
|
||||
/* 0x96 */s32 animStopCrouching;
|
||||
/* 0x97 */s32 animStartCrouching;
|
||||
/* 0x98 */s32 animCrouching;
|
||||
/* 0x99 */s32 animCrawling;
|
||||
/* 0x9a */s32 animStopCrawling;
|
||||
/* 0x9b */s32 animStartCrawling;
|
||||
/* 0x9c */s32 animSummonStar;
|
||||
/* 0x9d */s32 animReturnStarApproachDoor;
|
||||
/* 0x9e */s32 animBackwardsWaterKb;
|
||||
/* 0x9f */s32 animSwimWithObjPart1;
|
||||
/* 0xa0 */s32 animSwimWithObjPart2;
|
||||
/* 0xa1 */s32 animFlutterkickWithObj;
|
||||
/* 0xa2 */s32 animWaterActionEndWithObj;
|
||||
/* 0xa3 */s32 animStopGrabObjWater;
|
||||
/* 0xa4 */s32 animWaterIdleWithObj;
|
||||
/* 0xa5 */s32 animDrowningPart1;
|
||||
/* 0xa6 */s32 animDrowningPart2;
|
||||
/* 0xa7 */s32 animWaterDying;
|
||||
/* 0xa8 */s32 animWaterForwardKb;
|
||||
/* 0xa9 */s32 animFallFromWater;
|
||||
/* 0xaa */s32 animSwimPart1;
|
||||
/* 0xab */s32 animSwimPart2;
|
||||
/* 0xac */s32 animFlutterkick;
|
||||
/* 0xad */s32 animWaterActionEnd;
|
||||
/* 0xae */s32 animWaterPickUpObj;
|
||||
/* 0xaf */s32 animWaterGrabObjPart2;
|
||||
/* 0xb0 */s32 animWaterGrabObjPart1;
|
||||
/* 0xb1 */s32 animWaterThrowObj;
|
||||
/* 0xb2 */s32 animWaterIdle;
|
||||
/* 0xb3 */s32 animWaterStarDance;
|
||||
/* 0xb4 */s32 animReturnFromWaterStarDance;
|
||||
/* 0xb5 */s32 animGrabBowser;
|
||||
/* 0xb6 */s32 animSwingingBowser;
|
||||
/* 0xb7 */s32 animReleaseBowser;
|
||||
/* 0xb8 */s32 animHoldingBowser;
|
||||
/* 0xb9 */s32 animHeavyThrow;
|
||||
/* 0xba */s32 animWalkPanting;
|
||||
/* 0xbb */s32 animWalkWithHeavyObj;
|
||||
/* 0xbc */s32 animTurningPart1;
|
||||
/* 0xbd */s32 animTurningPart2;
|
||||
/* 0xbe */s32 animSlideflipLand;
|
||||
/* 0xbf */s32 animSlideflip;
|
||||
/* 0xc0 */s32 animTripleJumpLand;
|
||||
/* 0xc1 */s32 animTripleJump;
|
||||
/* 0xc2 */s32 animFirstPerson;
|
||||
/* 0xc3 */s32 animIdleHeadLeft;
|
||||
/* 0xc4 */s32 animIdleHeadRight;
|
||||
/* 0xc5 */s32 animIdleHeadCenter;
|
||||
/* 0xc6 */s32 animHandstandLeft;
|
||||
/* 0xc7 */s32 animHandstandRight;
|
||||
/* 0xc8 */s32 animWakeFromSleep;
|
||||
/* 0xc9 */s32 animWakeFromLying;
|
||||
/* 0xca */s32 animStartTiptoe;
|
||||
/* 0xcb */s32 animSlidejump;
|
||||
/* 0xcc */s32 animStartWallkick;
|
||||
/* 0xcd */s32 animStarDance;
|
||||
/* 0xce */s32 animReturnFromStarDance;
|
||||
/* 0xcf */s32 animForwardSpinningFlip;
|
||||
/* 0xd0 */s32 animTripleJumpFly;
|
||||
};
|
||||
s32 anims[CHAR_ANIM_MAX];
|
||||
};
|
||||
|
||||
// sounds
|
||||
f32 soundFreqScale;
|
||||
union {
|
||||
struct {
|
||||
s32 soundYahWahHoo;
|
||||
s32 soundHoohoo;
|
||||
s32 soundYahoo;
|
||||
s32 soundUh;
|
||||
s32 soundHrmm;
|
||||
s32 soundWah2;
|
||||
s32 soundWhoa;
|
||||
s32 soundEeuh;
|
||||
s32 soundAttacked;
|
||||
s32 soundOoof;
|
||||
s32 soundOoof2;
|
||||
s32 soundHereWeGo;
|
||||
s32 soundYawning;
|
||||
s32 soundSnoring1;
|
||||
s32 soundSnoring2;
|
||||
s32 soundWaaaooow;
|
||||
s32 soundHaha;
|
||||
s32 soundHaha_2;
|
||||
s32 soundUh2;
|
||||
s32 soundUh2_2;
|
||||
s32 soundOnFire;
|
||||
s32 soundDying;
|
||||
s32 soundPantingCold;
|
||||
s32 soundPanting;
|
||||
s32 soundCoughing1;
|
||||
s32 soundCoughing2;
|
||||
s32 soundCoughing3;
|
||||
s32 soundPunchYah;
|
||||
s32 soundPunchHoo;
|
||||
s32 soundMamaMia;
|
||||
s32 soundGroundPoundWah;
|
||||
s32 soundDrowning;
|
||||
s32 soundPunchWah;
|
||||
s32 soundYahooWahaYippee;
|
||||
s32 soundDoh;
|
||||
s32 soundGameOver;
|
||||
s32 soundHello;
|
||||
s32 soundPressStartToPlay;
|
||||
s32 soundTwirlBounce;
|
||||
s32 soundSnoring3;
|
||||
s32 soundSoLongaBowser;
|
||||
s32 soundImaTired;
|
||||
s32 soundLetsAGo;
|
||||
s32 soundOkeyDokey;
|
||||
};
|
||||
s32 sounds[CHAR_SOUND_MAX];
|
||||
};
|
||||
};
|
||||
|
||||
struct MarioState;
|
||||
extern struct Character gCharacters[];
|
||||
struct Character* get_character(struct MarioState* m);
|
||||
|
|
|
@ -537,6 +537,7 @@ static struct LuaObjectField sCharacterFields[LUA_CHARACTER_FIELD_COUNT] = {
|
|||
{ "animWaterStarDance", LVT_S32, offsetof(struct Character, animWaterStarDance), true, LOT_NONE },
|
||||
{ "animWaterThrowObj", LVT_S32, offsetof(struct Character, animWaterThrowObj), true, LOT_NONE },
|
||||
{ "animWingCapFly", LVT_S32, offsetof(struct Character, animWingCapFly), true, LOT_NONE },
|
||||
// { "anims", LOT_???, offsetof(struct Character, anims), true, LOT_??? }, <--- UNIMPLEMENTED
|
||||
{ "cameraHudHead", LVT_U32, offsetof(struct Character, cameraHudHead), true, LOT_NONE },
|
||||
// { "capEnemyDecalGfx", LVT_???, offsetof(struct Character, capEnemyDecalGfx), true, LOT_??? }, <--- UNIMPLEMENTED
|
||||
// { "capEnemyGfx", LVT_???, offsetof(struct Character, capEnemyGfx), true, LOT_??? }, <--- UNIMPLEMENTED
|
||||
|
@ -594,6 +595,7 @@ static struct LuaObjectField sCharacterFields[LUA_CHARACTER_FIELD_COUNT] = {
|
|||
{ "soundYahoo", LVT_S32, offsetof(struct Character, soundYahoo), true, LOT_NONE },
|
||||
{ "soundYahooWahaYippee", LVT_S32, offsetof(struct Character, soundYahooWahaYippee), true, LOT_NONE },
|
||||
{ "soundYawning", LVT_S32, offsetof(struct Character, soundYawning), true, LOT_NONE },
|
||||
// { "sounds", LOT_???, offsetof(struct Character, sounds), true, LOT_??? }, <--- UNIMPLEMENTED
|
||||
{ "torsoRotMult", LVT_F32, offsetof(struct Character, torsoRotMult), true, LOT_NONE },
|
||||
{ "type", LVT_S32, offsetof(struct Character, type), true, LOT_NONE },
|
||||
};
|
||||
|
|
|
@ -1983,6 +1983,7 @@ char gSmluaConstants[] = ""
|
|||
"CHAR_ANIM_RETURN_FROM_STAR_DANCE = 206\n"
|
||||
"CHAR_ANIM_FORWARD_SPINNING_FLIP = 207\n"
|
||||
"CHAR_ANIM_TRIPLE_JUMP_FLY = 208\n"
|
||||
"CHAR_ANIM_MAX = 209\n"
|
||||
"MARIO_EYES_BLINK = 0\n"
|
||||
"MARIO_EYES_OPEN = 1\n"
|
||||
"MARIO_EYES_HALF_CLOSED = 2\n"
|
||||
|
|
Loading…
Reference in a new issue