7#include "dolphin/gx/GXStruct.h"
16#include <dolphin/mtx.h>
28 u32* flags_out, Vec3* normal_out);
30 u32* flags_out, Vec3* normal_out);
32 u32* flags_out, Vec3* normal_out);
34 u32* flags_out, Vec3* normal_out);
36 float a0y,
float a1x,
float b0x,
37 float b0y,
float b1x,
float b1y);
39 bool mpCheckFloor(
float ax,
float ay,
float bx,
float by,
40 float y_offset, Vec3* vec_out,
int* line_id_out,
41 u32* flags_out, Vec3* normal_out,
42 int line_id_skip,
int joint_id_skip,
43 int joint_id_only,
bool (*)(Fighter_GObj*,
int),
46 float y_offset, Vec3* vec_out,
47 int* line_id_out, u32* flags_out,
48 Vec3* normal_out,
int line_id_skip,
49 int joint_id_skip,
int joint_id_only,
50 bool (*)(Fighter_GObj*,
int),
53 Vec3* vec_out,
int* line_id_out,
54 u32* flags_out, Vec3* normal_out,
55 int joint_id_skip,
int joint_id_only);
57 Vec3* vec_out,
int* line_id_out,
58 u32* flags_out, Vec3* normal_out,
59 int joint_id_skip,
int joint_id_only);
61 float a0y,
float a1y,
float b0x,
62 float b0y,
float b1x,
float b1y);
64 Vec3* vec_out,
int* line_id_out,
65 u32* flags_out, Vec3* normal_out,
66 int joint_id_skip,
int joint_id_only);
68 Vec3* vec_out,
int* line_id_out,
69 u32* flags_out, Vec3* normal_out,
70 int joint_id_skip,
int joint_id_only);
72 Vec3* vec_out,
int* line_id_out,
73 u32* flags_out, Vec3* normal_out,
74 int joint_id_skip,
int joint_id_only);
76 Vec3* vec_out,
int* line_id_out,
77 u32* flags_out, Vec3* normal_out,
78 int joint_id_skip,
int joint_id_only);
80 float by,
float cx,
float cy,
82 int* line_id_out,
int joint_id_skip,
85 float a1y,
float b0x,
float b0y,
87 int* line_id_out,
int joint_id_skip,
92 int joint_id_skip,
int joint_id_only,
96 Vec3* pos_out,
int* line_id_out,
97 u32* flags_out, Vec3* normal_out, u32 checks,
98 int joint_id_skip,
int joint_id_only);
100 u32* flags_out, Vec3* normal_out,
101 int joint_id_skip,
int joint_id_only,
102 float x0,
float y0,
float x1,
float y1);
103 bool mpCheckAll(Vec3* pos_out,
int* line_id_out, u32* flags_out,
104 Vec3* normal_out,
int joint_id_skip,
105 int joint_id_only,
float x0,
float y0,
float x1,
149 void mpVtxGetPos(
int vtx_id,
float* x_out,
float* y_out);
155 bool mpGetSpeed(
int line_id, Vec3* pos, Vec3* speed);
165 Vec3* vec_out, u32* flags_out,
166 Vec3* normal_out,
float,
float);
192 float x2,
float y2,
float x3,
float y3);
u8 x0
Definition dbbonus.c:20
UnkFlagStruct x1
Definition dbbonus.c:21
u8 x2
Definition gm_1601.c:146
u8 x3
Definition gm_1601.c:147
void(* mpLib_Callback)(Ground *, s32, CollData *, s32, mpLib_GroundEnum, f32)
Definition forward.h:51
void mpLib_800569EC(void)
UNK_T mpLib_80056AFC(void)
UNK_T mpLib_80056B34(void)
bool mpLib_8004E398_LeftWall(void)
UNK_T mpLib_80056A1C(void)
UNK_T mpLib_80056A8C(void)
UNK_T mpLib_80056AC4(void)
UNK_T mpLib_80056A54(void)
int mpLib_80053BD4_Ceiling(int line_id)
Definition mplib.c:3847
void mpCeilingGetRight(int line_id, Vec3 *)
Definition mplib.c:3967
void mpLib_DrawSpecialPoints(void)
Definition mplib.c:6518
void mpJointSetB10(int joint_id)
Definition mplib.c:5228
bool mpCheckMultiple(float x0, float y0, float x1, float y1, Vec3 *pos_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, u32 checks, int joint_id_skip, int joint_id_only)
Definition mplib.c:3381
bool mpLib_80054ED8(int line_id)
Definition mplib.c:4181
void mpLineGetV0Pos(int line_id, Vec3 *pos_out)
Definition mplib.c:4128
int mpLib_80051BA8_Floor(Vec3 *out_vec, int line_id_skip, int joint_id_skip, int joint_id_only, int dir, float left, float bottom, float right, float top)
Definition mplib.c:3237
int mpJointFromLine(int line_id)
Definition mplib.c:4847
int mpLib_800536CC_Floor(int line_id)
Definition mplib.c:3778
void mpRightWallGetBottom(int line_id, Vec3 *)
Definition mplib.c:4092
void mpVtxSetPos(int vtx_id, float x, float y)
Definition mplib.c:4710
void mpJointHide(int joint_id)
Definition mplib.c:4303
void mpLib_80057424(int joint_id)
Definition mplib.c:4998
bool mpCheckRightWall(float ax, float ay, float bx, float by, Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only)
Definition mplib.c:2563
void mpLib_8004ED5C(int, float *, float *, float *, float *)
Definition mplib.c:1536
bool mpLib_800511A4_RightWall(float ax, float ay, float bx, float by, float cx, float cy, float dx, float dy, int *line_id_out, int joint_id_skip, int joint_id_only)
Definition mplib.c:2873
bool mpCheckedBounding(void)
Definition mplib.c:5583
bool mpCheckCeiling(float ax, float ay, float bx, float by, Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only)
Definition mplib.c:1893
int mpLineNextNonRightWall(int line_id)
Definition mplib.c:3709
void mpLib_80058614_Floor(void)
Definition mplib.c:5461
int mpLib_8005389C_Ceiling(int line_id)
Definition mplib.c:3798
int mpLineNextNonCeiling(int line_id)
Definition mplib.c:3625
CollJoint * mpGetGroundCollJoint(void)
Definition mplib.c:812
void mpJointSetCb1(int joint_id, void *, mpLib_Callback)
Definition mplib.c:5234
void mpJointUpdateBounding(int joint_id)
Definition mplib.c:4665
void mpLib_80057FDC(int joint_id)
Definition mplib.c:5194
void mpJointUnhide(int joint_id)
Definition mplib.c:4348
bool mpCheckAll(Vec3 *pos_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only, float x0, float y0, float x1, float y1)
Definition mplib.c:3554
bool mpCheckLeftWallRemap(float ax, float ay, float bx, float by, Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only)
Definition mplib.c:2389
void mpLib_8005667C(int joint_id)
Definition mplib.c:4689
void mpJointGetCb1(int joint_id, mpLib_Callback *, Ground **)
Definition mplib.c:5248
Vec3 * mpLineGetNormal(int line_id, Vec3 *normal_out)
Definition mplib.c:4161
void mpLib_80057528(int line_id)
Definition mplib.c:5013
void mpLibLoad(MapCollData *coll_data)
Definition mplib.c:862
void mpLib_DrawEcbs(CollData *)
Definition mplib.c:5735
void mpRightWallGetTop(int line_id, Vec3 *)
Definition mplib.c:4067
void mpLeftWallGetBottom(int line_id, Vec3 *)
Definition mplib.c:4042
enum_t mpLineGetKind(int line_id)
Definition mplib.c:4139
void mpJointGetCb2(int joint_id, mpLib_Callback *, Ground **)
Definition mplib.c:5276
void mpLib_80053DA4_Floor(int line_id, Vec3 *)
Definition mplib.c:3868
void mpCeilingGetLeft(int line_id, Vec3 *)
Definition mplib.c:3992
void mpLib_DrawZones(void)
blast zones, camera bounds, etc
Definition mplib.c:6549
void mpLib_80058820(void)
Definition mplib.c:5571
void mpLib_DrawCrosses(s16 *idx, int len, GXColor)
Definition mplib.c:6436
int mpLineGetNext(int line_id)
Definition mplib.c:1001
int mpLib_800534FC_Floor(int line_id)
Definition mplib.c:3758
void mpLib_800552B0(int joint_id, HSD_JObj *, int z)
what even is this lol
Definition mplib.c:4264
int mpLineGetPrev(int line_id)
Definition mplib.c:1021
void mpLib_80057BC0(int joint_id)
Definition mplib.c:5134
bool mpLinesConnected(int start_id, int target_id)
Definition mplib.c:4199
void mpLineGetV1Pos(int line_id, Vec3 *pos_out)
Definition mplib.c:4117
int mpLib_8004DD90_Floor(int line_id, Vec3 *, float *y_out, u32 *flags_out, Vec3 *normal_out)
Definition mplib.c:1073
void mpLib_80055E9C(int joint_id)
Definition mplib.c:4470
void mpLib_8005A2DC(void)
Definition mplib.c:6529
void mpLineSetPos(int line_id, float x0, float y0, float x1, float y1)
Definition mplib.c:4717
void mpLib_DrawMatchingLines(int, int, GXColor)
Definition mplib.c:5982
void mpLib_80058044(int joint_id)
Definition mplib.c:5211
bool mpLineIntersectionV(float *int_x, float *int_y, float a0x, float a0y, float a1y, float b0x, float b0y, float b1x, float b1y)
line intersection between a and b, where a is a vertical line
Definition mplib.c:2199
void mpJointClearCb1(int joint_id)
Definition mplib.c:5241
void mpJointUpdateDynamics(int joint_id)
Definition mplib.c:4401
bool mpCheckFloor(float ax, float ay, float bx, float by, float y_offset, Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int line_id_skip, int joint_id_skip, int joint_id_only, bool(*)(Fighter_GObj *, int), Fighter_GObj *)
Definition mplib.c:1574
void mpJointSetCb2(int joint_id, Ground *, mpLib_Callback)
Definition mplib.c:5269
int mpLineNextNonFloor(int line_id)
Definition mplib.c:3562
void mpBoundingCheck3(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3)
Definition mplib.c:5643
bool mpLib_80056C54(int line_id, Vec3 *pos, int *line_id_out, Vec3 *vec_out, u32 *flags_out, Vec3 *normal_out, float, float)
int mpLib_80053394_Floor(int line_id)
Definition mplib.c:3730
void mpLib_SetupDraw(GXColor)
Definition mplib.c:5715
int mpLib_80053448_Floor(int line_id)
Definition mplib.c:3744
void mpLib_80054D68(int line_id, u32 flags)
Definition mplib.c:4151
bool mpLib_8004DBB4(int index, Vec3 *out)
void mpFloorGetLeft(int line_id, Vec3 *)
Definition mplib.c:3942
void mpFloorGetRight(int line_id, Vec3 *)
Definition mplib.c:3917
bool mpCheckAllRemap(Vec3 *pos_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only, float x0, float y0, float x1, float y1)
Definition mplib.c:3546
void mpLib_800587FC(HSD_GObj *)
Definition mplib.c:5565
bool mpLineIntersectionH(float *int_x, float *int_y, float a0x, float a0y, float a1x, float b0x, float b0y, float b1x, float b1y)
line intersection between a and b, where a is a horizontal line
Definition mplib.c:1483
int mpLib_80053A04_Ceiling(int line_id)
Definition mplib.c:3826
bool mpCheckFloorRemap(float ax, float ay, float bx, float by, float y_offset, Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int line_id_skip, int joint_id_skip, int joint_id_only, bool(*)(Fighter_GObj *, int), Fighter_GObj *)
Definition mplib.c:1721
void mpLib_800575B0(int line_id)
Definition mplib.c:5027
u32 mpLineGetFlags(int line_id)
Definition mplib.c:4145
int mpLib_8005199C_Floor(Vec3 *, int joint_id_skip, int joint_id_only)
Definition mplib.c:3160
void mpJointListAdd(int joint_id)
Definition mplib.c:5041
void mpLib_80056758(int line_id, float x0, float y0, float x1, float y1)
Definition mplib.c:4724
void mpLib_80059554(void)
Definition mplib.c:6044
int mpLinePrevNonFloor(int line_id)
Definition mplib.c:3583
void mpLib_8005811C(CollData *, int ledge_id)
Definition mplib.c:5255
int mpLineNextNonLeftWall(int line_id)
Definition mplib.c:3646
void mpLib_800581DC(int joint_id0, int joint_id1)
Definition mplib.c:5283
int mpLinePrevNonRightWall(int line_id)
Definition mplib.c:3688
void mpUncheckBounding(void)
Definition mplib.c:5688
void mpJointListUnlink(CollJoint *)
Definition mplib.c:5109
void mpLeftWallGetTop(int line_id, Vec3 *)
Definition mplib.c:4017
void mpVtxGetPos(int vtx_id, float *x_out, float *y_out)
Definition mplib.c:4703
int mpLib_8004E090_Ceiling(int line_id, Vec3 *, float *y_out, u32 *flags_out, Vec3 *normal_out)
Definition mplib.c:1151
CollVtx * mpGetGroundCollVtx(void)
Definition mplib.c:802
int mpLib_80053950_Ceiling(int line_id)
Definition mplib.c:3812
bool mpCheckRightWallRemap(float ax, float ay, float bx, float by, Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only)
Definition mplib.c:2698
CollLine * mpGetGroundCollLine(void)
Definition mplib.c:807
bool mpCheckLeftWall(float ax, float ay, float bx, float by, Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only)
Definition mplib.c:2253
void mpPruneEmptyLines(MapCollData *coll_data)
Definition mplib.c:817
void mpLib_80053ECC_Floor(int line_id, Vec3 *)
int mpLib_8004E684_RightWall(int line_id, Vec3 *, float *x_out, u32 *flags_out, Vec3 *normal_out)
Definition mplib.c:1299
MapCollData * mpLib_8004D164(void)
Definition mplib.c:797
bool mpLib_800515A0_LeftWall(float a0x, float a0y, float a1x, float a1y, float b0x, float b0y, float b1x, float b1y, int *line_id_out, int joint_id_skip, int joint_id_only)
Definition mplib.c:3015
bool mpGetSpeed(int line_id, Vec3 *pos, Vec3 *speed)
Definition mplib.c:4737
bool mpCheckCeilingRemap(float ax, float ay, float bx, float by, Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int joint_id_skip, int joint_id_only)
Definition mplib.c:2030
void mpLib_DrawSnapping(void)
Definition mplib.c:5874
int mpLinePrevNonCeiling(int line_id)
Definition mplib.c:3604
void mpLib_80055E24(int joint_id)
Definition mplib.c:4454
void mpLib_80058560(void)
Definition mplib.c:5438
void mpBoundingCheck2(float x1, float y1, float x2, float y2)
Definition mplib.c:5619
void mpLib_80059E60(void)
Definition mplib.c:6392
int mpLinePrevNonLeftWall(int line_id)
Definition mplib.c:3667
void mpBoundingCheck(float left, float bottom, float right, float top)
takes a bounding box and checks each joint to see if they're within range if they are outside the bou...
Definition mplib.c:5590
float bottom
Definition mplib.static.h:12
float right
Definition mplib.static.h:14
float left
Definition mplib.static.h:13
float top
Definition mplib.static.h:11
was using this to try and fix some matches, unsuccessfully
Definition gobj.h:26