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:
Derek Hensley
2024-10-15 02:20:46 -07:00
committed by GitHub
parent 4f6e33e302
commit a53fb02699
15 changed files with 1169 additions and 869 deletions
+21 -21
View File
@@ -112,67 +112,67 @@ u16 sMaskReactionSetTextIds[MASK_REACTION_SET_MAX][PLAYER_MASK_MAX] = {
// MASK_REACTION_SET_DANCING_COUPLE
{ 0x0000, 0x711C, 0x711E, 0x711C, 0x711F, 0x711E, 0x711C, 0x711D, 0x711F },
// MASK_REACTION_SET_37
// MASK_REACTION_SET_DOG_LADY
{ 0x0000, 0x7104, 0x7105, 0x7107, 0x7107, 0x7105, 0x7106, 0x7107, 0x7107 },
// MASK_REACTION_SET_38
// MASK_REACTION_SET_WOMAN_3
{ 0x0000, 0x7107, 0x7105, 0x7107, 0x7107, 0x7106, 0x7107, 0x7107, 0x7105 },
// MASK_REACTION_SET_39
// MASK_REACTION_SET_MAN_1_BEARD
{ 0x0000, 0x7113, 0x7117, 0x7113, 0x7110, 0x7112, 0x7112, 0x7116, 0x7112 },
// MASK_REACTION_SET_40
// MASK_REACTION_SET_MAN_2_BALD
{ 0x0000, 0x7113, 0x7113, 0x7113, 0x7113, 0x7113, 0x7113, 0x7111, 0x7113 },
// MASK_REACTION_SET_41
// MASK_REACTION_SET_MAN_1_SHAVED_BLACK_SHIRT
{ 0x0000, 0x7113, 0x7117, 0x7113, 0x7110, 0x7112, 0x7112, 0x7116, 0x7112 },
// MASK_REACTION_SET_42
// MASK_REACTION_SET_BEGGAR
{ 0x0000, 0x7117, 0x7117, 0x7117, 0x7117, 0x7117, 0x7117, 0x7117, 0x7113 },
// MASK_REACTION_SET_43
// MASK_REACTION_SET_OLD_WOMAN
{ 0x0000, 0x7101, 0x7100, 0x7102, 0x7103, 0x7101, 0x7100, 0x7102, 0x7103 },
// MASK_REACTION_SET_44
// MASK_REACTION_SET_OLD_MAN
{ 0x0000, 0x7100, 0x7102, 0x7100, 0x7100, 0x7100, 0x7100, 0x7100, 0x7102 },
// MASK_REACTION_SET_45
// MASK_REACTION_SET_YOUNG_WOMAN_BROWN_HAIR
{ 0x0000, 0x710A, 0x7109, 0x7109, 0x710A, 0x710B, 0x7108, 0x7109, 0x710B },
// MASK_REACTION_SET_46
// MASK_REACTION_SET_MAN_2_MUSTACHE_RED_SHIRT
{ 0x0000, 0x7117, 0x7112, 0x7113, 0x7110, 0x710C, 0x7117, 0x710E, 0x7112 },
// MASK_REACTION_SET_47
// MASK_REACTION_SET_MAN_2_MUSTACHE_BLUE_SHIRT
{ 0x0000, 0x710D, 0x710F, 0x710C, 0x7112, 0x710D, 0x710C, 0x710C, 0x710F },
// MASK_REACTION_SET_48
// MASK_REACTION_SET_YOUNG_WOMAN_ORANGE_HAIR
{ 0x0000, 0x710A, 0x7109, 0x711A, 0x710A, 0x7109, 0x7108, 0x710B, 0x7109 },
// MASK_REACTION_SET_49
// MASK_REACTION_SET_MAN_2_ALT_MUSTACHE
{ 0x0000, 0x710C, 0x710F, 0x7113, 0x7110, 0x710D, 0x7112, 0x7116, 0x710D },
// MASK_REACTION_SET_50
// MASK_REACTION_SET_MAN_1_BOWL_CUT_PURPLE_SHIRT
{ 0x0000, 0x7115, 0x7114, 0x7114, 0x7115, 0x7114, 0x7114, 0x7116, 0x7117 },
// MASK_REACTION_SET_51
// MASK_REACTION_SET_MAN_2_BEARD
{ 0x0000, 0x7113, 0x710F, 0x7113, 0x7110, 0x710C, 0x711A, 0x710D, 0x7112 },
// MASK_REACTION_SET_52
// MASK_REACTION_SET_OLD_MAN_BALD_BROWN_ROBE
{ 0x0000, 0x7101, 0x7102, 0x7103, 0x7101, 0x7100, 0x7100, 0x7102, 0x7100 },
// MASK_REACTION_SET_53
// MASK_REACTION_SET_MAN_2_MUSTACHE_WHITE_SHIRT
{ 0x0000, 0x7112, 0x710E, 0x7112, 0x710E, 0x710D, 0x7112, 0x710E, 0x710F },
// MASK_REACTION_SET_54
// MASK_REACTION_SET_MAN_1_SHAVED_GREEN_SHIRT
{ 0x0000, 0x7142, 0x7141, 0x7142, 0x7143, 0x7140, 0x7140, 0x7141, 0x7143 },
// MASK_REACTION_SET_55
// MASK_REACTION_SET_WOMAN_2
{ 0x0000, 0x713C, 0x713D, 0x713D, 0x713E, 0x713E, 0x713F, 0x713D, 0x713F },
// MASK_REACTION_SET_56
// MASK_REACTION_SET_OLD_MAN_BALD_PURPLE_ROBE
{ 0x0000, 0x7101, 0x7102, 0x7103, 0x7101, 0x7100, 0x7100, 0x7102, 0x7100 },
// MASK_REACTION_SET_57
// MASK_REACTION_SET_MAN_1_BOWL_CUT_GREEN_SHIRT
{ 0x0000, 0x7113, 0x7117, 0x7113, 0x7110, 0x7112, 0x7112, 0x7116, 0x7112 },
// MASK_REACTION_SET_HAGGLING_TOWNSPEOPLE_1
+14 -14
View File
@@ -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
+53 -30
View File
@@ -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
+1 -2
View File
@@ -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] = {