Shipwright/soh/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.h

56 lines
1.5 KiB
C

#ifndef Z_EN_HEISHI1_H
#define Z_EN_HEISHI1_H
#include "ultra64.h"
#include "global.h"
struct EnHeishi1;
typedef void (*EnHeishi1ActionFunc)(struct EnHeishi1*, GlobalContext*);
typedef struct EnHeishi1 {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s jointTable[17];
/* 0x01F6 */ Vec3s morphTable[17];
/* 0x025C */ EnHeishi1ActionFunc actionFunc;
/* 0x0260 */ s16 activeTimer;
/* 0x0262 */ s16 headDirection;
/* 0x0264 */ s16 headBehaviorDecided;
/* 0x0266 */ s16 linkDetected;
/* 0x0268 */ s16 loadStarted;
/* 0x026A */ s16 type;
/* 0x026C */ s16 path;
/* 0x026E */ s16 unused1;
/* 0x0270 */ s16 waypointTimer;
/* 0x0272 */ s16 unused2;
/* 0x0274 */ f32 moveSpeed;
/* 0x0278 */ f32 bodyTurnSpeed;
/* 0x027C */ f32 headAngle;
/* 0x0280 */ f32 headAngleTarget;
union {
struct {
/* 0x0284 */ f32 animSpeed;
/* 0x0288 */ f32 transitionRate;
/* 0x028C */ f32 moveSpeedTarget;
/* 0x0290 */ f32 moveSpeedMax;
/* 0x0294 */ f32 bodyTurnSpeedTarget;
/* 0x0298 */ f32 bodyTurnSpeedMax;
/* 0x029C */ f32 headTurnSpeedScale;
/* 0x02A0 */ f32 headTurnSpeedMax;
};
f32 animParams[8];
};
union {
struct {
/* 0x02A4 */ s16 headTimer;
/* 0x02A6 */ s16 waitTimer;
/* 0x02A8 */ s16 kickTimer;
};
s16 timers[3];
};
/* 0x02AA */ s16 waypoint;
} EnHeishi1; // size = 0x02AC
#endif