SSBM Decomp
Loading...
Searching...
No Matches
grrcruise.c File Reference
#include "grrcruise.h"
#include "grdatfiles.h"
#include "grdisplay.h"
#include "grlib.h"
#include "ground.h"
#include "grzakogenerator.h"
#include "inlines.h"
#include "math.h"
#include "placeholder.h"
#include "stage.h"
#include "types.h"
#include <platform.h>
#include "baselib/debug.h"
#include "cm/camera.h"
#include "gm/gm_1A45.h"
#include "lb/lb_00B0.h"
#include "lb/lbspdisplay.h"
#include "lb/lbvector.h"
#include "mp/mplib.h"
#include <math_ppc.h>
#include <trigf.h>
#include <baselib/archive.h>
#include <baselib/dobj.h>
#include <baselib/gobj.h>
#include <baselib/gobjproc.h>
#include <baselib/jobj.h>
#include <baselib/random.h>
#include <sysdolphin/baselib/memory.h>

Data Structures

struct  grRCruise_YakumonoParam

Functions

static void fn_80200460 (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 grRCruise_80200578 (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 grRCruise_802010A4 (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 sdata2_order (void)
void grRCruise_801FF164 (bool arg)
void grRCruise_801FF168 (void)
void grRCruise_801FF298 (void)
void grRCruise_801FF29C (void)
bool grRCruise_801FF2C0 (void)
Ground_GObjgrRCruise_801FF2C8 (int gobj_id)
void grRCruise_801FF3B4 (Ground_GObj *gobj)
bool grRCruise_801FF3E0 (Ground_GObj *arg)
void grRCruise_801FF3E8 (Ground_GObj *arg)
void grRCruise_801FF3EC (Ground_GObj *arg)
void grRCruise_801FF3F0 (Ground_GObj *gobj)
bool grRCruise_801FF434 (Ground_GObj *arg)
void grRCruise_801FF43C (Ground_GObj *arg)
void grRCruise_801FF440 (Ground_GObj *arg)
void grRCruise_801FF444 (Ground_GObj *gobj)
void grRCruise_801FF5B4 (Ground_GObj *gobj)
bool grRCruise_801FF6CC (Ground_GObj *arg)
void grRCruise_801FF6D4 (Ground_GObj *gobj)
void grRCruise_801FF738 (Ground_GObj *arg)
void grRCruise_801FF73C (Ground_GObj *gobj)
bool grRCruise_801FF794 (Ground_GObj *arg)
void grRCruise_801FF79C (Ground_GObj *arg)
void grRCruise_801FF7A0 (Ground_GObj *arg)
void grRCruise_801FF7A4 (Ground_GObj *gobj)
bool grRCruise_801FF8DC (Ground_GObj *arg)
void grRCruise_801FF8E4 (Ground_GObj *gobj)
void grRCruise_801FF920 (Ground_GObj *arg)
void grRCruise_801FF924 (Ground_GObj *gobj)
bool grRCruise_801FFAD4 (Ground_GObj *arg)
static void grRCruise_801FFADC_inline (HSD_GObj *gobj, Vec3 *sp64)
void grRCruise_801FFADC (Ground_GObj *arg0)
void grRCruise_80200070 (Ground_GObj *arg)
void grRCruise_80200074 (Ground_GObj *gobj)
bool grRCruise_8020014C (Ground_GObj *arg)
void grRCruise_80200154 (Ground_GObj *gobj)
void grRCruise_8020045C (Ground_GObj *arg)
void grRCruise_80200540 (Ground_GObj *gobj)
void grRCruise_8020071C (Ground_GObj *gobj)
void grRCruise_80200B48 (Ground_GObj *gobj)
void grRCruise_80200C04 (Ground_GObj *gobj)
void grRCruise_80201110 (Ground_GObj *gobj)
static struct HSD_DObjgrRCruise_80201288_inline (HSD_JObj *arg0)
void grRCruise_80201288 (HSD_JObj *jobj, void(*callback)(HSD_DObj *, u32), u32 flags)
static void set_hidden_a (int i)
static void set_hidden_b (int i)
void grRCruise_80201410 (Ground_GObj *gobj)
void grRCruise_80201588 (Ground_GObj *gobj)
void grRCruise_80201918 (Vec3 *vec)
bool grRCruise_80201988 (s32 line_id)
void grRCruise_80201B60 (HSD_JObj *jobj, bool clear)
void fn_80201BE0 (HSD_GObj *gobj, int pass)
DynamicsDescgrRCruise_80201C50 (enum_t arg)
bool grRCruise_80201C58 (Vec3 *arg, int arg0, HSD_JObj *jobj)

Variables

GrJoint grRc_803E4DA8 []
StageCallbacks grRc_StageCallbacks [7]
struct StageData grRc_StageData
static struct grRCruise_YakumonoParamyakumono_param
static s16 grRc_804D4790 []
s16 grRc_803E4FF0 []
struct Map_VanishDesc lbl_803E5014 []

Function Documentation

◆ fn_80200460()

void fn_80200460 ( 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

<

Todo
weird regswap

◆ grRCruise_80200578()

void grRCruise_80200578 ( 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

◆ grRCruise_802010A4()

void grRCruise_802010A4 ( 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

<

Todo
weird regswap

◆ sdata2_order()

void sdata2_order ( void )
static

◆ grRCruise_801FF164()

void grRCruise_801FF164 ( bool arg)

◆ grRCruise_801FF168()

void grRCruise_801FF168 ( void )

◆ grRCruise_801FF298()

void grRCruise_801FF298 ( void )

◆ grRCruise_801FF29C()

void grRCruise_801FF29C ( void )

◆ grRCruise_801FF2C0()

bool grRCruise_801FF2C0 ( void )

◆ grRCruise_801FF2C8()

Ground_GObj * grRCruise_801FF2C8 ( int gobj_id)

◆ grRCruise_801FF3B4()

void grRCruise_801FF3B4 ( Ground_GObj * gobj)

◆ grRCruise_801FF3E0()

bool grRCruise_801FF3E0 ( Ground_GObj * arg)

◆ grRCruise_801FF3E8()

void grRCruise_801FF3E8 ( Ground_GObj * arg)

◆ grRCruise_801FF3EC()

void grRCruise_801FF3EC ( Ground_GObj * arg)

◆ grRCruise_801FF3F0()

void grRCruise_801FF3F0 ( Ground_GObj * gobj)

◆ grRCruise_801FF434()

bool grRCruise_801FF434 ( Ground_GObj * arg)

◆ grRCruise_801FF43C()

void grRCruise_801FF43C ( Ground_GObj * arg)

◆ grRCruise_801FF440()

void grRCruise_801FF440 ( Ground_GObj * arg)

◆ grRCruise_801FF444()

void grRCruise_801FF444 ( Ground_GObj * gobj)

◆ grRCruise_801FF5B4()

void grRCruise_801FF5B4 ( Ground_GObj * gobj)

◆ grRCruise_801FF6CC()

bool grRCruise_801FF6CC ( Ground_GObj * arg)

◆ grRCruise_801FF6D4()

void grRCruise_801FF6D4 ( Ground_GObj * gobj)

◆ grRCruise_801FF738()

void grRCruise_801FF738 ( Ground_GObj * arg)

◆ grRCruise_801FF73C()

void grRCruise_801FF73C ( Ground_GObj * gobj)

◆ grRCruise_801FF794()

bool grRCruise_801FF794 ( Ground_GObj * arg)

◆ grRCruise_801FF79C()

void grRCruise_801FF79C ( Ground_GObj * arg)

◆ grRCruise_801FF7A0()

void grRCruise_801FF7A0 ( Ground_GObj * arg)

◆ grRCruise_801FF7A4()

void grRCruise_801FF7A4 ( Ground_GObj * gobj)

◆ grRCruise_801FF8DC()

bool grRCruise_801FF8DC ( Ground_GObj * arg)

◆ grRCruise_801FF8E4()

void grRCruise_801FF8E4 ( Ground_GObj * gobj)

<

Todo
What

◆ grRCruise_801FF920()

void grRCruise_801FF920 ( Ground_GObj * arg)

◆ grRCruise_801FF924()

void grRCruise_801FF924 ( Ground_GObj * gobj)

◆ grRCruise_801FFAD4()

bool grRCruise_801FFAD4 ( Ground_GObj * arg)

◆ grRCruise_801FFADC_inline()

void grRCruise_801FFADC_inline ( HSD_GObj * gobj,
Vec3 * sp64 )
inlinestatic

◆ grRCruise_801FFADC()

void grRCruise_801FFADC ( Ground_GObj * arg0)

◆ grRCruise_80200070()

void grRCruise_80200070 ( Ground_GObj * arg)

◆ grRCruise_80200074()

void grRCruise_80200074 ( Ground_GObj * gobj)

◆ grRCruise_8020014C()

bool grRCruise_8020014C ( Ground_GObj * arg)

◆ grRCruise_80200154()

void grRCruise_80200154 ( Ground_GObj * gobj)

◆ grRCruise_8020045C()

void grRCruise_8020045C ( Ground_GObj * arg)

◆ grRCruise_80200540()

void grRCruise_80200540 ( Ground_GObj * gobj)

◆ grRCruise_8020071C()

void grRCruise_8020071C ( Ground_GObj * gobj)

◆ grRCruise_80200B48()

void grRCruise_80200B48 ( Ground_GObj * gobj)

◆ grRCruise_80200C04()

void grRCruise_80200C04 ( Ground_GObj * gobj)

◆ grRCruise_80201110()

void grRCruise_80201110 ( Ground_GObj * gobj)

◆ grRCruise_80201288_inline()

struct HSD_DObj * grRCruise_80201288_inline ( HSD_JObj * arg0)
inlinestatic

◆ grRCruise_80201288()

void grRCruise_80201288 ( HSD_JObj * jobj,
void(* callback )(HSD_DObj *, u32),
u32 flags )

◆ set_hidden_a()

void set_hidden_a ( int i)
inlinestatic

◆ set_hidden_b()

void set_hidden_b ( int i)
inlinestatic

◆ grRCruise_80201410()

void grRCruise_80201410 ( Ground_GObj * gobj)

◆ grRCruise_80201588()

void grRCruise_80201588 ( Ground_GObj * gobj)

◆ grRCruise_80201918()

void grRCruise_80201918 ( Vec3 * vec)

◆ grRCruise_80201988()

bool grRCruise_80201988 ( s32 line_id)

◆ grRCruise_80201B60()

void grRCruise_80201B60 ( HSD_JObj * jobj,
bool clear )

◆ fn_80201BE0()

void fn_80201BE0 ( HSD_GObj * gobj,
int pass )

◆ grRCruise_80201C50()

DynamicsDesc * grRCruise_80201C50 ( enum_t arg)

◆ grRCruise_80201C58()

bool grRCruise_80201C58 ( Vec3 * arg,
int arg0,
HSD_JObj * jobj )

Variable Documentation

◆ grRc_803E4DA8

GrJoint grRc_803E4DA8[]
Initial value:
= {
{ 0, 1, 1 }, { 1, 1, 1 }, { 2, 1, 1 }, { 3, 1, 1 }, { 4, 1, 1 },
{ 11, 1, 7 }, { 10, 1, 17 }, { 6, 1, 7 }, { 7, 1, 7 }, { 8, 1, 7 },
{ 9, 1, 7 }, { 12, 1, 19 }, { 13, 1, 18 }, { 14, 1, 18 }, { 15, 1, 18 },
{ 16, 1, 18 }, { 17, 1, 18 }, { 18, 1, 18 }, { 19, 1, 18 }, { 20, 1, 18 },
{ 21, 1, 18 }, { 22, 1, 18 }, { 23, 1, 18 },
}

◆ grRc_StageCallbacks

StageCallbacks grRc_StageCallbacks[7]
Initial value:
= {
grRCruise_801FF738, 0xC0000000 },
}
bool grRCruise_801FF434(Ground_GObj *arg)
Definition grrcruise.c:219
bool grRCruise_801FF3E0(Ground_GObj *arg)
Definition grrcruise.c:203
void grRCruise_801FF5B4(Ground_GObj *gobj)
Definition grrcruise.c:252
bool grRCruise_8020014C(Ground_GObj *arg)
Definition grrcruise.c:517
void grRCruise_801FF8E4(Ground_GObj *gobj)
Definition grrcruise.c:360
void grRCruise_80200074(Ground_GObj *gobj)
Definition grrcruise.c:497
void grRCruise_801FF738(Ground_GObj *arg)
Definition grrcruise.c:296
void grRCruise_801FF924(Ground_GObj *gobj)
Definition grrcruise.c:369
void grRCruise_801FF3B4(Ground_GObj *gobj)
Definition grrcruise.c:197
bool grRCruise_801FFAD4(Ground_GObj *arg)
Definition grrcruise.c:400
bool grRCruise_801FF794(Ground_GObj *arg)
Definition grrcruise.c:306
void grRCruise_8020045C(Ground_GObj *arg)
Definition grrcruise.c:597
void grRCruise_801FF3E8(Ground_GObj *arg)
Definition grrcruise.c:208
void grRCruise_801FF7A4(Ground_GObj *gobj)
Definition grrcruise.c:315
bool grRCruise_801FF8DC(Ground_GObj *arg)
Definition grrcruise.c:355
void grRCruise_801FF79C(Ground_GObj *arg)
Definition grrcruise.c:311
void grRCruise_801FF920(Ground_GObj *arg)
Definition grrcruise.c:367
void grRCruise_801FF6D4(Ground_GObj *gobj)
Definition grrcruise.c:283
void grRCruise_801FF7A0(Ground_GObj *arg)
Definition grrcruise.c:313
void grRCruise_801FF3EC(Ground_GObj *arg)
Definition grrcruise.c:210
void grRCruise_80200154(Ground_GObj *gobj)
Definition grrcruise.c:522
void grRCruise_801FF43C(Ground_GObj *arg)
Definition grrcruise.c:224
void grRCruise_801FFADC(Ground_GObj *arg0)
Definition grrcruise.c:427
void grRCruise_80200070(Ground_GObj *arg)
Definition grrcruise.c:489
void grRCruise_801FF440(Ground_GObj *arg)
Definition grrcruise.c:226
void grRCruise_801FF73C(Ground_GObj *gobj)
Definition grrcruise.c:298
bool grRCruise_801FF6CC(Ground_GObj *arg)
Definition grrcruise.c:278
void grRCruise_801FF3F0(Ground_GObj *gobj)
Definition grrcruise.c:212

◆ grRc_StageData

struct StageData grRc_StageData
Initial value:
= {
"/GrRc.dat",
(1 << 2),
}
#define ARRAY_SIZE(arr)
Definition types.h:31
GrJoint grRc_803E4DA8[]
Definition grrcruise.c:84
void grRCruise_801FF164(bool arg)
Definition grrcruise.c:127
bool grRCruise_80201C58(Vec3 *arg, int arg0, HSD_JObj *jobj)
Definition grrcruise.c:1192
DynamicsDesc * grRCruise_80201C50(enum_t arg)
Definition grrcruise.c:1187
StageCallbacks grRc_StageCallbacks[7]
Definition grrcruise.c:92
void grRCruise_801FF168(void)
Definition grrcruise.c:129
void grRCruise_801FF298(void)
Definition grrcruise.c:169
void grRCruise_801FF29C(void)
Definition grrcruise.c:171
bool grRCruise_801FF2C0(void)
Definition grrcruise.c:176
@ Gr_Kind_RCruise
Definition forward.h:58

◆ yakumono_param

struct grRCruise_YakumonoParam* yakumono_param
static

◆ grRc_804D4790

s16 grRc_804D4790[]
static
Initial value:
= {
0x01,
0x1A,
0x33,
}

◆ grRc_803E4FF0

s16 grRc_803E4FF0[]
Initial value:
= {
0x20, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30,
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
}

◆ lbl_803E5014

struct Map_VanishDesc lbl_803E5014[]
Initial value:
= {
{ 6, 4, false }, { 8, 5, false }, { 16, 10, false }, { 11, 6, false },
{ 12, 7, false }, { 13, 8, false }, { 14, 9, false }, { 15, 8, false },
{ 19, 12, true }, { 20, 13, true }, { 21, 14, true }, { 30, 15, true },
{ 22, 16, true }, { 23, 17, true }, { 24, 18, true }, { 25, 19, true },
{ 26, 20, true }, { 27, 21, true }, { 28, 22, true }, { 29, 23, true },
}