summaryrefslogtreecommitdiff
path: root/mm/include/z64effect.h
blob: 46027ab1f2eff2f2aca82c7e163c44c7479d324f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef Z64EFFECT_H
#define Z64EFFECT_H

#include "PR/ultratypes.h"
#include "libc/stdint.h"
#include "color.h"
#include "z64light.h"
#include "z64math.h"
#include "unk.h"

#include "z64eff_blure.h"
#include "z64eff_tire_mark.h"
#include "z64eff_spark.h"
#include "z64eff_shield_particle.h"
#include "z64effect_ss.h"

struct GraphicsContext;
struct PlayState;

typedef enum EffectType {
    /* 0 */ EFFECT_SPARK,
    /* 1 */ EFFECT_BLURE1,
    /* 2 */ EFFECT_BLURE2,
    /* 3 */ EFFECT_SHIELD_PARTICLE,
    /* 4 */ EFFECT_TIRE_MARK,
    /* 5 */ EFFECT_MAX
} EffectType;

/* Effect Soft Sprites */

struct PlayState* Effect_GetPlayState(void);
void* Effect_GetByIndex(s32 index);
void Effect_Init(struct PlayState* play);
void Effect_Add(struct PlayState* play, s32* pIndex, EffectType type, u8 arg3, u8 arg4, void* initParams);
void Effect_DrawAll(struct GraphicsContext* gfxCtx);
void Effect_UpdateAll(struct PlayState* play);
void Effect_Destroy(struct PlayState* play, s32 index);
void Effect_DestroyAll(struct PlayState* play);

#endif