Shipwright/soh/src/overlays/actors/ovl_En_Bb/z_en_bb.h

60 lines
1.7 KiB
C

#ifndef Z_EN_BB_H
#define Z_EN_BB_H
#include "ultra64.h"
#include "global.h"
struct EnBb;
typedef void (*EnBbActionFunc)(struct EnBb*, GlobalContext*);
typedef struct EnBb {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s jointTable[16];
/* 0x01F0 */ Vec3s morphTable[16];
/* 0x0250 */ s32 action;
/* 0x0254 */ s32 unk_254; // unused
/* 0x0258 */ EnBbActionFunc actionFunc;
/* 0x025C */ s32 moveMode;
/* 0x0260 */ s32 timer;
/* 0x0264 */ s32 unk_264; // unused
/* 0x0268 */ s16 actionState;
/* 0x026A */ s16 charge;
/* 0x026C */ s16 actionVar1; // index for flame trail, phase of small hop when blue finds a bomb
/* 0x026E */ s16 actionVar2; // move yaw for blue, flame timer for green, maxAlpha for flame trail
/* 0x0270 */ s16 flameScrollMod;
/* 0x0274 */ f32 bobPhase;
/* 0x0278 */ f32 bobSize;
/* 0x027C */ f32 maxSpeed;
/* 0x0280 */ f32 flyHeightMod;
/* 0x027C */ f32 bobSpeedMod; // y speed for blue, phase speed for green
/* 0x0288 */ f32 flameScaleY;
/* 0x028C */ f32 flameScaleX;
/* 0x0290 */ Vec3f waypointPos;
/* 0x029C */ u8 path;
/* 0x029D */ u8 waypoint;
/* 0x029E */ u8 flamePrimBlue;
/* 0x029F */ u8 flamePrimAlpha;
/* 0x02A0 */ Color_RGB8 flameEnvColor;
/* 0x02A4 */ s32 blureIdx;
/* 0x02A8 */ s16 fireIceTimer;
/* 0x02AA */ u8 dmgEffect;
/* 0x02AC */ ColliderJntSph collider;
/* 0x02CC */ ColliderJntSphElement elements[1];
/* 0x030C */ BodyBreak bodyBreak;
/* 0x0324 */ Actor* targetActor;
} EnBb; // size = 0x0328
typedef enum {
ENBB_GREEN_BIG = -5,
ENBB_GREEN,
ENBB_WHITE,
ENBB_RED,
ENBB_BLUE,
ENBB_FLAME_TRAIL,
ENBB_KILL_TRAIL = 11
} EnBbType;
#endif