mirror of
https://github.com/zeldaret/mm.git
synced 2024-11-23 12:59:44 +00:00
2fdcdd91b3
* split * bss * z64eff_ss_dead.h * clean eff_blure * eff_shield_particle cleanup * tire?mark * and more cleanup * format * forgot to remove this * review * EffectBlureDrawMode enum * review * review * bss
66 lines
2.1 KiB
C
66 lines
2.1 KiB
C
#ifndef Z64EFF_SHIELD_PARTICLE_H
|
|
#define Z64EFF_SHIELD_PARTICLE_H
|
|
|
|
#include "ultra64.h"
|
|
|
|
#include "color.h"
|
|
#include "z64light.h"
|
|
#include "z64math.h"
|
|
|
|
struct GraphicsContext;
|
|
|
|
typedef struct EffectShieldParticleElement {
|
|
/* 0x00 */ f32 initialSpeed;
|
|
/* 0x04 */ f32 endXChange;
|
|
/* 0x08 */ f32 endX;
|
|
/* 0x0C */ f32 startXChange;
|
|
/* 0x10 */ f32 startX;
|
|
/* 0x14 */ s16 yaw;
|
|
/* 0x16 */ s16 pitch;
|
|
} EffectShieldParticleElement; // size = 0x18
|
|
|
|
typedef struct EffectShieldParticleInit {
|
|
/* 0x00 */ u8 numElements;
|
|
/* 0x02 */ Vec3s position;
|
|
/* 0x08 */ Color_RGBA8 primColorStart;
|
|
/* 0x0C */ Color_RGBA8 envColorStart;
|
|
/* 0x10 */ Color_RGBA8 primColorMid;
|
|
/* 0x14 */ Color_RGBA8 envColorMid;
|
|
/* 0x18 */ Color_RGBA8 primColorEnd;
|
|
/* 0x1C */ Color_RGBA8 envColorEnd;
|
|
/* 0x20 */ f32 deceleration;
|
|
/* 0x24 */ f32 maxInitialSpeed;
|
|
/* 0x28 */ f32 lengthCutoff;
|
|
/* 0x2C */ u8 duration;
|
|
/* 0x2E */ LightPoint lightPoint;
|
|
/* 0x3C */ s32 lightDecay; // halves light radius every frame when set to 1
|
|
} EffectShieldParticleInit; // size = 0x40
|
|
|
|
typedef struct EffectShieldParticle {
|
|
/* 0x000 */ EffectShieldParticleElement elements[16];
|
|
/* 0x180 */ u8 numElements;
|
|
/* 0x182 */ Vec3s position;
|
|
/* 0x188 */ Color_RGBA8 primColorStart;
|
|
/* 0x18C */ Color_RGBA8 envColorStart;
|
|
/* 0x190 */ Color_RGBA8 primColorMid;
|
|
/* 0x194 */ Color_RGBA8 envColorMid;
|
|
/* 0x198 */ Color_RGBA8 primColorEnd;
|
|
/* 0x19C */ Color_RGBA8 envColorEnd;
|
|
/* 0x1A0 */ f32 deceleration;
|
|
/* 0x1A4 */ char unk_1A4[0x04];
|
|
/* 0x1A8 */ f32 maxInitialSpeed;
|
|
/* 0x1AC */ f32 lengthCutoff;
|
|
/* 0x1B0 */ u8 duration;
|
|
/* 0x1B1 */ u8 timer;
|
|
/* 0x1B2 */ LightInfo lightInfo;
|
|
/* 0x1C0 */ LightNode* lightNode;
|
|
/* 0x1C4 */ s32 lightDecay; // halves light radius every frame when set to 1
|
|
} EffectShieldParticle; // size = 0x1C8
|
|
|
|
void EffectShieldParticle_Init(void* thisx, void* initParamsx);
|
|
void EffectShieldParticle_Destroy(void* thisx);
|
|
s32 EffectShieldParticle_Update(void* thisx);
|
|
void EffectShieldParticle_Draw(void* thisx, struct GraphicsContext* gfxCtx);
|
|
|
|
#endif
|