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 */ HSD_GObj* 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);
33/* 05C2BC */ EF_Effect* efLib_Create_AttachChild(u32 gfx_id, HSD_GObj* gobj,
34 HSD_JObj* jobj);
35/* 05C3DC */ EF_Effect* efLib_Create_Attach_Scale(u32 gfx_id, HSD_GObj* gobj,
36 HSD_JObj* jobj);
37/* 05C5C4 */ EF_Effect*
40 HSD_GObj* gobj,
41 HSD_JObj* jobj);
42/* 05C814 */ EF_Effect* efLib_Create_Attach_Pos(u32 gfx_id, HSD_GObj* gobj,
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 */ int 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 HSD_JObj* efLib_AnimQueue[32];
123
124#endif
HSD_JObj * efLib_AnimQueue[32]
Effect jobjs created this frame, animated once their spawn call returns.
Definition eflib.c:380
EF_ParamEntry efLib_ParamTable[8]
Per-gobj TEV konst alpha and gfx id, read by efLib_Cb_ApplyStoredAlpha.
Definition eflib.c:1295
EF_Effect * efLib_Create_AttachChild(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:505
void efLib_SetTevKonstColor(HSD_JObj *jobj, s32 count, u32 konst, u32 tev0)
Definition eflib.c:1274
void efLib_particles_proc_aux(HSD_GObj *gobj)
Definition eflib.c:597
void efLib_Cb_SetJObjOffsetZ(EF_Effect *effect)
Definition eflib.c:1037
void efLib_remove_user_data(void *user_data)
Definition eflib.c:283
HSD_Generator * efLib_CreateGenerator(s32 gfx_id, Vec3 *pos)
Definition eflib.c:603
void efLib_Cb_ftMr_SpecialLw(EF_Effect *effect)
Definition eflib.c:1177
void efLib_SetParamAlpha(HSD_GObj *gobj, u8 alpha)
Definition eflib.c:1297
HSD_Generator * efLib_CreateGenerator_Attach_Scale(s32 gfx_id, va_list vlist, HSD_GObj *gobj)
Definition eflib.c:692
void efLib_Cb_SetScaleRotY_FromFighter(EF_Effect *effect)
Definition eflib.c:1135
HSD_Generator * efLib_CreateGenerator_Attach_AddAppSRT(s32 gfx_id, HSD_JObj *jobj)
Definition eflib.c:671
void efLib_Update(HSD_GObj *gobj)
Definition eflib.c:333
HSD_Generator * efLib_CreateGenerator_AppSRT_SetScale(s32 gfx_id, va_list vlist)
Definition eflib.c:710
void efLib_Cb_SetRotYZ_FromFighter(EF_Effect *effect)
Definition eflib.c:1065
EF_Effect * efLib_CreateGenerator_AppSRT_SetPos(int gfx_id, HSD_GObj *gobj, HSD_JObj *jobj, Vec3 *vec)
Definition eflib.c:1386
HSD_Generator * efLib_CreateGenerator_Attach(s32 gfx_id, HSD_JObj *jobj)
Definition eflib.c:662
void efLib_Cb_AccumOffset_FromParams(EF_Effect *effect)
Definition eflib.c:1375
void efLib_Cb_SetRotY_FromFighterDir(EF_Effect *effect)
Definition eflib.c:1049
EF_Effect * efLib_Create_Attach_Pos(u32 gfx_id, HSD_GObj *gobj, Vec3 *position)
Definition eflib.c:554
void efLib_ResumeAll(HSD_GObj *gobj)
Definition eflib.c:258
void efLib_SetParamGfxId(HSD_GObj *gobj, s32 gfx_id)
Definition eflib.c:1318
void efLib_Cb_ftLg_SpecialLw(EF_Effect *effect)
Definition eflib.c:1205
void efLib_Cb_Fall_FromParamY(EF_Effect *effect)
Definition eflib.c:1083
void efLib_particles_proc_main(HSD_GObj *gobj)
Definition eflib.c:591
void efLib_Cb_SetRotYAndTransition(EF_Effect *effect)
Definition eflib.c:1007
void efLib_Cb_DPtcl(int linkNo, int bank, int gfx_id, HSD_JObj *jobj)
Definition eflib.c:920
EF_Effect * efLib_Create_Attach(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:486
void efLib_SpawnParticleEffect(int bank, s32 gfx_id, HSD_JObj *jobj, bool flag)
Definition eflib.c:756
void efLib_Destroy(HSD_GObj *gobj)
Definition eflib.c:170
HSD_Generator * efLib_CreateGenerator_AddAppSRT(s32 gfx_id)
Definition eflib.c:633
void efLib_Cb_LifetimeEndSpawn(EF_Effect *effect)
Definition eflib.c:1126
void efLib_Cb_ApplyStoredAlpha(EF_Effect *effect)
Definition eflib.c:1339
void efLib_Cb_SPtcl(s32 linkNo, s32 bank, s32 gfx_id, HSD_JObj *jobj)
Definition eflib.c:909
HSD_Generator * efLib_CreateGenerator_Translate_FacingDir(s32 gfx_id, Vec3 *translation, f32 direction)
Definition eflib.c:640
EF_Effect * efLib_Create_Attach_Scale_FacingDir(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:543
void efLib_DestroyAll(HSD_GObj *gobj)
Definition eflib.c:193
void efLib_Cb_SetRotYZ_FromParamZ_FighterDir(EF_Effect *effect)
Definition eflib.c:1159
HSD_Generator * efLib_CreateGenerator_AppSRT_SetFacingDirScale(s32 gfx_id, va_list vlist)
Definition eflib.c:737
void efLib_PauseAll(HSD_GObj *gobj)
Definition eflib.c:231
void efLib_Init(void)
Definition eflib.c:92
void efLib_RemoveLast(void)
Definition eflib.c:299
void efLib_Cb_ftKp_SpecialHi(EF_Effect *effect)
Definition eflib.c:1234
int efLib_Cb_ParticleRender(HSD_Particle *particle)
Definition eflib.c:929
void efLib_Cb_ftCo_Bury(EF_Effect *effect)
Definition eflib.c:1260
void efLib_Cb_SetOffset_FromParams(EF_Effect *effect)
Definition eflib.c:1107
EF_Effect * efLib_Create(int gfx_id, HSD_GObj *parent_gobj)
Definition eflib.c:382
void efLib_Cb_PtclAppSRTHook(HSD_Generator *particle)
Definition eflib.c:962
void efLib_Cb_SetScale_FromParamX(EF_Effect *effect)
Definition eflib.c:989
HSD_Generator * efLib_CreateGenerator_AppSRT_SetFacingDir(s32 gfx_id, va_list vlist)
Definition eflib.c:722
EF_Effect * efLib_Create_AttachChild_Scale(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:529
void efLib_SetFlags(HSD_GObj *gobj, s32 expires)
Definition eflib.c:127
EF_Effect * efLib_Create_Attach_Scale(u32 gfx_id, HSD_GObj *gobj, HSD_JObj *jobj)
Definition eflib.c:515
void efLib_Cb_SetOffsetY_FromParamY(EF_Effect *effect)
Definition eflib.c:978
static float direction(float x)
Definition gmvs.c:1753
struct Vec Vec3
signed int s32
Definition types.h:12
unsigned int u32
Definition types.h:13
float f32
Definition types.h:18
unsigned short int u16
Definition types.h:7
unsigned char u8
Definition types.h:5
#define ASSERT_SIZE(expr, size)
Definition platform.h:127
__va_list va_list
Definition stdarg.h:11
Definition types.h:61
Definition eflib.h:11
HSD_GObj * gobj
Definition eflib.h:12
u16 alpha
Definition eflib.h:14
u16 gfx_id
Definition eflib.h:13
Definition gobj.h:16
Definition psstructs.h:243
Definition jobj.h:106
Definition psstructs.h:129