SSBM Decomp
Loading...
Searching...
No Matches
mpcoll.c File Reference
#include <placeholder.h>
#include "ftCommon/forward.h"
#include "mp/forward.h"
#include "mp/mpcoll.h"
#include "math.h"
#include "db/db_2253.h"
#include "ft/ftlib.h"
#include "gr/grdynamicattr.h"
#include "it/it_26B1.h"
#include "lb/lb_00B0.h"
#include "lb/lbvector.h"
#include "mp/mplib.h"
#include <dolphin/os/OSError.h>
#include <baselib/debug.h>
#include <baselib/gobj.h>
#include <MSL/trigf.h>

Macros

#define Collide_LeftWallPush   0x1
 
#define Collide_LeftWallHug   0x20
 
#define Collide_LeftWallMask   0x3F
 
#define Collide_RightWallPush   0x40
 
#define Collide_RightWallHug   0x800
 
#define Collide_RightWallMask   0xFC0
 
#define Collide_CeilingPush   0x2000
 
#define Collide_CeilingHug   0x4000
 
#define Collide_FloorPush   0x8000
 
#define Collide_FloorHug   0x10000
 
#define Collide_LeftEdge   0x100000
 
#define Collide_RightEdge   0x200000
 
#define Collide_Edge   0x800000
 
#define Collide_LeftLedgeGrab   0x1000000
 
#define Collide_RightLedgeGrab   0x2000000
 
#define Collide_LeftLedgeSlip   0x10000000
 
#define Collide_RightLedgeSlip   0x20000000
 
#define CollisionFlagAir_StayAirborne   0x1
 
#define CollisionFlagAir_PlatformPassCallback   0x2
 
#define CollisionFlagAir_CanGrabLedge   0x4
 
#define EXPAND_ECB_FOR(joint)
 
#define SOLUTION   0
 
#define M_TAU   6.283185307179586
 

Functions

void mpColl_80041C78 (void)
 
void mpColl_80041C8C (CollData *cd)
 
void clamp_above (float *value, float min)
 
void clamp_below (float *value, float max)
 
void mpColl_80041DD0 (CollData *cd, u32 flags)
 
void mpColl_80041EE4 (CollData *cd)
 "Coll_InitECB"
 
void mpColl_80042078 (CollData *cd, HSD_GObj *gobj, HSD_JObj *arg1, HSD_JObj *arg2, HSD_JObj *arg3, HSD_JObj *arg4, HSD_JObj *arg5, HSD_JObj *arg6, HSD_JObj *arg7, float arg9)
 
void mpColl_8004220C (CollData *cd, HSD_GObj *gobj, float arg1, float arg2, float arg3, float arg4)
 
void mpColl_80042374 (CollData *arg0, float arg8, float arg9, float argA)
 
void mpColl_80042384 (CollData *cd)
 
void update_min_max (float *min, float *max, float val)
 
void mpColl_800424DC (CollData *cd, u32 flags)
 
void update_min_max_2 (float *min, float *max, float val)
 
void clamp_above_2 (float *value, float min)
 
void clamp_below_2 (float *value, float max)
 
void mpColl_8004293C (CollData *cd)
 
void mpColl_80042C58 (CollData *arg0, ftCollisionBox *arg1)
 
void mpColl_80042D24 (CollData *cd)
 
void Vec2_Interpolate (float time, Vec2 *dest, Vec2 *src)
 
void mpColl_80042DB0 (CollData *ecb, float time)
 
void mpColl_80043268 (CollData *arg0, s32 arg1, s32 arg2, float arg8)
 
void func_80043324_inline2 (CollData *arg0, s32 arg1, s32 arg2, float arg8)
 
void func_80043324_inline (CollData *arg0, s32 arg1, s32 arg2, float arg8)
 
void mpColl_80043324 (CollData *arg0, s32 arg1, s32 arg2)
 
void mpColl_80043558 (CollData *arg0, s32 arg1)
 
void mpColl_80043670 (CollData *arg0)
 
void mpColl_80043680 (CollData *arg0, Vec3 *arg1)
 
void mpColl_800436D8 (CollData *arg0, int arg1)
 
static float six (void)
 
void mpColl_800436E4 (CollData *arg0, float arg1)
 
float max_inline (float a, float b)
 
bool mpColl_80043754 (mpColl_Callback arg0, CollData *arg1, u32 arg2)
 
void mpColl_800439FC (CollData *arg0)
 
void mpColl_80043ADC (CollData *arg0)
 
bool mpColl_80043BBC (CollData *arg0, s32 *arg1)
 
void mpColl_80043C6C (CollData *arg0, s32 arg1, s32 arg2)
 
bool mpColl_80046904 (CollData *coll, u32 flags)
 mpColl_80043E90
 
bool mpColl_8004730C (CollData *cdata, ftCollisionBox *arg1)
 fn_80046F78
 
bool mpColl_800477E0 (CollData *arg0)
 mpColl_800473CC
 
void mpColl_8004CBE8 (CollData *arg0)
 mpColl_800478F4
 
void mpColl_8004CBF4 (CollData *arg0)
 

Variables

static bool mpColl_804D649C
 
static Event mpColl_804D64A0
 
static Event mpColl_804D64A4
 
static Event mpColl_804D64A8
 
u32 mpColl_804D64AC
 
char mpColl_804D3948 [2] = "0"
 
const float mpColl_804D7F9C = -F32_MAX
 
const float mpColl_804D7FA0 = F32_MAX
 
const float flt_804D7FF8 = 5.0f
 
const f64 flt_804D8000 = -0.75
 
const f64 flt_804D8008 = 0.75
 
const float flt_804D8010 = -3.0f
 
const float flt_804D7FD8 = 6.0f
 
const char * dummy_string_data = "i<MPCOLL_WALLID_MAX"
 

Macro Definition Documentation

◆ Collide_LeftWallPush

#define Collide_LeftWallPush   0x1
Todo:
This is the same as MPCOLL_RIGHTWALL, etc. Pick a naming convention.

◆ Collide_LeftWallHug

#define Collide_LeftWallHug   0x20

◆ Collide_LeftWallMask

#define Collide_LeftWallMask   0x3F

◆ Collide_RightWallPush

#define Collide_RightWallPush   0x40

◆ Collide_RightWallHug

#define Collide_RightWallHug   0x800

◆ Collide_RightWallMask

#define Collide_RightWallMask   0xFC0

◆ Collide_CeilingPush

#define Collide_CeilingPush   0x2000

◆ Collide_CeilingHug

#define Collide_CeilingHug   0x4000

◆ Collide_FloorPush

#define Collide_FloorPush   0x8000

◆ Collide_FloorHug

#define Collide_FloorHug   0x10000

◆ Collide_LeftEdge

#define Collide_LeftEdge   0x100000

◆ Collide_RightEdge

#define Collide_RightEdge   0x200000

◆ Collide_Edge

#define Collide_Edge   0x800000

◆ Collide_LeftLedgeGrab

#define Collide_LeftLedgeGrab   0x1000000

◆ Collide_RightLedgeGrab

#define Collide_RightLedgeGrab   0x2000000

◆ Collide_LeftLedgeSlip

#define Collide_LeftLedgeSlip   0x10000000

◆ Collide_RightLedgeSlip

#define Collide_RightLedgeSlip   0x20000000

◆ CollisionFlagAir_StayAirborne

#define CollisionFlagAir_StayAirborne   0x1

◆ CollisionFlagAir_PlatformPassCallback

#define CollisionFlagAir_PlatformPassCallback   0x2

◆ CollisionFlagAir_CanGrabLedge

#define CollisionFlagAir_CanGrabLedge   0x4

◆ EXPAND_ECB_FOR

#define EXPAND_ECB_FOR (   joint)
Value:
lb_8000B1CC(joint, NULL, &vec); \
dx = vec.x - temp_x; \
dy = vec.y - temp_y; \
update_min_max(&left_x, &right_x, dx); \
update_min_max(&bottom_y, &top_y, dy);
void lb_8000B1CC(HSD_JObj *arg0, Vec3 *arg1, Vec3 *arg2)
JObj_GetWorldPos(r3=JObj,r4=UnkPointer,r5=StoreResult)
Definition lb_00B0.c:110
#define NULL
A null pointer.
Definition stddef.h:19

◆ SOLUTION

#define SOLUTION   0

◆ M_TAU

#define M_TAU   6.283185307179586

Function Documentation

◆ mpColl_80041C78()

void mpColl_80041C78 ( void  )

◆ mpColl_80041C8C()

void mpColl_80041C8C ( CollData cd)

◆ clamp_above()

void clamp_above ( float *  value,
float  min 
)
inline

◆ clamp_below()

void clamp_below ( float *  value,
float  max 
)
inline

◆ mpColl_80041DD0()

void mpColl_80041DD0 ( CollData cd,
u32  flags 
)

◆ mpColl_80041EE4()

void mpColl_80041EE4 ( CollData cd)

"Coll_InitECB"

◆ mpColl_80042078()

void mpColl_80042078 ( CollData cd,
HSD_GObj gobj,
HSD_JObj arg1,
HSD_JObj arg2,
HSD_JObj arg3,
HSD_JObj arg4,
HSD_JObj arg5,
HSD_JObj arg6,
HSD_JObj arg7,
float  arg9 
)

◆ mpColl_8004220C()

void mpColl_8004220C ( CollData cd,
HSD_GObj gobj,
float  arg1,
float  arg2,
float  arg3,
float  arg4 
)

◆ mpColl_80042374()

void mpColl_80042374 ( CollData arg0,
float  arg8,
float  arg9,
float  argA 
)

◆ mpColl_80042384()

void mpColl_80042384 ( CollData cd)

◆ update_min_max()

void update_min_max ( float *  min,
float *  max,
float  val 
)
inline

◆ mpColl_800424DC()

void mpColl_800424DC ( CollData cd,
u32  flags 
)

◆ update_min_max_2()

void update_min_max_2 ( float *  min,
float *  max,
float  val 
)
inline

◆ clamp_above_2()

void clamp_above_2 ( float *  value,
float  min 
)
inline

◆ clamp_below_2()

void clamp_below_2 ( float *  value,
float  max 
)
inline

◆ mpColl_8004293C()

void mpColl_8004293C ( CollData cd)

◆ mpColl_80042C58()

void mpColl_80042C58 ( CollData arg0,
ftCollisionBox arg1 
)

◆ mpColl_80042D24()

void mpColl_80042D24 ( CollData cd)

◆ Vec2_Interpolate()

void Vec2_Interpolate ( float  time,
Vec2 dest,
Vec2 src 
)
inline

◆ mpColl_80042DB0()

void mpColl_80042DB0 ( CollData ecb,
float  time 
)

◆ mpColl_80043268()

void mpColl_80043268 ( CollData arg0,
s32  arg1,
s32  arg2,
float  arg8 
)

◆ func_80043324_inline2()

void func_80043324_inline2 ( CollData arg0,
s32  arg1,
s32  arg2,
float  arg8 
)

◆ func_80043324_inline()

void func_80043324_inline ( CollData arg0,
s32  arg1,
s32  arg2,
float  arg8 
)

◆ mpColl_80043324()

void mpColl_80043324 ( CollData arg0,
s32  arg1,
s32  arg2 
)

◆ mpColl_80043558()

void mpColl_80043558 ( CollData arg0,
s32  arg1 
)
Todo:
dummy stack in func_80043324_inline2 breaks this function

◆ mpColl_80043670()

void mpColl_80043670 ( CollData arg0)

◆ mpColl_80043680()

void mpColl_80043680 ( CollData arg0,
Vec3 arg1 
)

◆ mpColl_800436D8()

void mpColl_800436D8 ( CollData arg0,
int  arg1 
)

◆ six()

static float six ( void  )
static

◆ mpColl_800436E4()

void mpColl_800436E4 ( CollData arg0,
float  arg1 
)

◆ max_inline()

float max_inline ( float  a,
float  b 
)
inline

◆ mpColl_80043754()

bool mpColl_80043754 ( mpColl_Callback  arg0,
CollData arg1,
u32  arg2 
)

◆ mpColl_800439FC()

void mpColl_800439FC ( CollData arg0)

◆ mpColl_80043ADC()

void mpColl_80043ADC ( CollData arg0)

◆ mpColl_80043BBC()

bool mpColl_80043BBC ( CollData arg0,
s32 arg1 
)

◆ mpColl_80043C6C()

void mpColl_80043C6C ( CollData arg0,
s32  arg1,
s32  arg2 
)
Todo:
Fix signature of mpLib_800501CC.

◆ mpColl_80046904()

◆ mpColl_8004730C()

bool mpColl_8004730C ( CollData cdata,
ftCollisionBox arg1 
)

◆ mpColl_800477E0()

◆ mpColl_8004CBE8()

◆ mpColl_8004CBF4()

void mpColl_8004CBF4 ( CollData arg0)

Variable Documentation

◆ mpColl_804D649C

bool mpColl_804D649C
static

◆ mpColl_804D64A0

Event mpColl_804D64A0
static

◆ mpColl_804D64A4

Event mpColl_804D64A4
static

◆ mpColl_804D64A8

Event mpColl_804D64A8
static

◆ mpColl_804D64AC

u32 mpColl_804D64AC

◆ mpColl_804D3948

char mpColl_804D3948[2] = "0"

◆ mpColl_804D7F9C

const float mpColl_804D7F9C = -F32_MAX
Todo:
float order hack

◆ mpColl_804D7FA0

const float mpColl_804D7FA0 = F32_MAX

◆ flt_804D7FF8

const float flt_804D7FF8 = 5.0f

◆ flt_804D8000

const f64 flt_804D8000 = -0.75

◆ flt_804D8008

const f64 flt_804D8008 = 0.75

◆ flt_804D8010

const float flt_804D8010 = -3.0f

◆ flt_804D7FD8

const float flt_804D7FD8 = 6.0f
Todo:
float order hack

◆ dummy_string_data

const char* dummy_string_data = "i<MPCOLL_WALLID_MAX"