SSBM Decomp
Loading...
Searching...
No Matches
ground.h File Reference
#include <Runtime/platform.h>
#include <melee/lb/forward.h>
#include <sysdolphin/baselib/forward.h>
#include <placeholder.h>
#include <dolphin/gx.h>
#include <dolphin/mtx.h>
#include <melee/gr/types.h>

Go to the source code of this file.

Data Structures

struct  LightOverrideEntry

Functions

void Ground_801BFFB0 (void)
void Ground_801C0378 (int)
float Ground_801C0498 (void)
void Ground_SetParamY (float y)
s32 Ground_801C0508 (void)
void Ground_801C052C (GXColor *)
void Ground_801C0544 (GXColor *)
void Ground_801C055C (GXColor *)
void Ground_801C0574 (GXColor *)
void Ground_801C058C (GXColor *)
void Ground_801C05A4 (GXColor *)
void Ground_801C05BC (GXColor *)
void Ground_801C05D4 (GXColor *)
void Ground_801C05EC (GXColor *)
GXColor * Ground_801C0604 (void)
GXColor * Ground_801C0618 (void)
GXColor * Ground_801C062C (void)
GXColor * Ground_801C0640 (void)
GXColor * Ground_801C0654 (void)
GXColor * Ground_801C0668 (void)
GXColor * Ground_801C067C (void)
GXColor * Ground_801C0690 (void)
GXColor * Ground_801C06A4 (void)
void Ground_801C06B8 (GrKind)
void Ground_801C0754 (StageIdPair *pair)
void Ground_801C0800 (StageIdPair *pair)
void Ground_OnLoad (StageIdPair *pair)
void Ground_801C0FB8 (StageIdPair *pair)
void Ground_DemoInit (StageIdPair *pair, s32)
void Ground_801C10B8 (HSD_GObj *, HSD_GObjEvent)
void Ground_801C1154 (void)
void Ground_801C1158 (void)
void Ground_801C11AC (HSD_GObj *gobj)
HSD_JObj * Ground_801C13D0 (s32, s32 depth)
Ground_GObj * Ground_GetStageGObj (int)
HSD_GObj * Ground_801C1A20 (HSD_Joint *, s32)
void Ground_801C1D6C (u32)
u32 Ground_801C1D84 (void)
u32 Ground_801C1D98 (void)
u32 Ground_801C1DAC (void)
u32 Ground_801C1DC0 (void)
int Ground_801C1DD4 (void)
void Ground_801C1DE4 (s32 *, s32 *)
void Ground_801C1E00 (s32)
s32 Ground_801C1E18 (void)
HSD_GObj * Ground_801C1E84 (void)
void Ground_ApplyStageBackgroundColor (void)
void Ground_801C205C (GXColor *color)
bool Ground_801C2090 (GXColor *color)
f32 Ground_801C20D0 (void)
void Ground_801C2374 (HSD_LObj *lobj)
HSD_Spline * Ground_801C247C (s32, s32)
bool Ground_801C28AC (StKind, u32, s32 *)
s32 * Ground_801C2AD8 (void)
float Ground_801C2AE8 (StKind)
Ground_GObj * Ground_GetMapGObj (int map_id)
bool Ground_801C2C8C (void *)
HSD_JObj * Ground_801C2CF4 (s32)
void Ground_801C2D0C (s32 i, HSD_JObj *jobj)
bool Ground_801C2D24 (enum_t, Vec3 *)
bool Ground_InitMapColl (HSD_JObj *jobj, s32 map_id)
 Binds each collision joint of map map_id to a joint of jobj, syncs it to the model, and re-enables the map's collision if it was removed.
bool Ground_UpdateMapColl (Ground_GObj *)
 Re-syncs the collision joints of the map to its animated model.
bool Ground_801C3128 (int gobj_id, void(*)(int))
bool Ground_801C3214 (int gobj_id)
bool Ground_801C3260 (s32)
void Ground_801C32AC (int gobj_id)
s32 Ground_801C32D4 (s32, s32)
s32 Ground_801C33C0 (s32, s32)
void Ground_801C36F4 (int map_id, HSD_JObj *jobj, UNK_T joint)
void Ground_801C3880 (f32)
void Ground_801C3890 (f32)
void Ground_801C38A0 (f32)
void Ground_801C38AC (f32)
void Ground_801C38BC (f32 x, f32 y)
void Ground_801C38D0 (f32 tilt, f32 pan, f32, f32)
void Ground_801C38EC (f32 depth, f32 zoom)
void Ground_801C3900 (f32, f32, f32, f32, f32 up, f32 down, f32 left, f32 right)
void Ground_801C392C (f32 x, f32 y, f32 z, f32 fov, f32 vert, f32 horz)
void Ground_801C3950 (f32 zoom)
void Ground_801C3960 (f32 ratio)
void Ground_801C3970 (f32 smooth)
void Ground_801C3980 (f32 top)
void Ground_801C3990 (f32 bottom)
void Ground_801C39A0 (f32 left)
void Ground_801C39B0 (f32 right)
void Ground_801C39C0 (void)
void Ground_801C3BA8 (HSD_GObj *, StageCallbacks *, int, int)
void Ground_801C3BB4 (void)
s32 Ground_801C3D44 (void *, f32, f32)
s32 Ground_801C3DB4 (void *, f32, f32)
f32 Ground_801C3F20 (HSD_JObj *)
HSD_JObj * Ground_801C3FA4 (HSD_GObj *gobj, int depth)
HSD_JObj * Ground_801C4100 (HSD_JObj *jobj)
s32 Ground_801C4210 (void)
void Ground_801C42AC (void)
void Ground_801C4338 (void)
void Ground_801C4368 (float *slope, float *intercept)
void Ground_801C438C (f32 val)
void Ground_801C43A4 (UNK_T)
bool Ground_801C43C4 (void *)
void Ground_801C445C (HSD_LObj *lobj)
HSD_GObj * Ground_801C498C (void)
LightList ** Ground_801C49B4 (void)
void * Ground_GetYakumonoParam (void)
void Ground_801C4A08 (HSD_GObj *gobj)
 Stage destroy ground gobj.
void Ground_801C4B50 (HSD_Spline *spline, Vec3 *arg1, Vec3 *result, f32 arg8)
bool Ground_801C4D70 (HSD_GObj *, Vec3 *, f32)
bool Ground_801C4DA0 (Vec3 *, f32 *)
bool Ground_801C4DD0 (void)
bool Ground_801C4E20 (void)
void Ground_801C4E70 (HSD_JObj *, HSD_JObj *, HSD_JObj *, HSD_JObj *, HSD_JObj *, HSD_JObj *)
void Ground_801C4FAC (HSD_CObj *cobj)
void Ground_801C53EC (u32)
void Ground_801C5414 (int, int)
void Ground_801C5440 (Ground *gp, s32 i, u32)
bool Ground_801C54DC (Ground *gp, s32 i)
void Ground_801C5544 (Ground *, s32)
void Ground_801C5630 (Ground *gp, s32 i, f32 val)
void Ground_801C5694 (Ground *gp, s32 i, f32 val)
lbColl_80008D30_arg1 * Ground_801C5700 (int i)
void Ground_801C5740 (s32)
void Ground_801C5750 (void)
s32 Ground_801C5764 (void)
s32 Ground_801C5774 (void)
void Ground_801C5784 (s32)
s32 Ground_801C5794 (void)
Fighter_GObj * Ground_GetP1Fighter (void)
Fighter_GObj * Ground_GetP1Fighter2 (void)
f32 Ground_801C57F0 (int)
void Ground_EnableMatchCamera (void)
 Restores the in-match camera mode after unpause.
s32 Ground_801C5840 (void)
Item_GObj * Ground_801C58E0 (s32, s32)
int Ground_801C5940 (void)
void Ground_801C5A28 (void)
void Ground_801C5A60 (void)
void Ground_801C5A84 (s32)
s32 Ground_801C5A94 (void)
void Ground_801C5AA4 (bool)
bool Ground_801C5ABC (void)
u32 Ground_801C5AD0 (s32 i)
void Ground_801C5AEC (Vec3 *v, Vec3 *, Vec3 *, Vec3 *)

Variables

StageInfo stage_info

Detailed Description

Todo
Get stage's "yakumono" ("about"?) param

Function Documentation

◆ Ground_801BFFB0()

void Ground_801BFFB0 ( void )

◆ Ground_801C0378()

void Ground_801C0378 ( int arg0)

◆ Ground_801C0498()

float Ground_801C0498 ( void )

◆ Ground_SetParamY()

void Ground_SetParamY ( float y)

◆ Ground_801C0508()

s32 Ground_801C0508 ( void )

◆ Ground_801C052C()

void Ground_801C052C ( GXColor * arg0)

◆ Ground_801C0544()

void Ground_801C0544 ( GXColor * arg0)

◆ Ground_801C055C()

void Ground_801C055C ( GXColor * arg0)

◆ Ground_801C0574()

void Ground_801C0574 ( GXColor * arg0)

◆ Ground_801C058C()

void Ground_801C058C ( GXColor * arg0)

◆ Ground_801C05A4()

void Ground_801C05A4 ( GXColor * arg0)

◆ Ground_801C05BC()

void Ground_801C05BC ( GXColor * arg0)

◆ Ground_801C05D4()

void Ground_801C05D4 ( GXColor * arg0)

◆ Ground_801C05EC()

void Ground_801C05EC ( GXColor * arg0)

◆ Ground_801C0604()

GXColor * Ground_801C0604 ( void )

◆ Ground_801C0618()

GXColor * Ground_801C0618 ( void )

◆ Ground_801C062C()

GXColor * Ground_801C062C ( void )

◆ Ground_801C0640()

GXColor * Ground_801C0640 ( void )

◆ Ground_801C0654()

GXColor * Ground_801C0654 ( void )

◆ Ground_801C0668()

GXColor * Ground_801C0668 ( void )

◆ Ground_801C067C()

GXColor * Ground_801C067C ( void )

◆ Ground_801C0690()

GXColor * Ground_801C0690 ( void )

◆ Ground_801C06A4()

GXColor * Ground_801C06A4 ( void )

◆ Ground_801C06B8()

void Ground_801C06B8 ( GrKind arg0)

◆ Ground_801C0754()

void Ground_801C0754 ( StageIdPair * pair)

◆ Ground_801C0800()

void Ground_801C0800 ( StageIdPair * pair)

◆ Ground_OnLoad()

void Ground_OnLoad ( StageIdPair * pair)

◆ Ground_801C0FB8()

void Ground_801C0FB8 ( StageIdPair * pair)

◆ Ground_DemoInit()

void Ground_DemoInit ( StageIdPair * pair,
s32 arg1 )

◆ Ground_801C10B8()

void Ground_801C10B8 ( HSD_GObj * arg0,
HSD_GObjEvent arg1 )

◆ Ground_801C1154()

void Ground_801C1154 ( void )

◆ Ground_801C1158()

void Ground_801C1158 ( void )

◆ Ground_801C11AC()

void Ground_801C11AC ( HSD_GObj * gobj)

◆ Ground_801C13D0()

HSD_JObj * Ground_801C13D0 ( s32 arg0,
s32 depth )

◆ Ground_GetStageGObj()

Ground_GObj * Ground_GetStageGObj ( int map_id)
Bug
alloc_user_data_ground returns the block uncleared and nothing below zeroes it, so any field a stage's callbacks read before its on_init writes it sees stale heap contents.

◆ Ground_801C1A20()

HSD_GObj * Ground_801C1A20 ( HSD_Joint * arg0,
s32 arg1 )

◆ Ground_801C1D6C()

void Ground_801C1D6C ( u32 arg0)

◆ Ground_801C1D84()

u32 Ground_801C1D84 ( void )

◆ Ground_801C1D98()

u32 Ground_801C1D98 ( void )

◆ Ground_801C1DAC()

u32 Ground_801C1DAC ( void )

◆ Ground_801C1DC0()

u32 Ground_801C1DC0 ( void )

◆ Ground_801C1DD4()

int Ground_801C1DD4 ( void )

◆ Ground_801C1DE4()

void Ground_801C1DE4 ( s32 * arg0,
s32 * arg1 )

◆ Ground_801C1E00()

void Ground_801C1E00 ( s32 arg0)

◆ Ground_801C1E18()

s32 Ground_801C1E18 ( void )

◆ Ground_801C1E84()

HSD_GObj * Ground_801C1E84 ( void )

◆ Ground_ApplyStageBackgroundColor()

void Ground_ApplyStageBackgroundColor ( void )

◆ Ground_801C205C()

void Ground_801C205C ( GXColor * color)

◆ Ground_801C2090()

bool Ground_801C2090 ( GXColor * color)

◆ Ground_801C20D0()

f32 Ground_801C20D0 ( void )

◆ Ground_801C2374()

void Ground_801C2374 ( HSD_LObj * lobj)

◆ Ground_801C247C()

HSD_Spline * Ground_801C247C ( s32 arg0,
s32 arg1 )

◆ Ground_801C28AC()

bool Ground_801C28AC ( StKind stkind,
u32 arg1,
s32 * arg2 )

◆ Ground_801C2AD8()

s32 * Ground_801C2AD8 ( void )

◆ Ground_801C2AE8()

float Ground_801C2AE8 ( StKind stkind)

◆ Ground_GetMapGObj()

Ground_GObj * Ground_GetMapGObj ( int map_id)

◆ Ground_801C2C8C()

bool Ground_801C2C8C ( void * arg0)

◆ Ground_801C2CF4()

HSD_JObj * Ground_801C2CF4 ( s32 i)

◆ Ground_801C2D0C()

void Ground_801C2D0C ( s32 i,
HSD_JObj * jobj )

◆ Ground_801C2D24()

bool Ground_801C2D24 ( enum_t arg0,
Vec3 * arg1 )

◆ Ground_InitMapColl()

bool Ground_InitMapColl ( HSD_JObj * jobj,
s32 map_id )

Binds each collision joint of map map_id to a joint of jobj, syncs it to the model, and re-enables the map's collision if it was removed.

Returns
whether the map has any collision joints.

◆ Ground_UpdateMapColl()

bool Ground_UpdateMapColl ( Ground_GObj * arg0)

Re-syncs the collision joints of the map to its animated model.

Runs at most once per frame per joint and only while the map's collision is enabled.

Returns
whether any joint was updated.

◆ Ground_801C3128()

bool Ground_801C3128 ( int gobj_id,
void(* arg1 )(int) )
Todo
Unused variable; is this an argument?
Todo
cur cannot be swapped below max, hinting at a missing inline function.

◆ Ground_801C3214()

bool Ground_801C3214 ( int gobj_id)

◆ Ground_801C3260()

bool Ground_801C3260 ( s32 arg0)

◆ Ground_801C32AC()

void Ground_801C32AC ( int gobj_id)

◆ Ground_801C32D4()

s32 Ground_801C32D4 ( s32 arg0,
s32 arg1 )
Todo
Shared inline with Ground_801C33C0.
Todo
Might be an inline starting here.

◆ Ground_801C33C0()

s32 Ground_801C33C0 ( s32 arg0,
s32 arg1 )
Attention
x and z being swapped compared to Ground_801C32D4 is the only difference.
Todo
Might be an inline starting here.

◆ Ground_801C36F4()

void Ground_801C36F4 ( int map_id,
HSD_JObj * jobj,
UNK_T joint )

◆ Ground_801C3880()

void Ground_801C3880 ( f32 val)

◆ Ground_801C3890()

void Ground_801C3890 ( f32 val)

◆ Ground_801C38A0()

void Ground_801C38A0 ( f32 val)

◆ Ground_801C38AC()

void Ground_801C38AC ( f32 val)

◆ Ground_801C38BC()

void Ground_801C38BC ( f32 x,
f32 y )

◆ Ground_801C38D0()

void Ground_801C38D0 ( f32 tilt,
f32 pan,
f32 a,
f32 b )

◆ Ground_801C38EC()

void Ground_801C38EC ( f32 depth,
f32 zoom )

◆ Ground_801C3900()

void Ground_801C3900 ( f32 arg8,
f32 arg9,
f32 argA,
f32 argB,
f32 up,
f32 down,
f32 left,
f32 right )

◆ Ground_801C392C()

void Ground_801C392C ( f32 x,
f32 y,
f32 z,
f32 fov,
f32 vert,
f32 horz )

◆ Ground_801C3950()

void Ground_801C3950 ( f32 zoom)

◆ Ground_801C3960()

void Ground_801C3960 ( f32 ratio)

◆ Ground_801C3970()

void Ground_801C3970 ( f32 smooth)

◆ Ground_801C3980()

void Ground_801C3980 ( f32 top)

◆ Ground_801C3990()

void Ground_801C3990 ( f32 bottom)

◆ Ground_801C39A0()

void Ground_801C39A0 ( f32 left)

◆ Ground_801C39B0()

void Ground_801C39B0 ( f32 right)

◆ Ground_801C39C0()

void Ground_801C39C0 ( void )

◆ Ground_801C3BA8()

void Ground_801C3BA8 ( HSD_GObj * ,
StageCallbacks * ,
int ,
int  )

◆ Ground_801C3BB4()

void Ground_801C3BB4 ( void )

◆ Ground_801C3D44()

s32 Ground_801C3D44 ( void * arg0,
f32 arg8,
f32 arg9 )

◆ Ground_801C3DB4()

s32 Ground_801C3DB4 ( void * arg0,
f32 arg8,
f32 arg9 )

◆ Ground_801C3F20()

f32 Ground_801C3F20 ( HSD_JObj * arg0)

◆ Ground_801C3FA4()

HSD_JObj * Ground_801C3FA4 ( HSD_GObj * gobj,
int depth )

◆ Ground_801C4100()

HSD_JObj * Ground_801C4100 ( HSD_JObj * jobj)
Todo
Why isn't this emitted to jobj.c?

◆ Ground_801C4210()

s32 Ground_801C4210 ( void )
Todo
With a hard-coded range for i, very unlikely it's not returning an enum. Probably preset joints (accesses a list of HSD_JObj).

◆ Ground_801C42AC()

void Ground_801C42AC ( void )

◆ Ground_801C4338()

void Ground_801C4338 ( void )

◆ Ground_801C4368()

void Ground_801C4368 ( float * slope,
float * intercept )

◆ Ground_801C438C()

void Ground_801C438C ( f32 val)

◆ Ground_801C43A4()

void Ground_801C43A4 ( UNK_T arg0)

◆ Ground_801C43C4()

bool Ground_801C43C4 ( void * arg0)

◆ Ground_801C445C()

void Ground_801C445C ( HSD_LObj * lobj)

◆ Ground_801C498C()

HSD_GObj * Ground_801C498C ( void )

◆ Ground_801C49B4()

LightList ** Ground_801C49B4 ( void )

◆ Ground_GetYakumonoParam()

void * Ground_GetYakumonoParam ( void )

◆ Ground_801C4A08()

void Ground_801C4A08 ( HSD_GObj * gobj)

Stage destroy ground gobj.

◆ Ground_801C4B50()

void Ground_801C4B50 ( HSD_Spline * spline,
Vec3 * arg1,
Vec3 * result,
f32 arg8 )
Parameters
[in]spline
[in]arg1
[out]result
[in]arg8

◆ Ground_801C4D70()

bool Ground_801C4D70 ( HSD_GObj * arg0,
Vec3 * arg1,
f32 arg8 )

◆ Ground_801C4DA0()

bool Ground_801C4DA0 ( Vec3 * arg0,
f32 * arg1 )

◆ Ground_801C4DD0()

bool Ground_801C4DD0 ( void )

◆ Ground_801C4E20()

bool Ground_801C4E20 ( void )

◆ Ground_801C4E70()

void Ground_801C4E70 ( HSD_JObj * arg0,
HSD_JObj * arg1,
HSD_JObj * arg2,
HSD_JObj * arg3,
HSD_JObj * arg4,
HSD_JObj * arg5 )

◆ Ground_801C4FAC()

void Ground_801C4FAC ( HSD_CObj * cobj)

◆ Ground_801C53EC()

void Ground_801C53EC ( u32 arg0)

◆ Ground_801C5414()

void Ground_801C5414 ( int arg0,
int arg1 )

◆ Ground_801C5440()

void Ground_801C5440 ( Ground * gp,
s32 i,
u32 arg2 )

◆ Ground_801C54DC()

bool Ground_801C54DC ( Ground * gp,
s32 i )

◆ Ground_801C5544()

void Ground_801C5544 ( Ground * gp,
s32 i )

◆ Ground_801C5630()

void Ground_801C5630 ( Ground * gp,
s32 i,
f32 val )

◆ Ground_801C5694()

void Ground_801C5694 ( Ground * gp,
s32 i,
f32 val )

◆ Ground_801C5700()

lbColl_80008D30_arg1 * Ground_801C5700 ( int i)

◆ Ground_801C5740()

void Ground_801C5740 ( s32 arg0)

◆ Ground_801C5750()

void Ground_801C5750 ( void )

◆ Ground_801C5764()

s32 Ground_801C5764 ( void )

◆ Ground_801C5774()

s32 Ground_801C5774 ( void )

◆ Ground_801C5784()

void Ground_801C5784 ( s32 arg0)

◆ Ground_801C5794()

s32 Ground_801C5794 ( void )

◆ Ground_GetP1Fighter()

Fighter_GObj * Ground_GetP1Fighter ( void )

◆ Ground_GetP1Fighter2()

Fighter_GObj * Ground_GetP1Fighter2 ( void )

◆ Ground_801C57F0()

f32 Ground_801C57F0 ( int arg0)
Parameters
arg0Unused by the implementation; the game's only caller (fn_80180C60 at 0x80180C88) materializes an explicit 0 argument, so the original signature takes a parameter.

◆ Ground_EnableMatchCamera()

void Ground_EnableMatchCamera ( void )

Restores the in-match camera mode after unpause.

Selects standard or fixed camera according to the stage's GroundParam::x4C_fixed_cam parameter. Both underlying calls only set the camera mode, without additional setup. Used when a paused match resumes and no StartMeleeRules::on_unpause_override is installed.

◆ Ground_801C5840()

s32 Ground_801C5840 ( void )

◆ Ground_801C58E0()

Item_GObj * Ground_801C58E0 ( s32 arg0,
s32 arg1 )

◆ Ground_801C5940()

int Ground_801C5940 ( void )

◆ Ground_801C5A28()

void Ground_801C5A28 ( void )

◆ Ground_801C5A60()

void Ground_801C5A60 ( void )

◆ Ground_801C5A84()

void Ground_801C5A84 ( s32 arg0)

◆ Ground_801C5A94()

s32 Ground_801C5A94 ( void )

◆ Ground_801C5AA4()

void Ground_801C5AA4 ( bool arg0)

◆ Ground_801C5ABC()

bool Ground_801C5ABC ( void )

◆ Ground_801C5AD0()

u32 Ground_801C5AD0 ( s32 i)

◆ Ground_801C5AEC()

void Ground_801C5AEC ( Vec3 * v,
Vec3 * arg1,
Vec3 * arg2,
Vec3 * arg3 )

Variable Documentation

◆ stage_info

StageInfo stage_info
extern