Shipwright/soh/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.h

35 lines
1.1 KiB
C

#ifndef Z_EFF_DUST_H
#define Z_EFF_DUST_H
#include "ultra64.h"
#include "global.h"
struct EffDust;
typedef void (*EffDustActionFunc)(struct EffDust*, GlobalContext*);
typedef void (*EffDustDrawFunc)(Actor*, GlobalContext*);
typedef struct EffDust {
/* 0x0000 */ Actor actor;
/* 0x014C */ f32 distanceTraveled[64]; // For each particle. Normalized. From 0.0f to 1.0f
/* 0x024C */ Vec3f initialPositions[64]; // Array of position for each dust particle.
/* 0x054C */ u8 index;
/* 0x054D */ u8 life; // Only considered if actor.params is 2, 3 or 4.
/* 0x0550 */ f32 dx; // Normalized. 0.0f to 1.0f
/* 0x0554 */ f32 dy; // Normalized. 0.0f to 1.0f
/* 0x0558 */ f32 dz; // Normalized. 0.0f to 1.0f
/* 0x055C */ f32 scalingFactor;
/* 0x0560 */ EffDustActionFunc actionFunc;
/* 0x0564 */ EffDustDrawFunc drawFunc;
} EffDust; // size = 0x0568
typedef enum {
/* 0x00 */ EFF_DUST_TYPE_0,
/* 0x01 */ EFF_DUST_TYPE_1,
/* 0x02 */ EFF_DUST_TYPE_2,
/* 0x03 */ EFF_DUST_TYPE_3,
/* 0x04 */ EFF_DUST_TYPE_4
} EffDustType;
#endif