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
94 lines
3.4 KiB
C
94 lines
3.4 KiB
C
#ifndef Z64EFF_BLURE_H
|
|
#define Z64EFF_BLURE_H
|
|
|
|
#include "ultra64.h"
|
|
|
|
#include "color.h"
|
|
#include "z64math.h"
|
|
|
|
struct GraphicsContext;
|
|
|
|
#define EFFECT_BLURE_COLOR_COUNT 4
|
|
|
|
#define EFFECT_BLURE_FLAG_2 (1 << 1)
|
|
#define EFFECT_BLURE_FLAG_4 (1 << 2)
|
|
#define EFFECT_BLURE_FLAG_10 (1 << 4)
|
|
|
|
#define EFFECT_BLURE_ELEMENT_FLAG_1 (1 << 0)
|
|
#define EFFECT_BLURE_ELEMENT_FLAG_2 (1 << 1)
|
|
#define EFFECT_BLURE_ELEMENT_FLAG_4 (1 << 2)
|
|
#define EFFECT_BLURE_ELEMENT_FLAG_8 (1 << 3)
|
|
#define EFFECT_BLURE_ELEMENT_FLAG_10 (1 << 4)
|
|
#define EFFECT_BLURE_ELEMENT_FLAG_20 (1 << 5)
|
|
|
|
typedef struct EffectBlureElement {
|
|
/* 0x00 */ s32 state;
|
|
/* 0x04 */ s32 timer;
|
|
/* 0x08 */ Vec3s p1;
|
|
/* 0x0E */ Vec3s p2;
|
|
/* 0x14 */ u16 flags;
|
|
} EffectBlureElement; // size = 0x18
|
|
|
|
typedef struct EffectBlureInit1 {
|
|
/* 0x000 */ char unk_00[0x184];
|
|
/* 0x184 */ u8 p1StartColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x188 */ u8 p2StartColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x18C */ u8 p1EndColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x190 */ u8 p2EndColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x194 */ s32 elemDuration;
|
|
/* 0x198 */ s32 unkFlag;
|
|
/* 0x19C */ s32 calcMode;
|
|
} EffectBlureInit1; // size = 0x1A0
|
|
|
|
typedef enum EffectBlureDrawMode {
|
|
/* 0 */ EFF_BLURE_DRAW_MODE_SIMPLE,
|
|
/* 1 */ EFF_BLURE_DRAW_MODE_SIMPLE_ALT_COLORS,
|
|
/* 2 */ EFF_BLURE_DRAW_MODE_SMOOTH,
|
|
/* 3 */ EFF_BLURE_DRAW_MODE_MAX
|
|
} EffectBlureDrawMode;
|
|
|
|
typedef struct EffectBlureInit2 {
|
|
/* 0x00 */ s32 calcMode;
|
|
/* 0x04 */ u16 flags;
|
|
/* 0x06 */ s16 addAngleChange;
|
|
/* 0x08 */ u8 p1StartColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x0C */ u8 p2StartColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x10 */ u8 p1EndColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x14 */ u8 p2EndColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x18 */ u8 elemDuration;
|
|
/* 0x19 */ u8 unkFlag;
|
|
/* 0x1A */ u8 drawMode; // EffectBlureDrawMode enum
|
|
/* 0x1B */ u8 mode4Param;
|
|
/* 0x1C */ Color_RGBA8 altPrimColor; // used with EFF_BLURE_DRAW_MODE_SIMPLE_ALT_COLORS
|
|
/* 0x20 */ Color_RGBA8 altEnvColor; // used with EFF_BLURE_DRAW_MODE_SIMPLE_ALT_COLORS
|
|
} EffectBlureInit2; // size = 0x24
|
|
|
|
typedef struct EffectBlure {
|
|
/* 0x000 */ EffectBlureElement elements[16];
|
|
/* 0x180 */ s32 calcMode;
|
|
/* 0x184 */ f32 mode4Param;
|
|
/* 0x188 */ u16 flags;
|
|
/* 0x18A */ s16 addAngleChange;
|
|
/* 0x18C */ s16 addAngle;
|
|
/* 0x18E */ u8 p1StartColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x192 */ u8 p2StartColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x196 */ u8 p1EndColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x19A */ u8 p2EndColor[EFFECT_BLURE_COLOR_COUNT];
|
|
/* 0x19E */ u8 numElements; // "now_edge_num"
|
|
/* 0x19F */ u8 elemDuration;
|
|
/* 0x1A0 */ u8 unkFlag;
|
|
/* 0x1A1 */ u8 drawMode; // EffectBlureDrawMode enum
|
|
/* 0x1A2 */ Color_RGBA8 altPrimColor; // used with EFF_BLURE_DRAW_MODE_SIMPLE_ALT_COLORS
|
|
/* 0x1A6 */ Color_RGBA8 altEnvColor; // used with EFF_BLURE_DRAW_MODE_SIMPLE_ALT_COLORS
|
|
} EffectBlure; // size = 0x1AC
|
|
|
|
void EffectBlure_AddVertex(EffectBlure* this, Vec3f* p1, Vec3f* p2);
|
|
void EffectBlure_AddSpace(EffectBlure* this);
|
|
void EffectBlure_Init1(void* thisx, void* initParamsx);
|
|
void EffectBlure_Init2(void* thisx, void* initParamsx);
|
|
void EffectBlure_Destroy(void* thisx);
|
|
s32 EffectBlure_Update(void* thisx);
|
|
void EffectBlure_Draw(void* thisx, struct GraphicsContext* gfxCtx);
|
|
|
|
#endif
|