SSBM Decomp
Loading...
Searching...
No Matches
gricemt.c File Reference
#include "gr/gricemt.h"
#include <placeholder.h>
#include <platform.h>
#include "baselib/gobjgxlink.h"
#include "baselib/gobjproc.h"
#include "baselib/random.h"
#include "cm/camera.h"
#include "ef/efsync.h"
#include "gr/grdatfiles.h"
#include "gr/grdisplay.h"
#include "gr/grlib.h"
#include "gr/grmaterial.h"
#include "gr/ground.h"
#include "gr/grzakogenerator.h"
#include "gr/inlines.h"
#include "gr/stage.h"
#include "gr/types.h"
#include "it/inlines.h"
#include "it/it_26B1.h"
#include "it/types.h"
#include "lb/lb_00B0.h"
#include "mp/mplib.h"
#include <m2c_macros.h>
#include <baselib/gobj.h>
#include <baselib/jobj.h>

Data Structures

struct  IceMtRowData
 Ice Mountain row data - 12 bytes each. More...
 

Macros

#define ICEMT_FIELD_MAX   6
 

Functions

static void fn_801F8C64 (Item_GObj *gobj, Ground *u1, Vec3 *u2, HSD_GObj *u3, f32 u4)
 
static void FUN_801f91ec (HSD_GObj *param_1, s16 *param_2, int param_3, int param_4, int param_5, int param_6, int param_7, mpLib_Callback param_8)
 grIceMt_801F91EC
 
void grIceMt_801F6868 (bool id)
 
void grIceMt_801F686C (void)
 grIceMt_801F686C
 
void grIceMt_801F7080 (void)
 
void grIceMt_801F71DC (void)
 
bool grIceMt_801F71E0 (void)
 
HSD_GObjgrIceMt_801F71E8 (int gobj_id)
 grIceMt_801F71E8
 
void grIceMt_801F72D4 (Ground_GObj *arg0)
 
bool grIceMt_801F75DC (Ground_GObj *arg0)
 
void grIceMt_801F75E4 (Ground_GObj *arg0)
 
void grIceMt_801F75E8 (Ground_GObj *arg0)
 
void fn_801F75EC (HSD_GObj *arg0)
 
void grIceMt_801F75FC (Ground_GObj *arg0)
 grIceMt_801F75FC
 
bool grIceMt_801F7720 (Ground_GObj *arg0)
 
void grIceMt_801F7728 (Ground_GObj *arg0)
 grIceMt_801F7728
 
void grIceMt_801F77AC (Ground_GObj *arg0)
 
void fn_801F77B0 (HSD_GObj *arg0)
 fn_801F77B0
 
void grIceMt_801F785C (Ground_GObj *gobj)
 grIceMt_801F785C
 
bool grIceMt_801F796C (Ground_GObj *arg0)
 grIceMt_801F796C gricemt.c
 
void grIceMt_801F7D90 (Ground_GObj *arg0)
 grIceMt_801F7A2C
 
void grIceMt_801F7D94 (Ground_GObj *arg0)
 grIceMt_801F7D94
 
bool grIceMt_801F7EE0 (Ground_GObj *arg0)
 
void grIceMt_801F7EE8 (Ground_GObj *arg0)
 
void grIceMt_801F7F1C (Ground_GObj *arg0)
 grIceMt_801F7F1C
 
void grIceMt_801F7F70 (Ground_GObj *arg0)
 grIceMt_801F7F70
 
bool grIceMt_801F8154 (Ground_GObj *param1)
 
void grIceMt_801F815C (Ground_GObj *param1)
 grIceMt_801F815C
 
void grIceMt_801F81B4 (Ground_GObj *arg0)
 grIceMt_801F81B4
 
void grIceMt_801F8208 (Ground_GObj *arg0)
 grIceMt_801F8208
 
bool grIceMt_801F835C (Ground_GObj *param1)
 
void grIceMt_801F8364 (Ground_GObj *arg0)
 grIceMt_801F8364
 
void grIceMt_801F8398 (Ground_GObj *arg0)
 grIceMt_801F8398
 
void grIceMt_801F83EC (Ground_GObj *arg0)
 grIceMt_801F83EC
 
bool grIceMt_801F85BC (Ground_GObj *param1)
 
void grIceMt_801F85C4 (Ground_GObj *gobj)
 grIceMt_801F85C4
 
void grIceMt_801F8608 (Ground_GObj *arg0)
 grIceMt_801F8608
 
void grIceMt_801F865C (Ground_GObj *arg0)
 grIceMt_801F865C
 
bool grIceMt_801F87C0 (Ground_GObj *param1)
 
void grIceMt_801F87C8 (Ground_GObj *param1)
 grIceMt_801F87C8
 
void grIceMt_801F87FC (Ground_GObj *gobj)
 
void grIceMt_801F8850 (Ground_GObj *arg0)
 grIceMt_801F8850
 
bool grIceMt_801F89A4 (Ground_GObj *arg0)
 
void grIceMt_801F89AC (Ground_GObj *param1)
 grIceMt_801F89AC
 
void grIceMt_801F89E0 (Ground_GObj *arg0)
 grIceMt_801F89E0
 
void grIceMt_801F8A34 (Ground_GObj *arg0)
 grIceMt_801F8A34
 
bool grIceMt_801F8B08 (Ground_GObj *arg0)
 
void grIceMt_801F8B10 (Ground_GObj *arg0)
 grIceMt_801F8B10
 
void grIceMt_801F8C60 (Ground_GObj *arg0)
 
void grIceMt_801F8CDC (Ground_GObj *gobj, s16 *joint_indices, int count, HSD_GObj **output_array)
 Creates material items and attaches them to Entity05 platform JObjs.
 
IceMountainParamsfn_801F9150 (HSD_GObj *arg0)
 fn_801F8E58
 
void fn_801F91A4 (void)
 
HSD_GObjfn_801F91A8 (HSD_GObj *arg0)
 fn_801F91A8 grIm_804D69F4
 
void grIceMt_801F929C (HSD_GObj *arg0)
 grIceMt_801F929C
 
void fn_801F9338 (Ground *gp, int arg1, CollData *arg2, s32 arg3, mpLib_GroundEnum arg4, float arg8)
 fn_801F9338
 
void fn_801F9448 (Ground *gp, int arg1, CollData *arg2, s32 arg3, mpLib_GroundEnum arg4, float arg8)
 fn_801F9448
 
void fn_801F9558 (Ground *gp, int arg1, CollData *arg2, s32 arg3, mpLib_GroundEnum arg4, float arg8)
 fn_801F9558
 
void grIceMt_801F9668 (float arg8)
 
float grIceMt_801F96E0 (float y)
 
int grIceMt_801F98A8 (Ground_GObj *param1)
 grIceMt_801F98A8
 
void grIceMt_801F9ACC (float y)
 grIceMt_801F993C
 
int fn_801FA4CC (int num)
 grIceMt_801FA0BC
 
int grIceMt_801FA500 (HSD_GObj *param1)
 
void grIceMt_801FA6D8 (HSD_GObj *param1)
 grIceMt_801FA6D8
 
void grIceMt_801FA728 (Vec3 *arg0)
 
void grIceMt_801FA7F0 (Ground *gp, s32 arg1, CollData *arg2, s32 arg3, mpLib_GroundEnum arg4, float arg8)
 grIceMt_801FA7F0
 
void grIceMt_801FA854 (void)
 grIceMt_801FA854
 
DynamicsDescgrIceMt_801FA8F8 (enum_t id)
 
bool grIceMt_801FA900 (Vec3 *a, int id, HSD_JObj *jobj)
 

Variables

Vec3 grIm_803B8220 []
 
HSD_GObjgrIm_804D69E8
 
HSD_GObjgrIm_804D69EC
 
HSD_GObjgrIm_804D69F0
 
IceMountainParamsgrIm_804D69F4
 
IceMtRowData grIm_803E4068 [6]
 
S16Vec3 grIm_803E40B0 []
 
StageCallbacks grIm_803E4718 []
 
StageData grIm_803E4800
 
const float grIm_804DB574 = 0.0F
 
const float grIm_804DB5B0 = -1.0F
 
const float grIm_804DB5B4 = 1.0F
 
const float grIm_804DB5B8 = 6.0F
 
char grIm_804D4718
 grIceMt_801F72D4
 
char grIm_804D4720
 

Macro Definition Documentation

◆ ICEMT_FIELD_MAX

#define ICEMT_FIELD_MAX   6

Function Documentation

◆ fn_801F8C64()

void fn_801F8C64 ( Item_GObj gobj,
Ground u1,
Vec3 *  u2,
HSD_GObj u3,
f32  u4 
)
static

◆ FUN_801f91ec()

void FUN_801f91ec ( HSD_GObj param_1,
s16 *  param_2,
int  param_3,
int  param_4,
int  param_5,
int  param_6,
int  param_7,
mpLib_Callback  param_8 
)
static

◆ grIceMt_801F6868()

void grIceMt_801F6868 ( bool  id)

◆ grIceMt_801F686C()

void grIceMt_801F686C ( void  )

◆ grIceMt_801F7080()

void grIceMt_801F7080 ( void  )

◆ grIceMt_801F71DC()

void grIceMt_801F71DC ( void  )

◆ grIceMt_801F71E0()

bool grIceMt_801F71E0 ( void  )

◆ grIceMt_801F71E8()

HSD_GObj * grIceMt_801F71E8 ( int  gobj_id)

◆ grIceMt_801F72D4()

void grIceMt_801F72D4 ( Ground_GObj arg0)

◆ grIceMt_801F75DC()

bool grIceMt_801F75DC ( Ground_GObj arg0)

◆ grIceMt_801F75E4()

void grIceMt_801F75E4 ( Ground_GObj arg0)

◆ grIceMt_801F75E8()

void grIceMt_801F75E8 ( Ground_GObj arg0)

◆ fn_801F75EC()

void fn_801F75EC ( HSD_GObj arg0)

◆ grIceMt_801F75FC()

void grIceMt_801F75FC ( Ground_GObj arg0)

grIceMt_801F75FC

Note
This function treats xF4 area as s16 indices during initialization. The same memory is later interpreted as pointers by other functions.

◆ grIceMt_801F7720()

bool grIceMt_801F7720 ( Ground_GObj arg0)

◆ grIceMt_801F7728()

void grIceMt_801F7728 ( Ground_GObj arg0)

◆ grIceMt_801F77AC()

void grIceMt_801F77AC ( Ground_GObj arg0)

◆ fn_801F77B0()

void fn_801F77B0 ( HSD_GObj arg0)

◆ grIceMt_801F785C()

void grIceMt_801F785C ( Ground_GObj gobj)

◆ grIceMt_801F796C()

bool grIceMt_801F796C ( Ground_GObj arg0)

◆ grIceMt_801F7D90()

void grIceMt_801F7D90 ( Ground_GObj arg0)

◆ grIceMt_801F7D94()

void grIceMt_801F7D94 ( Ground_GObj arg0)

◆ grIceMt_801F7EE0()

bool grIceMt_801F7EE0 ( Ground_GObj arg0)

◆ grIceMt_801F7EE8()

void grIceMt_801F7EE8 ( Ground_GObj arg0)

◆ grIceMt_801F7F1C()

void grIceMt_801F7F1C ( Ground_GObj arg0)

◆ grIceMt_801F7F70()

void grIceMt_801F7F70 ( Ground_GObj arg0)

◆ grIceMt_801F8154()

bool grIceMt_801F8154 ( Ground_GObj param1)

◆ grIceMt_801F815C()

void grIceMt_801F815C ( Ground_GObj param1)

◆ grIceMt_801F81B4()

void grIceMt_801F81B4 ( Ground_GObj arg0)

◆ grIceMt_801F8208()

void grIceMt_801F8208 ( Ground_GObj arg0)

◆ grIceMt_801F835C()

bool grIceMt_801F835C ( Ground_GObj param1)

◆ grIceMt_801F8364()

void grIceMt_801F8364 ( Ground_GObj arg0)

◆ grIceMt_801F8398()

void grIceMt_801F8398 ( Ground_GObj arg0)

◆ grIceMt_801F83EC()

void grIceMt_801F83EC ( Ground_GObj arg0)

◆ grIceMt_801F85BC()

bool grIceMt_801F85BC ( Ground_GObj param1)

◆ grIceMt_801F85C4()

void grIceMt_801F85C4 ( Ground_GObj gobj)

◆ grIceMt_801F8608()

void grIceMt_801F8608 ( Ground_GObj arg0)

◆ grIceMt_801F865C()

void grIceMt_801F865C ( Ground_GObj arg0)

◆ grIceMt_801F87C0()

bool grIceMt_801F87C0 ( Ground_GObj param1)

◆ grIceMt_801F87C8()

void grIceMt_801F87C8 ( Ground_GObj param1)

◆ grIceMt_801F87FC()

void grIceMt_801F87FC ( Ground_GObj gobj)
Todo:
Rename: This is callback3 (destroy) for row 5 in grIm_803E4718. Destroys HSD_GObj* stored in icemt.xF8[0-4].

◆ grIceMt_801F8850()

void grIceMt_801F8850 ( Ground_GObj arg0)

◆ grIceMt_801F89A4()

bool grIceMt_801F89A4 ( Ground_GObj arg0)

◆ grIceMt_801F89AC()

void grIceMt_801F89AC ( Ground_GObj param1)

◆ grIceMt_801F89E0()

void grIceMt_801F89E0 ( Ground_GObj arg0)

◆ grIceMt_801F8A34()

void grIceMt_801F8A34 ( Ground_GObj arg0)

◆ grIceMt_801F8B08()

bool grIceMt_801F8B08 ( Ground_GObj arg0)

◆ grIceMt_801F8B10()

void grIceMt_801F8B10 ( Ground_GObj arg0)

◆ grIceMt_801F8C60()

void grIceMt_801F8C60 ( Ground_GObj arg0)

◆ grIceMt_801F8CDC()

void grIceMt_801F8CDC ( Ground_GObj gobj,
s16 *  joint_indices,
int  count,
HSD_GObj **  output_array 
)

Creates material items and attaches them to Entity05 platform JObjs.

Parameters
gobjThe Entity05 Ground_GObj
joint_indicesArray of joint indices to get parent JObjs from
countNumber of items to create (max 20)
output_arrayArray to store created Item_GObj pointers

◆ fn_801F9150()

◆ fn_801F91A4()

void fn_801F91A4 ( void  )

◆ fn_801F91A8()

HSD_GObj * fn_801F91A8 ( HSD_GObj arg0)

fn_801F91A8 grIm_804D69F4

Todo:
This function reads xAC[gp->xE0] and returns grIm_803E4068[index].id

◆ grIceMt_801F929C()

void grIceMt_801F929C ( HSD_GObj arg0)

◆ fn_801F9338()

void fn_801F9338 ( Ground gp,
int  arg1,
CollData arg2,
s32  arg3,
mpLib_GroundEnum  arg4,
float  arg8 
)

◆ fn_801F9448()

void fn_801F9448 ( Ground gp,
int  arg1,
CollData arg2,
s32  arg3,
mpLib_GroundEnum  arg4,
float  arg8 
)

◆ fn_801F9558()

void fn_801F9558 ( Ground gp,
int  arg1,
CollData arg2,
s32  arg3,
mpLib_GroundEnum  arg4,
float  arg8 
)

◆ grIceMt_801F9668()

void grIceMt_801F9668 ( float  arg8)

◆ grIceMt_801F96E0()

float grIceMt_801F96E0 ( float  y)

◆ grIceMt_801F98A8()

int grIceMt_801F98A8 ( Ground_GObj param1)

grIceMt_801F98A8

Note
Checks bit 6 of icemt2.xC4 (as byte) - clears it and does cleanup.

◆ grIceMt_801F9ACC()

void grIceMt_801F9ACC ( float  y)

◆ fn_801FA4CC()

int fn_801FA4CC ( int  num)

◆ grIceMt_801FA500()

int grIceMt_801FA500 ( HSD_GObj param1)

◆ grIceMt_801FA6D8()

void grIceMt_801FA6D8 ( HSD_GObj param1)

◆ grIceMt_801FA728()

void grIceMt_801FA728 ( Vec3 *  arg0)

◆ grIceMt_801FA7F0()

void grIceMt_801FA7F0 ( Ground gp,
s32  arg1,
CollData arg2,
s32  arg3,
mpLib_GroundEnum  arg4,
float  arg8 
)

◆ grIceMt_801FA854()

void grIceMt_801FA854 ( void  )

◆ grIceMt_801FA8F8()

DynamicsDesc * grIceMt_801FA8F8 ( enum_t  id)

◆ grIceMt_801FA900()

bool grIceMt_801FA900 ( Vec3 *  a,
int  id,
HSD_JObj jobj 
)

Variable Documentation

◆ grIm_803B8220

Vec3 grIm_803B8220[]
Initial value:
= { { 0.0, 0.0, 0.0 },
{ -8.0, 15.0, 0.0 },
{ 8.0, 15.0, 0.0 },
{ -24.0, 15.0, 0.0 },
{ 24.0, 15.0, 0.0 } }

◆ grIm_804D69E8

HSD_GObj* grIm_804D69E8

◆ grIm_804D69EC

HSD_GObj* grIm_804D69EC

◆ grIm_804D69F0

HSD_GObj* grIm_804D69F0

◆ grIm_804D69F4

IceMountainParams* grIm_804D69F4

◆ grIm_803E4068

IceMtRowData grIm_803E4068[6]

◆ grIm_803E40B0

S16Vec3 grIm_803E40B0[]
Initial value:
= {
{ 0, 0, 0 }, { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 0 }, { 2, 0, 0 }
}

◆ grIm_803E4718

StageCallbacks grIm_803E4718[]
Initial value:
{ 0, 0, 0, 0, 0 },
void grIceMt_801F865C(Ground_GObj *arg0)
grIceMt_801F865C
Definition gricemt.c:765
bool grIceMt_801F89A4(Ground_GObj *arg0)
Definition gricemt.c:845
bool grIceMt_801F8B08(Ground_GObj *arg0)
Definition gricemt.c:883
void grIceMt_801F8608(Ground_GObj *arg0)
grIceMt_801F8608
Definition gricemt.c:752
bool grIceMt_801F87C0(Ground_GObj *param1)
Definition gricemt.c:791
bool grIceMt_801F7720(Ground_GObj *arg0)
Definition gricemt.c:475
void grIceMt_801F87C8(Ground_GObj *param1)
grIceMt_801F87C8
Definition gricemt.c:797
void grIceMt_801F7EE8(Ground_GObj *arg0)
Definition gricemt.c:590
void grIceMt_801F72D4(Ground_GObj *arg0)
Definition gricemt.c:385
void grIceMt_801F785C(Ground_GObj *gobj)
grIceMt_801F785C
Definition gricemt.c:504
void grIceMt_801F87FC(Ground_GObj *gobj)
Definition gricemt.c:806
void grIceMt_801F7D94(Ground_GObj *arg0)
grIceMt_801F7D94
Definition gricemt.c:564
bool grIceMt_801F7EE0(Ground_GObj *arg0)
Definition gricemt.c:585
bool grIceMt_801F75DC(Ground_GObj *arg0)
Definition gricemt.c:426
void grIceMt_801F815C(Ground_GObj *param1)
grIceMt_801F815C
Definition gricemt.c:642
void grIceMt_801F7F1C(Ground_GObj *arg0)
grIceMt_801F7F1C
Definition gricemt.c:598
bool grIceMt_801F835C(Ground_GObj *param1)
Definition gricemt.c:686
void grIceMt_801F8C60(Ground_GObj *arg0)
Definition gricemt.c:901
void grIceMt_801F7728(Ground_GObj *arg0)
grIceMt_801F7728
Definition gricemt.c:481
void grIceMt_801F7D90(Ground_GObj *arg0)
grIceMt_801F7A2C
Definition gricemt.c:561
void grIceMt_801F77AC(Ground_GObj *arg0)
Definition gricemt.c:492
void grIceMt_801F8364(Ground_GObj *arg0)
grIceMt_801F8364
Definition gricemt.c:692
void grIceMt_801F83EC(Ground_GObj *arg0)
grIceMt_801F83EC
Definition gricemt.c:712
void grIceMt_801F75E4(Ground_GObj *arg0)
Definition gricemt.c:431
void grIceMt_801F7F70(Ground_GObj *arg0)
grIceMt_801F7F70
Definition gricemt.c:611
void grIceMt_801F8208(Ground_GObj *arg0)
grIceMt_801F8208
Definition gricemt.c:663
void grIceMt_801F8850(Ground_GObj *arg0)
grIceMt_801F8850
Definition gricemt.c:819
void grIceMt_801F8B10(Ground_GObj *arg0)
grIceMt_801F8B10
Definition gricemt.c:889
void grIceMt_801F85C4(Ground_GObj *gobj)
grIceMt_801F85C4
Definition gricemt.c:744
void grIceMt_801F89AC(Ground_GObj *param1)
grIceMt_801F89AC
Definition gricemt.c:851
void grIceMt_801F8398(Ground_GObj *arg0)
grIceMt_801F8398
Definition gricemt.c:699
bool grIceMt_801F796C(Ground_GObj *arg0)
grIceMt_801F796C gricemt.c
Definition gricemt.c:538
bool grIceMt_801F8154(Ground_GObj *param1)
Definition gricemt.c:636
void grIceMt_801F89E0(Ground_GObj *arg0)
grIceMt_801F89E0
Definition gricemt.c:859
void grIceMt_801F8A34(Ground_GObj *arg0)
grIceMt_801F8A34
Definition gricemt.c:872
bool grIceMt_801F85BC(Ground_GObj *param1)
Definition gricemt.c:738
void grIceMt_801F81B4(Ground_GObj *arg0)
grIceMt_801F81B4
Definition gricemt.c:650
void grIceMt_801F75FC(Ground_GObj *arg0)
grIceMt_801F75FC
Definition gricemt.c:443
void grIceMt_801F7A2C(Ground_GObj *)

◆ grIm_803E4800

StageData grIm_803E4800
Initial value:
= {
0x16,
"/GrIm.dat",
1,
3,
}
void grIceMt_801F7080(void)
Definition gricemt.c:276
bool grIceMt_801F71E0(void)
Definition gricemt.c:338
bool grIceMt_801FA900(Vec3 *a, int id, HSD_JObj *jobj)
Definition gricemt.c:1281
void grIceMt_801F6868(bool id)
Definition gricemt.c:125
StageCallbacks grIm_803E4718[]
Definition gricemt.c:82
void grIceMt_801F686C(void)
grIceMt_801F686C
Definition gricemt.c:130
S16Vec3 grIm_803E40B0[]
Definition gricemt.c:78
void grIceMt_801F71DC(void)
Definition gricemt.c:336
DynamicsDesc * grIceMt_801FA8F8(enum_t id)
Definition gricemt.c:1276

◆ grIm_804DB574

const float grIm_804DB574 = 0.0F

◆ grIm_804DB5B0

const float grIm_804DB5B0 = -1.0F

◆ grIm_804DB5B4

const float grIm_804DB5B4 = 1.0F

◆ grIm_804DB5B8

const float grIm_804DB5B8 = 6.0F

◆ grIm_804D4718

char grIm_804D4718
extern

◆ grIm_804D4720

char grIm_804D4720
extern