SSBM Decomp
Loading...
Searching...
No Matches
lbcollision.h
Go to the documentation of this file.
1#ifndef GALE01_005BB0
2#define GALE01_005BB0
3
4#include <placeholder.h>
5#include <platform.h>
6
7#include "ft/forward.h"
8#include "lb/forward.h"
9#include <baselib/forward.h>
10
11#include <dolphin/gx/GXStruct.h>
12#include <dolphin/mtx.h>
13#include <baselib/jobj.h>
14
16
17struct Fighter_x1614_t;
18
19/* 005BB0 */ int lbColl_80005BB0(HitCapsule*, int);
20/* 005C44 */ bool lbColl_80005C44(const Vec3*, const Vec3*, const Vec3*, Vec3*,
21 float, float);
22/* 005EBC */ float lbColl_80005EBC(const Vec3*, const Vec3*, const Vec3*,
23 float*);
24/* 005FC0 */ float lbColl_80005FC0(Vec3*, Vec3*, Vec3*, float*);
25/* 006094 */ bool lbColl_80006094(Vec3*, Vec3*, Vec3*, Vec3*, Vec3*, Vec3*,
26 float, float);
27/* 0067F8 */ bool lbColl_800067F8(Vec3*, Vec3*, Vec3*, Vec3*, Vec3*, Vec3*,
28 float, float, float);
29/* 0077A0 */ void lbColl_800077A0(Vec3*, Mtx, Vec3*, Vec3*, Vec3*, Vec3*,
30 float* angle, float, float);
31/* 007AFC */ bool lbColl_80007AFC(HitCapsule*, HitCapsule*, float, float);
32/* 007B78 */ bool lbColl_80007B78(Mtx, struct Fighter_x1614_t*, float, float);
33/* 007BCC */ bool lbColl_80007BCC(HitCapsule*, HitResult* shield_hit, UNK_T,
34 s32, float, float, float);
35/* 007D68 */ void lbColl_JObjSetupMatrix(HSD_JObj*);
36/* 007DD8 */ void lbColl_80007DD8(HitCapsule*, HitResult*, Mtx, Vec3*, float*,
37 float);
38/* 007ECC */ bool lbColl_80007ECC(HitCapsule*, HurtCapsule*, Mtx,
39 float hit_scl_y, float hurt_scl_y,
40 float hurt_pos_z);
41/* 00805C */ bool lbColl_8000805C(HitCapsule* arg0, HurtCapsule* arg1,
42 Mtx arg2, s32 arg3, float arg4, float arg5,
43 float arg6);
44/* 008248 */ bool lbColl_80008248(HitCapsule*, HurtCapsule*, Mtx, float, float,
45 float);
46/* 0083C4 */ void lbColl_800083C4(HurtCapsule*);
47/* 008428 */ void lbColl_80008428(HitCapsule*);
48/* 008434 */ void lbColl_80008434(HitCapsule*);
49/* 008440 */ void lbColl_80008440(HitCapsule*);
50/* 0084FC */ void lbColl_CopyHitCapsule(HitCapsule* src, HitCapsule* dst);
51/* 008688 */ bool lbColl_80008688(HitCapsule*, int type, void* victim);
52/* 008820 */ bool lbColl_80008820(HitCapsule*, int type, void* victim);
53/* 0089B8 */ void lbColl_800089B8(HitCapsule* hit, UNK_T arg1);
54/* 008A5C */ void lbColl_80008A5C(HitCapsule* hit);
56/* 008DA4 */ void lbColl_80008DA4(GXColor* arg0, GXColor* arg1);
57/* 008FC8 */ void lbColl_80008FC8(Vec3, Vec3, GXColor*, GXColor*, float);
58/* 0096B4 */ void lbColl_800096B4(MtxPtr, Vec3, Vec3, GXColor*, GXColor*,
59 float);
60/* 009DD4 */ void lbColl_80009DD4(Vec3* v0, Vec3* v1, GXColor* clr);
61/* 009F54 */ bool lbColl_80009F54(HitCapsule* hit, u32 arg1, float arg8);
62/* 00A044 */ bool lbColl_8000A044(HitCapsule* hit, u32 arg1, float arg8);
63/* 00A10C */ bool lbColl_8000A10C(struct lbColl_8000A10C_arg0_t*, u32, f32);
64/* 00A1A8 */ bool lbColl_8000A1A8(struct Fighter_x1614_t*, int, float scale_y);
65/* 00A244 */ bool lbColl_8000A244(HurtCapsule* hurt, u32 arg1, Mtx arg2,
66 float arg3);
67/* 00A460 */ bool lbColl_8000A460(Fighter_x1670_t* hurt, u32 arg1);
68/* 00A584 */ bool lbColl_8000A584(HurtCapsule* hurt, u32 arg1, u32 arg2,
69 MtxPtr arg3, float arg8);
70/* 00A78C */ bool lbColl_8000A78C(HitResult* hit, u32 arg1, Mtx arg2,
71 float pos_z);
72/* 00A95C */ bool lbColl_8000A95C(HitResult* hit, u32 arg1, Mtx arg2,
73 float pos_z);
74/* 00AB2C */ bool lbColl_8000AB2C(HitResult* hit, u32 arg1, Mtx arg2,
75 float pos_z);
76/* 00ACFC */ bool lbColl_8000ACFC(void*, HitCapsule*);
77
78static inline bool approximatelyZero(float x)
79{
80 bool result;
81
82 if ((x < 0.00001f) && (x > -0.00001f)) {
83 result = true;
84 } else {
85 result = false;
86 }
87
88 return result;
89}
90
91static inline bool testPlusX(Vec3* a, Vec3* b, Vec3* c, float offset)
92{
93 float x = a->x + offset;
94 if (x < b->x && x < c->x) {
95 return false;
96 }
97
98 return true;
99}
100
101static inline bool testPlus(float a, float b, float c, float offset)
102{
103 float x = a + offset;
104 if (x < b && x < c) {
105 return false;
106 }
107
108 return true;
109}
110
111static inline bool testMinusX(Vec3* a, Vec3* b, Vec3* c, float offset)
112{
113 float x = a->x - offset;
114 if (x > b->x && x > c->x) {
115 return false;
116 }
117
118 return true;
119}
120
121#endif
f32(* MtxPtr)[4]
Definition mtx.h:53
struct Vec Vec3
f32 Mtx[3][4]
Definition mtx.h:50
unsigned long u32
Definition types.h:9
float f32
Definition types.h:13
signed long s32
Definition hsd_3B2B.h:1
static bool testPlusX(Vec3 *a, Vec3 *b, Vec3 *c, float offset)
Definition lbcollision.h:91
void lbColl_JObjSetupMatrix(HSD_JObj *)
bool lbColl_80006094(Vec3 *, Vec3 *, Vec3 *, Vec3 *, Vec3 *, Vec3 *, float, float)
Definition lbcollision.c:328
bool lbColl_8000A460(Fighter_x1670_t *hurt, u32 arg1)
Definition lbcollision.c:2604
bool lbColl_8000A244(HurtCapsule *hurt, u32 arg1, Mtx arg2, float arg3)
Definition lbcollision.c:2515
bool lbColl_80007AFC(HitCapsule *, HitCapsule *, float, float)
Definition lbcollision.c:1580
bool lbColl_80008688(HitCapsule *, int type, void *victim)
Definition lbcollision.c:1901
bool lbColl_8000805C(HitCapsule *arg0, HurtCapsule *arg1, Mtx arg2, s32 arg3, float arg4, float arg5, float arg6)
Definition lbcollision.c:1721
bool lbColl_8000ACFC(void *, HitCapsule *)
bool lbColl_800067F8(Vec3 *, Vec3 *, Vec3 *, Vec3 *, Vec3 *, Vec3 *, float, float, float)
Definition lbcollision.c:666
void lbColl_800096B4(MtxPtr, Vec3, Vec3, GXColor *, GXColor *, float)
Definition lbcollision.c:2256
void lbColl_800083C4(HurtCapsule *)
Definition lbcollision.c:1852
void lbColl_80007DD8(HitCapsule *, HitResult *, Mtx, Vec3 *, float *, float)
Definition lbcollision.c:1658
void lbColl_80008FC8(Vec3, Vec3, GXColor *, GXColor *, float)
Definition lbcollision.c:2129
void lbColl_80008428(HitCapsule *)
Definition lbcollision.c:1863
bool lbColl_8000A584(HurtCapsule *hurt, u32 arg1, u32 arg2, MtxPtr arg3, float arg8)
bool lbColl_80009F54(HitCapsule *hit, u32 arg1, float arg8)
Definition lbcollision.c:2436
bool lbColl_80007ECC(HitCapsule *, HurtCapsule *, Mtx, float hit_scl_y, float hurt_scl_y, float hurt_pos_z)
Definition lbcollision.c:1681
void lbColl_80008440(HitCapsule *)
Definition lbcollision.c:1873
void lbColl_800089B8(HitCapsule *hit, UNK_T arg1)
Definition lbcollision.c:2014
bool lbColl_8000A1A8(struct Fighter_x1614_t *, int, float scale_y)
Definition lbcollision.c:2584
bool lbColl_80008248(HitCapsule *, HurtCapsule *, Mtx, float, float, float)
Definition lbcollision.c:1815
bool lbColl_80007B78(Mtx, struct Fighter_x1614_t *, float, float)
Definition lbcollision.c:1600
bool lbColl_8000A95C(HitResult *hit, u32 arg1, Mtx arg2, float pos_z)
Definition lbcollision.c:2728
static bool approximatelyZero(float x)
Definition lbcollision.h:78
void lbColl_80008A5C(HitCapsule *hit)
Definition lbcollision.c:2024
bool lbColl_8000AB2C(HitResult *hit, u32 arg1, Mtx arg2, float pos_z)
void lbColl_80008D30(HitCapsule *, lbColl_80008D30_arg1 *)
Definition lbcollision.c:2053
float lbColl_80005FC0(Vec3 *, Vec3 *, Vec3 *, float *)
Definition lbcollision.c:277
void lbColl_80009DD4(Vec3 *v0, Vec3 *v1, GXColor *clr)
Definition lbcollision.c:2385
bool lbColl_80007BCC(HitCapsule *, HitResult *shield_hit, UNK_T, s32, float, float, float)
float lbColl_80005EBC(const Vec3 *, const Vec3 *, const Vec3 *, float *)
Definition lbcollision.c:235
int lbColl_80005BB0(HitCapsule *, int)
.text
Definition lbcollision.c:92
bool lbColl_80005C44(const Vec3 *, const Vec3 *, const Vec3 *, Vec3 *, float, float)
Definition lbcollision.c:136
bool lbColl_80008820(HitCapsule *, int type, void *victim)
Definition lbcollision.c:1956
void lbColl_80008DA4(GXColor *arg0, GXColor *arg1)
Definition lbcollision.c:2067
bool lbColl_8000A044(HitCapsule *hit, u32 arg1, float arg8)
Definition lbcollision.c:2490
bool lbColl_8000A10C(struct lbColl_8000A10C_arg0_t *, u32, f32)
Definition lbcollision.c:2564
void lbColl_80008434(HitCapsule *)
Definition lbcollision.c:1868
static bool testPlus(float a, float b, float c, float offset)
Definition lbcollision.h:101
static bool testMinusX(Vec3 *a, Vec3 *b, Vec3 *c, float offset)
Definition lbcollision.h:111
void lbColl_CopyHitCapsule(HitCapsule *src, HitCapsule *dst)
Definition lbcollision.c:1886
void lbColl_800077A0(Vec3 *, Mtx, Vec3 *, Vec3 *, Vec3 *, Vec3 *, float *angle, float, float)
bool lbColl_8000A78C(HitResult *hit, u32 arg1, Mtx arg2, float pos_z)
Definition lbcollision.c:2718
Vec3 v0
Definition lbspdisplay.c:58
Vec3 v1
Definition lbspdisplay.c:59
struct Fighter_x1670_t Fighter_x1670_t
Definition forward.h:22
#define UNK_T
Definition placeholder.h:31
Definition GXStruct.h:29
Definition jobj.h:107
Definition types.h:31
Definition types.h:15
Definition types.h:88
f32 x
Definition mtx.h:15
Definition forward.h:94
Definition types.h:559
int c
Definition tev.c:12
GXColorS10 a
Definition tev.c:11