mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-12 01:40:47 +00:00
EnHy + objects docs (#1499)
* document object_bba * Clean up cne * object bob * object_aob * object_cob * object_bji * object_ahg * object_boj * All functions named plus some cleanup * enums * Remove body wiggle comments * Format * Remove case comments * comments with default * Format * format
This commit is contained in:
parent
4f6e33e302
commit
a53fb02699
15 changed files with 1169 additions and 869 deletions
|
@ -504,7 +504,7 @@ void DemoEc_DrawKokiriGirl(DemoEc* this, PlayState* play) {
|
|||
}
|
||||
void DemoEc_InitOldMan(DemoEc* this, PlayState* play) {
|
||||
DemoEc_UseDrawObject(this, play);
|
||||
DemoEc_InitSkelAnime(this, play, &object_bji_Skel_0000F0);
|
||||
DemoEc_InitSkelAnime(this, play, &gHylianOldManSkel);
|
||||
DemoEc_UseAnimationObject(this, play);
|
||||
DemoEc_ChangeAnimation(this, &gDemoEcOldManAnim, 0, 0.0f, false);
|
||||
func_8096D5D4(this, play);
|
||||
|
@ -522,9 +522,9 @@ void DemoEc_UpdateOldMan(DemoEc* this, PlayState* play) {
|
|||
|
||||
void DemoEc_DrawOldMan(DemoEc* this, PlayState* play) {
|
||||
static void* eyeTextures[] = {
|
||||
object_bji_Tex_0005FC,
|
||||
object_bji_Tex_0009FC,
|
||||
object_bji_Tex_000DFC,
|
||||
gHylianOldManEyeOpenTex,
|
||||
gHylianOldManEyeHalfTex,
|
||||
gHylianOldManEyeClosedTex,
|
||||
};
|
||||
static u8 color1[] = { 0, 50, 100, 255 };
|
||||
static u8 color2[] = { 0, 50, 160, 255 };
|
||||
|
@ -536,7 +536,7 @@ void DemoEc_DrawOldMan(DemoEc* this, PlayState* play) {
|
|||
|
||||
void DemoEc_InitBeardedMan(DemoEc* this, PlayState* play) {
|
||||
DemoEc_UseDrawObject(this, play);
|
||||
DemoEc_InitSkelAnime(this, play, &object_ahg_Skel_0000F0);
|
||||
DemoEc_InitSkelAnime(this, play, &gHylianMan1Skel);
|
||||
DemoEc_UseAnimationObject(this, play);
|
||||
DemoEc_ChangeAnimation(this, &gDemoEcOldManAnim, 0, 0.0f, false);
|
||||
func_8096D5D4(this, play);
|
||||
|
@ -554,9 +554,9 @@ void DemoEc_UpdateBeardedMan(DemoEc* this, PlayState* play) {
|
|||
|
||||
void DemoEc_DrawBeardedMan(DemoEc* this, PlayState* play) {
|
||||
static void* eyeTextures[] = {
|
||||
object_ahg_Tex_00057C,
|
||||
object_ahg_Tex_00067C,
|
||||
object_ahg_Tex_00077C,
|
||||
gHylianMan1BeardedEyeOpenTex,
|
||||
gHylianMan1BeardedEyeHalfTex,
|
||||
gHylianMan1BeardedEyeClosedTex,
|
||||
};
|
||||
static u8 color1[] = { 255, 255, 255, 255 };
|
||||
static u8 color2[] = { 255, 255, 255, 255 };
|
||||
|
@ -568,7 +568,7 @@ void DemoEc_DrawBeardedMan(DemoEc* this, PlayState* play) {
|
|||
|
||||
void DemoEc_InitWoman(DemoEc* this, PlayState* play) {
|
||||
DemoEc_UseDrawObject(this, play);
|
||||
DemoEc_InitSkelAnime(this, play, &object_bob_Skel_0000F0);
|
||||
DemoEc_InitSkelAnime(this, play, &gHylianWoman2Skel);
|
||||
DemoEc_UseAnimationObject(this, play);
|
||||
DemoEc_ChangeAnimation(this, &gDemoEcOldManAnim, 0, 0.0f, false);
|
||||
func_8096D5D4(this, play);
|
||||
|
@ -586,9 +586,9 @@ void DemoEc_UpdateWoman(DemoEc* this, PlayState* play) {
|
|||
|
||||
void DemoEc_DrawWoman(DemoEc* this, PlayState* play) {
|
||||
static void* eyeTextures[] = {
|
||||
object_bob_Tex_0007C8,
|
||||
object_bob_Tex_000FC8,
|
||||
object_bob_Tex_0017C8,
|
||||
gHylianWoman2EyeOpenTex,
|
||||
gHylianWoman2EyeHalfTex,
|
||||
gHylianWoman2EyeClosedTex,
|
||||
};
|
||||
s32 eyeTexIndex = this->eyeTexIndex;
|
||||
void* eyeTexture = eyeTextures[eyeTexIndex];
|
||||
|
@ -598,7 +598,7 @@ void DemoEc_DrawWoman(DemoEc* this, PlayState* play) {
|
|||
|
||||
void DemoEc_InitOldWoman(DemoEc* this, PlayState* play) {
|
||||
DemoEc_UseDrawObject(this, play);
|
||||
DemoEc_InitSkelAnime(this, play, &object_bba_Skel_0000F0);
|
||||
DemoEc_InitSkelAnime(this, play, &gHylianOldWomanSkel);
|
||||
DemoEc_UseAnimationObject(this, play);
|
||||
DemoEc_ChangeAnimation(this, &gDemoEcOldManAnim, 0, 0.0f, false);
|
||||
func_8096D5D4(this, play);
|
||||
|
@ -614,7 +614,7 @@ void DemoEc_UpdateOldWoman(DemoEc* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void DemoEc_DrawOldWoman(DemoEc* this, PlayState* play) {
|
||||
DemoEc_DrawSkeleton(this, play, &object_bba_Tex_0004C8, NULL, NULL, NULL);
|
||||
DemoEc_DrawSkeleton(this, play, &gHylianOldWomanEyeTex, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
void DemoEc_InitBossCarpenter(DemoEc* this, PlayState* play) {
|
||||
|
|
|
@ -80,8 +80,7 @@ void EnGuest_Update(Actor* thisx, PlayState* play) {
|
|||
this->actor.flags &= ~ACTOR_FLAG_4;
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &object_boj_Skel_0000F0, NULL, this->jointTable, this->morphTable,
|
||||
16);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gHylianMan2Skel, NULL, this->jointTable, this->morphTable, 16);
|
||||
gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.slots[this->osAnimeObjectSlot].segment);
|
||||
Animation_Change(&this->skelAnime, &gObjOsAnim_42AC, 1.0f, 0.0f, Animation_GetLastFrame(&gObjOsAnim_42AC),
|
||||
ANIMMODE_LOOP, 0.0f);
|
||||
|
@ -186,7 +185,7 @@ s32 EnGuest_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
|
|||
OPEN_DISPS(play->state.gfxCtx, "../z_en_guest.c", 352);
|
||||
|
||||
if (limbIndex == 15) {
|
||||
*dList = object_boj_DL_0059B0;
|
||||
*dList = gHylianMan2BeardedHeadDL;
|
||||
Matrix_Translate(1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
|
||||
limbRot = this->interactInfo.headRot;
|
||||
Matrix_RotateX(BINANG_TO_RAD_ALT(limbRot.y), MTXMODE_APPLY);
|
||||
|
@ -212,9 +211,9 @@ s32 EnGuest_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
|
|||
|
||||
void EnGuest_Draw(Actor* thisx, PlayState* play) {
|
||||
static void* D_80A50BA4[] = {
|
||||
object_boj_Tex_0005FC,
|
||||
object_boj_Tex_0006FC,
|
||||
object_boj_Tex_0007FC,
|
||||
gHylianMan2MustachedEyeOpenTex,
|
||||
gHylianMan2MustachedEyeHalfTex,
|
||||
gHylianMan2MustachedEyeClosedTex,
|
||||
};
|
||||
EnGuest* this = (EnGuest*)thisx;
|
||||
s32 pad;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -4,31 +4,54 @@
|
|||
#include "ultra64.h"
|
||||
#include "global.h"
|
||||
|
||||
#define ENHY_GET_TYPE(thisx) PARAMS_GET_S((thisx)->params, 0, 7)
|
||||
#define ENHY_GET_PATH_INDEX(thisx) PARAMS_GET_S((thisx)->params, 7, 4)
|
||||
|
||||
typedef enum EnHyType {
|
||||
/* 0 */ ENHY_TYPE_AOB,
|
||||
/* 1 */ ENHY_TYPE_COB,
|
||||
/* 2 */ ENHY_TYPE_AHG_2,
|
||||
/* 3 */ ENHY_TYPE_BOJ_3,
|
||||
/* 4 */ ENHY_TYPE_AHG_4,
|
||||
/* 5 */ ENHY_TYPE_BOJ_5,
|
||||
/* 6 */ ENHY_TYPE_BBA,
|
||||
/* 7 */ ENHY_TYPE_BJI_7,
|
||||
/* 8 */ ENHY_TYPE_CNE_8,
|
||||
/* 9 */ ENHY_TYPE_BOJ_9,
|
||||
/* 10 */ ENHY_TYPE_BOJ_10,
|
||||
/* 11 */ ENHY_TYPE_CNE_11,
|
||||
/* 12 */ ENHY_TYPE_BOJ_12,
|
||||
/* 13 */ ENHY_TYPE_AHG_13,
|
||||
/* 14 */ ENHY_TYPE_BOJ_14,
|
||||
/* 15 */ ENHY_TYPE_BJI_15,
|
||||
/* 16 */ ENHY_TYPE_BOJ_16,
|
||||
/* 17 */ ENHY_TYPE_AHG_17,
|
||||
/* 18 */ ENHY_TYPE_BOB_18,
|
||||
/* 19 */ ENHY_TYPE_BJI_19,
|
||||
/* 20 */ ENHY_TYPE_AHG_20,
|
||||
/* 0 */ ENHY_TYPE_DOG_LADY,
|
||||
/* 1 */ ENHY_TYPE_WOMAN_3,
|
||||
/* 2 */ ENHY_TYPE_MAN_1_BEARD,
|
||||
/* 3 */ ENHY_TYPE_MAN_2_BALD,
|
||||
/* 4 */ ENHY_TYPE_MAN_1_SHAVED_BLACK_SHIRT,
|
||||
/* 5 */ ENHY_TYPE_BEGGAR,
|
||||
/* 6 */ ENHY_TYPE_OLD_WOMAN,
|
||||
/* 7 */ ENHY_TYPE_OLD_MAN,
|
||||
/* 8 */ ENHY_TYPE_YOUNG_WOMAN_BROWN_HAIR,
|
||||
/* 9 */ ENHY_TYPE_MAN_2_MUSTACHE_RED_SHIRT,
|
||||
/* 10 */ ENHY_TYPE_MAN_2_MUSTACHE_BLUE_SHIRT,
|
||||
/* 11 */ ENHY_TYPE_YOUNG_WOMAN_ORANGE_HAIR,
|
||||
/* 12 */ ENHY_TYPE_MAN_2_ALT_MUSTACHE,
|
||||
/* 13 */ ENHY_TYPE_MAN_1_BOWL_CUT_PURPLE_SHIRT,
|
||||
/* 14 */ ENHY_TYPE_MAN_2_BEARD,
|
||||
/* 15 */ ENHY_TYPE_OLD_MAN_BALD_BROWN_ROBE,
|
||||
/* 16 */ ENHY_TYPE_MAN_2_MUSTACHE_WHITE_SHIRT,
|
||||
/* 17 */ ENHY_TYPE_MAN_1_SHAVED_GREEN_SHIRT,
|
||||
/* 18 */ ENHY_TYPE_WOMAN_2,
|
||||
/* 19 */ ENHY_TYPE_OLD_MAN_BALD_PURPLE_ROBE,
|
||||
/* 20 */ ENHY_TYPE_MAN_1_BOWL_CUT_GREEN_SHIRT,
|
||||
/* 21 */ ENHY_TYPE_MAX
|
||||
} EnHyType;
|
||||
|
||||
typedef enum EnHyLimb {
|
||||
/* 0x00 */ ENHY_LIMB_NONE,
|
||||
/* 0x01 */ ENHY_LIMB_PELVIS,
|
||||
/* 0x02 */ ENHY_LIMB_LEFT_THIGH,
|
||||
/* 0x03 */ ENHY_LIMB_LEFT_SHIN,
|
||||
/* 0x04 */ ENHY_LIMB_LEFT_FOOT,
|
||||
/* 0x05 */ ENHY_LIMB_RIGHT_THIGH,
|
||||
/* 0x06 */ ENHY_LIMB_RIGHT_SHIN,
|
||||
/* 0x07 */ ENHY_LIMB_RIGHT_FOOT,
|
||||
/* 0x08 */ ENHY_LIMB_TORSO,
|
||||
/* 0x09 */ ENHY_LIMB_LEFT_UPPER_ARM,
|
||||
/* 0x0A */ ENHY_LIMB_LEFT_FOREARM,
|
||||
/* 0x0B */ ENHY_LIMB_LEFT_HAND,
|
||||
/* 0x0C */ ENHY_LIMB_RIGHT_UPPER_ARM,
|
||||
/* 0x0D */ ENHY_LIMB_RIGHT_FOREARM,
|
||||
/* 0x0E */ ENHY_LIMB_RIGHT_HAND,
|
||||
/* 0x0F */ ENHY_LIMB_HEAD,
|
||||
/* 0x10 */ ENHY_LIMB_MAX
|
||||
} EnHyLimb;
|
||||
|
||||
struct EnHy;
|
||||
|
||||
typedef void (*EnHyActionFunc)(struct EnHy*, PlayState*);
|
||||
|
@ -40,25 +63,25 @@ typedef struct EnHy {
|
|||
/* 0x0194 */ char unk_194; // unused
|
||||
/* 0x0195 */ u8 pathReverse;
|
||||
/* 0x0196 */ s8 objectSlotHead;
|
||||
/* 0x0197 */ s8 objectSlotSkel2; // 7 < limb < 15 (upper part?) (always same as objectSlotSkel1)
|
||||
/* 0x0198 */ s8 objectSlotSkel1; // sets the object used when drawing the skeleton for limb <= 7 (lower part?)
|
||||
/* 0x0197 */ s8 objectSlotUpperSkel; // upper body limbs object, 7 < limb < 15 (always same as objectSlotLowerSkel),
|
||||
/* 0x0198 */ s8 objectSlotLowerSkel; // lower body limbs object, limb <= 7
|
||||
/* 0x0199 */ s8 objectSlotOsAnime;
|
||||
/* 0x019C */ ColliderCylinder collider;
|
||||
/* 0x01E8 */ NpcInteractInfo interactInfo;
|
||||
/* 0x0210 */ Path* path;
|
||||
/* 0x0214 */ s8 waypoint;
|
||||
/* 0x0215 */ s8 unk_215;
|
||||
/* 0x0215 */ s8 playedSfx;
|
||||
/* 0x0216 */ char unk_216[2]; // unused
|
||||
/* 0x0218 */ s16 curEyeIndex;
|
||||
/* 0x021A */ s16 nextEyeIndexTimer;
|
||||
/* 0x021C */ s16 unk_21C[16]; // bodyWiggleY ?
|
||||
/* 0x023C */ s16 unk_23C[16]; // bodyWiggleZ ?
|
||||
/* 0x021C */ s16 fidgetTableY[16];
|
||||
/* 0x023C */ s16 fidgetTableZ[16];
|
||||
/* 0x025C */ f32 interactRange;
|
||||
/* 0x0260 */ s32 unkGetItemId;
|
||||
/* 0x0260 */ s32 getItemId;
|
||||
/* 0x0264 */ Vec3f modelOffset;
|
||||
/* 0x0270 */ Vec3s jointTable[16];
|
||||
/* 0x02D0 */ Vec3s morphTable[16];
|
||||
/* 0x0330 */ u16 unk_330;
|
||||
/* 0x0270 */ Vec3s jointTable[ENHY_LIMB_MAX];
|
||||
/* 0x02D0 */ Vec3s morphTable[ENHY_LIMB_MAX];
|
||||
/* 0x0330 */ u16 talonEventChkInf;
|
||||
} EnHy; // size = 0x0334
|
||||
|
||||
#endif
|
||||
|
|
|
@ -61,8 +61,7 @@ static s16 sObjectIds[6] = {
|
|||
};
|
||||
|
||||
static FlexSkeletonHeader* sSkeletons[6] = {
|
||||
&object_ahg_Skel_0000F0, &object_boj_Skel_0000F0, &object_boj_Skel_0000F0,
|
||||
&object_boj_Skel_0000F0, &object_boj_Skel_0000F0, &object_boj_Skel_0000F0,
|
||||
&gHylianMan1Skel, &gHylianMan2Skel, &gHylianMan2Skel, &gHylianMan2Skel, &gHylianMan2Skel, &gHylianMan2Skel,
|
||||
};
|
||||
|
||||
static AnimationHeader* sAnimations[6] = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue