mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-03 22:44:30 +00:00
Documentation For En_Ik (#1190)
* pushing up to save changes * syncing up some more docs * finishing what I can * PR feedback * fixing typo * Addressing comments * master merge * naming object * ummm committing this for now before catching up * other review + my review * more review * review2 Co-authored-by: fig02 <fig02srl@gmail.com>
This commit is contained in:
parent
629757b3ae
commit
85a4d23fc6
4 changed files with 767 additions and 583 deletions
|
@ -265,7 +265,7 @@ void DemoIk_Type1PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s
|
|||
case 0:
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inArmer.c", 390),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016BE0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL);
|
||||
break;
|
||||
case 2:
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inArmer.c", 396),
|
||||
|
@ -432,7 +432,7 @@ void DemoIk_Type2PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s
|
|||
case 5:
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inFace.c", 286),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016BE0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL);
|
||||
break;
|
||||
default:
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inFace.c", 292),
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -8,21 +8,102 @@ struct EnIk;
|
|||
|
||||
typedef void (*EnIkActionFunc)(struct EnIk*, PlayState*);
|
||||
|
||||
#define IK_GET_UPPER_PARAMS(thisx) ((thisx)->params & 0xFF00)
|
||||
#define IK_GET_ARMOR_TYPE(thisx) ((thisx)->params & 0xFF)
|
||||
#define IK_GET_SWITCH_FLAG(thisx) (((thisx)->params >> 8) & 0xFF)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ IK_TYPE_NABOORU,
|
||||
/* 1 */ IK_TYPE_SILVER,
|
||||
/* 2 */ IK_TYPE_BLACK,
|
||||
/* 3 */ IK_TYPE_WHITE
|
||||
} EnIkType;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ IRON_KNUCKLE_LIMB_NONE,
|
||||
/* 0x01 */ IRON_KNUCKLE_LIMB_ROOT,
|
||||
/* 0x02 */ IRON_KNUCKLE_LIMB_LOWER_BODY,
|
||||
/* 0x03 */ IRON_KNUCKLE_LIMB_RIGHT_THIGH,
|
||||
/* 0x04 */ IRON_KNUCKLE_LIMB_RIGHT_SHIN,
|
||||
/* 0x05 */ IRON_KNUCKLE_LIMB_RIGHT_FOOT,
|
||||
/* 0x06 */ IRON_KNUCKLE_LIMB_LEFT_THIGH,
|
||||
/* 0x07 */ IRON_KNUCKLE_LIMB_LEFT_SHIN,
|
||||
/* 0x08 */ IRON_KNUCKLE_LIMB_LEFT_FOOT,
|
||||
/* 0x09 */ IRON_KNUCKLE_LIMB_UPPER_BODY_ROOT,
|
||||
/* 0x0A */ IRON_KNUCKLE_LIMB_UPPER_BODY,
|
||||
/* 0x0B */ IRON_KNUCKLE_LIMB_HEAD_ROOT,
|
||||
/* 0x0C */ IRON_KNUCKLE_LIMB_HELMET_ARMOR,
|
||||
/* 0x0D */ IRON_KNUCKLE_LIMB_HEAD,
|
||||
/* 0x0E */ IRON_KNUCKLE_LIMB_RIGHT_UPPER_ARM,
|
||||
/* 0x0F */ IRON_KNUCKLE_LIMB_RIGHT_FOREARM,
|
||||
/* 0x10 */ IRON_KNUCKLE_LIMB_RIGHT_HAND_ROOT,
|
||||
/* 0x11 */ IRON_KNUCKLE_LIMB_AXE,
|
||||
/* 0x12 */ IRON_KNUCKLE_LIMB_RIGHT_HAND,
|
||||
/* 0x13 */ IRON_KNUCKLE_LIMB_LEFT_UPPER_ARM,
|
||||
/* 0x14 */ IRON_KNUCKLE_LIMB_LEFT_FOREARM,
|
||||
/* 0x15 */ IRON_KNUCKLE_LIMB_LEFT_HAND,
|
||||
/* 0x16 */ IRON_KNUCKLE_LIMB_UPPER_LEFT_PAULDRON,
|
||||
/* 0x17 */ IRON_KNUCKLE_LIMB_LOWER_LEFT_PAULDRON,
|
||||
/* 0x18 */ IRON_KNUCKLE_LIMB_UPPER_RIGHT_PAULDRON,
|
||||
/* 0x19 */ IRON_KNUCKLE_LIMB_LOWER_RIGHT_PAULDRON,
|
||||
/* 0x1A */ IRON_KNUCKLE_LIMB_CHEST_ARMOR_FRONT,
|
||||
/* 0x1B */ IRON_KNUCKLE_LIMB_CHEST_ARMOR_BACK,
|
||||
/* 0x1C */ IRON_KNUCKLE_LIMB_TORSO,
|
||||
/* 0x1D */ IRON_KNUCKLE_LIMB_WAIST,
|
||||
/* 0x1E */ IRON_KNUCKLE_LIMB_MAX
|
||||
} IronKnuckleLimb;
|
||||
|
||||
// This skeleton is only used in the defeat cutscene that reveals Nabooru under the armor.
|
||||
// The only difference between this skeleton and the main one is that the head and helmet armor limbs are swapped.
|
||||
typedef enum {
|
||||
/* 0x00 */ IRON_KNUCKLE_DEFEAT_LIMB_NONE,
|
||||
/* 0x01 */ IRON_KNUCKLE_DEFEAT_LIMB_ROOT,
|
||||
/* 0x02 */ IRON_KNUCKLE_DEFEAT_LIMB_LOWER_BODY,
|
||||
/* 0x03 */ IRON_KNUCKLE_DEFEAT_LIMB_RIGHT_THIGH,
|
||||
/* 0x04 */ IRON_KNUCKLE_DEFEAT_LIMB_RIGHT_SHIN,
|
||||
/* 0x05 */ IRON_KNUCKLE_DEFEAT_LIMB_RIGHT_FOOT,
|
||||
/* 0x06 */ IRON_KNUCKLE_DEFEAT_LIMB_LEFT_THIGH,
|
||||
/* 0x07 */ IRON_KNUCKLE_DEFEAT_LIMB_LEFT_SHIN,
|
||||
/* 0x08 */ IRON_KNUCKLE_DEFEAT_LIMB_LEFT_FOOT,
|
||||
/* 0x09 */ IRON_KNUCKLE_DEFEAT_LIMB_UPPER_BODY_ROOT,
|
||||
/* 0x0A */ IRON_KNUCKLE_DEFEAT_LIMB_UPPER_BODY,
|
||||
/* 0x0B */ IRON_KNUCKLE_DEFEAT_LIMB_HEAD_ROOT,
|
||||
/* 0x0C */ IRON_KNUCKLE_DEFEAT_LIMB_HEAD,
|
||||
/* 0x0D */ IRON_KNUCKLE_DEFEAT_LIMB_HELMET_ARMOR,
|
||||
/* 0x0E */ IRON_KNUCKLE_DEFEAT_LIMB_RIGHT_UPPER_ARM,
|
||||
/* 0x0F */ IRON_KNUCKLE_DEFEAT_LIMB_RIGHT_FOREARM,
|
||||
/* 0x10 */ IRON_KNUCKLE_DEFEAT_LIMB_RIGHT_HAND_ROOT,
|
||||
/* 0x11 */ IRON_KNUCKLE_DEFEAT_LIMB_AXE,
|
||||
/* 0x12 */ IRON_KNUCKLE_DEFEAT_LIMB_RIGHT_HAND,
|
||||
/* 0x13 */ IRON_KNUCKLE_DEFEAT_LIMB_LEFT_UPPER_ARM,
|
||||
/* 0x14 */ IRON_KNUCKLE_DEFEAT_LIMB_LEFT_FOREARM,
|
||||
/* 0x15 */ IRON_KNUCKLE_DEFEAT_LIMB_LEFT_HAND,
|
||||
/* 0x16 */ IRON_KNUCKLE_DEFEAT_LIMB_UPPER_LEFT_PAULDRON,
|
||||
/* 0x17 */ IRON_KNUCKLE_DEFEAT_LIMB_LOWER_LEFT_PAULDRON,
|
||||
/* 0x18 */ IRON_KNUCKLE_DEFEAT_LIMB_UPPER_RIGHT_PAULDRON,
|
||||
/* 0x19 */ IRON_KNUCKLE_DEFEAT_LIMB_LOWER_RIGHT_PAULDRON,
|
||||
/* 0x1A */ IRON_KNUCKLE_DEFEAT_LIMB_CHEST_ARMOR_FRONT,
|
||||
/* 0x1B */ IRON_KNUCKLE_DEFEAT_LIMB_CHEST_ARMOR_BACK,
|
||||
/* 0x1C */ IRON_KNUCKLE_DEFEAT_LIMB_TORSO,
|
||||
/* 0x1D */ IRON_KNUCKLE_DEFEAT_LIMB_WAIST,
|
||||
/* 0x1E */ IRON_KNUCKLE_DEFEAT_LIMB_MAX
|
||||
} IronKnuckleDefeatLimb;
|
||||
|
||||
typedef struct EnIk {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ Vec3s jointTable[30];
|
||||
/* 0x0244 */ Vec3s morphTable[30];
|
||||
/* 0x0190 */ Vec3s jointTable[IRON_KNUCKLE_LIMB_MAX];
|
||||
/* 0x0244 */ Vec3s morphTable[IRON_KNUCKLE_LIMB_MAX];
|
||||
/* 0x02F8 */ u8 unk_2F8;
|
||||
/* 0x02F9 */ u8 unk_2F9;
|
||||
/* 0x02FA */ u8 unk_2FA;
|
||||
/* 0x02FB */ u8 unk_2FB;
|
||||
/* 0x02FC */ u8 unk_2FC;
|
||||
/* 0x02FD */ u8 unk_2FD;
|
||||
/* 0x02F9 */ u8 animationTimer;
|
||||
/* 0x02FA */ u8 drawArmorFlag;
|
||||
/* 0x02FB */ u8 armorStatusFlag;
|
||||
/* 0x02FC */ u8 isBreakingProp;
|
||||
/* 0x02FD */ u8 damageEffect;
|
||||
/* 0x02FE */ s8 unk_2FE;
|
||||
/* 0x02FF */ s8 unk_2FF;
|
||||
/* 0x0300 */ s16 unk_300;
|
||||
/* 0x0302 */ s16 switchFlags;
|
||||
/* 0x0302 */ s16 switchFlag;
|
||||
/* 0x0304 */ EnIkActionFunc actionFunc;
|
||||
/* 0x0308 */ BodyBreak bodyBreak;
|
||||
/* 0x0320 */ ColliderCylinder bodyCollider;
|
||||
|
@ -30,10 +111,10 @@ typedef struct EnIk {
|
|||
/* 0x03EC */ ColliderTris shieldCollider;
|
||||
/* 0x040C */ ColliderTrisElement shieldColliderItems[2];
|
||||
/* 0x04C4 */ s32 blureIdx;
|
||||
/* 0x04C8 */ s32 action;
|
||||
/* 0x04CC */ s32 drawMode;
|
||||
/* 0x04C8 */ s32 csAction;
|
||||
/* 0x04CC */ s32 csDrawMode;
|
||||
/* 0x04D0 */ u32 npcAction;
|
||||
/* 0x04D4 */ s32 unk_4D4;
|
||||
/* 0x04D4 */ s32 isAxeSummoned;
|
||||
/* 0x04D8 */ char unk_4D8[0x04];
|
||||
} EnIk; // size = 0x04DC
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue