|
SSBM Decomp
|
#include "lbcollision.h"#include <Runtime/platform.h>#include <math.h>#include <placeholder.h>#include "forward.h"#include "lb_00B0.h"#include "lbaudio_ax.h"#include "lbvector.h"#include "types.h"#include <dolphin/gx.h>#include <dolphin/mtx.h>#include <melee/ft/types.h>#include <sysdolphin/baselib/cobj.h>#include <sysdolphin/baselib/jobj.h>#include <sysdolphin/baselib/mtx.h>#include <sysdolphin/baselib/state.h>#include <sysdolphin/baselib/tev.h>Data Structures | |
| struct | unk |
Functions | |
| static bool | lbColl_80006E58 (Vec3 *hit_start, Vec3 *hit_end, Vec3 *hurt_start, Vec3 *hurt_end, Vec3 *hit_closest, Vec3 *hurt_closest, MtxPtr hurt_mtx, Vec3 *out_contact_pos, float *out_overlap, float hit_radius, float hurt_radius, float broadphase_scale) |
| Tests a hit capsule segment against a hurt or shield capsule segment. | |
| int | lbColl_80005BB0 (HitCapsule *arg0, int arg1) |
| .text | |
| bool | lbColl_80005C44 (const Vec3 *arg0, const Vec3 *arg1, const Vec3 *arg2, Vec3 *arg3, float arg8, float arg9) |
| float | lbColl_80005EBC (const Vec3 *arg0, const Vec3 *arg1, const Vec3 *arg2, float *arg3) |
| float | lbColl_80005FC0 (Vec3 *arg0, Vec3 *arg1, Vec3 *arg2, float *arg3) |
| static bool | end (Vec3 *a, Vec3 *b, float unk_sum) |
| bool | lbColl_80006094 (Vec3 *arg0, Vec3 *arg1, Vec3 *arg2, Vec3 *arg3, Vec3 *arg4, Vec3 *arg5, float arg6, float arg7) |
| static float | lbColl_GetY (Vec3 *v) |
| static float | lbColl_DifferenceY (Vec3 *a, Vec3 *b) |
| bool | lbColl_800067F8 (Vec3 *a, Vec3 *b, Vec3 *c, Vec3 *d, Vec3 *e, Vec3 *f, float p, float q) |
| static float | sqrDistance (Vec3 *a, Vec3 *b) |
| static float | sqrtf_store (float x, volatile float *y) |
| 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) |
| bool | lbColl_80007B78 (Mtx a, struct Fighter_x1614_t *b, float x, float y) |
| bool | lbColl_80007BCC (HitCapsule *arg0, HitResult *shield_hit, void *arg2, s32 arg3, float arg4, float arg5, float arg6) |
| 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) |
| bool | lbColl_80008248 (HitCapsule *arg0, HurtCapsule *arg1, Mtx arg2, f32 arg3, f32 arg4, f32 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 *capsule, int type, void *victim) |
| bool | lbColl_80008820 (HitCapsule *capsule, int type, void *victim) |
| void | lbColl_800089B8 (HitCapsule *hit, UNK_T arg1) |
| void | lbColl_80008A5C (HitCapsule *hit) |
| void | lbColl_80008D30 (HitCapsule *arg0, lbColl_80008D30_arg1 *arg1) |
| void | lbColl_80008DA4 (GXColor *arg0, GXColor *arg1) |
| static bool | isSmall (float x) |
| void | lbColl_80008FC8 (Vec3 arg0, Vec3 arg1, GXColor *arg2, GXColor *arg3, f32 arg4) |
| void | lbColl_800096B4 (MtxPtr arg0, Vec3 arg1, Vec3 arg2, GXColor *arg3, GXColor *arg4, f32 arg5) |
| void | lbColl_80009DD4 (Vec3 *v0, Vec3 *v1, GXColor *clr) |
| bool | lbColl_80009F54 (HitCapsule *hit, u32 arg1, float arg8) |
| static void | lbColl_DrawHitResult (MtxPtr mtx, Vec3 *a, Vec3 *b, GXColor *c0, GXColor *c1, f32 size) |
| bool | lbColl_8000A044 (HitCapsule *hit, u32 arg1, float arg8) |
| bool | lbColl_8000A10C (struct lbColl_8000A10C_arg0_t *arg0, u32 arg1, f32 arg2) |
| bool | lbColl_8000A1A8 (struct Fighter_x1614_t *arg0, int arg1, f32 scale_y) |
| bool | lbColl_8000A244 (HurtCapsule *hurt, u32 arg1, Mtx arg2, float arg3) |
| bool | lbColl_8000A460 (Fighter_x1670_t *hurt, u32 arg1) |
| bool | lbColl_8000A584 (HurtCapsule *hurt, u32 arg1, u32 arg2, Mtx arg3, f32 arg8) |
| static bool | lbColl_DrawHit (HitResult *hit, u32 arg1, MtxPtr arg2, f32 pos_z, GXColor *color, GXColor *secondary_color, MtxPtr hit_mtx, Vec3 *pos_a, Vec3 *pos_b) |
| bool | lbColl_8000A78C (HitResult *hit, u32 arg1, Mtx arg2, f32 pos_z) |
| bool | lbColl_8000A95C (HitResult *hit, u32 arg1, Mtx arg2, f32 pos_z) |
| bool | lbColl_8000AB2C (HitResult *hit, u32 arg1, MtxPtr arg2, f32 pos_z) |
| bool | lbColl_8000ACFC (UNK_T victim, HitCapsule *hitbox) |
Variables | |
| static GXColor | lbColl_804D36A0 = { 0xFF, 0x00, 0x00, 0x80 } |
| .sdata | |
| static GXColor | lbColl_804D36A4 = { 0xFF, 0x00, 0xFF, 0x80 } |
| static GXColor | lbColl_804D36A8 = { 0x80, 0x00, 0x00, 0x80 } |
| static GXColor | lbColl_804D36AC = { 0xFF, 0xFF, 0x00, 0x80 } |
| static GXColor | lbColl_804D36B0 = { 0x80, 0x80, 0x00, 0x80 } |
| static GXColor | lbColl_804D36B4 = { 0x00, 0xFF, 0x00, 0x80 } |
| static GXColor | lbColl_804D36B8 = { 0x00, 0x80, 0x00, 0x80 } |
| static GXColor | lbColl_804D36BC = { 0x00, 0x00, 0xFF, 0x80 } |
| static GXColor | lbColl_804D36C0 = { 0x00, 0x00, 0x80, 0x80 } |
| static GXColor | lbColl_804D36C4 = { 0x00, 0xFF, 0xFF, 0x80 } |
| static GXColor | lbColl_804D36C8 = { 0x00, 0x80, 0x80, 0x80 } |
| static GXColor | lbColl_804D36CC = { 0x00, 0xFF, 0x80, 0x80 } |
| static GXColor | lbColl_804D36D0 = { 0x00, 0x80, 0x40, 0x80 } |
| static GXColor | lbColl_804D36D4 = { 0x00, 0x80, 0xFF, 0x80 } |
| static GXColor | lbColl_804D36D8 = { 0x00, 0x40, 0x80, 0x80 } |
| static GXColor | lbColl_804D36DC = { 0xFF, 0xFF, 0xFF, 0x80 } |
| static GXColor | lbColl_804D36E0 = { 0xFF, 0x80, 0x00, 0x80 } |
| static GXColor | lbColl_804D36E4 = { 0x80, 0x40, 0x00, 0x80 } |
| static GXColor | lbColl_804D36E8 = { 0xFF, 0xFF, 0xFF, 0x80 } |
| static GXColor | lbColl_804D36EC = { 0x80, 0x80, 0x80, 0x80 } |
| static GXColor | lbColl_804D36F0 = { 0xFF, 0xFF, 0x00, 0x80 } |
| int | lbColl_803B9880 [] |
| .data | |
| static GXColor | lbColl_804D36F4 = { 0x80, 0x80, 0x00, 0x80 } |
| static GXColor | lbColl_804D36F8 = { 0xFF, 0x00, 0x00, 0x80 } |
| static GXColor | lbColl_804D36FC = { 0x80, 0x00, 0x00, 0x80 } |
| struct unk | lbColl_803B9928 [] |
| u8 | lbColl_SpherePositions [0x1A0] |
| u8 | lbColl_SphereNormals [0x1A0] |
| u8 | lbColl_SphereDisplayList [0x120] |
| u8 | lbColl_CylinderPositions [0x80] |
| u8 | lbColl_UnknownData [0xA0] |
| u8 | lbColl_CylinderNormals [0x60] |
| u8 | lbColl_CylinderDisplayList [0xA0] |
| GXColor const | lbColl_804D7A50 = { 0 } |
|
static |
Tests a hit capsule segment against a hurt or shield capsule segment.
| [in] | hit_start | First endpoint of the hit capsule axis. |
| [in] | hit_end | Second endpoint of the hit capsule axis. |
| [in] | hurt_start | First endpoint of the hurt/shield capsule axis. |
| [in] | hurt_end | Second endpoint of the hurt/shield capsule axis. |
| [out] | hit_closest | Closest point on the hit capsule axis. |
| [out] | hurt_closest | Closest point on the hurt/shield capsule axis. |
| [in] | hurt_mtx | Matrix used to measure hurt radius along contact normal. |
| [out] | out_contact_pos | Contact point on the hurt/shield surface. |
| [out] | out_overlap | Effective radius margin minus closest distance. |
| [in] | hit_radius | Hit capsule radius. |
| [in] | hurt_radius | Hurt/shield capsule radius. |
| [in] | broadphase_scale | Scale applied to hurt_radius for AABB rejection. |
| int lbColl_80005BB0 | ( | HitCapsule * | arg0, |
| int | arg1 ) |
.text
| bool lbColl_80005C44 | ( | const Vec3 * | arg0, |
| const Vec3 * | arg1, | ||
| const Vec3 * | arg2, | ||
| Vec3 * | arg3, | ||
| float | arg8, | ||
| float | arg9 ) |
| bool lbColl_80006094 | ( | Vec3 * | arg0, |
| Vec3 * | arg1, | ||
| Vec3 * | arg2, | ||
| Vec3 * | arg3, | ||
| Vec3 * | arg4, | ||
| Vec3 * | arg5, | ||
| float | arg6, | ||
| float | arg7 ) |
|
inlinestatic |
| bool lbColl_800067F8 | ( | Vec3 * | a, |
| Vec3 * | b, | ||
| Vec3 * | c, | ||
| Vec3 * | d, | ||
| Vec3 * | e, | ||
| Vec3 * | f, | ||
| float | p, | ||
| float | q ) |
|
inlinestatic |
| 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 ) |
| bool lbColl_80007BCC | ( | HitCapsule * | arg0, |
| HitResult * | shield_hit, | ||
| void * | arg2, | ||
| s32 | arg3, | ||
| float | arg4, | ||
| float | arg5, | ||
| float | arg6 ) |
| 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 ) |
| bool lbColl_80008248 | ( | HitCapsule * | arg0, |
| HurtCapsule * | arg1, | ||
| Mtx | arg2, | ||
| f32 | arg3, | ||
| f32 | arg4, | ||
| f32 | 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 * | capsule, |
| int | type, | ||
| void * | victim ) |
| bool lbColl_80008820 | ( | HitCapsule * | capsule, |
| int | type, | ||
| void * | victim ) |
| void lbColl_800089B8 | ( | HitCapsule * | hit, |
| UNK_T | arg1 ) |
| void lbColl_80008A5C | ( | HitCapsule * | hit | ) |
| void lbColl_80008D30 | ( | HitCapsule * | arg0, |
| lbColl_80008D30_arg1 * | arg1 ) |
|
inlinestatic |
| void lbColl_800096B4 | ( | MtxPtr | arg0, |
| Vec3 | arg1, | ||
| Vec3 | arg2, | ||
| GXColor * | arg3, | ||
| GXColor * | arg4, | ||
| f32 | arg5 ) |
| bool lbColl_80009F54 | ( | HitCapsule * | hit, |
| u32 | arg1, | ||
| float | arg8 ) |
|
inlinestatic |
| bool lbColl_8000A044 | ( | HitCapsule * | hit, |
| u32 | arg1, | ||
| float | arg8 ) |
| bool lbColl_8000A10C | ( | struct lbColl_8000A10C_arg0_t * | arg0, |
| u32 | arg1, | ||
| f32 | arg2 ) |
| bool lbColl_8000A244 | ( | HurtCapsule * | hurt, |
| u32 | arg1, | ||
| Mtx | arg2, | ||
| float | arg3 ) |
| bool lbColl_8000A460 | ( | Fighter_x1670_t * | hurt, |
| u32 | arg1 ) |
|
inlinestatic |
| bool lbColl_8000ACFC | ( | UNK_T | victim, |
| HitCapsule * | hitbox ) |
|
static |
.sdata
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| int lbColl_803B9880[] |
.data
|
static |
|
static |
|
static |
| struct unk lbColl_803B9928[] |
| u8 lbColl_SpherePositions[0x1A0] |
| u8 lbColl_SphereNormals[0x1A0] |
| u8 lbColl_SphereDisplayList[0x120] |
| u8 lbColl_CylinderPositions[0x80] |
| u8 lbColl_UnknownData[0xA0] |
| u8 lbColl_CylinderNormals[0x60] |
| u8 lbColl_CylinderDisplayList[0xA0] |
| GXColor const lbColl_804D7A50 = { 0 } |