SSBM Decomp
Loading...
Searching...
No Matches
ground.c File Reference
#include "ground.h"
#include "grbattle.h"
#include "grbigblue.h"
#include "grbigblueroute.h"
#include "grcastle.h"
#include "grcorneria.h"
#include "grdatfiles.h"
#include "grdisplay.h"
#include "grfigure1.h"
#include "grfigure2.h"
#include "grfigure3.h"
#include "grfigureget.h"
#include "grflatzone.h"
#include "grfourside.h"
#include "grgarden.h"
#include "grgreatbay.h"
#include "grgreens.h"
#include "grheal.h"
#include "grhomerun.h"
#include "gricemt.h"
#include "grinishie1.h"
#include "grinishie2.h"
#include "grizumi.h"
#include "grkinokoroute.h"
#include "grkongo.h"
#include "grkraid.h"
#include "grlast.h"
#include "grmaterial.h"
#include "grmutecity.h"
#include "groldkongo.h"
#include "groldpupupu.h"
#include "groldyoshi.h"
#include "gronett.h"
#include "grpstadium.h"
#include "grpura.h"
#include "grpushon.h"
#include "grrcruise.h"
#include "grshrine.h"
#include "grshrineroute.h"
#include "grstory.h"
#include "grtcaptain.h"
#include "grtclink.h"
#include "grtdonkey.h"
#include "grtdrmario.h"
#include "grtemblem.h"
#include "grtest.h"
#include "grtfalco.h"
#include "grtfox.h"
#include "grtgamewatch.h"
#include "grtganon.h"
#include "grticeclimber.h"
#include "grtkirby.h"
#include "grtkoopa.h"
#include "grtlink.h"
#include "grtluigi.h"
#include "grtmario.h"
#include "grtmars.h"
#include "grtmewtwo.h"
#include "grtness.h"
#include "grtpeach.h"
#include "grtpichu.h"
#include "grtpikachu.h"
#include "grtpurin.h"
#include "grtsamus.h"
#include "grtseak.h"
#include "grtyoshi.h"
#include "grtzelda.h"
#include "grvenom.h"
#include "gryorster.h"
#include "grzebes.h"
#include "grzebesroute.h"
#include "inlines.h"
#include "platform.h"
#include "stage.h"
#include "cm/camera.h"
#include "ft/ftdevice.h"
#include "ft/ftlib.h"
#include "gm/gm_unsplit.h"
#include "it/it_26B1.h"
#include "it/it_3F14.h"
#include "it/items/itcoin.h"
#include "it/itzako.h"
#include "it/types.h"
#include "lb/lb_00B0.h"
#include "lb/lbaudio_ax.h"
#include "lb/lbdvd.h"
#include "lb/lbshadow.h"
#include "lb/lbspdisplay.h"
#include "lb/lbvector.h"
#include "mp/mpcoll.h"
#include "mp/mplib.h"
#include "mp/types.h"
#include "pl/player.h"
#include "sc/types.h"
#include "ty/toy.h"
#include "ty/tydisplay.h"
#include <math.h>
#include <math_ppc.h>
#include <trigf.h>
#include <dolphin/gx.h>
#include <dolphin/mtx.h>
#include <baselib/cobj.h>
#include <baselib/debug.h>
#include <baselib/fog.h>
#include <baselib/gobj.h>
#include <baselib/gobjgxlink.h>
#include <baselib/gobjobject.h>
#include <baselib/gobjplink.h>
#include <baselib/gobjproc.h>
#include <baselib/gobjuserdata.h>
#include <baselib/jobj.h>
#include <baselib/lobj.h>
#include <baselib/memory.h>
#include <baselib/particle.h>
#include <baselib/psstructs.h>
#include <baselib/random.h>
#include <baselib/spline.h>
#include <baselib/wobj.h>

Data Structures

struct  LightOverrideEntry

Macros

#define RANDI_MAX   (100)
#define FOG_ASSERT(line, cond)

Functions

static void Ground_OnStart (void)
static void Ground_801BFFAC (bool)
static void mem_free (void *ptr)
static bool Ground_801C0A70 (Vec3 *pos)
static void Ground_801C0C2C (HSD_GObj *)
static void Ground_801C1CD0 (HSD_GObj *)
static void Ground_801C1D38 (HSD_GObj *)
static void Ground_801C1E2C (HSD_GObj *gobj, int code)
static void Ground_801C1E94 (void)
static LightList ** Ground_801C20E0 (UnkArchiveStruct *, LightList **)
static bool Ground_801C24F8 (StKind stkind, u32, s32 *)
static void Ground_801C28CC (s32 *, StKind stkind)
static void Ground_801C2BBC (Ground_GObj *map_gobj, int index)
static void Ground_801C2BD4 (void *)
static void Ground_801C34AC (s32, HSD_JObj *, struct HSD_Joint *)
static void Ground_801C466C (void)
static void Ground_801C55AC (Ground *)
static void Ground_801C5878 (void)
static f32 fabsf (f32 x)
void Ground_801BFFB0 (void)
static void zeroBuffer (void)
void Ground_801C0378 (int arg0)
f32 Ground_801C0498 (void)
static Groundalloc_user_data_ground (void)
void Ground_801C04BC (f32 arg8)
s32 Ground_801C0508 (void)
void Ground_801C052C (GXColor *arg0)
void Ground_801C0544 (GXColor *arg0)
void Ground_801C055C (GXColor *arg0)
void Ground_801C0574 (GXColor *arg0)
void Ground_801C058C (GXColor *arg0)
void Ground_801C05A4 (GXColor *arg0)
void Ground_801C05BC (GXColor *arg0)
void Ground_801C05D4 (GXColor *arg0)
void Ground_801C05EC (GXColor *arg0)
GXColorGround_801C0604 (void)
GXColorGround_801C0618 (void)
GXColorGround_801C062C (void)
GXColorGround_801C0640 (void)
GXColorGround_801C0654 (void)
GXColorGround_801C0668 (void)
GXColorGround_801C067C (void)
GXColorGround_801C0690 (void)
GXColorGround_801C06A4 (void)
void Ground_801C06B8 (GrKind arg0)
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 arg1)
void Ground_801C10B8 (HSD_GObj *arg0, HSD_GObjEvent arg1)
void Ground_801C1154 (void)
void Ground_801C1158 (void)
void Ground_801C11AC (HSD_GObj *gobj)
static HSD_JointGround_801C126C (HSD_Joint *node, s32 *depth)
HSD_JObjGround_801C13D0 (s32 arg0, s32 depth)
static HSD_JObjget_jobj_inline (float phi_f0)
Ground_GObjGround_GetStageGObj (int map_id)
HSD_GObjGround_801C1A20 (HSD_Joint *arg0, s32 arg1)
void Ground_801C1D6C (u32 arg0)
u32 Ground_801C1D84 (void)
u32 Ground_801C1D98 (void)
u32 Ground_801C1DAC (void)
u32 Ground_801C1DC0 (void)
int Ground_801C1DD4 (void)
void Ground_801C1DE4 (s32 *arg0, s32 *arg1)
void Ground_801C1E00 (s32 arg0)
s32 Ground_801C1E18 (void)
HSD_GObjGround_801C1E84 (void)
HSD_FogDescfoo (void)
 void Camera_SetBackgroundColor(u8, u8, u8); /* extern ‍/ UnkStruct3 grDatFiles_801C6330(int); /* extern ‍/ void Ground_801C1E2C(HSD_GObj, int); /* extern *‍/ extern s8 HSD_GObj_804D7848; extern float @330;
void Ground_ApplyStageBackgroundColor (void)
void Ground_801C205C (GXColor *color)
bool Ground_801C2090 (GXColor *color)
f32 Ground_801C20D0 (void)
static HSD_LightDescget_light_desc_inline (LightList **list)
static bool find_light_override (UnkArchiveStruct *archive, HSD_LightDesc *desc, bool *b6, bool *b7, bool *b5)
static bool find_light_override_in_dat (UnkStageDat *dat, HSD_LightDesc *desc, bool *b6, bool *b7, bool *b5)
void Ground_801C2374 (HSD_LObj *lobj)
HSD_SplineGround_801C247C (s32 arg0, s32 arg1)
bool Ground_801C28AC (StKind stkind, u32 arg1, s32 *arg2)
static void reportStageParams (s32 count)
s32Ground_801C2AD8 (void)
float Ground_801C2AE8 (StKind stkind)
Ground_GObjGround_801C2BA4 (int index)
bool Ground_801C2C8C (void *arg0)
HSD_JObjGround_801C2CF4 (s32 i)
void Ground_801C2D0C (s32 i, HSD_JObj *jobj)
bool Ground_801C2D24 (enum_t arg0, Vec3 *arg1)
bool Ground_801C2ED0 (HSD_JObj *jobj, s32 arg1)
bool Ground_801C2FE0 (Ground_GObj *arg0)
bool Ground_801C3128 (s32 arg0, void(*arg1)(int))
bool Ground_801C3214 (int arg0)
bool Ground_801C3260 (s32 arg0)
void Ground_801C32AC (s32 arg0)
s32 Ground_801C32D4 (s32 arg0, s32 arg1)
s32 Ground_801C33C0 (s32 arg0, s32 arg1)
void Ground_801C36F4 (int map_id, HSD_JObj *root, UNK_T joint)
void Ground_801C3880 (f32 val)
void Ground_801C3890 (f32 val)
void Ground_801C38A0 (f32 val)
void Ground_801C38AC (f32 val)
void Ground_801C38BC (f32 x, f32 y)
void Ground_801C38D0 (f32 tilt, f32 pan, f32 a, f32 b)
void Ground_801C38EC (f32 depth, f32 zoom)
void Ground_801C3900 (f32 arg8, f32 arg9, f32 argA, f32 argB, 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_801C3BB4 (void)
s32 Ground_801C3D44 (void *arg0, f32 arg8, f32 arg9)
s32 Ground_801C3DB4 (void *arg0, f32 arg8, f32 arg9)
static HSD_AObjGround_801C3E18 (HSD_JObj *jobj)
f32 Ground_801C3F20 (HSD_JObj *arg0)
HSD_JObjGround_801C3FA4 (HSD_GObj *gobj, int depth)
HSD_JObjGround_801C4100 (HSD_JObj *jobj)
s32 Ground_801C4210 (void)
void Ground_801C42AC (void)
void Ground_801C4338 (void)
void Ground_801C4368 (f32 *slope, f32 *intercept)
void Ground_801C438C (f32 val)
void Ground_801C43A4 (UNK_T arg0)
bool Ground_801C43C4 (void *arg0)
void Ground_801C445C (HSD_LObj *lobj)
static void Ground_801C461C (HSD_GObj *gobj)
static void Ground_801C4640 (HSD_GObj *gobj, int unused)
static LightList ** Ground_801C466C_inline (void)
HSD_GObjGround_801C498C (void)
LightList ** Ground_801C49B4 (void)
void * Ground_GetYakumonoParam (void)
static void removeStageGObj (HSD_GObj *gobj)
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 *arg0, Vec3 *arg1, f32 arg8)
bool Ground_801C4DA0 (Vec3 *arg0, f32 *arg1)
bool Ground_801C4DD0 (void)
bool Ground_801C4E20 (void)
void Ground_801C4E70 (HSD_JObj *arg0, HSD_JObj *arg1, HSD_JObj *arg2, HSD_JObj *arg3, HSD_JObj *arg4, HSD_JObj *arg5)
static float vec_len (Vec3 *v)
void Ground_801C4FAC (HSD_CObj *cobj)
void Ground_801C53EC (u32 arg0)
void Ground_801C5414 (int arg0, int arg1)
void Ground_801C5440 (Ground *gp, s32 i, u32 arg2)
bool Ground_801C54DC (Ground *gp, s32 i)
void Ground_801C5544 (Ground *gp, s32 i)
void Ground_801C5630 (Ground *gp, s32 i, f32 val)
void Ground_801C5694 (Ground *gp, s32 i, f32 val)
DynamicsDescGround_801C5700 (int i)
void Ground_801C5740 (s32 arg0)
void Ground_801C5750 (void)
s32 Ground_801C5764 (void)
s32 Ground_801C5774 (void)
void Ground_801C5784 (s32 arg0)
s32 Ground_801C5794 (void)
HSD_GObjGround_801C57A4 (void)
HSD_GObjGround_801C57C8 (void)
f32 Ground_801C57F0 (int arg0)
void Ground_EnableMatchCamera (void)
 Restores the in-match camera mode after unpause.
s32 Ground_801C5840 (void)
Item_GObjGround_801C58E0 (s32 arg0, s32 arg1)
static s32 randi (s32 max)
int Ground_801C5940 (void)
void Ground_801C5A28 (void)
void Ground_801C5A60 (void)
void Ground_801C5A84 (s32 arg0)
s32 Ground_801C5A94 (void)
void Ground_801C5AA4 (bool arg0)
bool Ground_801C5ABC (void)
u32 Ground_801C5AD0 (s32 i)
void Ground_801C5AEC (Vec3 *v, Vec3 *arg1, Vec3 *arg2, Vec3 *arg3)

Variables

StageInfo stage_info
static StageData Ground_StageData
static StageDatastage_datas []
static u8Ground_804D6950
static ssize_t const buffer_size = 64
static ssize_t const Gr_CObj_Max = ARRAY_SIZE(stage_info.x694)
BobOmbRain const Ground_803B7DEC = { 0, 0, 0, 0, 0, 6 }
HSD_Joint const Ground_803B7E0C
static const int BGM_Undefined = -1
static char msg0 []
static char msg1 []
static char msg2 [] = " stageid=%d\n"
static s16 Ground_804D6954
u32 unknown []
static HSD_LightAnim Ground_803E065C [] = { 0 }
static HSD_WObjDesc Ground_803E066C
static HSD_LightAnimGround_804D4500 []
float Ground_804D4508 = 16.0f
static HSD_LightDesc Ground_803E0680
static HSD_LightAnim Ground_803E069C [] = { 0 }
static HSD_LightDesc Ground_803E06AC
static LightList Ground_804D450C
static HSD_LightAnimGround_804D4514 []
static LightList Ground_804D451C
static LightListGround_803E06C8 []
static int unused_ints [] = { 1, 1, 0, 0, 0, 180, 0, 0, 0 }

Detailed Description

Todo
Don't hardcode 8

Macro Definition Documentation

◆ RANDI_MAX

#define RANDI_MAX   (100)

◆ FOG_ASSERT

#define FOG_ASSERT ( line,
cond )
Value:
((cond) ? (void) 0 : __assert("fog.h", line, #cond))
void __assert(char *str, u32 arg1, char *arg2)
Definition debug.c:36
Todo
replace with fog.h inlines

Function Documentation

◆ Ground_OnStart()

void Ground_OnStart ( void )
static

◆ Ground_801BFFAC()

void Ground_801BFFAC ( bool arg0)
static

◆ mem_free()

void mem_free ( void * ptr)
static

◆ Ground_801C0A70()

bool Ground_801C0A70 ( Vec3 * pos)
static

◆ Ground_801C0C2C()

void Ground_801C0C2C ( HSD_GObj * arg0)
static

◆ Ground_801C1CD0()

void Ground_801C1CD0 ( HSD_GObj * gobj)
static

◆ Ground_801C1D38()

void Ground_801C1D38 ( HSD_GObj * gobj)
static

◆ Ground_801C1E2C()

void Ground_801C1E2C ( HSD_GObj * gobj,
int code )
static

◆ Ground_801C1E94()

void Ground_801C1E94 ( void )
static

◆ Ground_801C20E0()

LightList ** Ground_801C20E0 ( UnkArchiveStruct * archive,
LightList ** lightset )
static

◆ Ground_801C24F8()

bool Ground_801C24F8 ( StKind stkind,
u32 arg1,
s32 * arg2 )
static
Todo
phi_r30 probably belongs to an inline.
Todo
Weird comparison, but typing StageParam::x10 as signed doesn't match and neither does typing BGM_Undefined as unsigned.
Todo
Even weirder.

◆ Ground_801C28CC()

void Ground_801C28CC ( s32 * arg0,
StKind stkind )
static

◆ Ground_801C2BBC()

void Ground_801C2BBC ( Ground_GObj * map_gobj,
int index )
static

◆ Ground_801C2BD4()

void Ground_801C2BD4 ( void * arg0)
static

◆ Ground_801C34AC()

void Ground_801C34AC ( s32 map_id,
HSD_JObj * root,
struct HSD_Joint * joint )
static

◆ Ground_801C466C()

void Ground_801C466C ( void )
static

◆ Ground_801C55AC()

void Ground_801C55AC ( Ground * gp)
static

◆ Ground_801C5878()

void Ground_801C5878 ( void )
static
Todo
Why is global_optimizer necessary?

◆ fabsf()

f32 fabsf ( f32 x)
inlinestatic
Todo
Move elsewhere.

◆ Ground_801BFFB0()

void Ground_801BFFB0 ( void )

◆ zeroBuffer()

void zeroBuffer ( void )
static

◆ Ground_801C0378()

void Ground_801C0378 ( int arg0)

◆ Ground_801C0498()

f32 Ground_801C0498 ( void )

◆ alloc_user_data_ground()

Ground * alloc_user_data_ground ( void )
static

◆ Ground_801C04BC()

void Ground_801C04BC ( f32 arg8)

◆ 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_801C126C()

HSD_Joint * Ground_801C126C ( HSD_Joint * node,
s32 * depth )
static

◆ Ground_801C13D0()

HSD_JObj * Ground_801C13D0 ( s32 arg0,
s32 depth )

◆ get_jobj_inline()

HSD_JObj * get_jobj_inline ( float phi_f0)
static

◆ Ground_GetStageGObj()

Ground_GObj * Ground_GetStageGObj ( int map_id)

◆ 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 )

◆ foo()

HSD_FogDesc * foo ( void )
inline

void Camera_SetBackgroundColor(u8, u8, u8); /* extern ‍/ UnkStruct3 grDatFiles_801C6330(int); /* extern ‍/ void Ground_801C1E2C(HSD_GObj, int); /* extern *‍/ extern s8 HSD_GObj_804D7848; extern float @330;

◆ 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 )

◆ get_light_desc_inline()

HSD_LightDesc * get_light_desc_inline ( LightList ** list)
inlinestatic

◆ find_light_override()

bool find_light_override ( UnkArchiveStruct * archive,
HSD_LightDesc * desc,
bool * b6,
bool * b7,
bool * b5 )
inlinestatic

◆ find_light_override_in_dat()

bool find_light_override_in_dat ( UnkStageDat * dat,
HSD_LightDesc * desc,
bool * b6,
bool * b7,
bool * b5 )
inlinestatic

◆ 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 )

◆ reportStageParams()

void reportStageParams ( s32 count)
inlinestatic

◆ Ground_801C2AD8()

s32 * Ground_801C2AD8 ( void )

◆ Ground_801C2AE8()

float Ground_801C2AE8 ( StKind stkind)

◆ Ground_801C2BA4()

Ground_GObj * Ground_801C2BA4 ( int index)

◆ 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_801C2ED0()

bool Ground_801C2ED0 ( HSD_JObj * jobj,
s32 arg1 )

◆ Ground_801C2FE0()

bool Ground_801C2FE0 ( Ground_GObj * arg0)

◆ Ground_801C3128()

bool Ground_801C3128 ( s32 arg0,
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 arg0)

◆ Ground_801C3260()

bool Ground_801C3260 ( s32 arg0)

◆ Ground_801C32AC()

void Ground_801C32AC ( s32 arg0)

◆ 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 * root,
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_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_801C3E18()

HSD_AObj * Ground_801C3E18 ( HSD_JObj * jobj)
static

◆ 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 ( f32 * slope,
f32 * 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_801C461C()

void Ground_801C461C ( HSD_GObj * gobj)
static

◆ Ground_801C4640()

void Ground_801C4640 ( HSD_GObj * gobj,
int unused )
static

◆ Ground_801C466C_inline()

LightList ** Ground_801C466C_inline ( void )
static

◆ Ground_801C498C()

HSD_GObj * Ground_801C498C ( void )

◆ Ground_801C49B4()

LightList ** Ground_801C49B4 ( void )

◆ Ground_GetYakumonoParam()

void * Ground_GetYakumonoParam ( void )

◆ removeStageGObj()

void removeStageGObj ( HSD_GObj * gobj)
inlinestatic

◆ 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 )

◆ 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 )

◆ vec_len()

float vec_len ( Vec3 * v)
inlinestatic

◆ 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()

DynamicsDesc * 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_801C57A4()

HSD_GObj * Ground_801C57A4 ( void )

◆ Ground_801C57C8()

HSD_GObj * Ground_801C57C8 ( 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 )

◆ randi()

s32 randi ( s32 max)
inlinestatic

◆ 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

◆ Ground_StageData

StageData Ground_StageData
static
Initial value:
= {
0,
0,
0,
}
static void Ground_OnStart(void)
Definition ground.c:216
static void Ground_801BFFAC(bool)
Definition ground.c:218
#define NULL
Definition stddef.h:19

◆ stage_datas

StageData* stage_datas[]
static

◆ Ground_804D6950

u8* Ground_804D6950
static

◆ buffer_size

ssize_t const buffer_size = 64
static

◆ Gr_CObj_Max

ssize_t const Gr_CObj_Max = ARRAY_SIZE(stage_info.x694)
static

◆ Ground_803B7DEC

BobOmbRain const Ground_803B7DEC = { 0, 0, 0, 0, 0, 6 }

◆ Ground_803B7E0C

HSD_Joint const Ground_803B7E0C
Initial value:
= {
NULL, 0, NULL, NULL, NULL,
{ 0, 0, 0 }, { 1, 1, 1 }, { 0, 0, 0 }, NULL, NULL,
}

◆ BGM_Undefined

const int BGM_Undefined = -1
static

◆ msg0

char msg0[]
static
Initial value:
=
"%s:%d: not found stage param in DAT(grkind=%d stkind=%d,num=%d)\n"

◆ msg1

char msg1[]
static
Initial value:
=
" check StageParam.csv or StageItem.csv, stdata.c\n"

◆ msg2

char msg2[] = " stageid=%d\n"
static

◆ Ground_804D6954

s16 Ground_804D6954
static

◆ unknown

u32 unknown[]

◆ Ground_803E065C

HSD_LightAnim Ground_803E065C[] = { 0 }
static

◆ Ground_803E066C

HSD_WObjDesc Ground_803E066C
static
Initial value:
= {
{ 0.57f, 0.57f, 0.57f },
}

◆ Ground_804D4500

HSD_LightAnim* Ground_804D4500[]
static
Initial value:
= {
}
static HSD_LightAnim Ground_803E065C[]
Definition ground.c:2627

◆ Ground_804D4508

float Ground_804D4508 = 16.0f

◆ Ground_803E0680

HSD_LightDesc Ground_803E0680
static
Initial value:
= {
(1 << 0) | (1 << 2) | (1 << 3),
0,
{ 0xFF, 0xFF, 0xFF, 0xFF },
}
float Ground_804D4508
Definition ground.c:2639
static HSD_WObjDesc Ground_803E066C
Definition ground.c:2628

◆ Ground_803E069C

HSD_LightAnim Ground_803E069C[] = { 0 }
static

◆ Ground_803E06AC

HSD_LightDesc Ground_803E06AC
static
Initial value:
= {
NULL, NULL, (1 << 2), 0, { 0xFF, 0xFF, 0xFF, 0xFF }, NULL, NULL, NULL
}

◆ Ground_804D450C

LightList Ground_804D450C
static
Initial value:
= {
}
static HSD_LightAnim * Ground_804D4500[]
Definition ground.c:2634
static HSD_LightDesc Ground_803E0680
Definition ground.c:2641

◆ Ground_804D4514

HSD_LightAnim* Ground_804D4514[]
static
Initial value:
= {
}
static HSD_LightAnim Ground_803E069C[]
Definition ground.c:2652

◆ Ground_804D451C

LightList Ground_804D451C
static
Initial value:
= {
}
static HSD_LightDesc Ground_803E06AC
Definition ground.c:2653
static HSD_LightAnim * Ground_804D4514[]
Definition ground.c:2661

◆ Ground_803E06C8

LightList* Ground_803E06C8[]
static
Initial value:
= {
}
static LightList Ground_804D450C
Definition ground.c:2657
static LightList Ground_804D451C
Definition ground.c:2665

◆ unused_ints

int unused_ints[] = { 1, 1, 0, 0, 0, 180, 0, 0, 0 }
static