SSBM Decomp
Loading...
Searching...
No Matches
eflib.c File Reference
#include "eflib.h"
#include "efasync.h"
#include "inlines.h"
#include "types.h"
#include <placeholder.h>
#include "baselib/displayfunc.h"
#include "baselib/forward.h"
#include "baselib/gobj.h"
#include "baselib/gobjgxlink.h"
#include "baselib/gobjobject.h"
#include "baselib/gobjplink.h"
#include "baselib/gobjproc.h"
#include "baselib/gobjuserdata.h"
#include "baselib/mtx.h"
#include "baselib/psdisp.h"
#include "baselib/psstructs.h"
#include "baselib/state.h"
#include "dolphin/mtx.h"
#include "ef/forward.h"
#include "ft/forward.h"
#include "ft/inlines.h"
#include "ft/types.h"
#include "ftCommon/ftCo_Bury.h"
#include "gr/grlib.h"
#include "lb/lb_00B0.h"
#include "lb/lb_00F9.h"
#include <runtime.h>
#include <trigf.h>
#include <baselib/jobj.h>
#include <baselib/particle.h>
#include <baselib/psappsrt.h>

Data Structures

struct  UnkStruct8039EFAC
 #include <cstddef> More...
 
struct  struct_efLib_80458F60_0x8
 static HSD_JObj** efLib_80458EE0; More...
 

Functions

void efLib_8005B4B8 (void)
 
void efLib_8005B704 (HSD_GObj *arg_gobj, s32 arg1)
 
void efLib_8005B780 (HSD_GObj *gobj)
 
void efLib_DestroyAll (HSD_GObj *arg_gobj)
 
void efLib_PauseAll (HSD_GObj *arg_gobj)
 
void efLib_ResumeAll (HSD_GObj *arg_gobj)
 
void Effect_RemoveUserData (void *effect)
 
void efLib_8005BBB4 (u32 arg1, f32 arg8)
 
void fn_8005BC50 (HSD_GObj *gobj)
 
EffectefLib_8005BE88 (int arg0, HSD_GObj *parent_gobj)
 
EffectefLib_8005C1B4 (u32 arg0, HSD_GObj *arg_gobj, HSD_JObj *arg_jobj)
 
EffectefLib_8005C2BC (u32 arg0, HSD_GObj *arg_gobj, HSD_JObj *arg_jobj)
 
EffectefLib_8005C3DC (u32 arg0, HSD_GObj *arg_gobj, HSD_JObj *arg_jobj)
 
EffectefLib_8005C5C4 (u32 arg0, HSD_GObj *arg_gobj, HSD_JObj *arg_jobj)
 #pragma dont_inline on
 
EffectefLib_8005C6F4 (u32 arg0, HSD_GObj *arg_gobj, void *unused_arg)
 
EffectefLib_8005C814 (u32 arg0, HSD_GObj *arg_gobj, Vec3 *arg_vec3)
 #pragma dont_inline reset
 
void fn_8005C904 (HSD_GObj *gobj, int arg1)
 
void efLib_8005C9A4 (HSD_GObj *gobj)
 
void fn_8005C9D0 (HSD_GObj *gobj)
 
HSD_GeneratorefLib_8005C9FC (s32 arg0, Vec3 *arg_vec3)
 /* 05C9FC ‍/ Effect efLib_8005C9FC();
 
HSD_GeneratorefLib_8005CAB0 (s32 arg0)
 /* 05C9FC ‍/ Effect efLib_8005C9FC(u32, Vec3*, f32, Vec3*, ...);
 
HSD_GeneratorefLib_8005CB34 (s32 arg0, Vec3 *arg_vec3, f32 arg2)
 
HSD_GeneratorefLib_8005CC2C (s32 arg0, HSD_JObj *jobj)
 
HSD_GeneratorefLib_8005C_inline (s32 arg0, HSD_JObj *jobj)
 
HSD_GeneratorefLib_8005CC84 (s32 arg0, HSD_JObj *jobj)
 /* 05CC84 ‍/ HSD_Generator efLib_8005CC84(u32, HSD_JObj*, ...);
 
HSD_GeneratorefLib_8005CD2C (s32 arg0, void *vlist, HSD_GObj *arg_gobj)
 
HSD_GeneratorefLib_8005CE48 (s32 arg0, void *vlist)
 
HSD_GeneratorefLib_8005CF40 (s32 arg0, void *vlist)
 
HSD_GeneratorefLib_8005D044 (s32 arg0, void *vlist)
 
HSD_JObjefLib_8005D174_inner_inline1 (HSD_JObj *jobj_1)
 
HSD_psAppSRTefLib_8005D174_inner_inline2 (HSD_Generator *generator_1)
 
void efLib_8005D174_inline1 (HSD_Generator *generator_1)
 
void efLib_8005D174 (int arg0, s32 arg1, HSD_JObj *arg_jobj, s32 arg3)
 Sorry for the mess!! The inlines were made for convenience of splitting up the inner chunks, not by trying to mimic original inlining Likely need to be remade to match how inlines were actually written For more work/alternatives for this function that may be helpful, see https://decomp.me/scratch/VjlDJ.
 
void fn_8005DB20 (s32 arg0, s32 arg1, s32 arg2, HSD_JObj *arg3)
 
void fn_8005DB70 (int arg0, int lo, int hi, HSD_JObj *jobj)
 
void efLib_8005DBC0 (HSD_Particle *particle)
 
void efLib_8005DDB8 (Effect *effect)
 void fn_8005DCD0(void* arg0) { s8* temp_r6;
 
void efLib_8005DE94 (Effect *effect)
 
void efLib_8005E090 (Effect *effect)
 
void efLib_8005E1D8 (Effect *effect)
 
void efLib_8005E2B4 (Effect *effect)
 
void efLib_8005E3A0 (Effect *arg_effect)
 
void efLib_8005E648 (Effect *arg_effect)
 
void efLib_8005E950 (Effect *arg_effect)
 
void efLib_8005EB70 (Effect *arg_effect)
 
void efLib_8005EBC8 (Effect *arg_effect)
 
void efLib_8005EDDC (Effect *arg_effect)
 
void efLib_8005F08C (Effect *arg_effect)
 
void efLib_8005F270 (Effect *arg_effect)
 
void efLib_8005F454 (Effect *arg_effect)
 
void efLib_8005F748 (Effect *arg_effect)
 
void efLib_8005F774 (HSD_JObj *arg_jobj, s32 arg1, u32 arg2, u32 arg3)
 
void efLib_8005F864 (HSD_GObj *gobj, s8 arg1, f32 arg2, f32 arg3)
 
void efLib_8005F990 (HSD_GObj *gobj, s32 arg1)
 
void efLib_8005FAB8 (Effect *arg_effect)
 
void fn_8005FBE4 (Effect *arg_effect)
 
EffectefLib_8005FCD8 (int arg0, HSD_GObj *gobj, HSD_JObj *jobj, Vec3 *vec)
 

Variables

struct _struct_efAsync_803C025C_0xC efAsync_803C025C [51]
 static s8 efLib_803BF7A0[0x18] = "Duplicate Free %08X\n"; static s8 efLib_803BF7B8[0x4C] = "can't remove no force effect!\n\0\0error no parent gobj!\n\0\0Over Anime Call\n"; static s8 efLib_803BF804[0xA] = "translate"; static s8 efLib_803BF81C[0x2C] = "!(jobj->flags & JOBJ_USE_QUATERNION)";
 
HSD_ObjAllocData Effect_AllocData
 
struct _struct_efLib_80458EE0_0x8 efLib_80458EE0 [16]
 
static struct struct_efLib_80458F60_0x8 efLib_80458F60 [8]
 
static s8 efLib_804D39A0 [8] = "eflib.c"
 
static s8 efLib_804D39A8 = 0x30
 
static s8 efLib_804D39AC [8] = "jobj.h"
 
static s8 efLib_804D39B4 [8] = "jobj"
 
static s8 efLib_804D39BC [0xC] = "scale"
 
u32 efLib_804D64E8
 
u32 efLib_804D64EC
 
s32 efLib_804D64F0
 

Function Documentation

◆ efLib_8005B4B8()

void efLib_8005B4B8 ( void  )

◆ efLib_8005B704()

void efLib_8005B704 ( HSD_GObj arg_gobj,
s32  arg1 
)

◆ efLib_8005B780()

void efLib_8005B780 ( HSD_GObj gobj)

◆ efLib_DestroyAll()

void efLib_DestroyAll ( HSD_GObj arg_gobj)

◆ efLib_PauseAll()

void efLib_PauseAll ( HSD_GObj arg_gobj)

◆ efLib_ResumeAll()

void efLib_ResumeAll ( HSD_GObj arg_gobj)

◆ Effect_RemoveUserData()

void Effect_RemoveUserData ( void *  effect)

◆ efLib_8005BBB4()

void efLib_8005BBB4 ( u32  arg1,
f32  arg8 
)

◆ fn_8005BC50()

void fn_8005BC50 ( HSD_GObj gobj)

◆ efLib_8005BE88()

Effect * efLib_8005BE88 ( int  arg0,
HSD_GObj parent_gobj 
)

@

Todo:
Inline that returns ret_gobj?

◆ efLib_8005C1B4()

Effect * efLib_8005C1B4 ( u32  arg0,
HSD_GObj arg_gobj,
HSD_JObj arg_jobj 
)

◆ efLib_8005C2BC()

Effect * efLib_8005C2BC ( u32  arg0,
HSD_GObj arg_gobj,
HSD_JObj arg_jobj 
)

◆ efLib_8005C3DC()

Effect * efLib_8005C3DC ( u32  arg0,
HSD_GObj arg_gobj,
HSD_JObj arg_jobj 
)

◆ efLib_8005C5C4()

Effect * efLib_8005C5C4 ( u32  arg0,
HSD_GObj arg_gobj,
HSD_JObj arg_jobj 
)

#pragma dont_inline on

◆ efLib_8005C6F4()

Effect * efLib_8005C6F4 ( u32  arg0,
HSD_GObj arg_gobj,
void *  unused_arg 
)

◆ efLib_8005C814()

Effect * efLib_8005C814 ( u32  arg0,
HSD_GObj arg_gobj,
Vec3 *  arg_vec3 
)

#pragma dont_inline reset

◆ fn_8005C904()

void fn_8005C904 ( HSD_GObj gobj,
int  arg1 
)

◆ efLib_8005C9A4()

void efLib_8005C9A4 ( HSD_GObj gobj)

◆ fn_8005C9D0()

void fn_8005C9D0 ( HSD_GObj gobj)

◆ efLib_8005C9FC()

HSD_Generator * efLib_8005C9FC ( s32  arg0,
Vec3 *  arg_vec3 
)

/* 05C9FC ‍/ Effect efLib_8005C9FC();

◆ efLib_8005CAB0()

HSD_Generator * efLib_8005CAB0 ( s32  arg0)

/* 05C9FC ‍/ Effect efLib_8005C9FC(u32, Vec3*, f32, Vec3*, ...);

◆ efLib_8005CB34()

HSD_Generator * efLib_8005CB34 ( s32  arg0,
Vec3 *  arg_vec3,
f32  arg2 
)

◆ efLib_8005CC2C()

HSD_Generator * efLib_8005CC2C ( s32  arg0,
HSD_JObj jobj 
)

◆ efLib_8005C_inline()

HSD_Generator * efLib_8005C_inline ( s32  arg0,
HSD_JObj jobj 
)
inline

◆ efLib_8005CC84()

HSD_Generator * efLib_8005CC84 ( s32  arg0,
HSD_JObj jobj 
)

/* 05CC84 ‍/ HSD_Generator efLib_8005CC84(u32, HSD_JObj*, ...);

◆ efLib_8005CD2C()

HSD_Generator * efLib_8005CD2C ( s32  arg0,
void *  vlist,
HSD_GObj arg_gobj 
)

◆ efLib_8005CE48()

HSD_Generator * efLib_8005CE48 ( s32  arg0,
void *  vlist 
)

◆ efLib_8005CF40()

HSD_Generator * efLib_8005CF40 ( s32  arg0,
void *  vlist 
)

◆ efLib_8005D044()

HSD_Generator * efLib_8005D044 ( s32  arg0,
void *  vlist 
)

◆ efLib_8005D174_inner_inline1()

HSD_JObj * efLib_8005D174_inner_inline1 ( HSD_JObj jobj_1)
inline

◆ efLib_8005D174_inner_inline2()

HSD_psAppSRT * efLib_8005D174_inner_inline2 ( HSD_Generator generator_1)
inline

◆ efLib_8005D174_inline1()

void efLib_8005D174_inline1 ( HSD_Generator generator_1)
inline

◆ efLib_8005D174()

void efLib_8005D174 ( int  arg0,
s32  arg1,
HSD_JObj arg_jobj,
s32  arg3 
)

Sorry for the mess!! The inlines were made for convenience of splitting up the inner chunks, not by trying to mimic original inlining Likely need to be remade to match how inlines were actually written For more work/alternatives for this function that may be helpful, see https://decomp.me/scratch/VjlDJ.

◆ fn_8005DB20()

void fn_8005DB20 ( s32  arg0,
s32  arg1,
s32  arg2,
HSD_JObj arg3 
)

◆ fn_8005DB70()

void fn_8005DB70 ( int  arg0,
int  lo,
int  hi,
HSD_JObj jobj 
)

◆ efLib_8005DBC0()

void efLib_8005DBC0 ( HSD_Particle particle)

◆ efLib_8005DDB8()

void efLib_8005DDB8 ( Effect effect)

void fn_8005DCD0(void* arg0) { s8* temp_r6;

temp_r6 = "Duplicate Free %08X\n"; if ((u32) arg0->unk20 == (u32) (ptclref->unk258 + 0x3C)) { hsd_8039D1E4(arg0, (s32) (temp_r6 + 0x70)); } if ((u32) arg0->unk20 == (u32) (ptclref->unk25C + 0x3C)) { hsd_8039D1E4(arg0, (s32) (temp_r6 + 0x70)); } if ((u32) arg0->unk20 == (u32) (ptclref->unk260 + 0x3C)) { hsd_8039D1E4(arg0, (s32) (temp_r6 + 0x70)); } if ((u32) arg0->unk20 == (u32) (ptclref->unk86C + 0x3C)) { hsd_8039D1E4(arg0, (s32) (temp_r6 + 0x70)); } }

◆ efLib_8005DE94()

void efLib_8005DE94 ( Effect effect)

◆ efLib_8005E090()

void efLib_8005E090 ( Effect effect)

◆ efLib_8005E1D8()

void efLib_8005E1D8 ( Effect effect)

◆ efLib_8005E2B4()

void efLib_8005E2B4 ( Effect effect)

◆ efLib_8005E3A0()

void efLib_8005E3A0 ( Effect arg_effect)

◆ efLib_8005E648()

void efLib_8005E648 ( Effect arg_effect)

◆ efLib_8005E950()

void efLib_8005E950 ( Effect arg_effect)

◆ efLib_8005EB70()

void efLib_8005EB70 ( Effect arg_effect)

◆ efLib_8005EBC8()

void efLib_8005EBC8 ( Effect arg_effect)

◆ efLib_8005EDDC()

void efLib_8005EDDC ( Effect arg_effect)

◆ efLib_8005F08C()

void efLib_8005F08C ( Effect arg_effect)

◆ efLib_8005F270()

void efLib_8005F270 ( Effect arg_effect)

◆ efLib_8005F454()

void efLib_8005F454 ( Effect arg_effect)

◆ efLib_8005F748()

void efLib_8005F748 ( Effect arg_effect)

◆ efLib_8005F774()

void efLib_8005F774 ( HSD_JObj arg_jobj,
s32  arg1,
u32  arg2,
u32  arg3 
)

◆ efLib_8005F864()

void efLib_8005F864 ( HSD_GObj gobj,
s8  arg1,
f32  arg2,
f32  arg3 
)

◆ efLib_8005F990()

void efLib_8005F990 ( HSD_GObj gobj,
s32  arg1 
)

◆ efLib_8005FAB8()

void efLib_8005FAB8 ( Effect arg_effect)

◆ fn_8005FBE4()

void fn_8005FBE4 ( Effect arg_effect)

◆ efLib_8005FCD8()

Effect * efLib_8005FCD8 ( int  arg0,
HSD_GObj gobj,
HSD_JObj jobj,
Vec3 *  vec 
)

Variable Documentation

◆ efAsync_803C025C

struct _struct_efAsync_803C025C_0xC efAsync_803C025C[51]
extern

static s8 efLib_803BF7A0[0x18] = "Duplicate Free %08X\n"; static s8 efLib_803BF7B8[0x4C] = "can't remove no force effect!\n\0\0error no parent gobj!\n\0\0Over Anime Call\n"; static s8 efLib_803BF804[0xA] = "translate"; static s8 efLib_803BF81C[0x2C] = "!(jobj->flags & JOBJ_USE_QUATERNION)";

◆ Effect_AllocData

HSD_ObjAllocData Effect_AllocData

◆ efLib_80458EE0

struct _struct_efLib_80458EE0_0x8 efLib_80458EE0[16]

◆ efLib_80458F60

struct struct_efLib_80458F60_0x8 efLib_80458F60[8]
static

◆ efLib_804D39A0

s8 efLib_804D39A0[8] = "eflib.c"
static

◆ efLib_804D39A8

s8 efLib_804D39A8 = 0x30
static

◆ efLib_804D39AC

s8 efLib_804D39AC[8] = "jobj.h"
static

◆ efLib_804D39B4

s8 efLib_804D39B4[8] = "jobj"
static

◆ efLib_804D39BC

s8 efLib_804D39BC[0xC] = "scale"
static

◆ efLib_804D64E8

u32 efLib_804D64E8

◆ efLib_804D64EC

u32 efLib_804D64EC

◆ efLib_804D64F0

s32 efLib_804D64F0