SSBM Decomp
Loading...
Searching...
No Matches
grpushon.c File Reference
#include "grpushon.h"
#include "granime.h"
#include "ground.h"
#include "grzakogenerator.h"
#include "inlines.h"
#include "stage.h"
#include "types.h"
#include <placeholder.h>
#include <platform.h>
#include "cm/camera.h"
#include "ft/ftdevice.h"
#include "ft/ftlib.h"
#include "lb/lbspdisplay.h"
#include "lb/lbvector.h"
#include "lb/types.h"
#include "mp/mplib.h"
#include <math_ppc.h>
#include <baselib/gobjproc.h>
#include <baselib/random.h>
#include <sysdolphin/baselib/lobj.h>
#include <MSL/math.h>

Data Structures

struct  grPushOn_Entry
struct  grPushOn_Lookup
struct  grPushOn_LightConfig
struct  grPushon_YakumonoParam

Functions

static void fn_802190A0 (void *user_data, int joint_id, CollData *coll, int coll_x50, mpLib_GroundEnum ground_kind, float delta_y)
 Ground collision callback for pushon stage elements.
static void order_sdata (void)
void grPushOn_802182C4 (bool arg)
void grPushOn_802182C8 (void)
void grPushOn_80218330 (void)
void grPushOn_80218378 (void)
bool grPushOn_802183DC (void)
HSD_GObjgrPushOn_802183E4 (int gobj_id)
void grPushOn_802184CC (Ground_GObj *gobj)
bool grPushOn_80218590 (Ground_GObj *arg)
void grPushOn_80218598 (Ground_GObj *arg)
void grPushOn_8021859C (Ground_GObj *arg)
void grPushOn_802185A0 (Ground_GObj *gobj)
bool grPushOn_80218670 (Ground_GObj *arg)
bool fn_80218678 (void)
void grPushOn_802186C8 (Ground_GObj *gobj)
void grPushOn_802187A4 (Ground_GObj *arg)
void grPushOn_802187A8 (Ground_GObj *gobj)
bool grPushOn_80218880 (Ground_GObj *arg)
static void pad_stack (GXColor color)
void grPushOn_80218888 (Ground_GObj *gobj)
void grPushOn_80218ED0 (Ground_GObj *arg)
HSD_LObjgrPushOn_80218ED4 (HSD_GObj *gobj)
HSD_LObjgrPushOn_80218FC0 (HSD_GObj *gobj)
static GXColor get_light_color (struct grPushOn_LightConfig *entry)
void grPushOn_802190D0 (HSD_GObj *gobj)
void grPushOn_80219204 (int arg0, int *out1, int *out2)
int grPushOn_80219230 (int arg0)
s32 fn_802192A4 (void *arg0, HSD_GObj *gobj, s32 *result)
DynamicsDescgrPushOn_80219458 (enum_t arg0)
bool grPushOn_80219528 (Vec3 *arg, int arg0, HSD_JObj *jobj)

Variables

static struct grPushon_YakumonoParamyakumono_param
Vec3 const grPushOn_803B8440 = { 0 }
Vec3 const grPushOn_803B844C = { 0 }
Vec3 const grPushOn_803B8458 = { 0.0f, 100.0f, 0.0f }
Vec3 const grPushOn_803B8464 = { 0.0f, 100.0f, 0.0f }
float grPushOn_804D4934 = 16.0f
StageCallbacks grPushOn_StageCallbacks []
StageData grPushOn_StageData
HSD_LightDesc grPushOn_803E7B74
float grPushOn_804D4948 = 16.0f
HSD_LightDesc grPushOn_803E7B90
static struct grPushOn_LightConfig light_configs [9]
f32 grPushOn_803E7CCC [13]

Function Documentation

◆ fn_802190A0()

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

Ground collision callback for pushon stage elements.

Activates push behavior when collision flags indicate contact (b1234 == 1).

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

void order_sdata ( void )
static
Todo
.sdata order hack

◆ grPushOn_802182C4()

void grPushOn_802182C4 ( bool arg)

◆ grPushOn_802182C8()

void grPushOn_802182C8 ( void )

◆ grPushOn_80218330()

void grPushOn_80218330 ( void )

◆ grPushOn_80218378()

void grPushOn_80218378 ( void )

◆ grPushOn_802183DC()

bool grPushOn_802183DC ( void )

◆ grPushOn_802183E4()

HSD_GObj * grPushOn_802183E4 ( int gobj_id)

◆ grPushOn_802184CC()

void grPushOn_802184CC ( Ground_GObj * gobj)

◆ grPushOn_80218590()

bool grPushOn_80218590 ( Ground_GObj * arg)

◆ grPushOn_80218598()

void grPushOn_80218598 ( Ground_GObj * arg)

◆ grPushOn_8021859C()

void grPushOn_8021859C ( Ground_GObj * arg)

◆ grPushOn_802185A0()

void grPushOn_802185A0 ( Ground_GObj * gobj)

◆ grPushOn_80218670()

bool grPushOn_80218670 ( Ground_GObj * arg)

◆ fn_80218678()

bool fn_80218678 ( void )

◆ grPushOn_802186C8()

void grPushOn_802186C8 ( Ground_GObj * gobj)

◆ grPushOn_802187A4()

void grPushOn_802187A4 ( Ground_GObj * arg)

◆ grPushOn_802187A8()

void grPushOn_802187A8 ( Ground_GObj * gobj)

◆ grPushOn_80218880()

bool grPushOn_80218880 ( Ground_GObj * arg)

◆ pad_stack()

void pad_stack ( GXColor color)
inlinestatic
Todo
Fake padding function

◆ grPushOn_80218888()

void grPushOn_80218888 ( Ground_GObj * gobj)

◆ grPushOn_80218ED0()

void grPushOn_80218ED0 ( Ground_GObj * arg)

◆ grPushOn_80218ED4()

HSD_LObj * grPushOn_80218ED4 ( HSD_GObj * gobj)

◆ grPushOn_80218FC0()

HSD_LObj * grPushOn_80218FC0 ( HSD_GObj * gobj)

◆ get_light_color()

GXColor get_light_color ( struct grPushOn_LightConfig * entry)
inlinestatic

◆ grPushOn_802190D0()

void grPushOn_802190D0 ( HSD_GObj * gobj)

◆ grPushOn_80219204()

void grPushOn_80219204 ( int arg0,
int * out1,
int * out2 )

◆ grPushOn_80219230()

int grPushOn_80219230 ( int arg0)

◆ fn_802192A4()

s32 fn_802192A4 ( void * arg0,
HSD_GObj * gobj,
s32 * result )

◆ grPushOn_80219458()

DynamicsDesc * grPushOn_80219458 ( enum_t arg0)

◆ grPushOn_80219528()

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

Variable Documentation

◆ yakumono_param

struct grPushon_YakumonoParam* yakumono_param
static

◆ grPushOn_803B8440

Vec3 const grPushOn_803B8440 = { 0 }

◆ grPushOn_803B844C

Vec3 const grPushOn_803B844C = { 0 }

◆ grPushOn_803B8458

Vec3 const grPushOn_803B8458 = { 0.0f, 100.0f, 0.0f }

◆ grPushOn_803B8464

Vec3 const grPushOn_803B8464 = { 0.0f, 100.0f, 0.0f }

◆ grPushOn_804D4934

float grPushOn_804D4934 = 16.0f

◆ grPushOn_StageCallbacks

StageCallbacks grPushOn_StageCallbacks[]
Initial value:
= {
{
0,
},
{
(1 << 30) | (1 << 31),
},
{
0,
},
}
void grPushOn_80218598(Ground_GObj *arg)
Definition grpushon.c:219
void grPushOn_802184CC(Ground_GObj *gobj)
Definition grpushon.c:191
void grPushOn_802185A0(Ground_GObj *gobj)
Definition grpushon.c:223
void grPushOn_802187A4(Ground_GObj *arg)
Definition grpushon.c:283
bool grPushOn_80218880(Ground_GObj *arg)
Definition grpushon.c:306
bool grPushOn_80218670(Ground_GObj *arg)
Definition grpushon.c:238
bool grPushOn_80218590(Ground_GObj *arg)
Definition grpushon.c:214
void grPushOn_8021859C(Ground_GObj *arg)
Definition grpushon.c:221
void grPushOn_80218888(Ground_GObj *gobj)
Definition grpushon.c:314
void grPushOn_802187A8(Ground_GObj *gobj)
Definition grpushon.c:285
void grPushOn_802186C8(Ground_GObj *gobj)
Definition grpushon.c:257
void grPushOn_80218ED0(Ground_GObj *arg)
Definition grpushon.c:489

◆ grPushOn_StageData

StageData grPushOn_StageData
Initial value:
= {
"/GrNPo.dat",
(1 << 0),
0,
}
void grPushOn_802182C8(void)
Definition grpushon.c:119
void grPushOn_802182C4(bool arg)
Definition grpushon.c:117
bool grPushOn_802183DC(void)
Definition grpushon.c:158
bool grPushOn_80219528(Vec3 *arg, int arg0, HSD_JObj *jobj)
Definition grpushon.c:738
void grPushOn_80218330(void)
Definition grpushon.c:129
StageCallbacks grPushOn_StageCallbacks[]
Definition grpushon.c:77
void grPushOn_80218378(void)
Definition grpushon.c:143
DynamicsDesc * grPushOn_80219458(enum_t arg0)
Definition grpushon.c:704
@ Gr_Kind_Pushon
Definition forward.h:94
#define NULL
Definition stddef.h:19

◆ grPushOn_803E7B74

HSD_LightDesc grPushOn_803E7B74
Initial value:
= {
6,
0,
{ 0xFF, 0xFF, 0xFF, 0xFF },
}
float grPushOn_804D4934
Definition grpushon.c:75

◆ grPushOn_804D4948

float grPushOn_804D4948 = 16.0f

◆ grPushOn_803E7B90

HSD_LightDesc grPushOn_803E7B90
Initial value:
= {
0xA,
0,
{ 0xFF, 0xFF, 0xFF, 0xFF },
}
float grPushOn_804D4948
Definition grpushon.c:514

◆ light_configs

struct grPushOn_LightConfig light_configs[9]
static

◆ grPushOn_803E7CCC

f32 grPushOn_803E7CCC[13]
Initial value:
= {
1441.428955078125F,
1645.62890625F,
340.57470703125F,
1306.4332275390625F,
1361.6331787109375F,
361.5741882324219F,
1193.4345703125F,
1268.634521484375F,
367.57391357421875F,
1121.16015625F,
1157.6820068359375F,
354.6068115234375F,
0.0F,
}