Shipwright/soh/src/overlays/actors/ovl_En_Am/z_en_am.h

39 lines
1.2 KiB
C

#ifndef Z_EN_AM_H
#define Z_EN_AM_H
#include "ultra64.h"
#include "global.h"
struct EnAm;
typedef void (*EnAmActionFunc)(struct EnAm*, GlobalContext*);
typedef struct EnAm {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ SkelAnime skelAnime;
/* 0x01A8 */ s32 behavior;
/* 0x01AC */ Vec3s jointTable[14];
/* 0x0200 */ Vec3s morphTable[14];
/* 0x0254 */ EnAmActionFunc actionFunc;
/* 0x0258 */ s16 unk_258;
/* 0x025A */ s16 cooldownTimer;
/* 0x025C */ s16 attackTimer; // start going back home after reaching 0
/* 0x025E */ s16 iceTimer;
/* 0x0260 */ s16 deathTimer; // explode after reaching 0
/* 0x0262 */ s16 panicSpinRot; // used when panicking before death
/* 0x0264 */ s16 unk_264;
/* 0x0266 */ u8 textureBlend; // 0 = statue textures; 255 = enemy textures
/* 0x0267 */ u8 damageEffect;
/* 0x0267 */ Vec3f shakeOrigin; // center point to shake around when waking up
/* 0x0274 */ ColliderCylinder hurtCollider;
/* 0x02C0 */ ColliderCylinder blockCollider;
/* 0x030C */ ColliderQuad hitCollider;
} EnAm; // size = 0x038C
typedef enum {
/* 0 */ ARMOS_STATUE,
/* 1 */ ARMOS_ENEMY
} ArmosType;
#endif