SSBM Decomp
Loading...
Searching...
No Matches
lbcollision.c File Reference
#include <platform.h>
#include <placeholder.h>
#include "ft/forward.h"
#include "lb/forward.h"
#include <dolphin/gx/forward.h>
#include "lbcollision.h"
#include "lb_00B0.h"
#include "lbaudio_ax.h"
#include "lbvector.h"
#include "lb/types.h"
#include <math.h>
#include <dolphin/gx/types.h>
#include <dolphin/mtx.h>
#include <dolphin/mtx/mtxvec.h>
#include <dolphin/mtx/types.h>
#include <dolphin/mtx/vec.h>
#include <baselib/debug.h>
#include <baselib/jobj.h>
#include <baselib/mtx.h>
#include <baselib/particle.h>
#include <MetroTRK/intrinsics.h>

Data Structures

struct  unk
 

Functions

static bool lbColl_80006E58 (Vec3 *arg0, Vec3 *arg1, Vec3 *arg2, Vec3 *arg3, Vec3 *arg4, Vec3 *arg5, MtxPtr arg6, Vec3 *arg7, float *arg8, float scl, float arg10, float arg11)
 
int lbColl_80005BB0 (HitCapsule *arg0, int arg1)
 
int lbColl_80005C44 (Vec3 *arg0, Vec3 *arg1, Vec3 *arg2, Vec3 *arg3, float arg8, float arg9)
 
float lbColl_80005EBC (Vec3 *arg0, Vec3 *arg1, Vec3 *arg2, float *arg3)
 
float lbColl_80005FC0 (Vec3 *a, Vec3 *b, Vec3 *c, float *out)
 
bool end (Vec3 *a, Vec3 *b, float unk_sum)
 
int lbColl_80006094 (Vec3 *arg0, Vec3 *arg1, Vec3 *arg2, Vec3 *arg3, Vec3 *arg4, Vec3 *arg5, float arg6, float arg7)
 
bool lbColl_800067F8 (Vec3 *a, Vec3 *b, Vec3 *c, Vec3 *d, Vec3 *e, Vec3 *f, float p, float q, float r)
 
float sqrDistance (Vec3 *a, Vec3 *b)
 
void lbColl_800077A0 (Vec3 *a, MtxPtr arg1, Vec3 *b, Vec3 *c, Vec3 *d, Vec3 *e, float *angle, float x, float dist_offset)
 
bool lbColl_80007AFC (HitCapsule *a, HitCapsule *b, float x, float y)
 
void lbColl_80007B78 (Mtx a, Mtx b, float x, float y)
 
static void HSD_JObjGetMtx_fake (HSD_JObj *jobj)
 
static MtxPtr HSD_JObjGetMtxPtr_fake (HSD_JObj *jobj)
 
bool lbColl_80007BCC (HitCapsule *arg0, HitResult *shield_hit, void *arg2, s32 arg3, float arg4, float arg5, float arg6)
 
static bool lbColl_JObjMtxIsDirty (HSD_JObj *jobj)
 
void lbColl_JObjSetupMatrix (HSD_JObj *jobj)
 
void lbColl_80007DD8 (HitCapsule *capsule, HitResult *hit, Mtx hit_transform, Vec3 *arg3, float *angle, float scale)
 
bool lbColl_80007ECC (HitCapsule *arg0, HurtCapsule *arg1, Mtx arg2, float hit_scl_y, float hurt_scl_y, float hurt_pos_z)
 
bool lbColl_8000805C (HitCapsule *arg0, HurtCapsule *arg1, Mtx arg2, s32 arg3, float arg4, float arg5, float arg6)
 
void checkPos (HurtCapsule *hurt, Mtx mtx, float arg5)
 
void mtxConcat (HurtCapsule *hurt, Mtx mtx)
 
MtxPtr pickMtx (HurtCapsule *hurt, Mtx mtx)
 
float getHit1C (HitCapsule *hit, float arg3)
 
bool lbColl_80008248 (HitCapsule *hit, HurtCapsule *hurt, Mtx mtx, float arg3, float arg4, float arg5)
 
void lbColl_800083C4 (HurtCapsule *arg0)
 
void lbColl_80008428 (HitCapsule *arg0)
 
void lbColl_80008434 (HitCapsule *arg0)
 
void lbColl_80008440 (HitCapsule *hit)
 
void lbColl_CopyHitCapsule (HitCapsule *src, HitCapsule *dst)
 
bool lbColl_80008688 (HitCapsule *arg0, int arg1, void *arg2)
 
void lbColl_800089B8 (HitCapsule *hit, UNK_T arg1)
 
void lbColl_80008A5C (HitCapsule *hit)
 
bool lbColl_80009F54 (HitCapsule *hit, u32 arg1, float arg8)
 
bool lbColl_8000A044 (HitCapsule *hit, u32 arg1, float arg8)
 
bool lbColl_8000A584 (HurtCapsule *hurt, u32 arg1, u32 arg2, Mtx arg3, f32 arg8)
 
bool lbColl_8000A460 (Foo *hurt, u32 arg1)
 
bool lbColl_8000A244 (HurtCapsule *hurt, u32 arg1, Mtx arg2, float arg3)
 
bool lbColl_8000A95C (HitResult *hit, u32 arg1, Mtx arg2, f32 pos_z)
 
bool lbColl_8000ACFC (UNK_T victim, HitCapsule *hitbox)
 

Variables

char lbColl_804D3700 [8]
 
char lbColl_804D3708 [8]
 
int lbColl_804D36D4
 
int lbColl_804D36D8
 
float const lbColl_804D79F0 = 1e-5
 
float const lbColl_804D79F4 = -1e-5
 
float const lbColl_804D79F8 = 0
 
f64 const lbColl_804D7A00 = 1
 
float const lbColl_804D7A08 = 1
 
f64 const lbColl_804D7A10 = 0
 
f64 const lbColl_804D7A18 = 0.5
 
f64 const lbColl_804D7A20 = 3.0
 
float const lbColl_804D7A28 = 2
 
float const lbColl_804D7A2C = 4
 
float const lbColl_804D7A30 = M_PI
 
float const lbColl_804D7A34 = 20
 
float const lbColl_804D7A38 = 3
 
float const lbColl_804D7A3C = 0.5
 
float const lbColl_804D7A40 = 5
 
int lbColl_803B9880 []
 
struct unk lbColl_803B9928 []
 
f64 const lbColl_804D7A48 = 4503599627370496
 
GXColor const lbColl_804D7A50 = { 0 }
 
float const lbColl_804D7A54 = -1
 
u8 lbColl_804D36CC [4]
 
u8 lbColl_804D36D0 [4]
 
u8 lbColl_804D36A0 [4]
 
u8 lbColl_804D36A4 [4]
 
u8 lbColl_804D36A8 [4]
 
u8 lbColl_804D36DC [4]
 
u8 lbColl_804D36E8 [4]
 
u8 lbColl_804D36EC [4]
 
u8 lbColl_804D36E0 [4] = { 0 }
 
u32 lbColl_804D36E4 = 0
 

Function Documentation

◆ lbColl_80006E58()

bool lbColl_80006E58 ( Vec3 arg0,
Vec3 arg1,
Vec3 arg2,
Vec3 arg3,
Vec3 arg4,
Vec3 arg5,
MtxPtr  arg6,
Vec3 arg7,
float *  arg8,
float  scl,
float  arg10,
float  arg11 
)
static

◆ lbColl_80005BB0()

int lbColl_80005BB0 ( HitCapsule arg0,
int  arg1 
)

◆ lbColl_80005C44()

int lbColl_80005C44 ( Vec3 arg0,
Vec3 arg1,
Vec3 arg2,
Vec3 arg3,
float  arg8,
float  arg9 
)

◆ lbColl_80005EBC()

float lbColl_80005EBC ( Vec3 arg0,
Vec3 arg1,
Vec3 arg2,
float *  arg3 
)

◆ lbColl_80005FC0()

float lbColl_80005FC0 ( Vec3 a,
Vec3 b,
Vec3 c,
float *  out 
)

◆ end()

bool end ( Vec3 a,
Vec3 b,
float  unk_sum 
)
inline

◆ lbColl_80006094()

int lbColl_80006094 ( Vec3 arg0,
Vec3 arg1,
Vec3 arg2,
Vec3 arg3,
Vec3 arg4,
Vec3 arg5,
float  arg6,
float  arg7 
)

◆ lbColl_800067F8()

bool lbColl_800067F8 ( Vec3 a,
Vec3 b,
Vec3 c,
Vec3 d,
Vec3 e,
Vec3 f,
float  p,
float  q,
float  r 
)

◆ sqrDistance()

float sqrDistance ( Vec3 a,
Vec3 b 
)
inline

◆ lbColl_800077A0()

void lbColl_800077A0 ( Vec3 a,
MtxPtr  arg1,
Vec3 b,
Vec3 c,
Vec3 d,
Vec3 e,
float *  angle,
float  x,
float  dist_offset 
)

◆ lbColl_80007AFC()

bool lbColl_80007AFC ( HitCapsule a,
HitCapsule b,
float  x,
float  y 
)

◆ lbColl_80007B78()

void lbColl_80007B78 ( Mtx  a,
Mtx  b,
float  x,
float  y 
)
Todo:
Eliminate casts.

◆ HSD_JObjGetMtx_fake()

static void HSD_JObjGetMtx_fake ( HSD_JObj jobj)
inlinestatic

◆ HSD_JObjGetMtxPtr_fake()

static MtxPtr HSD_JObjGetMtxPtr_fake ( HSD_JObj jobj)
inlinestatic

◆ lbColl_80007BCC()

bool lbColl_80007BCC ( HitCapsule arg0,
HitResult shield_hit,
void *  arg2,
s32  arg3,
float  arg4,
float  arg5,
float  arg6 
)

◆ lbColl_JObjMtxIsDirty()

static bool lbColl_JObjMtxIsDirty ( HSD_JObj jobj)
inlinestatic

◆ lbColl_JObjSetupMatrix()

void lbColl_JObjSetupMatrix ( HSD_JObj jobj)
Todo:
This is an inlined copy of JObjSetupMatrix from lbColl_80007BCC which was too deeply nested to inline. Remove this when matching lbColl_80007BCC.

◆ lbColl_80007DD8()

void lbColl_80007DD8 ( HitCapsule capsule,
HitResult hit,
Mtx  hit_transform,
Vec3 arg3,
float *  angle,
float  scale 
)

◆ lbColl_80007ECC()

bool lbColl_80007ECC ( HitCapsule arg0,
HurtCapsule arg1,
Mtx  arg2,
float  hit_scl_y,
float  hurt_scl_y,
float  hurt_pos_z 
)

◆ lbColl_8000805C()

bool lbColl_8000805C ( HitCapsule arg0,
HurtCapsule arg1,
Mtx  arg2,
s32  arg3,
float  arg4,
float  arg5,
float  arg6 
)

◆ checkPos()

void checkPos ( HurtCapsule hurt,
Mtx  mtx,
float  arg5 
)
inline

◆ mtxConcat()

void mtxConcat ( HurtCapsule hurt,
Mtx  mtx 
)
inline

◆ pickMtx()

MtxPtr pickMtx ( HurtCapsule hurt,
Mtx  mtx 
)
inline

◆ getHit1C()

float getHit1C ( HitCapsule hit,
float  arg3 
)
inline

◆ lbColl_80008248()

bool lbColl_80008248 ( HitCapsule hit,
HurtCapsule hurt,
Mtx  mtx,
float  arg3,
float  arg4,
float  arg5 
)

◆ lbColl_800083C4()

void lbColl_800083C4 ( HurtCapsule arg0)

◆ lbColl_80008428()

void lbColl_80008428 ( HitCapsule arg0)

◆ lbColl_80008434()

void lbColl_80008434 ( HitCapsule arg0)

◆ lbColl_80008440()

void lbColl_80008440 ( HitCapsule hit)

◆ lbColl_CopyHitCapsule()

void lbColl_CopyHitCapsule ( HitCapsule src,
HitCapsule dst 
)

◆ lbColl_80008688()

bool lbColl_80008688 ( HitCapsule arg0,
int  arg1,
void *  arg2 
)

◆ lbColl_800089B8()

void lbColl_800089B8 ( HitCapsule hit,
UNK_T  arg1 
)

◆ lbColl_80008A5C()

void lbColl_80008A5C ( HitCapsule hit)

◆ lbColl_80009F54()

bool lbColl_80009F54 ( HitCapsule hit,
u32  arg1,
float  arg8 
)

◆ lbColl_8000A044()

bool lbColl_8000A044 ( HitCapsule hit,
u32  arg1,
float  arg8 
)

◆ lbColl_8000A584()

bool lbColl_8000A584 ( HurtCapsule hurt,
u32  arg1,
u32  arg2,
Mtx  arg3,
f32  arg8 
)

◆ lbColl_8000A460()

bool lbColl_8000A460 ( Foo hurt,
u32  arg1 
)

◆ lbColl_8000A244()

bool lbColl_8000A244 ( HurtCapsule hurt,
u32  arg1,
Mtx  arg2,
float  arg3 
)

◆ lbColl_8000A95C()

bool lbColl_8000A95C ( HitResult hit,
u32  arg1,
Mtx  arg2,
f32  pos_z 
)

◆ lbColl_8000ACFC()

bool lbColl_8000ACFC ( UNK_T  victim,
HitCapsule hitbox 
)

Variable Documentation

◆ lbColl_804D3700

char lbColl_804D3700
extern

◆ lbColl_804D3708

char lbColl_804D3708
extern

◆ lbColl_804D36D4

int lbColl_804D36D4
extern

◆ lbColl_804D36D8

int lbColl_804D36D8
extern

◆ lbColl_804D79F0

float const lbColl_804D79F0 = 1e-5

◆ lbColl_804D79F4

float const lbColl_804D79F4 = -1e-5

◆ lbColl_804D79F8

float const lbColl_804D79F8 = 0

◆ lbColl_804D7A00

f64 const lbColl_804D7A00 = 1

◆ lbColl_804D7A08

float const lbColl_804D7A08 = 1

◆ lbColl_804D7A10

f64 const lbColl_804D7A10 = 0

◆ lbColl_804D7A18

f64 const lbColl_804D7A18 = 0.5

◆ lbColl_804D7A20

f64 const lbColl_804D7A20 = 3.0

◆ lbColl_804D7A28

float const lbColl_804D7A28 = 2

◆ lbColl_804D7A2C

float const lbColl_804D7A2C = 4

◆ lbColl_804D7A30

float const lbColl_804D7A30 = M_PI

◆ lbColl_804D7A34

float const lbColl_804D7A34 = 20

◆ lbColl_804D7A38

float const lbColl_804D7A38 = 3

◆ lbColl_804D7A3C

float const lbColl_804D7A3C = 0.5

◆ lbColl_804D7A40

float const lbColl_804D7A40 = 5

◆ lbColl_803B9880

int lbColl_803B9880[]
Initial value:
= {
0x00083D60, 0x00083D60, 0x00083D60, 0x0000005B, 0x0000005A, 0x00000059,
0x00000058, 0x00000057, 0x00000056, 0x0000006F, 0x00000070, 0x00000071,
0x00000054, 0x00000054, 0x00000054, 0x0000005A, 0x00000059, 0x000000DF,
0x000000E1, 0x000000E1, 0x000000E1, 0x00000062, 0x00000063, 0x00000064,
0x00000065, 0x00000066, 0x00000067, 0x0004461B, 0x0004461B, 0x0004461B,
0x000000F1, 0x000000F1, 0x000000F1, 0x0000005E, 0x0000005D, 0x0000005C,
0x00035BAF, 0x00035BB2, 0x00035BB5, 0x00083D60, 0x00083D60, 0x0000020D,
}

◆ lbColl_803B9928

struct unk lbColl_803B9928[]

◆ lbColl_804D7A48

f64 const lbColl_804D7A48 = 4503599627370496

◆ lbColl_804D7A50

GXColor const lbColl_804D7A50 = { 0 }

◆ lbColl_804D7A54

float const lbColl_804D7A54 = -1

◆ lbColl_804D36CC

u8 lbColl_804D36CC[4]
extern

◆ lbColl_804D36D0

u8 lbColl_804D36D0[4]
extern

◆ lbColl_804D36A0

u8 lbColl_804D36A0[4]
extern

◆ lbColl_804D36A4

u8 lbColl_804D36A4[4]
extern

◆ lbColl_804D36A8

u8 lbColl_804D36A8[4]
extern

◆ lbColl_804D36DC

u8 lbColl_804D36DC[4]
extern

◆ lbColl_804D36E8

u8 lbColl_804D36E8[4]
extern

◆ lbColl_804D36EC

u8 lbColl_804D36EC[4]
extern

◆ lbColl_804D36E0

u8 lbColl_804D36E0[4] = { 0 }

◆ lbColl_804D36E4

u32 lbColl_804D36E4 = 0