SSBM Decomp
Loading...
Searching...
No Matches
grmutecity.c File Reference
#include "grmutecity.h"
#include "grdatfiles.h"
#include "grfzerocar.h"
#include "grlib.h"
#include "grmaterial.h"
#include "grmutecity.static.h"
#include "ground.h"
#include "grzakogenerator.h"
#include "inlines.h"
#include "stage.h"
#include "types.h"
#include <platform.h>
#include "cm/camera.h"
#include "if/ifhazard.h"
#include "lb/lb_00B0.h"
#include "lb/lbaudio_ax.h"
#include "lb/lbshadow.h"
#include "lb/lbspdisplay.h"
#include "lb/lbvector.h"
#include "mp/mplib.h"
#include <math_ppc.h>
#include <trigf.h>
#include <baselib/debug.h>
#include <baselib/gobj.h>
#include <baselib/gobjproc.h>
#include <baselib/lobj.h>
#include <baselib/psappsrt.h>
#include <baselib/psstructs.h>
#include <sysdolphin/baselib/spline.h>

Data Structures

struct  grMc_YakumonoParam
struct  grMc_CmdEntry
struct  grMc_TrackInitData
struct  grMc_StackPadArg

Macros

#define light_dist_func   grMc_804D46CC

Typedefs

typedef void(* grMc_SpeedFn) (Item_GObj *, Ground *, Vec3 *, HSD_GObj *, f32)

Functions

static void fn_801F2B58 (void *user_data, int joint_id, CollData *coll, int coll_x50, mpLib_GroundEnum ground_kind, float delta_y)
 Joint collision callback for ground surfaces.
static void order_data (void)
void grMuteCity_801EFC68 (bool arg)
void grMuteCity_801EFC6C (void)
void grMuteCity_801EFCDC (void)
void grMuteCity_801EFCE0 (void)
bool grMuteCity_801EFD04 (void)
Ground_GObjgrMuteCity_801EFD0C (int gobj_id)
void grMuteCity_801EFDF8 (Ground_GObj *gobj)
bool grMuteCity_801F0118 (Ground_GObj *arg)
void grMuteCity_801F0120 (Ground_GObj *gobj)
void grMuteCity_801F01B0 (Ground_GObj *arg)
void grMuteCity_801F01B4 (Ground_GObj *gobj)
bool grMuteCity_801F0288 (Ground_GObj *arg)
static f32 grMuteCity_801F0290_get_target (Ground *gp)
void grMuteCity_801F0290 (Ground_GObj *gobj)
void grMuteCity_801F040C (Ground_GObj *arg)
void grMuteCity_801F0410 (Ground_GObj *gobj)
bool grMuteCity_801F043C (Ground_GObj *arg)
void grMuteCity_801F0444 (Ground_GObj *arg)
void grMuteCity_801F0448 (Ground_GObj *arg)
void grMuteCity_801F044C (Ground_GObj *gobj)
bool grMuteCity_801F04A8 (Ground_GObj *arg)
void grMuteCity_801F04B0 (Ground_GObj *arg)
void grMuteCity_801F04B4 (Ground_GObj *arg)
void grMuteCity_801F04B8 (Ground_GObj *gobj)
void grMuteCity_801F0948 (Ground_GObj *arg)
static void grMc_SplineEvalWrapped (Vec3 *result, HSD_Spline *spline, f32 t)
f32 grMuteCity_801F094C (HSD_JObj *arg0, HSD_Spline *arg1, Vec3 *arg2, f32 var_f29)
void grMuteCity_801F0D20 (Ground_GObj *gobj)
void grMuteCity_801F0F4C (Ground_GObj *gobj)
void grMuteCity_801F106C (s32 i)
static f32 grMc_DistanceSquared (f32 *a, f32 *b)
void grMuteCity_801F1328 (void)
void grMuteCity_801F173C (float arg0)
void grMuteCity_801F1754 (float arg0)
void grMuteCity_801F176C (float arg0)
void grMuteCity_801F1784 (f32 arg0)
void grMuteCity_801F179C (f32 arg0)
void grMuteCity_801F17B4 (f32 arg0)
void grMuteCity_801F17CC (f32 arg0)
void grMuteCity_801F17E4 (f32 arg0)
void grMuteCity_801F17FC (f32 arg0)
void grMuteCity_801F1814 (f32 arg0)
void grMuteCity_801F182C (f32 arg0)
void grMuteCity_801F1844 (f32 arg0)
void grMuteCity_801F185C (f32 arg0)
void grMuteCity_801F1874 (f32 arg0)
void grMuteCity_801F188C (f32 arg0)
void grMuteCity_801F18A4 (f32 arg0)
void grMuteCity_801F18BC (f32 arg0)
void grMuteCity_801F18D4 (f32 arg0)
void grMuteCity_801F18EC (f32 arg0)
void grMuteCity_801F1904 (f32 arg0)
void grMuteCity_801F191C (f32 arg0)
void grMuteCity_801F1934 (f32 arg0)
void grMuteCity_801F194C (f32 arg0)
void grMuteCity_801F1964 (f32 arg0)
void grMuteCity_801F197C (f32 arg0)
void grMuteCity_801F1994 (f32 arg0)
void grMuteCity_801F19AC (f32 arg0)
void grMuteCity_801F19C4 (f32 arg0)
void grMuteCity_801F19DC (f32 arg0)
void grMuteCity_801F19F4 (f32 arg0)
void grMuteCity_801F1A0C (HSD_GObj *gobj, Ground *gp)
void grMuteCity_801F1A34 (HSD_GObj *arg0, Ground_GObj *arg1)
DynamicModelDescgrMuteCity_801F28A8 (void)
static void grMc_StackPad (grMc_StackPadArg arg)
void grMuteCity_801F290C (Ground_GObj *gobj)
void grMuteCity_801F2AB0 (s32 arg0, HSD_JObj *arg1)
DynamicsDescgrMuteCity_801F2BBC (enum_t arg0)
bool grMuteCity_801F2C10 (Vec3 *pos, int arg, HSD_JObj *jobj)

Variables

const Vec3 grMc_803B81B8 = { 0.0f, 0.0f, 0.0f }
static s32 grMc_8049F440 [30]
GrJoint grMc_803E30B0 []
StageCallbacks grMc_StageCallbacks [39]
StageData grMc_StageData
static struct grMc_YakumonoParamyakumono_param
static s32 grMc_804D69D4
static f32 light_ref_br = 40000.0f
static f32 light_ref_dist = 0.99f
static s32 grMc_804D46CC = 0x1
s16 grMc_803E34A4 [30]
grMc_CmdEntry grMc_803E34E0 []
grMc_TrackInitData grMc_803E3B7C [30]
UNK_T grMc_803E3C6C []

Macro Definition Documentation

◆ light_dist_func

#define light_dist_func   grMc_804D46CC

Typedef Documentation

◆ grMc_SpeedFn

typedef void(* grMc_SpeedFn) (Item_GObj *, Ground *, Vec3 *, HSD_GObj *, f32)

Function Documentation

◆ fn_801F2B58()

void fn_801F2B58 ( void * user_data,
int joint_id,
CollData * coll,
int coll_x50,
mpLib_GroundEnum ground_kind,
float delta_y )
static

Joint collision callback for ground surfaces.

Parameters
user_dataSaved untyped data attached to the callback.
coll_x50Unknown, sourced from CollData::x50. dist according to fn_801FC9AC?
delta_yRelative y-offset since the collision started, equal to coll->cur_pos.y - coll->last_pos.y

◆ order_data()

void order_data ( void )
static

◆ grMuteCity_801EFC68()

void grMuteCity_801EFC68 ( bool arg)

◆ grMuteCity_801EFC6C()

void grMuteCity_801EFC6C ( void )

◆ grMuteCity_801EFCDC()

void grMuteCity_801EFCDC ( void )

◆ grMuteCity_801EFCE0()

void grMuteCity_801EFCE0 ( void )

◆ grMuteCity_801EFD04()

bool grMuteCity_801EFD04 ( void )

◆ grMuteCity_801EFD0C()

Ground_GObj * grMuteCity_801EFD0C ( int gobj_id)

◆ grMuteCity_801EFDF8()

void grMuteCity_801EFDF8 ( Ground_GObj * gobj)

◆ grMuteCity_801F0118()

bool grMuteCity_801F0118 ( Ground_GObj * arg)

◆ grMuteCity_801F0120()

void grMuteCity_801F0120 ( Ground_GObj * gobj)

◆ grMuteCity_801F01B0()

void grMuteCity_801F01B0 ( Ground_GObj * arg)

◆ grMuteCity_801F01B4()

void grMuteCity_801F01B4 ( Ground_GObj * gobj)

◆ grMuteCity_801F0288()

bool grMuteCity_801F0288 ( Ground_GObj * arg)

◆ grMuteCity_801F0290_get_target()

f32 grMuteCity_801F0290_get_target ( Ground * gp)
inlinestatic

◆ grMuteCity_801F0290()

void grMuteCity_801F0290 ( Ground_GObj * gobj)

◆ grMuteCity_801F040C()

void grMuteCity_801F040C ( Ground_GObj * arg)

◆ grMuteCity_801F0410()

void grMuteCity_801F0410 ( Ground_GObj * gobj)

◆ grMuteCity_801F043C()

bool grMuteCity_801F043C ( Ground_GObj * arg)

◆ grMuteCity_801F0444()

void grMuteCity_801F0444 ( Ground_GObj * arg)

◆ grMuteCity_801F0448()

void grMuteCity_801F0448 ( Ground_GObj * arg)

◆ grMuteCity_801F044C()

void grMuteCity_801F044C ( Ground_GObj * gobj)

◆ grMuteCity_801F04A8()

bool grMuteCity_801F04A8 ( Ground_GObj * arg)

◆ grMuteCity_801F04B0()

void grMuteCity_801F04B0 ( Ground_GObj * arg)

◆ grMuteCity_801F04B4()

void grMuteCity_801F04B4 ( Ground_GObj * arg)

◆ grMuteCity_801F04B8()

void grMuteCity_801F04B8 ( Ground_GObj * gobj)

◆ grMuteCity_801F0948()

void grMuteCity_801F0948 ( Ground_GObj * arg)

◆ grMc_SplineEvalWrapped()

void grMc_SplineEvalWrapped ( Vec3 * result,
HSD_Spline * spline,
f32 t )
inlinestatic

◆ grMuteCity_801F094C()

f32 grMuteCity_801F094C ( HSD_JObj * arg0,
HSD_Spline * arg1,
Vec3 * arg2,
f32 var_f29 )

◆ grMuteCity_801F0D20()

void grMuteCity_801F0D20 ( Ground_GObj * gobj)

◆ grMuteCity_801F0F4C()

void grMuteCity_801F0F4C ( Ground_GObj * gobj)

◆ grMuteCity_801F106C()

void grMuteCity_801F106C ( s32 i)

◆ grMc_DistanceSquared()

f32 grMc_DistanceSquared ( f32 * a,
f32 * b )
inlinestatic

◆ grMuteCity_801F1328()

void grMuteCity_801F1328 ( void )

◆ grMuteCity_801F173C()

void grMuteCity_801F173C ( float arg0)

◆ grMuteCity_801F1754()

void grMuteCity_801F1754 ( float arg0)

◆ grMuteCity_801F176C()

void grMuteCity_801F176C ( float arg0)

◆ grMuteCity_801F1784()

void grMuteCity_801F1784 ( f32 arg0)

◆ grMuteCity_801F179C()

void grMuteCity_801F179C ( f32 arg0)

◆ grMuteCity_801F17B4()

void grMuteCity_801F17B4 ( f32 arg0)

◆ grMuteCity_801F17CC()

void grMuteCity_801F17CC ( f32 arg0)

◆ grMuteCity_801F17E4()

void grMuteCity_801F17E4 ( f32 arg0)

◆ grMuteCity_801F17FC()

void grMuteCity_801F17FC ( f32 arg0)

◆ grMuteCity_801F1814()

void grMuteCity_801F1814 ( f32 arg0)

◆ grMuteCity_801F182C()

void grMuteCity_801F182C ( f32 arg0)

◆ grMuteCity_801F1844()

void grMuteCity_801F1844 ( f32 arg0)

◆ grMuteCity_801F185C()

void grMuteCity_801F185C ( f32 arg0)

◆ grMuteCity_801F1874()

void grMuteCity_801F1874 ( f32 arg0)

◆ grMuteCity_801F188C()

void grMuteCity_801F188C ( f32 arg0)

◆ grMuteCity_801F18A4()

void grMuteCity_801F18A4 ( f32 arg0)

◆ grMuteCity_801F18BC()

void grMuteCity_801F18BC ( f32 arg0)

◆ grMuteCity_801F18D4()

void grMuteCity_801F18D4 ( f32 arg0)

◆ grMuteCity_801F18EC()

void grMuteCity_801F18EC ( f32 arg0)

◆ grMuteCity_801F1904()

void grMuteCity_801F1904 ( f32 arg0)

◆ grMuteCity_801F191C()

void grMuteCity_801F191C ( f32 arg0)

◆ grMuteCity_801F1934()

void grMuteCity_801F1934 ( f32 arg0)

◆ grMuteCity_801F194C()

void grMuteCity_801F194C ( f32 arg0)

◆ grMuteCity_801F1964()

void grMuteCity_801F1964 ( f32 arg0)

◆ grMuteCity_801F197C()

void grMuteCity_801F197C ( f32 arg0)

◆ grMuteCity_801F1994()

void grMuteCity_801F1994 ( f32 arg0)

◆ grMuteCity_801F19AC()

void grMuteCity_801F19AC ( f32 arg0)

◆ grMuteCity_801F19C4()

void grMuteCity_801F19C4 ( f32 arg0)

◆ grMuteCity_801F19DC()

void grMuteCity_801F19DC ( f32 arg0)

◆ grMuteCity_801F19F4()

void grMuteCity_801F19F4 ( f32 arg0)

◆ grMuteCity_801F1A0C()

void grMuteCity_801F1A0C ( HSD_GObj * gobj,
Ground * gp )

◆ grMuteCity_801F1A34()

void grMuteCity_801F1A34 ( HSD_GObj * arg0,
Ground_GObj * arg1 )

◆ grMuteCity_801F28A8()

DynamicModelDesc * grMuteCity_801F28A8 ( void )

◆ grMc_StackPad()

void grMc_StackPad ( grMc_StackPadArg arg)
inlinestatic
Todo
Fake function: exists only to reproduce the retail stack layout.

◆ grMuteCity_801F290C()

void grMuteCity_801F290C ( Ground_GObj * gobj)

◆ grMuteCity_801F2AB0()

void grMuteCity_801F2AB0 ( s32 arg0,
HSD_JObj * arg1 )

◆ grMuteCity_801F2BBC()

DynamicsDesc * grMuteCity_801F2BBC ( enum_t arg0)

◆ grMuteCity_801F2C10()

bool grMuteCity_801F2C10 ( Vec3 * pos,
int arg,
HSD_JObj * jobj )

Variable Documentation

◆ grMc_803B81B8

const Vec3 grMc_803B81B8 = { 0.0f, 0.0f, 0.0f }

◆ grMc_8049F440

s32 grMc_8049F440[30]
static

◆ grMc_803E30B0

GrJoint grMc_803E30B0[]
Initial value:
= {
{ 6, 29, 6 },
{ 7, 29, 8 },
{ 8, 29, 9 },
}

◆ grMc_StageCallbacks

StageCallbacks grMc_StageCallbacks[39]

◆ grMc_StageData

StageData grMc_StageData
Initial value:
= {
"/GrMc.dat",
(1 << 0),
}
#define ARRAY_SIZE(arr)
Definition types.h:31
void grMuteCity_801EFCDC(void)
Definition grmutecity.c:390
void grMuteCity_801EFCE0(void)
Definition grmutecity.c:392
DynamicsDesc * grMuteCity_801F2BBC(enum_t arg0)
Definition grmutecity.c:1950
bool grMuteCity_801EFD04(void)
Definition grmutecity.c:397
StageCallbacks grMc_StageCallbacks[39]
Definition grmutecity.c:54
GrJoint grMc_803E30B0[]
Definition grmutecity.c:48
void grMuteCity_801EFC68(bool arg)
Definition grmutecity.c:375
void grMuteCity_801EFC6C(void)
Definition grmutecity.c:377
bool grMuteCity_801F2C10(Vec3 *pos, int arg, HSD_JObj *jobj)
Definition grmutecity.c:1966
@ Gr_Kind_MuteCity
Definition forward.h:73

◆ yakumono_param

struct grMc_YakumonoParam* yakumono_param
static

◆ grMc_804D69D4

s32 grMc_804D69D4
static

◆ light_ref_br

f32 light_ref_br = 40000.0f
static

◆ light_ref_dist

f32 light_ref_dist = 0.99f
static

◆ grMc_804D46CC

s32 grMc_804D46CC = 0x1
static

◆ grMc_803E34A4

s16 grMc_803E34A4[30]
Initial value:
= {
2, 3, 4, 6, 7, 8, 9, 10, 11, 12,
1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 32, 33, 34, 35
}

◆ grMc_803E34E0

grMc_CmdEntry grMc_803E34E0[]

◆ grMc_803E3B7C

grMc_TrackInitData grMc_803E3B7C[30]
Initial value:
= {
{0.9999f,0.37f},{0.9999f,0.87f},
{0.9988f,0.37f},{0.9988f,0.87f},
{0.9977f,0.37f},{0.9977f,0.87f},
{0.9966f,0.37f},{0.9966f,0.87f},
{0.9955f,0.37f},{0.9955f,0.87f},
{0.9944f,0.37f},{0.9944f,0.87f},
{0.9933f,0.37f},{0.9933f,0.87f},
{0.9922f,0.37f},{0.9922f,0.87f},
{0.9911f,0.37f},{0.9911f,0.87f},
{0.9900f,0.37f},{0.9900f,0.87f},
{0.9889f,0.37f},{0.9889f,0.87f},
{0.9878f,0.37f},{0.9878f,0.87f},
{0.9867f,0.37f},{0.9867f,0.87f},
{0.9856f,0.37f},{0.9856f,0.87f},
{0.9845f,0.37f},{0.9845f,0.87f},
}

◆ grMc_803E3C6C

UNK_T grMc_803E3C6C[]
Initial value:
= {
}
void grMuteCity_801F185C(f32 arg0)
Definition grmutecity.c:1367
void grMuteCity_801F19AC(f32 arg0)
Definition grmutecity.c:1424
void grMuteCity_801F18EC(f32 arg0)
Definition grmutecity.c:1391
void grMuteCity_801F18D4(f32 arg0)
Definition grmutecity.c:1387
void grMuteCity_801F197C(f32 arg0)
Definition grmutecity.c:1415
void grMuteCity_801F176C(float arg0)
Definition grmutecity.c:1327
void grMuteCity_801F179C(f32 arg0)
Definition grmutecity.c:1335
void grMuteCity_801F1934(f32 arg0)
Definition grmutecity.c:1403
void grMuteCity_801F1874(f32 arg0)
Definition grmutecity.c:1371
void grMuteCity_801F19C4(f32 arg0)
Definition grmutecity.c:1428
void grMuteCity_801F1994(f32 arg0)
Definition grmutecity.c:1419
void grMuteCity_801F173C(float arg0)
Definition grmutecity.c:1319
void grMuteCity_801F19DC(f32 arg0)
Definition grmutecity.c:1432
void grMuteCity_801F18A4(f32 arg0)
Definition grmutecity.c:1379
void grMuteCity_801F19F4(f32 arg0)
Definition grmutecity.c:1436
void grMuteCity_801F17B4(f32 arg0)
Definition grmutecity.c:1339
void grMuteCity_801F194C(f32 arg0)
Definition grmutecity.c:1407
void grMuteCity_801F1814(f32 arg0)
Definition grmutecity.c:1355
void grMuteCity_801F1844(f32 arg0)
Definition grmutecity.c:1363
void grMuteCity_801F17E4(f32 arg0)
Definition grmutecity.c:1347
void grMuteCity_801F191C(f32 arg0)
Definition grmutecity.c:1399
void grMuteCity_801F188C(f32 arg0)
Definition grmutecity.c:1375
void grMuteCity_801F1904(f32 arg0)
Definition grmutecity.c:1395
void grMuteCity_801F18BC(f32 arg0)
Definition grmutecity.c:1383
void grMuteCity_801F1754(float arg0)
Definition grmutecity.c:1323
void grMuteCity_801F182C(f32 arg0)
Definition grmutecity.c:1359
void grMuteCity_801F17CC(f32 arg0)
Definition grmutecity.c:1343
void grMuteCity_801F17FC(f32 arg0)
Definition grmutecity.c:1351
void grMuteCity_801F1964(f32 arg0)
Definition grmutecity.c:1411
void grMuteCity_801F1784(f32 arg0)
Definition grmutecity.c:1331