SSBM Decomp
Loading...
Searching...
No Matches
ground.c File Reference
#include "ground.h"
#include "grcorneria.h"
#include "grdatfiles.h"
#include "grdisplay.h"
#include "grizumi.h"
#include "grkongo.h"
#include "grmaterial.h"
#include "groldkongo.h"
#include "grpstadium.h"
#include "grzebes.h"
#include "platform.h"
#include "stage.h"
#include <placeholder.h>
#include "cm/camera.h"
#include "ft/ftdevice.h"
#include "ft/ftlib.h"
#include "gm/gm_unsplit.h"
#include "gr/forward.h"
#include "gr/inlines.h"
#include "if/textlib.h"
#include "it/it_26B1.h"
#include "it/itzako.h"
#include "it/it_2725.h"
#include "it/it_3F14.h"
#include "it/items/itcoin.h"
#include "it/types.h"
#include "lb/lb_00B0.h"
#include "lb/lb_00F9.h"
#include "lb/lbaudio_ax.h"
#include "lb/lbdvd.h"
#include "lb/lbshadow.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 "ty/tylist.h"
#include <common_structs.h>
#include <math.h>
#include <math_ppc.h>
#include <trigf.h>
#include <dolphin/gx.h>
#include <dolphin/mtx.h>
#include <dolphin/os/OSError.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
struct  LightOverrideFlags
struct  a
struct  Node

Macros

#define _BUFFER_SZ   (64)
#define assert_line(line, cond)
#define RANDI_MAX   (100)

Functions

static void Ground_OnStart (void)
static void Ground_801BFFAC (bool)
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)
LightList ** Ground_801C20E0 (UnkArchiveStruct *, LightList **)
static bool Ground_801C24F8 (s32, u32, s32 *)
void Ground_801C28CC (void *, s32)
static void Ground_801C2BBC (HSD_GObj *, s32)
static void Ground_801C2BD4 (void *)
void Ground_801C34AC (s32, HSD_JObj *, struct HSD_Joint *)
void Ground_801C466C (void)
static void Ground_801C55AC (Ground *)
static void Ground_801C5878 (void)
static f32 fabsf (f32 x)
static void zeroStageInfoArrays (void)
void Ground_801BFFB0 (void)
static void zeroBuffer (void)
void Ground_801C0378 (int arg0)
void Ground_801C0478 (void *ptr)
f32 Ground_801C0498 (void)
static void * alloc_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)
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 (InternalStageId arg0)
void Ground_801C0754 (StructPairWithStageID *pair)
void Ground_801C0800 (StructPairWithStageID *pair)
void Ground_801C0F78 (StructPairWithStageID *pair)
void Ground_801C0FB8 (StructPairWithStageID *pair)
void Ground_DemoInit (StructPairWithStageID *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)
s16 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)
void Ground_801C2374 (HSD_LObj *lobj)
HSD_SplineGround_801C247C (s32 arg0, s32 arg1)
bool Ground_801C28AC (s32 arg0, u32 arg1, s32 *arg2)
s32Ground_801C2AD8 (void)
f32 Ground_801C2AE8 (s32 arg0)
HSD_GObjGround_801C2BA4 (s32 i)
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_801C49F8 (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)
s16 Ground_801C5774 (void)
void Ground_801C5784 (s32 arg0)
s32 Ground_801C5794 (void)
HSD_GObjGround_801C57A4 (void)
HSD_GObjGround_801C57C8 (void)
f32 Ground_801C57F0 (void)
void Ground_801C5800 (void)
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_803DFEA8
StageData grTe_803E5764
StageData grCs_803E11A4
StageData grRc_803E4ECC
StageData grKg_803E1800
StageData grGd_803E52E0
StageData grGb_803E3F6C
StageData grSh_803E5130
StageData grZe_803E1B2C
StageData grKr_803E4D0C
StageData grSt_803E274C
StageData grYt_803E51CC
StageData grIz_803E0E5C
StageData grGr_803E76D0
StageData grCn_803E1F08
StageData grVe_803E54CC
StageData grPs_803E1334
StageData grPu_803E6A3C
StageData grMc_803E33DC
StageData grBb_803E2D20
StageData grOt_803E2858
StageData grFs_803E3D94
StageData grIm_803E4800
StageData grI1_803E4950
StageData grI2_803E4C00
StageData grFz_803E7A00
StageData grOp_803E6748
StageData grOy_803E650C
StageData grOk_803E65E8
StageData grNKr_803E584C
StageData grSh_Route_803E5988
StageData grZe_Route_803E5E0C
StageData grBb_Route_803E617C
StageData grNBa_803E7E38
StageData grNLa_803E7F90
StageData grFigureGet_803E7D34
StageData grPushOn_803E7B10
StageData grTMr_803E85A4
StageData grTCa_803E8664
StageData grTCLink_803E872C
StageData grTDk_803E87EC
StageData grTDr_803E88AC
StageData grTFc_803E8974
StageData grTFx_803E8A34
StageData grTIc_803E8AF4
StageData grTKb_803E8C0C
StageData grTKp_803E8CCC
StageData grTLk_803E8D8C
StageData grTLg_803E8E4C
StageData grTMs_803E8F0C
StageData grTMewtwo_803E8FCC
StageData grTNs_803E908C
StageData grTPe_803E914C
StageData grTPc_803E920C
StageData grTPk_803E92CC
StageData grTPr_803E9394
StageData grTSs_803E9454
StageData grTSk_803E9514
StageData grTYs_803E95D4
StageData grTZd_803E9694
StageData grTGw_803E9754
StageData grTFe_803E981C
StageData grTGn_803E98DC
StageData grHeal_803E84C4
StageData grHr_803E821C
StageData grEF1_803E62C0
StageData grEF2_803E6370
StageData grEF2_803E6420
static StageDataGround_803DFEDC []
static u8Ground_804D6950
BobOmbRain const Ground_803B7DEC = { 0, 0, 0, 0, 0, 6 }
HSD_Joint const Ground_803B7E0C
static char Ground_804D44F8 [8] = "archive"
char lightset [9] = "lightset"
char plightset [10] = "*lightset"
static const int BGM_Undefined = -1
static char msg0 []
static char msg1 []
static char msg2 [] = " stageid=%d\n"
static const int Gr_CObj_Max = 4
static s16 Ground_804D6954
u32 unknown []
float Ground_803E065C [] = { 0, 0, 0, 0 }
float Ground_803E066C [] = { 0, 0.57, 0.57, 0.57, 0 }
float Ground_804D4508 = 16
struct a Ground_803E0680
UNK_T Ground_803E069C [] = { NULL, NULL, NULL, NULL }
struct a Ground_803E06AC = { NULL, NULL, 0x40000, -1, NULL, NULL, NULL }
static LightListGround_803E06C8 [3] = { 0 }
struct Node Ground_804D4500 = { Ground_803E065C, NULL }
SDATA UNK_T Ground_804D450C [] = { &Ground_803E0680, &Ground_804D4500 }
SDATA UNK_T Ground_804D4514 [] = { &Ground_803E069C, NULL }
SDATA UNK_T Ground_804D451C [] = { &Ground_803E06AC, &Ground_804D4514 }
SDATA char Ground_804D4524 [] = "fog.h"
SDATA char Ground_804D452C [] = "fog"

Detailed Description

Todo
Don't hardcode 8

Macro Definition Documentation

◆ _BUFFER_SZ

#define _BUFFER_SZ   (64)

◆ assert_line

#define assert_line ( line,
cond )
Value:
((cond) ? (void) 0 : __assert(__FILE__, line, #cond))
void __assert(char *str, u32 arg1, char *arg2)
Definition debug.c:36
#define __FILE__
Definition ftYs_Init.c:45

◆ RANDI_MAX

#define RANDI_MAX   (100)

Function Documentation

◆ Ground_OnStart()

void Ground_OnStart ( void )
static

◆ Ground_801BFFAC()

void Ground_801BFFAC ( bool arg0)
static

◆ Ground_801C0A70()

bool Ground_801C0A70 ( Vec3 * pos)
static

<

Todo
what stages are these?

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

◆ Ground_801C24F8()

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

◆ Ground_801C28CC()

void Ground_801C28CC ( void * arg0,
s32 arg1 )

◆ Ground_801C2BBC()

void Ground_801C2BBC ( HSD_GObj * arg0,
s32 i )
static

◆ Ground_801C2BD4()

void Ground_801C2BD4 ( void * arg0)
static

◆ Ground_801C34AC()

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

◆ Ground_801C466C()

void Ground_801C466C ( void )

◆ Ground_801C55AC()

void Ground_801C55AC ( Ground * gp)
static

◆ Ground_801C5878()

void Ground_801C5878 ( void )
static

◆ fabsf()

f32 fabsf ( f32 x)
inlinestatic
Todo
Move elsewhere.

◆ zeroStageInfoArrays()

void zeroStageInfoArrays ( void )
static

◆ Ground_801BFFB0()

void Ground_801BFFB0 ( void )

◆ zeroBuffer()

void zeroBuffer ( void )
static

◆ Ground_801C0378()

void Ground_801C0378 ( int arg0)

◆ Ground_801C0478()

void Ground_801C0478 ( void * ptr)

◆ Ground_801C0498()

f32 Ground_801C0498 ( void )

◆ alloc_user_data_ground()

void * 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 ( InternalStageId arg0)

◆ Ground_801C0754()

void Ground_801C0754 ( StructPairWithStageID * pair)

◆ Ground_801C0800()

void Ground_801C0800 ( StructPairWithStageID * pair)

◆ Ground_801C0F78()

void Ground_801C0F78 ( StructPairWithStageID * pair)

◆ Ground_801C0FB8()

void Ground_801C0FB8 ( StructPairWithStageID * pair)

◆ Ground_DemoInit()

void Ground_DemoInit ( StructPairWithStageID * 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()

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

◆ Ground_801C2374()

void Ground_801C2374 ( HSD_LObj * lobj)

◆ Ground_801C247C()

HSD_Spline * Ground_801C247C ( s32 arg0,
s32 arg1 )

◆ Ground_801C28AC()

bool Ground_801C28AC ( s32 arg0,
u32 arg1,
s32 * arg2 )

◆ Ground_801C2AD8()

s32 * Ground_801C2AD8 ( void )

◆ Ground_801C2AE8()

f32 Ground_801C2AE8 ( s32 arg0)

◆ Ground_801C2BA4()

HSD_GObj * Ground_801C2BA4 ( s32 i)

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

void * Ground_801C49F8 ( 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()

s16 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 ( void )

◆ Ground_801C5800()

void Ground_801C5800 ( void )

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

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

◆ grTe_803E5764

StageData grTe_803E5764

◆ grCs_803E11A4

StageData grCs_803E11A4

◆ grRc_803E4ECC

StageData grRc_803E4ECC

◆ grKg_803E1800

StageData grKg_803E1800

◆ grGd_803E52E0

StageData grGd_803E52E0

◆ grGb_803E3F6C

StageData grGb_803E3F6C

◆ grSh_803E5130

StageData grSh_803E5130

◆ grZe_803E1B2C

StageData grZe_803E1B2C

◆ grKr_803E4D0C

StageData grKr_803E4D0C

◆ grSt_803E274C

StageData grSt_803E274C

◆ grYt_803E51CC

StageData grYt_803E51CC

◆ grIz_803E0E5C

StageData grIz_803E0E5C

◆ grGr_803E76D0

StageData grGr_803E76D0

◆ grCn_803E1F08

StageData grCn_803E1F08

◆ grVe_803E54CC

StageData grVe_803E54CC

◆ grPs_803E1334

StageData grPs_803E1334

◆ grPu_803E6A3C

StageData grPu_803E6A3C

◆ grMc_803E33DC

StageData grMc_803E33DC

◆ grBb_803E2D20

StageData grBb_803E2D20

◆ grOt_803E2858

StageData grOt_803E2858

◆ grFs_803E3D94

StageData grFs_803E3D94

◆ grIm_803E4800

StageData grIm_803E4800

◆ grI1_803E4950

StageData grI1_803E4950

◆ grI2_803E4C00

StageData grI2_803E4C00

◆ grFz_803E7A00

StageData grFz_803E7A00

◆ grOp_803E6748

StageData grOp_803E6748

◆ grOy_803E650C

StageData grOy_803E650C

◆ grOk_803E65E8

StageData grOk_803E65E8

◆ grNKr_803E584C

StageData grNKr_803E584C

◆ grSh_Route_803E5988

StageData grSh_Route_803E5988

◆ grZe_Route_803E5E0C

StageData grZe_Route_803E5E0C

◆ grBb_Route_803E617C

StageData grBb_Route_803E617C

◆ grNBa_803E7E38

StageData grNBa_803E7E38

◆ grNLa_803E7F90

StageData grNLa_803E7F90

◆ grFigureGet_803E7D34

StageData grFigureGet_803E7D34

◆ grPushOn_803E7B10

StageData grPushOn_803E7B10

◆ grTMr_803E85A4

StageData grTMr_803E85A4

◆ grTCa_803E8664

StageData grTCa_803E8664

◆ grTCLink_803E872C

StageData grTCLink_803E872C

◆ grTDk_803E87EC

StageData grTDk_803E87EC

◆ grTDr_803E88AC

StageData grTDr_803E88AC

◆ grTFc_803E8974

StageData grTFc_803E8974

◆ grTFx_803E8A34

StageData grTFx_803E8A34

◆ grTIc_803E8AF4

StageData grTIc_803E8AF4

◆ grTKb_803E8C0C

StageData grTKb_803E8C0C

◆ grTKp_803E8CCC

StageData grTKp_803E8CCC

◆ grTLk_803E8D8C

StageData grTLk_803E8D8C

◆ grTLg_803E8E4C

StageData grTLg_803E8E4C

◆ grTMs_803E8F0C

StageData grTMs_803E8F0C

◆ grTMewtwo_803E8FCC

StageData grTMewtwo_803E8FCC

◆ grTNs_803E908C

StageData grTNs_803E908C

◆ grTPe_803E914C

StageData grTPe_803E914C

◆ grTPc_803E920C

StageData grTPc_803E920C

◆ grTPk_803E92CC

StageData grTPk_803E92CC

◆ grTPr_803E9394

StageData grTPr_803E9394

◆ grTSs_803E9454

StageData grTSs_803E9454

◆ grTSk_803E9514

StageData grTSk_803E9514

◆ grTYs_803E95D4

StageData grTYs_803E95D4

◆ grTZd_803E9694

StageData grTZd_803E9694

◆ grTGw_803E9754

StageData grTGw_803E9754

◆ grTFe_803E981C

StageData grTFe_803E981C

◆ grTGn_803E98DC

StageData grTGn_803E98DC

◆ grHeal_803E84C4

StageData grHeal_803E84C4

◆ grHr_803E821C

StageData grHr_803E821C

◆ grEF1_803E62C0

StageData grEF1_803E62C0

◆ grEF2_803E6370

StageData grEF2_803E6370

◆ grEF2_803E6420

StageData grEF2_803E6420

◆ Ground_803DFEDC

StageData* Ground_803DFEDC[]
static

◆ Ground_804D6950

u8* Ground_804D6950
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,
}

◆ Ground_804D44F8

char Ground_804D44F8[8] = "archive"
static

◆ lightset

char lightset[9] = "lightset"
Todo
attempt decomp once param types are known

◆ plightset

char plightset[10] = "*lightset"

◆ 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

◆ Gr_CObj_Max

const int Gr_CObj_Max = 4
static

◆ Ground_804D6954

s16 Ground_804D6954
static

◆ unknown

u32 unknown[]

◆ Ground_803E065C

float Ground_803E065C[] = { 0, 0, 0, 0 }

◆ Ground_803E066C

float Ground_803E066C[] = { 0, 0.57, 0.57, 0.57, 0 }

◆ Ground_804D4508

float Ground_804D4508 = 16

◆ Ground_803E0680

struct a Ground_803E0680
Initial value:
= {
}
float Ground_804D4508
Definition ground.c:2626
float Ground_803E066C[]
Definition ground.c:2614

◆ Ground_803E069C

UNK_T Ground_803E069C[] = { NULL, NULL, NULL, NULL }

◆ Ground_803E06AC

struct a Ground_803E06AC = { NULL, NULL, 0x40000, -1, NULL, NULL, NULL }

◆ Ground_803E06C8

LightList* Ground_803E06C8[3] = { 0 }
static

◆ Ground_804D4500

struct Node Ground_804D4500 = { Ground_803E065C, NULL }

◆ Ground_804D450C

SDATA UNK_T Ground_804D450C[] = { &Ground_803E0680, &Ground_804D4500 }

◆ Ground_804D4514

SDATA UNK_T Ground_804D4514[] = { &Ground_803E069C, NULL }

◆ Ground_804D451C

SDATA UNK_T Ground_804D451C[] = { &Ground_803E06AC, &Ground_804D4514 }

◆ Ground_804D4524

SDATA char Ground_804D4524[] = "fog.h"

◆ Ground_804D452C

SDATA char Ground_804D452C[] = "fog"