mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-20 05:36:55 -04:00
Ovl_En_Cne_01 Ok and Documented (#641)
* Decomp and document Cne01 * Document object_cne * split enhy header from z64 * Cleanup * Actually include new z_en_hy header * Actor flags * Add header to object_cne * screen defines * Useage of ENHY_LIMB_MAX
This commit is contained in:
+1
-15
@@ -1478,21 +1478,7 @@ void SoundSource_UpdateAll(GlobalContext* globalCtx);
|
||||
void SoundSource_PlaySfxAtFixedWorldPos(GlobalContext* globalCtx, Vec3f* worldPos, u32 duration, u16 sfxId);
|
||||
void SoundSource_PlaySfxEachFrameAtFixedWorldPos(GlobalContext* globalCtx, Vec3f* worldPos, u32 duration, u16 sfxId);
|
||||
u16 ElfMessage_GetFirstCycleHint(GlobalContext* globalCtx);
|
||||
s32 EnHy_ChangeAnim(SkelAnime* skelAnime, s16 animIndex);
|
||||
Actor* EnHy_FindNearestDoor(Actor* actor, GlobalContext* globalCtx);
|
||||
void EnHy_ChangeObjectAndAnim(EnHy* enHy, GlobalContext* globalCtx, s16 animIndex);
|
||||
s32 EnHy_UpdateSkelAnime(EnHy* enHy, GlobalContext* globalCtx);
|
||||
void EnHy_Blink(EnHy* enHy, s32 arg1);
|
||||
s32 EnHy_Init(EnHy* enHy, GlobalContext* globalCtx, FlexSkeletonHeader* skeletonHeaderSeg, s16 animIndex);
|
||||
void func_800F0BB4(EnHy* enHy, GlobalContext* globalCtx, Actor* arg2, s16 arg3, s16 arg4);
|
||||
s32 func_800F0CE4(EnHy* enHy, GlobalContext* globalCtx, ActorFunc draw, s16 arg3, s16 arg4, f32 arg5);
|
||||
s32 func_800F0DD4(EnHy* enHy, GlobalContext* globalCtx, s16 arg2, s16 arg3);
|
||||
s32 EnHy_SetPointFowards(EnHy* enHy, GlobalContext* globalCtx, f32 gravity, s16 animIndex);
|
||||
s32 EnHy_SetPointBackwards(EnHy* enHy, GlobalContext* globalCtx, s16 animIndex);
|
||||
s32 EnHy_MoveForwards(EnHy* enHy, f32 arg1);
|
||||
s32 EnHy_MoveBackwards(EnHy* enHy, f32 arg1);
|
||||
void EnHy_UpdateCollider(EnHy* enHy, GlobalContext* globalCtx);
|
||||
s32 EnHy_PlayWalkingSound(EnHy* enHy, GlobalContext* globalCtx, f32 arg2);
|
||||
|
||||
u16 Text_GetFaceReaction(GlobalContext* globalCtx, u32 reactionSet);
|
||||
void EnvFlags_UnsetAll(GlobalContext* globalCtx);
|
||||
void EnvFlags_Set(GlobalContext* globalCtx, s16 flag);
|
||||
|
||||
@@ -881,9 +881,6 @@ extern s801BB170 D_801BB170[118];
|
||||
// extern UNK_TYPE1 D_801BC210;
|
||||
extern Gfx D_801BC240[9];
|
||||
extern Gfx D_801BC288[3];
|
||||
// extern UNK_TYPE1 D_801BC3F0;
|
||||
// extern UNK_TYPE1 D_801BC400;
|
||||
// extern UNK_TYPE1 D_801BC410;
|
||||
// extern UNK_TYPE1 D_801BC41E;
|
||||
extern ActorCutscene actorCutscenesGlobalCutscenes[8];
|
||||
extern s16 actorCutsceneCurrent;
|
||||
|
||||
@@ -1373,30 +1373,6 @@ typedef struct {
|
||||
/* 0x24 */ s16 unk_24;
|
||||
} struct_800BD888_arg1; // size = 0x28
|
||||
|
||||
typedef struct EnHy {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ UNK_TYPE1 unk_144[0x8];
|
||||
/* 0x14C */ SkelAnime skelAnime;
|
||||
/* 0x190 */ s8 unk190;
|
||||
/* 0x191 */ s8 unk191;
|
||||
/* 0x192 */ s8 unk192;
|
||||
/* 0x193 */ s8 animObjIndex;
|
||||
/* 0x194 */ ColliderCylinder collider;
|
||||
/* 0x1E0 */ UNK_TYPE1 unk_1E0[0x4];
|
||||
/* 0x1E4 */ Path* path;
|
||||
/* 0x1E8 */ s16 curPoint;
|
||||
/* 0x1EA */ UNK_TYPE1 unk_1EA[0x2];
|
||||
/* 0x1EC */ Vec3f leftFootPos;
|
||||
/* 0x1F8 */ Vec3f rightFootPos;
|
||||
/* 0x204 */ u8 isLeftFootOnGround;
|
||||
/* 0x205 */ u8 isRightFootOnGround;
|
||||
/* 0x206 */ Vec3s jointTable[16];
|
||||
/* 0x266 */ Vec3s morphTable[16];
|
||||
/* 0x2C6 */ UNK_TYPE1 unk_2C6[0x120];
|
||||
/* 0x3E6 */ s16 eyeTexIndex;
|
||||
/* 0x3E8 */ s16 blinkTimer;
|
||||
} EnHy;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 unk0;
|
||||
/* 0x4 */ s32 unk4;
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
#ifndef Z_EN_HY_H
|
||||
#define Z_EN_HY_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
struct EnHy;
|
||||
|
||||
#define ENHY_LIMB_MAX 16
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ ENHY_ANIMATION_AOB_0,
|
||||
/* 1 */ ENHY_ANIMATION_BOJ_1,
|
||||
/* 2 */ ENHY_ANIMATION_BOJ_2,
|
||||
/* 3 */ ENHY_ANIMATION_BOJ_3,
|
||||
/* 4 */ ENHY_ANIMATION_BOJ_4,
|
||||
/* 5 */ ENHY_ANIMATION_BOJ_5,
|
||||
/* 6 */ ENHY_ANIMATION_BBA_6,
|
||||
/* 7 */ ENHY_ANIMATION_BJI_7,
|
||||
/* 8 */ ENHY_ANIMATION_BJI_8,
|
||||
/* 9 */ ENHY_ANIMATION_BJI_9,
|
||||
/* 10 */ ENHY_ANIMATION_BOJ_10,
|
||||
/* 11 */ ENHY_ANIMATION_OS_ANIME_11,
|
||||
/* 12 */ ENHY_ANIMATION_BOJ_12,
|
||||
/* 13 */ ENHY_ANIMATION_BOJ_13,
|
||||
/* 14 */ ENHY_ANIMATION_BOJ_14,
|
||||
/* 15 */ ENHY_ANIMATION_BOJ_15,
|
||||
/* 16 */ ENHY_ANIMATION_BOJ_16,
|
||||
/* 17 */ ENHY_ANIMATION_BOJ_17,
|
||||
/* 18 */ ENHY_ANIMATION_BOJ_18,
|
||||
/* 19 */ ENHY_ANIMATION_BOJ_19,
|
||||
/* 20 */ ENHY_ANIMATION_BOJ_20,
|
||||
/* 21 */ ENHY_ANIMATION_MAX
|
||||
} EnHyAnimation;
|
||||
|
||||
typedef void (*EnHyActionFunc)(struct EnHy*, GlobalContext*);
|
||||
|
||||
typedef struct EnHy {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ EnHyActionFunc actionFunc;
|
||||
/* 0x148 */ EnHyActionFunc tmpActionFunc;
|
||||
/* 0x14C */ SkelAnime skelAnime;
|
||||
/* 0x190 */ s8 headObjIndex; // Limb 15
|
||||
/* 0x191 */ s8 skelUpperObjIndex; // Limbs 8-14
|
||||
/* 0x192 */ s8 skelLowerObjIndex; // Limbs 1-7
|
||||
/* 0x193 */ s8 animObjIndex;
|
||||
/* 0x194 */ ColliderCylinder collider;
|
||||
/* 0x1E0 */ u16 textId;
|
||||
/* 0x1E2 */ u8 waitingOnInit;
|
||||
/* 0x1E3 */ u8 inMsgState3;
|
||||
/* 0x1E4 */ Path* path;
|
||||
/* 0x1E8 */ s16 curPoint;
|
||||
/* 0x1EC */ Vec3f leftFootPos;
|
||||
/* 0x1F8 */ Vec3f rightFootPos;
|
||||
/* 0x204 */ u8 isLeftFootOnGround;
|
||||
/* 0x205 */ u8 isRightFootOnGround;
|
||||
/* 0x206 */ Vec3s jointTable[ENHY_LIMB_MAX];
|
||||
/* 0x266 */ Vec3s morphTable[ENHY_LIMB_MAX];
|
||||
/* 0x2C6 */ Vec3s focusTarget;
|
||||
/* 0x2CC */ Vec3s headRot;
|
||||
/* 0x2D2 */ Vec3s torsoRot;
|
||||
/* 0x2D8 */ Vec3s tmpFocusTarget;
|
||||
/* 0x2DE */ Vec3s tmpHeadRot;
|
||||
/* 0x2E4 */ Vec3s tmpTorsoRot;
|
||||
/* 0x2EA */ s16 limbRotTableY[16];
|
||||
/* 0x30A */ s16 limbRotTableZ[16];
|
||||
/* 0x32C */ Vec3f bodyPartsPos[15];
|
||||
/* 0x3E0 */ UNK_TYPE1 unk_3E0[0x6];
|
||||
/* 0x3E6 */ s16 eyeTexIndex;
|
||||
/* 0x3E8 */ s16 blinkTimer;
|
||||
} EnHy; // size = 0x3EC
|
||||
|
||||
extern s8 gEnHyBodyParts[];
|
||||
extern s8 gEnHyBodyPartsIndex[];
|
||||
extern u8 gEnHyShadowSize[];
|
||||
|
||||
s32 EnHy_ChangeAnim(SkelAnime* skelAnime, s16 animIndex);
|
||||
struct EnDoor* EnHy_FindNearestDoor(Actor* actor, GlobalContext* globalCtx);
|
||||
void EnHy_ChangeObjectAndAnim(EnHy* enHy, GlobalContext* globalCtx, s16 animIndex);
|
||||
s32 EnHy_UpdateSkelAnime(EnHy* enHy, GlobalContext* globalCtx);
|
||||
void EnHy_Blink(EnHy* enHy, s32 arg1);
|
||||
s32 EnHy_Init(EnHy* enHy, GlobalContext* globalCtx, FlexSkeletonHeader* skeletonHeaderSeg, s16 animIndex);
|
||||
void func_800F0BB4(EnHy* enHy, GlobalContext* globalCtx, struct EnDoor* door, s16 arg3, s16 arg4);
|
||||
s32 func_800F0CE4(EnHy* enHy, GlobalContext* globalCtx, ActorFunc draw, s16 arg3, s16 arg4, f32 arg5);
|
||||
s32 func_800F0DD4(EnHy* enHy, GlobalContext* globalCtx, s16 arg2, s16 arg3);
|
||||
s32 EnHy_SetPointFowards(EnHy* enHy, GlobalContext* globalCtx, f32 gravity, s16 animIndex);
|
||||
s32 EnHy_SetPointBackwards(EnHy* enHy, GlobalContext* globalCtx, s16 animIndex);
|
||||
s32 EnHy_MoveForwards(EnHy* enHy, f32 speedTarget);
|
||||
s32 EnHy_MoveBackwards(EnHy* enHy, f32 speedTarget);
|
||||
void EnHy_UpdateCollider(EnHy* enHy, GlobalContext* globalCtx);
|
||||
s32 EnHy_PlayWalkingSound(EnHy* enHy, GlobalContext* globalCtx, f32 distAboveThreshold);
|
||||
|
||||
#endif // Z_EN_HY_H
|
||||
Reference in New Issue
Block a user