SSBM Decomp
Loading...
Searching...
No Matches
cobj.c File Reference
#include <placeholder.h>
#include <dolphin/gx/forward.h>
#include "cobj.h"
#include "aobj.h"
#include "class.h"
#include "debug.h"
#include "displayfunc.h"
#include "initialize.h"
#include "mtx.h"
#include "util.h"
#include "video.h"
#include "wobj.h"
#include <math.h>
#include <dolphin/gx/GXTransform.h>
#include <dolphin/gx/types.h>
#include <dolphin/mtx.h>
#include <dolphin/mtx/mtxvec.h>
#include <dolphin/mtx/vec.h>
#include <dolphin/vi/vi.h>
#include <MetroTRK/intrinsics.h>
#include <MSL/trigf.h>

Macros

#define DegToRad(a)   ((a) * 0.01745329252F)
 

Functions

static int CObjInit (HSD_Class *o)
 
static int CObjLoad (HSD_CObj *cobj, HSD_CObjDesc *cobjdesc)
 
static void CObjInfoInit (void)
 
static void CObjUpdateFunc (void *obj, int type, HSD_ObjData *val)
 
static void CObjRelease (HSD_Class *o)
 
static void CObjAmnesia (HSD_ClassInfo *info)
 
void HSD_CObjEraseScreen (HSD_CObj *cobj, s32 enable_color, s32 enable_alpha, s32 enable_depth)
 
void HSD_CObjRemoveAnimByFlags (HSD_CObj *cobj, u32 flags)
 
void HSD_CObjRemoveAnim (HSD_CObj *cobj)
 
void HSD_CObjAddAnim (HSD_CObj *cobj, HSD_CameraAnim *canim)
 
void HSD_CObjAnim (HSD_CObj *cobj)
 
void HSD_CObjReqAnim (HSD_CObj *cobj, float startframe)
 
GXProjectionType makeProjectionMtx (HSD_CObj *cobj, Mtx mtx)
 
static bool setupOffscreenCamera (HSD_CObj *cobj)
 
static bool setupNormalCamera (HSD_CObj *cobj)
 
static bool setupTopHalfCamera (HSD_CObj *cobj)
 
static bool setupBottomHalfCamera (HSD_CObj *cobj)
 
void HSD_CObjSetupViewingMtx (HSD_CObj *cobj)
 
static void setNewProjection (HSD_CObj *cobj, Mtx44 mtx)
 
bool HSD_CObjSetCurrent (HSD_CObj *cobj)
 
void HSD_CObjEndCurrent (void)
 
HSD_WObjHSD_CObjGetInterestWObj (HSD_CObj *cobj)
 
void HSD_CObjSetInterestWObj (HSD_CObj *cobj, HSD_WObj *interest)
 
HSD_WObjHSD_CObjGetEyePositionWObj (HSD_CObj *cobj)
 
void HSD_CObjSetEyePositionWObj (HSD_CObj *cobj, HSD_WObj *eyepos)
 
void HSD_CObjGetInterest (HSD_CObj *cobj, Vec3 *interest)
 
void HSD_CObjSetInterest (HSD_CObj *cobj, Vec3 *interest)
 
void HSD_CObjGetEyePosition (HSD_CObj *cobj, Vec3 *position)
 
void HSD_CObjSetEyePosition (HSD_CObj *cobj, Vec3 *position)
 
int HSD_CObjGetEyeVector (HSD_CObj *cobj, Vec3 *eye)
 
float HSD_CObjGetEyeDistance (HSD_CObj *cobj)
 
static float upvec2roll (HSD_CObj *cobj, Vec3 *up)
 
static f64 fabsf_p (f32 *v)
 
static int roll2upvec (HSD_CObj *cobj, Vec3 *up, float roll)
 
int HSD_CObjGetUpVector (HSD_CObj *cobj, Vec3 *up)
 
void HSD_CObjSetUpVector (HSD_CObj *cobj, Vec3 *up)
 
int HSD_CObjGetLeftVector (HSD_CObj *cobj, Vec3 *left)
 
void HSD_CObjSetMtxDirty (HSD_CObj *cobj)
 
bool HSD_CObjMtxIsDirty (HSD_CObj *cobj)
 
void HSD_CObjGetViewingMtx (HSD_CObj *cobj, Mtx mtx)
 
MtxPtr HSD_CObjGetInvViewingMtxPtrDirect (HSD_CObj *cobj)
 
MtxPtr HSD_CObjGetViewingMtxPtr (HSD_CObj *cobj)
 
MtxPtr HSD_CObjGetInvViewingMtxPtr (HSD_CObj *cobj)
 
void HSD_CObjSetRoll (HSD_CObj *cobj, float roll)
 
float HSD_CObjGetFov (HSD_CObj *cobj)
 
void HSD_CObjSetFov (HSD_CObj *cobj, float fov)
 
float HSD_CObjGetAspect (HSD_CObj *cobj)
 
void HSD_CObjSetAspect (HSD_CObj *cobj, float aspect)
 
float HSD_CObjGetTop (HSD_CObj *cobj)
 
void HSD_CObjSetTop (HSD_CObj *cobj, float top)
 
float HSD_CObjGetBottom (HSD_CObj *cobj)
 
void HSD_CObjSetBottom (HSD_CObj *cobj, float bottom)
 
float HSD_CObjGetLeft (HSD_CObj *cobj)
 
void HSD_CObjSetLeft (HSD_CObj *cobj, float left)
 
float HSD_CObjGetRight (HSD_CObj *cobj)
 
void HSD_CObjSetRight (HSD_CObj *cobj, float right)
 
float HSD_CObjGetNear (HSD_CObj *cobj)
 
void HSD_CObjSetNear (HSD_CObj *cobj, float near)
 
float HSD_CObjGetFar (HSD_CObj *cobj)
 
void HSD_CObjSetFar (HSD_CObj *cobj, float far)
 
void HSD_CObjGetScissor (HSD_CObj *cobj, Scissor *scissor)
 
void HSD_CObjSetScissor (HSD_CObj *cobj, Scissor *scissor)
 
void HSD_CObjSetScissorx4 (HSD_CObj *cobj, u16 left, u16 right, u16 top, u16 bottom)
 
void HSD_CObjGetViewportf (HSD_CObj *cobj, HSD_RectF32 *viewport)
 
void HSD_CObjSetViewport (HSD_CObj *cobj, HSD_RectS16 *viewport)
 
void HSD_CObjSetViewportf (HSD_CObj *cobj, HSD_RectF32 *viewport)
 
void HSD_CObjSetViewportfx4 (HSD_CObj *cobj, float left, float right, float top, float bottom)
 
u32 HSD_CObjGetProjectionType (HSD_CObj *cobj)
 
void HSD_CObjSetProjectionType (HSD_CObj *cobj, u32 proj_type)
 
void HSD_CObjSetPerspective (HSD_CObj *cobj, float fov, float aspect)
 
void HSD_CObjSetFrustum (HSD_CObj *cobj, float top, float bottom, float left, float right)
 
void HSD_CObjSetOrtho (HSD_CObj *cobj, float top, float bottom, float left, float right)
 
void HSD_CObjGetPerspective (HSD_CObj *cobj, float *top, float *bottom)
 
void HSD_CObjGetOrtho (HSD_CObj *cobj, float *top, float *bottom, float *left, float *right)
 
u32 HSD_CObjGetFlags (HSD_CObj *cobj)
 
void HSD_CObjSetFlags (HSD_CObj *cobj, u32 flags)
 
void HSD_CObjClearFlags (HSD_CObj *cobj, u32 flags)
 
HSD_CObjHSD_CObjGetCurrent (void)
 
void HSD_CObjSetDefaultClass (HSD_ClassInfo *info)
 
HSD_CObjHSD_CObjAlloc (void)
 
static void CObjResetFlags (HSD_CObj *cobj, u32 flags)
 
void HSD_CObjInit (HSD_CObj *cobj, HSD_CObjDesc *desc)
 
HSD_CObjHSD_CObjLoadDesc (HSD_CObjDesc *desc)
 

Variables

static HSD_ClassInfodefault_class
 
static HSD_CObjcurrent
 
HSD_CObjInfo hsdCObj = { CObjInfoInit }
 
static Vec3 orig = { 0.0F, 0.0F, 0.0F }
 
static Vec3 uy = { 0.0F, 1.0F, 0.0F }
 
static Vec3 uy2 = { 0.0F, 1.0F, 0.0F }
 
const f64 HSD_CObj_804DE4C8
 

Macro Definition Documentation

◆ DegToRad

#define DegToRad (   a)    ((a) * 0.01745329252F)

Function Documentation

◆ CObjInit()

static int CObjInit ( HSD_Class o)
static

◆ CObjLoad()

static int CObjLoad ( HSD_CObj cobj,
HSD_CObjDesc cobjdesc 
)
static

◆ CObjInfoInit()

static void CObjInfoInit ( void  )
static

◆ CObjUpdateFunc()

static void CObjUpdateFunc ( void *  obj,
int  type,
HSD_ObjData val 
)
static

◆ CObjRelease()

void CObjRelease ( HSD_Class o)
static

◆ CObjAmnesia()

static void CObjAmnesia ( HSD_ClassInfo info)
static

◆ HSD_CObjEraseScreen()

void HSD_CObjEraseScreen ( HSD_CObj cobj,
s32  enable_color,
s32  enable_alpha,
s32  enable_depth 
)

◆ HSD_CObjRemoveAnimByFlags()

void HSD_CObjRemoveAnimByFlags ( HSD_CObj cobj,
u32  flags 
)

◆ HSD_CObjRemoveAnim()

void HSD_CObjRemoveAnim ( HSD_CObj cobj)

◆ HSD_CObjAddAnim()

void HSD_CObjAddAnim ( HSD_CObj cobj,
HSD_CameraAnim canim 
)

◆ HSD_CObjAnim()

void HSD_CObjAnim ( HSD_CObj cobj)

◆ HSD_CObjReqAnim()

void HSD_CObjReqAnim ( HSD_CObj cobj,
float  startframe 
)

◆ makeProjectionMtx()

GXProjectionType makeProjectionMtx ( HSD_CObj cobj,
Mtx  mtx 
)

◆ setupOffscreenCamera()

static bool setupOffscreenCamera ( HSD_CObj cobj)
static

◆ setupNormalCamera()

static bool setupNormalCamera ( HSD_CObj cobj)
static

◆ setupTopHalfCamera()

static bool setupTopHalfCamera ( HSD_CObj cobj)
static

◆ setupBottomHalfCamera()

static bool setupBottomHalfCamera ( HSD_CObj cobj)
static

◆ HSD_CObjSetupViewingMtx()

void HSD_CObjSetupViewingMtx ( HSD_CObj cobj)

◆ setNewProjection()

static void setNewProjection ( HSD_CObj cobj,
Mtx44  mtx 
)
static

◆ HSD_CObjSetCurrent()

bool HSD_CObjSetCurrent ( HSD_CObj cobj)

◆ HSD_CObjEndCurrent()

void HSD_CObjEndCurrent ( void  )

◆ HSD_CObjGetInterestWObj()

HSD_WObj * HSD_CObjGetInterestWObj ( HSD_CObj cobj)

◆ HSD_CObjSetInterestWObj()

void HSD_CObjSetInterestWObj ( HSD_CObj cobj,
HSD_WObj interest 
)

◆ HSD_CObjGetEyePositionWObj()

HSD_WObj * HSD_CObjGetEyePositionWObj ( HSD_CObj cobj)

◆ HSD_CObjSetEyePositionWObj()

void HSD_CObjSetEyePositionWObj ( HSD_CObj cobj,
HSD_WObj eyepos 
)

◆ HSD_CObjGetInterest()

void HSD_CObjGetInterest ( HSD_CObj cobj,
Vec3 interest 
)

◆ HSD_CObjSetInterest()

void HSD_CObjSetInterest ( HSD_CObj cobj,
Vec3 interest 
)

◆ HSD_CObjGetEyePosition()

void HSD_CObjGetEyePosition ( HSD_CObj cobj,
Vec3 position 
)

◆ HSD_CObjSetEyePosition()

void HSD_CObjSetEyePosition ( HSD_CObj cobj,
Vec3 position 
)

◆ HSD_CObjGetEyeVector()

int HSD_CObjGetEyeVector ( HSD_CObj cobj,
Vec3 eye 
)

◆ HSD_CObjGetEyeDistance()

float HSD_CObjGetEyeDistance ( HSD_CObj cobj)

◆ upvec2roll()

static float upvec2roll ( HSD_CObj cobj,
Vec3 up 
)
static

◆ fabsf_p()

static f64 fabsf_p ( f32 v)
inlinestatic

◆ roll2upvec()

static int roll2upvec ( HSD_CObj cobj,
Vec3 up,
float  roll 
)
static

◆ HSD_CObjGetUpVector()

int HSD_CObjGetUpVector ( HSD_CObj cobj,
Vec3 up 
)

◆ HSD_CObjSetUpVector()

void HSD_CObjSetUpVector ( HSD_CObj cobj,
Vec3 up 
)

◆ HSD_CObjGetLeftVector()

int HSD_CObjGetLeftVector ( HSD_CObj cobj,
Vec3 left 
)

◆ HSD_CObjSetMtxDirty()

void HSD_CObjSetMtxDirty ( HSD_CObj cobj)

◆ HSD_CObjMtxIsDirty()

bool HSD_CObjMtxIsDirty ( HSD_CObj cobj)

◆ HSD_CObjGetViewingMtx()

void HSD_CObjGetViewingMtx ( HSD_CObj cobj,
Mtx  mtx 
)

◆ HSD_CObjGetInvViewingMtxPtrDirect()

MtxPtr HSD_CObjGetInvViewingMtxPtrDirect ( HSD_CObj cobj)

◆ HSD_CObjGetViewingMtxPtr()

MtxPtr HSD_CObjGetViewingMtxPtr ( HSD_CObj cobj)

◆ HSD_CObjGetInvViewingMtxPtr()

MtxPtr HSD_CObjGetInvViewingMtxPtr ( HSD_CObj cobj)

◆ HSD_CObjSetRoll()

void HSD_CObjSetRoll ( HSD_CObj cobj,
float  roll 
)

◆ HSD_CObjGetFov()

float HSD_CObjGetFov ( HSD_CObj cobj)

◆ HSD_CObjSetFov()

void HSD_CObjSetFov ( HSD_CObj cobj,
float  fov 
)

◆ HSD_CObjGetAspect()

float HSD_CObjGetAspect ( HSD_CObj cobj)

◆ HSD_CObjSetAspect()

void HSD_CObjSetAspect ( HSD_CObj cobj,
float  aspect 
)

◆ HSD_CObjGetTop()

float HSD_CObjGetTop ( HSD_CObj cobj)

◆ HSD_CObjSetTop()

void HSD_CObjSetTop ( HSD_CObj cobj,
float  top 
)

◆ HSD_CObjGetBottom()

float HSD_CObjGetBottom ( HSD_CObj cobj)

◆ HSD_CObjSetBottom()

void HSD_CObjSetBottom ( HSD_CObj cobj,
float  bottom 
)

◆ HSD_CObjGetLeft()

float HSD_CObjGetLeft ( HSD_CObj cobj)

◆ HSD_CObjSetLeft()

void HSD_CObjSetLeft ( HSD_CObj cobj,
float  left 
)

◆ HSD_CObjGetRight()

float HSD_CObjGetRight ( HSD_CObj cobj)

◆ HSD_CObjSetRight()

void HSD_CObjSetRight ( HSD_CObj cobj,
float  right 
)

◆ HSD_CObjGetNear()

float HSD_CObjGetNear ( HSD_CObj cobj)

◆ HSD_CObjSetNear()

void HSD_CObjSetNear ( HSD_CObj cobj,
float  near 
)

◆ HSD_CObjGetFar()

float HSD_CObjGetFar ( HSD_CObj cobj)

◆ HSD_CObjSetFar()

void HSD_CObjSetFar ( HSD_CObj cobj,
float  far 
)

◆ HSD_CObjGetScissor()

void HSD_CObjGetScissor ( HSD_CObj cobj,
Scissor scissor 
)

◆ HSD_CObjSetScissor()

void HSD_CObjSetScissor ( HSD_CObj cobj,
Scissor scissor 
)

◆ HSD_CObjSetScissorx4()

void HSD_CObjSetScissorx4 ( HSD_CObj cobj,
u16  left,
u16  right,
u16  top,
u16  bottom 
)

◆ HSD_CObjGetViewportf()

void HSD_CObjGetViewportf ( HSD_CObj cobj,
HSD_RectF32 viewport 
)

◆ HSD_CObjSetViewport()

void HSD_CObjSetViewport ( HSD_CObj cobj,
HSD_RectS16 viewport 
)

◆ HSD_CObjSetViewportf()

void HSD_CObjSetViewportf ( HSD_CObj cobj,
HSD_RectF32 viewport 
)

◆ HSD_CObjSetViewportfx4()

void HSD_CObjSetViewportfx4 ( HSD_CObj cobj,
float  left,
float  right,
float  top,
float  bottom 
)

◆ HSD_CObjGetProjectionType()

u32 HSD_CObjGetProjectionType ( HSD_CObj cobj)

◆ HSD_CObjSetProjectionType()

void HSD_CObjSetProjectionType ( HSD_CObj cobj,
u32  proj_type 
)

◆ HSD_CObjSetPerspective()

void HSD_CObjSetPerspective ( HSD_CObj cobj,
float  fov,
float  aspect 
)

◆ HSD_CObjSetFrustum()

void HSD_CObjSetFrustum ( HSD_CObj cobj,
float  top,
float  bottom,
float  left,
float  right 
)

◆ HSD_CObjSetOrtho()

void HSD_CObjSetOrtho ( HSD_CObj cobj,
float  top,
float  bottom,
float  left,
float  right 
)

◆ HSD_CObjGetPerspective()

void HSD_CObjGetPerspective ( HSD_CObj cobj,
float *  top,
float *  bottom 
)

◆ HSD_CObjGetOrtho()

void HSD_CObjGetOrtho ( HSD_CObj cobj,
float *  top,
float *  bottom,
float *  left,
float *  right 
)

◆ HSD_CObjGetFlags()

u32 HSD_CObjGetFlags ( HSD_CObj cobj)

◆ HSD_CObjSetFlags()

void HSD_CObjSetFlags ( HSD_CObj cobj,
u32  flags 
)

◆ HSD_CObjClearFlags()

void HSD_CObjClearFlags ( HSD_CObj cobj,
u32  flags 
)

◆ HSD_CObjGetCurrent()

HSD_CObj * HSD_CObjGetCurrent ( void  )

◆ HSD_CObjSetDefaultClass()

void HSD_CObjSetDefaultClass ( HSD_ClassInfo info)

◆ HSD_CObjAlloc()

HSD_CObj * HSD_CObjAlloc ( void  )

◆ CObjResetFlags()

static void CObjResetFlags ( HSD_CObj cobj,
u32  flags 
)
inlinestatic

◆ HSD_CObjInit()

void HSD_CObjInit ( HSD_CObj cobj,
HSD_CObjDesc desc 
)

◆ HSD_CObjLoadDesc()

HSD_CObj * HSD_CObjLoadDesc ( HSD_CObjDesc desc)

Variable Documentation

◆ default_class

HSD_ClassInfo* default_class
static

◆ current

HSD_CObj* current
static

◆ hsdCObj

HSD_CObjInfo hsdCObj = { CObjInfoInit }

◆ orig

Vec3 orig = { 0.0F, 0.0F, 0.0F }
static

◆ uy

Vec3 uy = { 0.0F, 1.0F, 0.0F }
static

◆ uy2

Vec3 uy2 = { 0.0F, 1.0F, 0.0F }
static

◆ HSD_CObj_804DE4C8

const f64 HSD_CObj_804DE4C8
extern