SSBM Decomp
Loading...
Searching...
No Matches
eflib.h
Go to the documentation of this file.
1#ifndef MELEE_EF_EFLIB_H
2#define MELEE_EF_EFLIB_H
3
4#include <melee/ef/forward.h>
6
7#include <stdarg.h>
8
9#include <dolphin/mtx.h>
10
11typedef struct EF_ParamEntry {
12 /* 0x0 */ void* gobj;
13 /* 0x4 */ u16 gfx_id;
14 /* 0x6 */ u16 alpha;
15} EF_ParamEntry; /* size = 0x8 */
17
18/* 05B4B8 */ void efLib_Init(void);
19/* 05B704 */ void efLib_SetFlags(HSD_GObj* gobj, s32 expires);
20/* 05B780 */ void efLib_Destroy(HSD_GObj* gobj);
21/* 05B880 */ void efLib_DestroyAll(HSD_GObj* gobj);
22/* 05BA40 */ void efLib_PauseAll(HSD_GObj* gobj);
23/* 05BAC4 */ void efLib_ResumeAll(HSD_GObj* gobj);
24/* 05BB40 */ void efLib_remove_user_data(void* user_data);
25/* 05BBB4 */ void efLib_RemoveLast(void);
26/* 05BC50 */ void efLib_Update(HSD_GObj* gobj);
27
28// Create effects
29
30/* 05BE88 */ EF_Effect* efLib_Create(int gfx_id, HSD_GObj* parent_gobj);
31/* 05C1B4 */ EF_Effect* efLib_Create_Attach(u32 gfx_id, HSD_GObj* gobj,
32 HSD_JObj* jobj);
34 HSD_JObj* jobj);
36 HSD_JObj* jobj);
37/* 05C5C4 */ EF_Effect*
41 HSD_JObj* jobj);
43 Vec3* position);
44
45// Particle processing callbacks
46
47/* 05C9A4 */ void efLib_particles_proc_main(HSD_GObj* gobj);
48/* 05C9D0 */ void efLib_particles_proc_aux(HSD_GObj* gobj);
49
50// Create generators
51
52/* 05C9FC */ HSD_Generator* efLib_CreateGenerator(s32 gfx_id, Vec3* pos);
54/* 05CB34 */ HSD_Generator*
58 HSD_JObj* jobj);
59/* 05CC84 */ HSD_Generator*
61/* 05CD2C */ HSD_Generator*
63/* 05CE48 */ HSD_Generator*
65/* 05CF40 */ HSD_Generator*
67/* 05D044 */ HSD_Generator*
69
70// Called by particles library
71
72/* 05D174 */ void efLib_SpawnParticleEffect(int bank, s32 gfx_id,
73 HSD_JObj* jobj, bool flag);
74
75// Particle-related callbacks
76
77/* 05DB20 */ void efLib_Cb_SPtcl(s32 linkNo, s32 bank, s32 gfx_id,
78 HSD_JObj* jobj);
79/* 05DB70 */ void efLib_Cb_DPtcl(int linkNo, int bank, int gfx_id,
80 HSD_JObj* jobj);
81/* 05DBC0 */ void efLib_Cb_ParticleRender(HSD_Particle* particle);
82/* 05DCD0 */ void efLib_Cb_PtclAppSRTHook(HSD_Generator* particle);
83
84// Effect callbacks
85
86/* 05DDB8 */ void efLib_Cb_SetOffsetY_FromParamY(EF_Effect* effect);
87/* 05DE94 */ void efLib_Cb_SetScale_FromParamX(EF_Effect* effect);
88/* 05E090 */ void efLib_Cb_SetRotYAndTransition(EF_Effect* effect);
89/* 05E1D8 */ void efLib_Cb_SetJObjOffsetZ(EF_Effect* effect);
90/* 05E2B4 */ void efLib_Cb_SetRotY_FromFighterDir(EF_Effect* effect);
91/* 05E3A0 */ void efLib_Cb_SetRotYZ_FromFighter(EF_Effect* effect);
92/* 05E648 */ void efLib_Cb_Fall_FromParamY(EF_Effect* effect);
93/* 05E950 */ void efLib_Cb_SetOffset_FromParams(EF_Effect* effect);
94/* 05EB70 */ void efLib_Cb_LifetimeEndSpawn(EF_Effect* effect);
95/* 05EBC8 */ void efLib_Cb_SetScaleRotY_FromFighter(EF_Effect* effect);
96/* 05EDDC */ void efLib_Cb_SetRotYZ_FromParamZ_FighterDir(EF_Effect* effect);
97/* 05F08C */ void efLib_Cb_ftMr_SpecialLw(EF_Effect* effect);
98/* 05F270 */ void efLib_Cb_ftLg_SpecialLw(EF_Effect* effect);
99/* 05F454 */ void efLib_Cb_ftKp_SpecialHi(EF_Effect* effect);
100/* 05F748 */ void efLib_Cb_ftCo_Bury(EF_Effect* effect);
101
102// Property setting
103
104/* 05F774 */ void efLib_SetTevKonstColor(HSD_JObj* jobj, s32 count, u32 konst,
105 u32 tev0);
106/* 05F864 */ void efLib_SetParamAlpha(HSD_GObj* gobj, u8 alpha);
107/* 05F990 */ void efLib_SetParamGfxId(HSD_GObj* gobj, s32 gfx_id);
108
109// More effect callbacks (?)
110
111/* 05FAB8 */ void efLib_Cb_ApplyStoredAlpha(EF_Effect* effect);
112/* 05FBE4 */ void efLib_Cb_AccumOffset_FromParams(EF_Effect* effect);
113
114// Misplaced generator creation
115
116/* 05FCD8 */ EF_Effect* efLib_CreateGenerator_AppSRT_SetPos(int gfx_id,
117 HSD_GObj* gobj,
118 HSD_JObj* jobj,
119 Vec3* vec);
120
121extern EF_ParamEntry efLib_AnimQueue[0x10];
123
124#endif
EF_ParamEntry efLib_AnimQueue[0x10]
Definition eflib.c:1404
EF_ParamEntry efLib_ParamTable[0x8]
Definition eflib.c:1409
EF_Effect * efLib_Create_AttachChild(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:557
void efLib_SetTevKonstColor(HSD_JObj *jobj, s32 count, u32 konst, u32 tev0)
Definition eflib.c:1375
void efLib_particles_proc_aux(HSD_GObj *gobj)
Definition eflib.c:676
void efLib_Cb_SetJObjOffsetZ(EF_Effect *effect)
Definition eflib.c:1126
void efLib_remove_user_data(void *user_data)
Definition eflib.c:337
HSD_Generator * efLib_CreateGenerator(s32 gfx_id, Vec3 *pos)
Definition eflib.c:682
void efLib_Cb_ftMr_SpecialLw(EF_Effect *effect)
Definition eflib.c:1279
void efLib_SetParamAlpha(HSD_GObj *gobj, u8 alpha)
Definition eflib.c:1411
HSD_Generator * efLib_CreateGenerator_Attach_Scale(s32 gfx_id, va_list vlist, HSD_GObj *gobj)
Definition eflib.c:791
void efLib_Cb_SetScaleRotY_FromFighter(EF_Effect *effect)
Definition eflib.c:1228
HSD_Generator * efLib_CreateGenerator_Attach_AddAppSRT(s32 gfx_id, HSD_JObj *jobj)
Definition eflib.c:770
void efLib_Update(HSD_GObj *gobj)
Definition eflib.c:387
HSD_Generator * efLib_CreateGenerator_AppSRT_SetScale(s32 gfx_id, va_list vlist)
Definition eflib.c:809
void efLib_Cb_SetRotYZ_FromFighter(EF_Effect *effect)
Definition eflib.c:1158
EF_Effect * efLib_CreateGenerator_AppSRT_SetPos(int gfx_id, HSD_GObj *gobj, HSD_JObj *jobj, Vec3 *vec)
Definition eflib.c:1513
HSD_Generator * efLib_CreateGenerator_Attach(s32 gfx_id, HSD_JObj *jobj)
Definition eflib.c:761
void efLib_Cb_AccumOffset_FromParams(EF_Effect *effect)
Definition eflib.c:1502
void efLib_Cb_SetRotY_FromFighterDir(EF_Effect *effect)
Definition eflib.c:1142
EF_Effect * efLib_Create_Attach_Pos(u32 gfx_id, HSD_GObj *gobj, Vec3 *position)
Definition eflib.c:630
void efLib_ResumeAll(HSD_GObj *gobj)
Definition eflib.c:312
void efLib_SetParamGfxId(HSD_GObj *gobj, s32 gfx_id)
Definition eflib.c:1436
void efLib_Cb_ParticleRender(HSD_Particle *particle)
Definition eflib.c:1016
void efLib_Cb_ftLg_SpecialLw(EF_Effect *effect)
Definition eflib.c:1309
void efLib_Cb_Fall_FromParamY(EF_Effect *effect)
Definition eflib.c:1176
void efLib_particles_proc_main(HSD_GObj *gobj)
Definition eflib.c:670
void efLib_Cb_SetRotYAndTransition(EF_Effect *effect)
Definition eflib.c:1095
void efLib_Cb_DPtcl(int linkNo, int bank, int gfx_id, HSD_JObj *jobj)
Definition eflib.c:1007
EF_Effect * efLib_Create_Attach(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:538
void efLib_SpawnParticleEffect(int bank, s32 gfx_id, HSD_JObj *jobj, bool flag)
Definition eflib.c:857
void efLib_Destroy(HSD_GObj *gobj)
Definition eflib.c:214
HSD_Generator * efLib_CreateGenerator_AddAppSRT(s32 gfx_id)
Definition eflib.c:712
void efLib_Cb_LifetimeEndSpawn(EF_Effect *effect)
Definition eflib.c:1219
void efLib_Cb_ApplyStoredAlpha(EF_Effect *effect)
Definition eflib.c:1461
void efLib_Cb_SPtcl(s32 linkNo, s32 bank, s32 gfx_id, HSD_JObj *jobj)
Definition eflib.c:996
HSD_Generator * efLib_CreateGenerator_Translate_FacingDir(s32 gfx_id, Vec3 *translation, f32 direction)
Definition eflib.c:730
EF_Effect * efLib_Create_Attach_Scale_FacingDir(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:606
void efLib_DestroyAll(HSD_GObj *gobj)
Definition eflib.c:237
void efLib_Cb_SetRotYZ_FromParamZ_FighterDir(EF_Effect *effect)
Definition eflib.c:1261
HSD_Generator * efLib_CreateGenerator_AppSRT_SetFacingDirScale(s32 gfx_id, va_list vlist)
Definition eflib.c:837
void efLib_PauseAll(HSD_GObj *gobj)
Definition eflib.c:285
void efLib_Init(void)
Definition eflib.c:154
void efLib_RemoveLast(void)
Definition eflib.c:353
void efLib_Cb_ftKp_SpecialHi(EF_Effect *effect)
Definition eflib.c:1340
void efLib_Cb_ftCo_Bury(EF_Effect *effect)
Definition eflib.c:1366
void efLib_Cb_SetOffset_FromParams(EF_Effect *effect)
Definition eflib.c:1200
EF_Effect * efLib_Create(int gfx_id, HSD_GObj *parent_gobj)
Definition eflib.c:433
void efLib_Cb_PtclAppSRTHook(HSD_Generator *particle)
Definition eflib.c:1050
void efLib_Cb_SetScale_FromParamX(EF_Effect *effect)
Definition eflib.c:1077
HSD_Generator * efLib_CreateGenerator_AppSRT_SetFacingDir(s32 gfx_id, va_list vlist)
Definition eflib.c:822
EF_Effect * efLib_Create_AttachChild_Scale(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:581
void efLib_SetFlags(HSD_GObj *gobj, s32 expires)
Definition eflib.c:189
EF_Effect * efLib_Create_Attach_Scale(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:567
void efLib_Cb_SetOffsetY_FromParamY(EF_Effect *effect)
Definition eflib.c:1066
struct Vec Vec3
unsigned long u32
Definition types.h:9
float f32
Definition types.h:13
unsigned short int u16
Definition types.h:7
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5
HSD_GObj * gobj
Definition gm_19EF.c:73
static float direction(float x)
Definition gmvs.c:1761
#define ASSERT_SIZE(expr, size)
Definition platform.h:161
u8 alpha
Definition state.c:44
__va_list va_list
Definition stdarg.h:11
Definition types.h:59
Definition eflib.h:11
void * gobj
Definition eflib.h:12
u16 alpha
Definition eflib.h:14
u16 gfx_id
Definition eflib.h:13
Definition gobj.h:13
Definition psstructs.h:243
Definition jobj.h:104
Definition psstructs.h:129