SSBM Decomp
Loading...
Searching...
No Matches
lobj.c File Reference
#include "forward.h"
#include "lobj.h"
#include "aobj.h"
#include "class.h"
#include "cobj.h"
#include "list.h"
#include "object.h"
#include "wobj.h"
#include <dolphin/mtx.h>
#include <dolphin/mtx/mtxvec.h>
#include <dolphin/mtx/types.h>
#include <dolphin/mtx/vec.h>
#include <dolphin/os.h>

Functions

static void LObjInfoInit (void)
 
u32 HSD_LObjGetFlags (HSD_LObj *lobj)
 
void HSD_LObjSetFlags (HSD_LObj *lobj, u32 flags)
 
void HSD_LObjClearFlags (HSD_LObj *lobj, u32 flags)
 
GXLightID HSD_LObjGetLightMaskDiffuse (void)
 
s32 HSD_LObjGetLightMaskAttnFunc (void)
 
s32 HSD_LObjGetLightMaskAlpha (void)
 
s32 HSD_LObjGetLightMaskSpecular (void)
 
u32 HSD_LObjGetType (HSD_LObj *lobj)
 
void HSD_LObjSetActive (HSD_LObj *lobj)
 
s32 HSD_LObjGetNbActive (void)
 
HSD_LObjHSD_LObjGetActiveByID (GXLightID id)
 
HSD_LObjHSD_LObjGetActiveByIndex (s32 idx)
 
void HSD_LObjClearActive (void)
 
void LObjUpdateFunc (void *obj, enum_t type, HSD_ObjData *val)
 
void HSD_LObjAnim (HSD_LObj *lobj)
 
void HSD_LObjAnimAll (HSD_LObj *lobj)
 
void HSD_LObjReqAnim (HSD_LObj *lobj, f32 startframe)
 
void HSD_LObjReqAnimAll (HSD_LObj *lobj, f32 startframe)
 
void HSD_LObjGetLightVector (HSD_LObj *lobj, Vec3 *dir)
 
void HSD_LObjSetup (HSD_LObj *lobj, GXColor color, f32 shininess)
 
void HSD_LObjSetupSpecularInit (Mtx pmtx)
 
static void setup_diffuse_lightobj (HSD_LObj *lobj)
 
static void setup_spec_lightobj (HSD_LObj *lobj, Mtx mtx, s32 spec_id)
 
static void setup_infinite_lightobj (HSD_LObj *lobj, MtxPtr vmtx)
 
static void setup_point_lightobj (HSD_LObj *lobj, Mtx mtx)
 
static void setup_spot_lightobj (HSD_LObj *lobj, Mtx mtx)
 
void HSD_LObjSetupInit (HSD_CObj *cobj)
 
void HSD_LObjAddCurrent (HSD_LObj *lobj)
 
void HSD_LObjUnrefThis (HSD_LObj *lobj)
 
void HSD_LObjDeleteCurrent (HSD_LObj *lobj)
 
void LObjRemoveAll (void)
 
void HSD_LObjDeleteCurrentAll (HSD_LObj *lobj)
 
void HSD_LObjSetCurrentAll (HSD_LObj *lobj)
 
void LObjReplaceAll (HSD_LObj *lobj)
 
void HSD_LObj_803668EC (HSD_LObj *lobj)
 
HSD_LObjHSD_LObjGetCurrentByType (u16 flags)
 
u32 HSD_LightID2Index (GXLightID id)
 
s32 HSD_Index2LightID (u32 index)
 
void HSD_LObjRemoveAll (HSD_LObj *lobj)
 
void HSD_LObjSetColor (HSD_LObj *lobj, GXColor color)
 
void HSD_LObjGetColor (HSD_LObj *lobj, GXColor *color)
 
void HSD_LObjSetSpot (HSD_LObj *lobj, f32 cutoff, s32 point_func)
 
void HSD_LObjSetDistAttn (HSD_LObj *lobj, f32 ref_dist, f32 ref_br, s32 dist_func)
 
void HSD_LObjSetAttnA (HSD_LObj *lobj, f32 a0, f32 a1, f32 a2)
 
void HSD_LObjSetAttnK (HSD_LObj *lobj, f32 k0, f32 k1, f32 k2)
 
void HSD_LObjSetAttn (HSD_LObj *lobj, f32 a0, f32 a1, f32 a2, f32 k0, f32 k1, f32 k2)
 
void HSD_LObjSetPosition (HSD_LObj *lobj, Vec3 *position)
 
bool HSD_LObjGetPosition (HSD_LObj *lobj, Vec3 *position)
 
void HSD_LObjSetInterest (HSD_LObj *lobj, Vec3 *interest)
 
bool HSD_LObjGetInterest (HSD_LObj *lobj, Vec3 *interest)
 
void HSD_LObjSetDefaultClass (HSD_LObjInfo *info)
 
HSD_LObjInfoHSD_LObjGetDefaultClass (void)
 
HSD_LObjHSD_LObjAlloc (void)
 
HSD_WObjHSD_LObjGetPositionWObj (HSD_LObj *lobj)
 
HSD_WObjHSD_LObjGetInterestWObj (HSD_LObj *lobj)
 
void HSD_LObjSetPositionWObj (HSD_LObj *lobj, HSD_WObj *wobj)
 
void HSD_LObjSetInterestWObj (HSD_LObj *lobj, HSD_WObj *wobj)
 
static int LObjLoad (HSD_LObj *lobj, HSD_LightDesc *ldesc)
 
HSD_LObjHSD_LObjLoadDesc (HSD_LightDesc *ldesc)
 
void HSD_LObjAddAnim (HSD_LObj *lobj, HSD_LightAnim *lanim)
 
void HSD_LObjAddAnimAll (HSD_LObj *lobj, HSD_LightAnim *lanim)
 
static void LObjRelease (HSD_Class *o)
 
static void LObjAmnesia (HSD_ClassInfo *info)
 

Variables

HSD_LObjInfo hsdLObj = { LObjInfoInit }
 
static HSD_LObjInfodefault_class = NULL
 
static HSD_SListcurrent_lights
 
static HSD_LObjactive_lights [GX_MAX_LIGHT]
 
static s32 nb_active_lights = 0
 
static s32 lightmask_diffuse
 
static s32 lightmask_specular
 
static s32 lightmask_attnfunc
 
static s32 lightmask_alpha
 
Vec3 const HSD_LObj_803B94A0 = { 0.0F, 0.0F, 0.0F }
 
Vec3 const HSD_LObj_803B94AC = { 0.0F, 0.0F, 0.0F }
 
f32 const lbl_804DE450 = 0.5F
 
f32 const lbl_804DE454 = 0.0F
 
f32 const lbl_804DE458 = 1.0F
 
char lbl_80406190 [10]
 

Function Documentation

◆ LObjInfoInit()

static void LObjInfoInit ( void  )
static

◆ HSD_LObjGetFlags()

u32 HSD_LObjGetFlags ( HSD_LObj lobj)

◆ HSD_LObjSetFlags()

void HSD_LObjSetFlags ( HSD_LObj lobj,
u32  flags 
)

◆ HSD_LObjClearFlags()

void HSD_LObjClearFlags ( HSD_LObj lobj,
u32  flags 
)

◆ HSD_LObjGetLightMaskDiffuse()

GXLightID HSD_LObjGetLightMaskDiffuse ( void  )

◆ HSD_LObjGetLightMaskAttnFunc()

s32 HSD_LObjGetLightMaskAttnFunc ( void  )

◆ HSD_LObjGetLightMaskAlpha()

s32 HSD_LObjGetLightMaskAlpha ( void  )

◆ HSD_LObjGetLightMaskSpecular()

s32 HSD_LObjGetLightMaskSpecular ( void  )

◆ HSD_LObjGetType()

u32 HSD_LObjGetType ( HSD_LObj lobj)

◆ HSD_LObjSetActive()

void HSD_LObjSetActive ( HSD_LObj lobj)

◆ HSD_LObjGetNbActive()

s32 HSD_LObjGetNbActive ( void  )

◆ HSD_LObjGetActiveByID()

HSD_LObj * HSD_LObjGetActiveByID ( GXLightID  id)

◆ HSD_LObjGetActiveByIndex()

HSD_LObj * HSD_LObjGetActiveByIndex ( s32  idx)

◆ HSD_LObjClearActive()

void HSD_LObjClearActive ( void  )

◆ LObjUpdateFunc()

void LObjUpdateFunc ( void *  obj,
enum_t  type,
HSD_ObjData val 
)
private

◆ HSD_LObjAnim()

void HSD_LObjAnim ( HSD_LObj lobj)

◆ HSD_LObjAnimAll()

void HSD_LObjAnimAll ( HSD_LObj lobj)

◆ HSD_LObjReqAnim()

void HSD_LObjReqAnim ( HSD_LObj lobj,
f32  startframe 
)

◆ HSD_LObjReqAnimAll()

void HSD_LObjReqAnimAll ( HSD_LObj lobj,
f32  startframe 
)

◆ HSD_LObjGetLightVector()

void HSD_LObjGetLightVector ( HSD_LObj lobj,
Vec3 dir 
)

◆ HSD_LObjSetup()

void HSD_LObjSetup ( HSD_LObj lobj,
GXColor  color,
f32  shininess 
)

◆ HSD_LObjSetupSpecularInit()

void HSD_LObjSetupSpecularInit ( Mtx  pmtx)

◆ setup_diffuse_lightobj()

static void setup_diffuse_lightobj ( HSD_LObj lobj)
static

◆ setup_spec_lightobj()

static void setup_spec_lightobj ( HSD_LObj lobj,
Mtx  mtx,
s32  spec_id 
)
static

◆ setup_infinite_lightobj()

static void setup_infinite_lightobj ( HSD_LObj lobj,
MtxPtr  vmtx 
)
static

◆ setup_point_lightobj()

static void setup_point_lightobj ( HSD_LObj lobj,
Mtx  mtx 
)
static

◆ setup_spot_lightobj()

static void setup_spot_lightobj ( HSD_LObj lobj,
Mtx  mtx 
)
static

◆ HSD_LObjSetupInit()

void HSD_LObjSetupInit ( HSD_CObj cobj)

◆ HSD_LObjAddCurrent()

void HSD_LObjAddCurrent ( HSD_LObj lobj)

◆ HSD_LObjUnrefThis()

void HSD_LObjUnrefThis ( HSD_LObj lobj)

◆ HSD_LObjDeleteCurrent()

void HSD_LObjDeleteCurrent ( HSD_LObj lobj)

◆ LObjRemoveAll()

void LObjRemoveAll ( void  )
inline

◆ HSD_LObjDeleteCurrentAll()

void HSD_LObjDeleteCurrentAll ( HSD_LObj lobj)

◆ HSD_LObjSetCurrentAll()

void HSD_LObjSetCurrentAll ( HSD_LObj lobj)

◆ LObjReplaceAll()

void LObjReplaceAll ( HSD_LObj lobj)
inline

◆ HSD_LObj_803668EC()

void HSD_LObj_803668EC ( HSD_LObj lobj)

◆ HSD_LObjGetCurrentByType()

HSD_LObj * HSD_LObjGetCurrentByType ( u16  flags)

◆ HSD_LightID2Index()

u32 HSD_LightID2Index ( GXLightID  id)

◆ HSD_Index2LightID()

s32 HSD_Index2LightID ( u32  index)

◆ HSD_LObjRemoveAll()

void HSD_LObjRemoveAll ( HSD_LObj lobj)

◆ HSD_LObjSetColor()

void HSD_LObjSetColor ( HSD_LObj lobj,
GXColor  color 
)

◆ HSD_LObjGetColor()

void HSD_LObjGetColor ( HSD_LObj lobj,
GXColor color 
)

◆ HSD_LObjSetSpot()

void HSD_LObjSetSpot ( HSD_LObj lobj,
f32  cutoff,
s32  point_func 
)

◆ HSD_LObjSetDistAttn()

void HSD_LObjSetDistAttn ( HSD_LObj lobj,
f32  ref_dist,
f32  ref_br,
s32  dist_func 
)

◆ HSD_LObjSetAttnA()

void HSD_LObjSetAttnA ( HSD_LObj lobj,
f32  a0,
f32  a1,
f32  a2 
)

◆ HSD_LObjSetAttnK()

void HSD_LObjSetAttnK ( HSD_LObj lobj,
f32  k0,
f32  k1,
f32  k2 
)

◆ HSD_LObjSetAttn()

void HSD_LObjSetAttn ( HSD_LObj lobj,
f32  a0,
f32  a1,
f32  a2,
f32  k0,
f32  k1,
f32  k2 
)

◆ HSD_LObjSetPosition()

void HSD_LObjSetPosition ( HSD_LObj lobj,
Vec3 position 
)

◆ HSD_LObjGetPosition()

bool HSD_LObjGetPosition ( HSD_LObj lobj,
Vec3 position 
)

◆ HSD_LObjSetInterest()

void HSD_LObjSetInterest ( HSD_LObj lobj,
Vec3 interest 
)

◆ HSD_LObjGetInterest()

bool HSD_LObjGetInterest ( HSD_LObj lobj,
Vec3 interest 
)

◆ HSD_LObjSetDefaultClass()

void HSD_LObjSetDefaultClass ( HSD_LObjInfo info)

◆ HSD_LObjGetDefaultClass()

HSD_LObjInfo * HSD_LObjGetDefaultClass ( void  )

◆ HSD_LObjAlloc()

HSD_LObj * HSD_LObjAlloc ( void  )

◆ HSD_LObjGetPositionWObj()

HSD_WObj * HSD_LObjGetPositionWObj ( HSD_LObj lobj)

◆ HSD_LObjGetInterestWObj()

HSD_WObj * HSD_LObjGetInterestWObj ( HSD_LObj lobj)

◆ HSD_LObjSetPositionWObj()

void HSD_LObjSetPositionWObj ( HSD_LObj lobj,
HSD_WObj wobj 
)

◆ HSD_LObjSetInterestWObj()

void HSD_LObjSetInterestWObj ( HSD_LObj lobj,
HSD_WObj wobj 
)

◆ LObjLoad()

static int LObjLoad ( HSD_LObj lobj,
HSD_LightDesc ldesc 
)
static

◆ HSD_LObjLoadDesc()

HSD_LObj * HSD_LObjLoadDesc ( HSD_LightDesc ldesc)

◆ HSD_LObjAddAnim()

void HSD_LObjAddAnim ( HSD_LObj lobj,
HSD_LightAnim lanim 
)

◆ HSD_LObjAddAnimAll()

void HSD_LObjAddAnimAll ( HSD_LObj lobj,
HSD_LightAnim lanim 
)

◆ LObjRelease()

static void LObjRelease ( HSD_Class o)
static
Todo:
Unused stack

◆ LObjAmnesia()

static void LObjAmnesia ( HSD_ClassInfo info)
static

Variable Documentation

◆ hsdLObj

HSD_LObjInfo hsdLObj = { LObjInfoInit }

◆ default_class

HSD_LObjInfo* default_class = NULL
static

◆ current_lights

HSD_SList* current_lights
static

◆ active_lights

HSD_LObj* active_lights[GX_MAX_LIGHT]
static

◆ nb_active_lights

s32 nb_active_lights = 0
static

◆ lightmask_diffuse

s32 lightmask_diffuse
static

◆ lightmask_specular

s32 lightmask_specular
static

◆ lightmask_attnfunc

s32 lightmask_attnfunc
static

◆ lightmask_alpha

s32 lightmask_alpha
static

◆ HSD_LObj_803B94A0

Vec3 const HSD_LObj_803B94A0 = { 0.0F, 0.0F, 0.0F }

◆ HSD_LObj_803B94AC

Vec3 const HSD_LObj_803B94AC = { 0.0F, 0.0F, 0.0F }

◆ lbl_804DE450

f32 const lbl_804DE450 = 0.5F

◆ lbl_804DE454

f32 const lbl_804DE454 = 0.0F

◆ lbl_804DE458

f32 const lbl_804DE458 = 1.0F

◆ lbl_80406190

char lbl_80406190[10]
extern