Shipwright/soh/src/overlays/actors/ovl_En_Nb/z_en_nb.h

67 lines
1.8 KiB
C

#ifndef Z_EN_NB_H
#define Z_EN_NB_H
#include "ultra64.h"
#include "global.h"
struct EnNb;
typedef enum {
/* 0x00 */ NB_LIMB_NONE,
/* 0x01 */ NB_LIMB_ROOT,
/* 0x02 */ NB_LIMB_L_THIGH,
/* 0x03 */ NB_LIMB_L_SHIN,
/* 0x04 */ NB_LIMB_L_FOOT,
/* 0x05 */ NB_LIMB_R_THIGH,
/* 0x06 */ NB_LIMB_R_SHIN,
/* 0x07 */ NB_LIMB_R_FOOT,
/* 0x08 */ NB_LIMB_TORSO,
/* 0x09 */ NB_LIMB_L_UPPER_ARM,
/* 0x0A */ NB_LIMB_L_FOREARM,
/* 0x0B */ NB_LIMB_L_HAND,
/* 0x0C */ NB_LIMB_R_UPPER_ARM,
/* 0x0D */ NB_LIMB_R_FOREARM,
/* 0x0E */ NB_LIMB_R_HAND,
/* 0x0F */ NB_LIMB_HEAD,
/* 0x10 */ NB_LIMB_BLANK,
/* 0x11 */ NB_LIMB_PONYTAIL,
/* 0x12 */ NB_LIMB_WAIST,
/* 0x13 */ NB_LIMB_MAX
} EnNbLimb;
typedef void (*EnNbActionFunc)(struct EnNb*, GlobalContext*);
typedef void (*EnNbDrawFunc)(struct EnNb*, GlobalContext*);
typedef struct EnNb {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s jointTable[NB_LIMB_MAX];
/* 0x0202 */ Vec3s morphTable[NB_LIMB_MAX];
/* 0x0274 */ s16 eyeIdx;
/* 0x0276 */ s16 blinkTimer;
/* 0x0278 */ s32 action;
/* 0x027C */ s32 drawMode;
/* 0x0280 */ f32 alphaTimer;
/* 0x0284 */ u32 alpha;
/* 0x0288 */ s32 flag;
/* 0x028C */ s32 previousCsAction;
/* 0x0290 */ f32 timer;
/* 0x0294 */ ColliderCylinder collider;
/* 0x02E0 */ s32 headTurnFlag;
/* 0x02E4 */ Vec3f initialPos;
/* 0x02F0 */ Vec3f finalPos;
/* 0x02FC */ s16 pathYaw;
/* 0x02FE */ u16 movementTimer;
/* 0x0300 */ struct_80034A14_arg1 unk_300;
} EnNb; // size = 0x0328
typedef enum {
/* 0x02 */ NB_TYPE_DEMO02 = 2,
/* 0x03 */ NB_TYPE_KIDNAPPED,
/* 0x04 */ NB_TYPE_KNUCKLE,
/* 0x05 */ NB_TYPE_CREDITS,
/* 0x06 */ NB_TYPE_CRAWLSPACE
} EnNbType;
#endif