mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-11 09:20:17 +00:00
Assets: Move limb enums into xmls 2 (#2626)
This commit is contained in:
parent
1df6a3ee12
commit
e4e14a6bcf
13 changed files with 133 additions and 216 deletions
|
@ -92,7 +92,7 @@ void EnFu_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
|
||||
SkelAnime_InitFlex(play, &this->skelanime, &gWindmillManSkel, &gWindmillManPlayStillAnim, this->jointTable,
|
||||
this->morphTable, FU_LIMB_MAX);
|
||||
this->morphTable, WINDMILL_MAN_LIMB_MAX);
|
||||
Animation_PlayLoop(&this->skelanime, &gWindmillManPlayStillAnim);
|
||||
Collider_InitCylinder(play, &this->collider);
|
||||
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
@ -276,15 +276,15 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
|
|||
EnFu* this = (EnFu*)thisx;
|
||||
s32 pad;
|
||||
|
||||
if (limbIndex == FU_LIMB_UNK) {
|
||||
if (limbIndex == WINDMILL_MAN_LIMB_UNK) {
|
||||
return false;
|
||||
}
|
||||
switch (limbIndex) {
|
||||
case FU_LIMB_HEAD:
|
||||
case WINDMILL_MAN_LIMB_HEAD:
|
||||
rot->x += this->lookAngleOffset.y;
|
||||
rot->z += this->lookAngleOffset.x;
|
||||
break;
|
||||
case FU_LIMB_CHEST_MUSIC_BOX:
|
||||
case WINDMILL_MAN_LIMB_CHEST_MUSIC_BOX:
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -292,7 +292,7 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
|
|||
return false;
|
||||
}
|
||||
|
||||
if (limbIndex == FU_LIMB_CHEST_MUSIC_BOX) {
|
||||
if (limbIndex == WINDMILL_MAN_LIMB_CHEST_MUSIC_BOX) {
|
||||
rot->y += Math_SinS((play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Y))) * FIDGET_AMPLITUDE;
|
||||
rot->z += Math_CosS((play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Z))) * FIDGET_AMPLITUDE;
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
|
|||
void EnFu_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
|
||||
EnFu* this = (EnFu*)thisx;
|
||||
|
||||
if (limbIndex == FU_LIMB_HEAD) {
|
||||
if (limbIndex == WINDMILL_MAN_LIMB_HEAD) {
|
||||
Matrix_MultVec3f(&sMtxSrc, &this->actor.focus.pos);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,36 +4,18 @@
|
|||
#include "ultra64.h"
|
||||
#include "actor.h"
|
||||
|
||||
#include "assets/objects/object_fu/object_fu.h"
|
||||
|
||||
struct EnFu;
|
||||
|
||||
typedef void (*EnFuActionFunc)(struct EnFu*, struct PlayState*);
|
||||
|
||||
typedef enum EnFuLimb {
|
||||
/* 0x00 */ FU_LIMB_ROOT,
|
||||
/* 0x01 */ FU_LIMB_TORSO,
|
||||
/* 0x02 */ FU_LIMB_LEFT_THIGH,
|
||||
/* 0x03 */ FU_LIMB_LEFT_LEG,
|
||||
/* 0x04 */ FU_LIMB_LEFT_FOOT,
|
||||
/* 0x05 */ FU_LIMB_RIGHT_THIGH,
|
||||
/* 0x06 */ FU_LIMB_RIGHT_LEG,
|
||||
/* 0x07 */ FU_LIMB_RIGHT_FOOT,
|
||||
/* 0x08 */ FU_LIMB_CHEST_MUSIC_BOX,
|
||||
/* 0x09 */ FU_LIMB_LEFT_ARM_MUSIC_BOX,
|
||||
/* 0x0A */ FU_LIMB_UNK,
|
||||
/* 0x0B */ FU_LIMB_RIGHT_SHOULDER,
|
||||
/* 0x0C */ FU_LIMB_RIGHT_ARM,
|
||||
/* 0x0D */ FU_LIMB_RIGHT_HAND_AND_CRANK,
|
||||
/* 0x0E */ FU_LIMB_HEAD,
|
||||
/* 0x0F */ FU_LIMB_HORN,
|
||||
/* 0x10 */ FU_LIMB_MAX
|
||||
} EnFuLimb;
|
||||
|
||||
typedef struct EnFu {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ ColliderCylinder collider;
|
||||
/* 0x0198 */ SkelAnime skelanime;
|
||||
/* 0x01DC */ Vec3s jointTable[FU_LIMB_MAX];
|
||||
/* 0x023C */ Vec3s morphTable[FU_LIMB_MAX];
|
||||
/* 0x01DC */ Vec3s jointTable[WINDMILL_MAN_LIMB_MAX];
|
||||
/* 0x023C */ Vec3s morphTable[WINDMILL_MAN_LIMB_MAX];
|
||||
/* 0x029C */ Vec3s lookAngleOffset; // offset applied to neck rotation to look at link when he is close
|
||||
/* 0x02A2 */ Vec3s unk_2A2;
|
||||
/* 0x02A8 */ u16 behaviorFlags;
|
||||
|
|
|
@ -107,7 +107,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoWhiteSkel, &gGerudoWhiteIdleAnim, this->jointTable,
|
||||
this->morphTable, GE1_LIMB_MAX);
|
||||
this->morphTable, GERUDO_WHITE_LIMB_MAX);
|
||||
Animation_PlayOnce(&this->skelAnime, &gGerudoWhiteIdleAnim);
|
||||
Collider_InitCylinder(play, &this->collider);
|
||||
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
@ -780,7 +780,7 @@ s32 EnGe1_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
s32 pad;
|
||||
EnGe1* this = (EnGe1*)thisx;
|
||||
|
||||
if (limbIndex == GE1_LIMB_HEAD) {
|
||||
if (limbIndex == GERUDO_WHITE_LIMB_HEAD) {
|
||||
rot->x += this->headRot.y;
|
||||
rot->z += this->headRot.x;
|
||||
}
|
||||
|
@ -792,7 +792,8 @@ s32 EnGe1_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
|
||||
// The purpose of the state flag GE1_STATE_STOP_FIDGET is to skip this code, which this actor has in lieu of an idle
|
||||
// animation.
|
||||
if ((limbIndex == GE1_LIMB_TORSO) || (limbIndex == GE1_LIMB_L_FOREARM) || (limbIndex == GE1_LIMB_R_FOREARM)) {
|
||||
if ((limbIndex == GERUDO_WHITE_LIMB_TORSO) || (limbIndex == GERUDO_WHITE_LIMB_L_FOREARM) ||
|
||||
(limbIndex == GERUDO_WHITE_LIMB_R_FOREARM)) {
|
||||
rot->y += Math_SinS(play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Y)) * FIDGET_AMPLITUDE;
|
||||
rot->z += Math_CosS(play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Z)) * FIDGET_AMPLITUDE;
|
||||
}
|
||||
|
@ -804,7 +805,7 @@ void EnGe1_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
|
|||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_ge1.c", 1419);
|
||||
|
||||
if (limbIndex == GE1_LIMB_HEAD) {
|
||||
if (limbIndex == GERUDO_WHITE_LIMB_HEAD) {
|
||||
gSPDisplayList(POLY_OPA_DISP++, sHairstyleDLists[this->hairstyle]);
|
||||
Matrix_MultVec3f(&D_80A327A8, &this->actor.focus.pos);
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
#include "ultra64.h"
|
||||
#include "actor.h"
|
||||
|
||||
#include "assets/objects/object_ge1/object_ge1.h"
|
||||
|
||||
struct EnGe1;
|
||||
|
||||
typedef void (*EnGe1AnimFunc)(struct EnGe1*);
|
||||
|
@ -18,32 +20,12 @@ typedef enum EnGe1Type {
|
|||
/* 0x46 */ GE1_TYPE_TRAINING_GROUNDS_GUARD
|
||||
} EnGe1Type;
|
||||
|
||||
typedef enum EnGe1Limb {
|
||||
/* 00 */ GE1_LIMB_NONE,
|
||||
/* 01 */ GE1_LIMB_WAIST,
|
||||
/* 02 */ GE1_LIMB_L_THIGH,
|
||||
/* 03 */ GE1_LIMB_L_LOWER_LEG,
|
||||
/* 04 */ GE1_LIMB_L_FOOT,
|
||||
/* 05 */ GE1_LIMB_R_THIGH,
|
||||
/* 06 */ GE1_LIMB_R_LOWER_LEG,
|
||||
/* 07 */ GE1_LIMB_R_FOOT,
|
||||
/* 08 */ GE1_LIMB_TORSO,
|
||||
/* 09 */ GE1_LIMB_L_UPPER_ARM,
|
||||
/* 10 */ GE1_LIMB_L_FOREARM,
|
||||
/* 11 */ GE1_LIMB_L_HAND,
|
||||
/* 12 */ GE1_LIMB_R_UPPER_ARM,
|
||||
/* 13 */ GE1_LIMB_R_FOREARM,
|
||||
/* 14 */ GE1_LIMB_R_HAND,
|
||||
/* 15 */ GE1_LIMB_HEAD,
|
||||
/* 16 */ GE1_LIMB_MAX
|
||||
} EnGe1Limb;
|
||||
|
||||
typedef struct EnGe1 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ ColliderCylinder collider;
|
||||
/* 0x0198 */ SkelAnime skelAnime;
|
||||
/* 0x01DC */ Vec3s jointTable[GE1_LIMB_MAX];
|
||||
/* 0x023C */ Vec3s morphTable[GE1_LIMB_MAX];
|
||||
/* 0x01DC */ Vec3s jointTable[GERUDO_WHITE_LIMB_MAX];
|
||||
/* 0x023C */ Vec3s morphTable[GERUDO_WHITE_LIMB_MAX];
|
||||
/* 0x029C */ Vec3s headRot;
|
||||
/* 0x02A2 */ Vec3s unk_2A2;
|
||||
/* 0x02A8 */ s16 eyeIndex;
|
||||
|
|
|
@ -81,7 +81,7 @@ void EnGe3_Init(Actor* thisx, PlayState* play2) {
|
|||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoRedSkel, NULL, this->jointTable, this->morphTable,
|
||||
GELDB_LIMB_MAX);
|
||||
GERUDO_RED_LIMB_MAX);
|
||||
Animation_PlayLoop(&this->skelAnime, &gGerudoRedStandAnim);
|
||||
Collider_InitCylinder(play, &this->collider);
|
||||
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
@ -241,13 +241,13 @@ s32 EnGe3_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
|
||||
switch (limbIndex) {
|
||||
// Hide swords and veil from object_geldb
|
||||
case GELDB_LIMB_VEIL:
|
||||
case GELDB_LIMB_R_SWORD:
|
||||
case GELDB_LIMB_L_SWORD:
|
||||
case GERUDO_RED_LIMB_VEIL:
|
||||
case GERUDO_RED_LIMB_R_SWORD:
|
||||
case GERUDO_RED_LIMB_L_SWORD:
|
||||
*dList = NULL;
|
||||
return false;
|
||||
// Turn head
|
||||
case GELDB_LIMB_HEAD:
|
||||
case GERUDO_RED_LIMB_HEAD:
|
||||
rot->x += this->headRot.y;
|
||||
#if OOT_VERSION >= PAL_1_1
|
||||
FALLTHROUGH;
|
||||
|
@ -256,14 +256,14 @@ s32 EnGe3_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
// depending on what was drawn earlier in the frame.
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_ge3.c", 547);
|
||||
switch (limbIndex) {
|
||||
case GELDB_LIMB_NECK:
|
||||
case GERUDO_RED_LIMB_NECK:
|
||||
break;
|
||||
case GELDB_LIMB_HEAD:
|
||||
case GERUDO_RED_LIMB_HEAD:
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255);
|
||||
break;
|
||||
case GELDB_LIMB_R_SWORD:
|
||||
case GELDB_LIMB_L_SWORD:
|
||||
case GERUDO_RED_LIMB_R_SWORD:
|
||||
case GERUDO_RED_LIMB_L_SWORD:
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
|
||||
|
@ -284,7 +284,7 @@ void EnGe3_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
|
|||
EnGe3* this = (EnGe3*)thisx;
|
||||
Vec3f D_80A351C8 = { 600.0f, 700.0f, 0.0f };
|
||||
|
||||
if (limbIndex == GELDB_LIMB_HEAD) {
|
||||
if (limbIndex == GERUDO_RED_LIMB_HEAD) {
|
||||
Matrix_MultVec3f(&D_80A351C8, &this->actor.focus.pos);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
|
||||
#include "ultra64.h"
|
||||
#include "actor.h"
|
||||
#include "overlays/actors/ovl_En_GeldB/z_en_geldb.h"
|
||||
|
||||
#include "assets/objects/object_geldb/object_geldb.h"
|
||||
|
||||
struct EnGe3;
|
||||
|
||||
|
@ -13,8 +14,8 @@ typedef struct EnGe3 {
|
|||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ ColliderCylinder collider;
|
||||
/* 0x0198 */ SkelAnime skelAnime;
|
||||
/* 0x01DC */ Vec3s jointTable[GELDB_LIMB_MAX];
|
||||
/* 0x026C */ Vec3s morphTable[GELDB_LIMB_MAX];
|
||||
/* 0x01DC */ Vec3s jointTable[GERUDO_RED_LIMB_MAX];
|
||||
/* 0x026C */ Vec3s morphTable[GERUDO_RED_LIMB_MAX];
|
||||
/* 0x02FC */ s16 eyeIndex;
|
||||
/* 0x02FE */ s16 blinkTimer;
|
||||
/* 0x0300 */ Vec3s headRot;
|
||||
|
|
|
@ -251,7 +251,7 @@ void EnGeldB_Init(Actor* thisx, PlayState* play) {
|
|||
this->blinkState = 0;
|
||||
this->unkFloat = 10.0f;
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoRedSkel, &gGerudoRedNeutralAnim, this->jointTable,
|
||||
this->morphTable, GELDB_LIMB_MAX);
|
||||
this->morphTable, GERUDO_RED_LIMB_MAX);
|
||||
Collider_InitCylinder(play, &this->bodyCollider);
|
||||
Collider_SetCylinder(play, &this->bodyCollider, thisx, &sBodyCylinderInit);
|
||||
Collider_InitTris(play, &this->blockCollider);
|
||||
|
@ -1464,14 +1464,14 @@ s32 EnGeldB_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
|
|||
EnGeldB* this = (EnGeldB*)thisx;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_geldB.c", 2507);
|
||||
if (limbIndex == GELDB_LIMB_NECK) {
|
||||
if (limbIndex == GERUDO_RED_LIMB_NECK) {
|
||||
rot->z += this->headRot.x;
|
||||
rot->x += this->headRot.y;
|
||||
rot->y += this->headRot.z;
|
||||
} else if (limbIndex == GELDB_LIMB_HEAD) {
|
||||
} else if (limbIndex == GERUDO_RED_LIMB_HEAD) {
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255);
|
||||
} else if ((limbIndex == GELDB_LIMB_R_SWORD) || (limbIndex == GELDB_LIMB_L_SWORD)) {
|
||||
} else if ((limbIndex == GERUDO_RED_LIMB_R_SWORD) || (limbIndex == GERUDO_RED_LIMB_L_SWORD)) {
|
||||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
|
||||
|
@ -1497,7 +1497,7 @@ void EnGeldB_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
|
|||
EnGeldB* this = (EnGeldB*)thisx;
|
||||
s32 bodyPart = -1;
|
||||
|
||||
if (limbIndex == GELDB_LIMB_R_SWORD) {
|
||||
if (limbIndex == GERUDO_RED_LIMB_R_SWORD) {
|
||||
Matrix_MultVec3f(&swordQuadOffset1, &this->swordCollider.dim.quad[1]);
|
||||
Matrix_MultVec3f(&swordQuadOffset0, &this->swordCollider.dim.quad[0]);
|
||||
Matrix_MultVec3f(&swordQuadOffset3, &this->swordCollider.dim.quad[3]);
|
||||
|
@ -1515,42 +1515,43 @@ void EnGeldB_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
|
|||
EffectBlure_AddVertex(Effect_GetByIndex(this->blureIndex), &swordTip, &swordHilt);
|
||||
}
|
||||
} else {
|
||||
Actor_SetFeetPos(&this->actor, limbIndex, GELDB_LIMB_L_FOOT, &footOffset, GELDB_LIMB_R_FOOT, &footOffset);
|
||||
Actor_SetFeetPos(&this->actor, limbIndex, GERUDO_RED_LIMB_L_FOOT, &footOffset, GERUDO_RED_LIMB_R_FOOT,
|
||||
&footOffset);
|
||||
}
|
||||
|
||||
if (limbIndex == GELDB_LIMB_L_FOOT) {
|
||||
if (limbIndex == GERUDO_RED_LIMB_L_FOOT) {
|
||||
Matrix_MultVec3f(&footOffset, &this->leftFootPos);
|
||||
} else if (limbIndex == GELDB_LIMB_R_FOOT) {
|
||||
} else if (limbIndex == GERUDO_RED_LIMB_R_FOOT) {
|
||||
Matrix_MultVec3f(&footOffset, &this->rightFootPos);
|
||||
}
|
||||
|
||||
if (this->iceTimer != 0) {
|
||||
switch (limbIndex) {
|
||||
case GELDB_LIMB_NECK:
|
||||
case GERUDO_RED_LIMB_NECK:
|
||||
bodyPart = 0;
|
||||
break;
|
||||
case GELDB_LIMB_L_SWORD:
|
||||
case GERUDO_RED_LIMB_L_SWORD:
|
||||
bodyPart = 1;
|
||||
break;
|
||||
case GELDB_LIMB_R_SWORD:
|
||||
case GERUDO_RED_LIMB_R_SWORD:
|
||||
bodyPart = 2;
|
||||
break;
|
||||
case GELDB_LIMB_L_UPPER_ARM:
|
||||
case GERUDO_RED_LIMB_L_UPPER_ARM:
|
||||
bodyPart = 3;
|
||||
break;
|
||||
case GELDB_LIMB_R_UPPER_ARM:
|
||||
case GERUDO_RED_LIMB_R_UPPER_ARM:
|
||||
bodyPart = 4;
|
||||
break;
|
||||
case GELDB_LIMB_TORSO:
|
||||
case GERUDO_RED_LIMB_TORSO:
|
||||
bodyPart = 5;
|
||||
break;
|
||||
case GELDB_LIMB_WAIST:
|
||||
case GERUDO_RED_LIMB_WAIST:
|
||||
bodyPart = 6;
|
||||
break;
|
||||
case GELDB_LIMB_L_FOOT:
|
||||
case GERUDO_RED_LIMB_L_FOOT:
|
||||
bodyPart = 7;
|
||||
break;
|
||||
case GELDB_LIMB_R_FOOT:
|
||||
case GERUDO_RED_LIMB_R_FOOT:
|
||||
bodyPart = 8;
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -4,35 +4,9 @@
|
|||
#include "ultra64.h"
|
||||
#include "actor.h"
|
||||
|
||||
struct EnGeldB;
|
||||
#include "assets/objects/object_geldb/object_geldb.h"
|
||||
|
||||
typedef enum EnGeldBLimb {
|
||||
/* 0x00 */ GELDB_LIMB_NONE,
|
||||
/* 0x01 */ GELDB_LIMB_ROOT,
|
||||
/* 0x02 */ GELDB_LIMB_TORSO,
|
||||
/* 0x03 */ GELDB_LIMB_NECK,
|
||||
/* 0x04 */ GELDB_LIMB_PONYTAIL,
|
||||
/* 0x05 */ GELDB_LIMB_VEIL,
|
||||
/* 0x06 */ GELDB_LIMB_HEAD,
|
||||
/* 0x07 */ GELDB_LIMB_R_UPPER_ARM,
|
||||
/* 0x08 */ GELDB_LIMB_R_FOREARM,
|
||||
/* 0x09 */ GELDB_LIMB_R_WRIST,
|
||||
/* 0x0A */ GELDB_LIMB_R_HAND,
|
||||
/* 0x0B */ GELDB_LIMB_R_SWORD,
|
||||
/* 0x0C */ GELDB_LIMB_L_UPPER_ARM,
|
||||
/* 0x0D */ GELDB_LIMB_L_FOREARM,
|
||||
/* 0x0E */ GELDB_LIMB_L_WRIST,
|
||||
/* 0x0F */ GELDB_LIMB_L_HAND,
|
||||
/* 0x10 */ GELDB_LIMB_L_SWORD,
|
||||
/* 0x11 */ GELDB_LIMB_L_THIGH,
|
||||
/* 0x12 */ GELDB_LIMB_L_SHIN,
|
||||
/* 0x13 */ GELDB_LIMB_L_FOOT,
|
||||
/* 0x14 */ GELDB_LIMB_R_THIGH,
|
||||
/* 0x15 */ GELDB_LIMB_R_SHIN,
|
||||
/* 0x16 */ GELDB_LIMB_R_FOOT,
|
||||
/* 0x17 */ GELDB_LIMB_WAIST,
|
||||
/* 0x18 */ GELDB_LIMB_MAX
|
||||
} EnGeldBLimb;
|
||||
struct EnGeldB;
|
||||
|
||||
typedef void (*EnGeldBActionFunc)(struct EnGeldB*, struct PlayState*);
|
||||
|
||||
|
@ -40,8 +14,8 @@ typedef struct EnGeldB {
|
|||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ Vec3s bodyPartsPos[10];
|
||||
/* 0x0188 */ SkelAnime skelAnime;
|
||||
/* 0x01CC */ Vec3s jointTable[GELDB_LIMB_MAX];
|
||||
/* 0x025C */ Vec3s morphTable[GELDB_LIMB_MAX];
|
||||
/* 0x01CC */ Vec3s jointTable[GERUDO_RED_LIMB_MAX];
|
||||
/* 0x025C */ Vec3s morphTable[GERUDO_RED_LIMB_MAX];
|
||||
/* 0x02EC */ s32 action;
|
||||
/* 0x02F0 */ char unk_2F0[4];
|
||||
/* 0x02F4 */ EnGeldBActionFunc actionFunc;
|
||||
|
|
|
@ -4,31 +4,7 @@
|
|||
#include "ultra64.h"
|
||||
#include "actor.h"
|
||||
|
||||
|
||||
typedef enum EnHataLimb {
|
||||
/* 0x00 */ FLAGPOLE_LIMB_NONE,
|
||||
/* 0x01 */ FLAGPOLE_LIMB_POLE_BASE,
|
||||
/* 0x02 */ FLAGPOLE_LIMB_POLE,
|
||||
/* 0x03 */ FLAGPOLE_LIMB_FLAG_1_BASE,
|
||||
/* 0x04 */ FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE,
|
||||
/* 0x05 */ FLAGPOLE_LIMB_FLAG_1_HOIST_MID_BASE,
|
||||
/* 0x06 */ FLAGPOLE_LIMB_FLAG_1_FLY_MID_BASE,
|
||||
/* 0x07 */ FLAGPOLE_LIMB_FLAG_1_FLY_END_BASE,
|
||||
/* 0x08 */ FLAGPOLE_LIMB_FLAG_1_FLY_END,
|
||||
/* 0x09 */ FLAGPOLE_LIMB_FLAG_1_FLY_MID,
|
||||
/* 0x0A */ FLAGPOLE_LIMB_FLAG_1_HOIST_MID,
|
||||
/* 0x0B */ FLAGPOLE_LIMB_FLAG_1_HOIST_END,
|
||||
/* 0x0C */ FLAGPOLE_LIMB_FLAG_2_BASE,
|
||||
/* 0x0D */ FLAGPOLE_LIMB_FLAG_2_HOIST_END_BASE,
|
||||
/* 0x0E */ FLAGPOLE_LIMB_FLAG_2_HOIST_MID_BASE,
|
||||
/* 0x0F */ FLAGPOLE_LIMB_FLAG_2_FLY_MID_BASE,
|
||||
/* 0x10 */ FLAGPOLE_LIMB_FLAG_2_FLY_END_BASE,
|
||||
/* 0x11 */ FLAGPOLE_LIMB_FLAG_2_FLY_END,
|
||||
/* 0x12 */ FLAGPOLE_LIMB_FLAG_2_FLY_MID,
|
||||
/* 0x13 */ FLAGPOLE_LIMB_FLAG_2_HOIST_MID,
|
||||
/* 0x14 */ FLAGPOLE_LIMB_FLAG_2_HOIST_END,
|
||||
/* 0x15 */ FLAGPOLE_LIMB_MAX
|
||||
} EnHataLimb;
|
||||
#include "assets/objects/object_hata/object_hata.h"
|
||||
|
||||
typedef struct EnHata {
|
||||
/* 0x0000 */ DynaPolyActor dyna;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue