1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-10 19:20:13 +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:
Parker Burnett 2022-12-08 10:57:17 -08:00 committed by GitHub
parent 629757b3ae
commit 85a4d23fc6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 767 additions and 583 deletions

View file

@ -1,7 +1,5 @@
<Root> <Root>
<File Name="object_ik" Segment="6"> <File Name="object_ik" Segment="6">
<!--Blob Name="object_ik_zeroes_unk_00000000" Size="0xF630" Offset="0x0" /-->
<Skeleton Name="object_ik_Skel_000380" Type="Normal" LimbType="Standard" Offset="0x380"/> <Skeleton Name="object_ik_Skel_000380" Type="Normal" LimbType="Standard" Offset="0x380"/>
<Skeleton Name="object_ik_Skel_000660" Type="Normal" LimbType="Standard" Offset="0x660"/> <Skeleton Name="object_ik_Skel_000660" Type="Normal" LimbType="Standard" Offset="0x660"/>
<Skeleton Name="object_ik_Skel_000C90" Type="Normal" LimbType="Standard" Offset="0xC90"/> <Skeleton Name="object_ik_Skel_000C90" Type="Normal" LimbType="Standard" Offset="0xC90"/>
@ -10,62 +8,62 @@
<Skeleton Name="object_ik_Skel_000F30" Type="Flex" LimbType="Standard" Offset="0xF30"/> <Skeleton Name="object_ik_Skel_000F30" Type="Flex" LimbType="Standard" Offset="0xF30"/>
<Skeleton Name="object_ik_Skel_01EB40" Type="Flex" LimbType="Standard" Offset="0x1EB40"/> <Skeleton Name="object_ik_Skel_01EB40" Type="Flex" LimbType="Standard" Offset="0x1EB40"/>
<Skeleton Name="object_ik_Skel_01EE60" Type="Flex" LimbType="Standard" Offset="0x1EE60"/> <Skeleton Name="object_ik_Skel_01EE60" Type="Flex" LimbType="Standard" Offset="0x1EE60"/>
<Skeleton Name="object_ik_Skel_01E178" Type="Flex" LimbType="Standard" Offset="0x1E178"/> <Skeleton Name="gIronKnuckleSkel" Type="Flex" LimbType="Standard" Offset="0x1E178"/>
<Skeleton Name="object_ik_Skel_0205C0" Type="Flex" LimbType="Standard" Offset="0x205C0"/> <Skeleton Name="gIronKnuckleDefeatSkel" Type="Flex" LimbType="Standard" Offset="0x205C0"/>
<Animation Name="object_ik_Anim_00035C" Offset="0x35C"/> <Animation Name="object_ik_Anim_00035C" Offset="0x35C"/>
<Animation Name="object_ik_Anim_000634" Offset="0x634"/> <Animation Name="object_ik_Anim_000634" Offset="0x634"/>
<Animation Name="object_ik_Anim_0008DC" Offset="0x8DC"/> <Animation Name="object_ik_Anim_0008DC" Offset="0x8DC"/>
<Animation Name="object_ik_Anim_000C6C" Offset="0xC6C"/> <Animation Name="object_ik_Anim_000C6C" Offset="0xC6C"/>
<Animation Name="object_ik_Anim_000F0C" Offset="0xF0C"/> <Animation Name="object_ik_Anim_000F0C" Offset="0xF0C"/>
<Animation Name="object_ik_Anim_001C28" Offset="0x1C28"/> <Animation Name="gIronKnuckleVerticalAttackAnim" Offset="0x1C28"/>
<Animation Name="object_ik_Anim_002538" Offset="0x2538"/> <Animation Name="gIronKnuckleRecoverFromVerticalAttackAnim" Offset="0x2538"/>
<Animation Name="object_ik_Anim_0029FC" Offset="0x29FC"/> <Animation Name="gIronKnuckleAxeStuckAnim" Offset="0x29FC"/>
<Animation Name="object_ik_Anim_0033C4" Offset="0x33C4"/> <Animation Name="gIronKnuckleHorizontalAttackAnim" Offset="0x33C4"/>
<Animation Name="object_ik_Anim_003DBC" Offset="0x3DBC"/> <Animation Name="gIronKnuckleRecoverFromHorizontalAttackAnim" Offset="0x3DBC"/>
<Animation Name="object_ik_Anim_0045BC" Offset="0x45BC"/> <Animation Name="gIronKnuckleBackHitAnim" Offset="0x45BC"/>
<Animation Name="object_ik_Anim_00485C" Offset="0x485C"/> <Animation Name="gIronKnuckleBlockAnim" Offset="0x485C"/>
<Animation Name="object_ik_Anim_005944" Offset="0x5944"/> <Animation Name="gIronKnuckleDeathAnim" Offset="0x5944"/>
<Animation Name="object_ik_Anim_006194" Offset="0x6194"/> <Animation Name="gIronKnuckleFrontHitAnim" Offset="0x6194"/>
<Animation Name="object_ik_Anim_006734" Offset="0x6734"/> <Animation Name="gIronKnuckleRunAnim" Offset="0x6734"/>
<Animation Name="object_ik_Anim_00C114" Offset="0xC114"/> <Animation Name="gIronKnuckleNabooruSummonAxeAnim" Offset="0xC114"/>
<Animation Name="object_ik_Anim_00CD70" Offset="0xCD70"/> <Animation Name="gIronKnuckleStandUpAnim" Offset="0xCD70"/>
<Animation Name="object_ik_Anim_00DD50" Offset="0xDD50"/> <Animation Name="object_ik_Anim_00DD50" Offset="0xDD50"/>
<Animation Name="object_ik_Anim_00ED24" Offset="0xED24"/> <Animation Name="gIronKnuckleWalkAnim" Offset="0xED24"/>
<Animation Name="object_ik_Anim_01EB14" Offset="0x1EB14"/> <Animation Name="object_ik_Anim_01EB14" Offset="0x1EB14"/>
<Animation Name="object_ik_Anim_01EE34" Offset="0x1EE34"/> <Animation Name="object_ik_Anim_01EE34" Offset="0x1EE34"/>
<Animation Name="object_ik_Anim_0203D8" Offset="0x203D8"/> <Animation Name="gIronKnuckleNabooruDeathAnim" Offset="0x203D8"/>
<Texture Name="object_ik_Tlut_00F630" OutName="tlut_00F630" Format="rgba16" Width="23" Height="8" Offset="0xf630"/> <Texture Name="object_ik_Tlut_00F630" OutName="tlut_00F630" Format="rgba16" Width="23" Height="8" Offset="0xf630"/>
<Texture Name="object_ik_Tex_00F7A0" OutName="tex_00F7A0" Format="i4" Width="32" Height="64" Offset="0xF7A0"/> <Texture Name="gIronKnuckleMetalTex" OutName="iron_knuckle_metal_tex" Format="i4" Width="32" Height="64" Offset="0xF7A0"/>
<Texture Name="object_ik_Tex_00FBA0" OutName="tex_00FBA0" Format="ia8" Width="32" Height="32" Offset="0xFBA0"/> <Texture Name="gIronKnuckleBigRivetTex" OutName="iron_knuckle_big_rivet_tex" Format="ia8" Width="32" Height="32" Offset="0xFBA0"/>
<Texture Name="object_ik_Tex_00FFA0" OutName="tex_00FFA0" Format="rgba16" Width="16" Height="16" Offset="0xFFA0"/> <Texture Name="gIronKnuckleBlockPatternTex" OutName="iron_knuckle_block_pattern_tex" Format="rgba16" Width="16" Height="16" Offset="0xFFA0"/>
<Texture Name="object_ik_Tex_0101A0" OutName="tex_0101A0" Format="rgba16" Width="16" Height="16" Offset="0x101A0"/> <Texture Name="gIronKnuckleChainMailTex" OutName="iron_knuckle_chain_mail_tex" Format="rgba16" Width="16" Height="16" Offset="0x101A0"/>
<Texture Name="object_ik_Tex_0103A0" OutName="tex_0103A0" Format="ia16" Width="32" Height="32" Offset="0x103A0"/> <Texture Name="object_ik_Tex_0103A0" OutName="tex_0103A0" Format="ia16" Width="32" Height="32" Offset="0x103A0"/>
<Texture Name="object_ik_Tex_010BA0" OutName="tex_010BA0" Format="rgba16" Width="32" Height="32" Offset="0x10BA0"/> <Texture Name="gIronKnuckleGerudoEyeTex" OutName="iron_knuckle_gerudo_eye_tex" Format="rgba16" Width="32" Height="32" Offset="0x10BA0"/>
<Texture Name="object_ik_Tex_0113A0" OutName="tex_0113A0" Format="rgba16" Width="8" Height="8" Offset="0x113A0"/> <Texture Name="gIronKnuckleNabooruLipTex" OutName="iron_kuckle_nabooru_lip_tex" Format="rgba16" Width="8" Height="8" Offset="0x113A0"/>
<Texture Name="object_ik_Tex_011420" OutName="tex_011420" Format="ci8" Width="16" Height="16" Offset="0x11420" TlutOffset="0xf630"/> <Texture Name="gIronKnuckleJewelTex" OutName="iron_knuckle_jewel_tex" Format="ci8" Width="16" Height="16" Offset="0x11420" TlutOffset="0xf630"/>
<Texture Name="object_ik_Tex_011520" OutName="tex_011520" Format="ci8" Width="16" Height="16" Offset="0x11520" TlutOffset="0xf630"/> <Texture Name="gIronKnuckleNabooruForeheadJewelTex" OutName="iron_knuckle_nabooru_forehead_jewel_tex" Format="ci8" Width="16" Height="16" Offset="0x11520" TlutOffset="0xf630"/>
<Texture Name="object_ik_Tex_011620" OutName="tex_011620" Format="ci8" Width="8" Height="8" Offset="0x11620" TlutOffset="0xf630"/> <Texture Name="object_ik_Tex_011620" OutName="tex_011620" Format="ci8" Width="8" Height="8" Offset="0x11620" TlutOffset="0xf630"/>
<Texture Name="object_ik_Tex_011660" OutName="tex_011660" Format="ci8" Width="16" Height="16" Offset="0x11660" TlutOffset="0xf630"/> <Texture Name="gIronKnuckleNabooruHair1Tex" OutName="iron_knuckle_nabooru_hair_1_tex" Format="ci8" Width="16" Height="16" Offset="0x11660" TlutOffset="0xf630"/>
<Texture Name="object_ik_Tex_011760" OutName="tex_011760" Format="ci8" Width="8" Height="16" Offset="0x11760" TlutOffset="0xf630"/> <Texture Name="object_ik_Tex_011760" OutName="tex_011760" Format="ci8" Width="8" Height="16" Offset="0x11760" TlutOffset="0xf630"/>
<Texture Name="object_ik_Tex_0117E0" OutName="tex_0117E0" Format="ci8" Width="8" Height="16" Offset="0x117E0" TlutOffset="0xf630"/> <Texture Name="object_ik_Tex_0117E0" OutName="tex_0117E0" Format="ci8" Width="8" Height="16" Offset="0x117E0" TlutOffset="0xf630"/>
<Texture Name="object_ik_Tex_011860" OutName="tex_011860" Format="ci8" Width="16" Height="16" Offset="0x11860" TlutOffset="0xf630"/> <Texture Name="object_ik_Tex_011860" OutName="tex_011860" Format="ci8" Width="16" Height="16" Offset="0x11860" TlutOffset="0xf630"/>
<Texture Name="object_ik_Tex_011960" OutName="tex_011960" Format="ia8" Width="16" Height="16" Offset="0x11960"/> <Texture Name="object_ik_Tex_011960" OutName="tex_011960" Format="ia8" Width="16" Height="16" Offset="0x11960"/>
<DList Name="object_ik_DL_0151F0" Offset="0x151F0"/> <DList Name="object_ik_DL_0151F0" Offset="0x151F0"/>
<DList Name="object_ik_DL_015380" Offset="0x15380"/> <DList Name="object_ik_DL_015380" Offset="0x15380"/>
<DList Name="object_ik_DL_0154E0" Offset="0x154E0"/> <DList Name="gIronKnuckleNabooruHelmetDL" Offset="0x154E0"/>
<DList Name="object_ik_DL_015840" Offset="0x15840"/> <DList Name="gIronKnuckleAxeDL" Offset="0x15840"/>
<DList Name="object_ik_DL_015B00" Offset="0x15B00"/> <DList Name="gIronKnuckleShockedNabooruHeadDL" Offset="0x15B00"/>
<DList Name="object_ik_DL_016118" Offset="0x16118"/> <DList Name="object_ik_DL_016118" Offset="0x16118"/>
<DList Name="object_ik_DL_016278" Offset="0x16278"/> <DList Name="object_ik_DL_016278" Offset="0x16278"/>
<DList Name="object_ik_DL_016340" Offset="0x16340"/> <DList Name="object_ik_DL_016340" Offset="0x16340"/>
<DList Name="object_ik_DL_0164A0" Offset="0x164A0"/> <DList Name="object_ik_DL_0164A0" Offset="0x164A0"/>
<DList Name="object_ik_DL_016568" Offset="0x16568"/> <DList Name="object_ik_DL_016568" Offset="0x16568"/>
<DList Name="object_ik_DL_016658" Offset="0x16658"/> <DList Name="object_ik_DL_016658" Offset="0x16658"/>
<DList Name="object_ik_DL_016748" Offset="0x16748"/> <DList Name="gIronKnuckleSplitHelmetLeftDL" Offset="0x16748"/>
<DList Name="object_ik_DL_0169E8" Offset="0x169E8"/> <DList Name="gIronKnuckleSplitHelmetRightDL" Offset="0x169E8"/>
<DList Name="object_ik_DL_016BE0" Offset="0x16BE0"/> <DList Name="gIronKnuckleArmorRivetAndSymbolDL" Offset="0x16BE0"/>
<DList Name="object_ik_DL_016CD8" Offset="0x16CD8"/> <DList Name="object_ik_DL_016CD8" Offset="0x16CD8"/>
<DList Name="object_ik_DL_016D88" Offset="0x16D88"/> <DList Name="object_ik_DL_016D88" Offset="0x16D88"/>
<DList Name="object_ik_DL_016EE8" Offset="0x16EE8"/> <DList Name="object_ik_DL_016EE8" Offset="0x16EE8"/>
@ -75,14 +73,14 @@
<Texture Name="object_ik_Tlut_017288" OutName="tlut_017288" Format="rgba16" Width="15" Height="8" Offset="0x17288"/> <Texture Name="object_ik_Tlut_017288" OutName="tlut_017288" Format="rgba16" Width="15" Height="8" Offset="0x17288"/>
<Texture Name="object_ik_Tex_017378" OutName="tex_017378" Format="ci8" Width="16" Height="16" Offset="0x17378" TlutOffset="0x17288"/> <Texture Name="object_ik_Tex_017378" OutName="tex_017378" Format="ci8" Width="16" Height="16" Offset="0x17378" TlutOffset="0x17288"/>
<Texture Name="object_ik_Tex_017478" OutName="tex_017478" Format="ci8" Width="8" Height="8" Offset="0x17478" TlutOffset="0x17288"/> <Texture Name="object_ik_Tex_017478" OutName="tex_017478" Format="ci8" Width="8" Height="8" Offset="0x17478" TlutOffset="0x17288"/>
<Texture Name="object_ik_Tex_0174B8" OutName="tex_0174B8" Format="ci8" Width="16" Height="16" Offset="0x174B8" TlutOffset="0x17288"/> <Texture Name="gIronKnuckleHair2Tex" OutName="iron_knuckle_hair_2_tex" Format="ci8" Width="16" Height="16" Offset="0x174B8" TlutOffset="0x17288"/>
<Texture Name="object_ik_Tex_0175B8" OutName="tex_0175B8" Format="ci8" Width="8" Height="16" Offset="0x175B8" TlutOffset="0x17288"/> <Texture Name="object_ik_Tex_0175B8" OutName="tex_0175B8" Format="ci8" Width="8" Height="16" Offset="0x175B8" TlutOffset="0x17288"/>
<Texture Name="object_ik_Tex_017638" OutName="tex_017638" Format="ci8" Width="8" Height="16" Offset="0x17638" TlutOffset="0x17288"/> <Texture Name="object_ik_Tex_017638" OutName="tex_017638" Format="ci8" Width="8" Height="16" Offset="0x17638" TlutOffset="0x17288"/>
<Texture Name="object_ik_Tex_0176B8" OutName="tex_0176B8" Format="ci8" Width="16" Height="16" Offset="0x176B8" TlutOffset="0x17288"/> <Texture Name="object_ik_Tex_0176B8" OutName="tex_0176B8" Format="ci8" Width="16" Height="16" Offset="0x176B8" TlutOffset="0x17288"/>
<DList Name="object_ik_DL_018E78" Offset="0x18E78"/> <DList Name="gIronKnuckleHelmetDL" Offset="0x18E78"/>
<DList Name="object_ik_DL_019100" Offset="0x19100"/> <DList Name="gIronKnuckleGerudoHeadDL" Offset="0x19100"/>
<DList Name="object_ik_DL_019E08" Offset="0x19E08"/> <DList Name="gIronKnuckleHelmetMarkingDL" Offset="0x19E08"/>
<DList Name="object_ik_DL_01BA78" Offset="0x1BA78"/> <DList Name="gIronKnuckleTorsoDL" Offset="0x1BA78"/>
<DList Name="object_ik_DL_01BE98" Offset="0x1BE98"/> <DList Name="object_ik_DL_01BE98" Offset="0x1BE98"/>
<DList Name="object_ik_DL_01C130" Offset="0x1C130"/> <DList Name="object_ik_DL_01C130" Offset="0x1C130"/>
<DList Name="object_ik_DL_01C2B8" Offset="0x1C2B8"/> <DList Name="object_ik_DL_01C2B8" Offset="0x1C2B8"/>
@ -97,8 +95,7 @@
<DList Name="object_ik_DL_01D638" Offset="0x1D638"/> <DList Name="object_ik_DL_01D638" Offset="0x1D638"/>
<Texture Name="object_ik_Tlut_01D9A8" OutName="tlut_01D9A8" Format="rgba16" Width="16" Height="16" Offset="0x1D9A8"/> <Texture Name="object_ik_Tlut_01D9A8" OutName="tlut_01D9A8" Format="rgba16" Width="16" Height="16" Offset="0x1D9A8"/>
<Texture Name="object_ik_Tex_01DBA8" OutName="tex_01DBA8" Format="ia16" Width="16" Height="16" Offset="0x1DBA8"/> <Texture Name="object_ik_Tex_01DBA8" OutName="tex_01DBA8" Format="ia16" Width="16" Height="16" Offset="0x1DBA8"/>
<Texture Name="object_ik_Tex_01DDA8" OutName="tex_01DDA8" Format="ci8" Width="16" Height="16" Offset="0x1DDA8" TlutOffset="0x1D9A8"/> <Texture Name="gIronKnuckleHair3Tex" OutName="iron_knuckle_hair_3_tex" Format="ci8" Width="16" Height="16" Offset="0x1DDA8" TlutOffset="0x1D9A8"/>
<Texture Name="object_ik_Tex_01DEA8" OutName="tex_01DEA8" Format="ci8" Width="16" Height="16" Offset="0x1DEA8" TlutOffset="0x1D9A8"/> <Texture Name="gIronKnuckleNabooruChestJewelTex" OutName="iron_knuckle_nabooru_chest_jewel_tex" Format="ci8" Width="16" Height="16" Offset="0x1DEA8" TlutOffset="0x1D9A8"/>
<!--Blob Name="object_ik_zeroes_unk_0001DFA8" Size="0x2628" Offset="0x1DFA8" /-->
</File> </File>
</Root> </Root>

View file

@ -265,7 +265,7 @@ void DemoIk_Type1PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s
case 0: case 0:
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inArmer.c", 390), gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inArmer.c", 390),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016BE0); gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL);
break; break;
case 2: case 2:
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inArmer.c", 396), 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: case 5:
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inFace.c", 286), gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inFace.c", 286),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, object_ik_DL_016BE0); gSPDisplayList(POLY_XLU_DISP++, gIronKnuckleArmorRivetAndSymbolDL);
break; break;
default: default:
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inFace.c", 292), gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_demo_ik_inFace.c", 292),

File diff suppressed because it is too large Load diff

View file

@ -8,21 +8,102 @@ struct EnIk;
typedef void (*EnIkActionFunc)(struct EnIk*, PlayState*); 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 { typedef struct EnIk {
/* 0x0000 */ Actor actor; /* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime; /* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s jointTable[30]; /* 0x0190 */ Vec3s jointTable[IRON_KNUCKLE_LIMB_MAX];
/* 0x0244 */ Vec3s morphTable[30]; /* 0x0244 */ Vec3s morphTable[IRON_KNUCKLE_LIMB_MAX];
/* 0x02F8 */ u8 unk_2F8; /* 0x02F8 */ u8 unk_2F8;
/* 0x02F9 */ u8 unk_2F9; /* 0x02F9 */ u8 animationTimer;
/* 0x02FA */ u8 unk_2FA; /* 0x02FA */ u8 drawArmorFlag;
/* 0x02FB */ u8 unk_2FB; /* 0x02FB */ u8 armorStatusFlag;
/* 0x02FC */ u8 unk_2FC; /* 0x02FC */ u8 isBreakingProp;
/* 0x02FD */ u8 unk_2FD; /* 0x02FD */ u8 damageEffect;
/* 0x02FE */ s8 unk_2FE; /* 0x02FE */ s8 unk_2FE;
/* 0x02FF */ s8 unk_2FF; /* 0x02FF */ s8 unk_2FF;
/* 0x0300 */ s16 unk_300; /* 0x0300 */ s16 unk_300;
/* 0x0302 */ s16 switchFlags; /* 0x0302 */ s16 switchFlag;
/* 0x0304 */ EnIkActionFunc actionFunc; /* 0x0304 */ EnIkActionFunc actionFunc;
/* 0x0308 */ BodyBreak bodyBreak; /* 0x0308 */ BodyBreak bodyBreak;
/* 0x0320 */ ColliderCylinder bodyCollider; /* 0x0320 */ ColliderCylinder bodyCollider;
@ -30,10 +111,10 @@ typedef struct EnIk {
/* 0x03EC */ ColliderTris shieldCollider; /* 0x03EC */ ColliderTris shieldCollider;
/* 0x040C */ ColliderTrisElement shieldColliderItems[2]; /* 0x040C */ ColliderTrisElement shieldColliderItems[2];
/* 0x04C4 */ s32 blureIdx; /* 0x04C4 */ s32 blureIdx;
/* 0x04C8 */ s32 action; /* 0x04C8 */ s32 csAction;
/* 0x04CC */ s32 drawMode; /* 0x04CC */ s32 csDrawMode;
/* 0x04D0 */ u32 npcAction; /* 0x04D0 */ u32 npcAction;
/* 0x04D4 */ s32 unk_4D4; /* 0x04D4 */ s32 isAxeSummoned;
/* 0x04D8 */ char unk_4D8[0x04]; /* 0x04D8 */ char unk_4D8[0x04];
} EnIk; // size = 0x04DC } EnIk; // size = 0x04DC