SSBM Decomp
Loading...
Searching...
No Matches
grvenom.c File Reference
#include "grvenom.h"
#include <platform.h>
#include "gr/grcorneria.h"
#include "gr/grdisplay.h"
#include "gr/grmaterial.h"
#include "gr/grzakogenerator.h"
#include "gr/inlines.h"
#include "gr/stage.h"
#include "gr/types.h"
#include "if/ifcoget.h"
#include "if/ifstatus.h"
#include "it/items/itarwinglaser.h"
#include "lb/lb_00B0.h"
#include "lb/lbaudio_ax.h"
#include "lb/lbspdisplay.h"
#include "mp/mplib.h"
#include "pl/player.h"
#include <baselib/aobj.h>
#include <baselib/debug.h>
#include <baselib/gobj.h>
#include <baselib/gobjgxlink.h>
#include <baselib/gobjproc.h>
#include <baselib/lobj.h>
#include <baselib/random.h>
#include <baselib/sislib.h>

Data Structures

struct  grVe_Data
struct  grVenom_YakumonoParam
struct  grVe_Lighting
struct  grVe_GroundData
struct  VenomSpawnData
struct  grVe_AnimData
struct  grVe_AnimArg

Functions

static int * grVe_GetArwingTypes (grVe_Data *data)
 grVenom_8020362C
static s32 grVe_RandRange (f32 fmin, f32 fmax)
void grVenom_8020362C (void)
void grVenom_80203B14 (bool arg)
static void inlineA0 (void)
void grVenom_80203B18 (void)
 Stage initialization function for Venom.
void grVenom_80203DD0 (void)
void grVenom_80203E80 (void)
bool grVenom_80203EA4 (void)
Ground_GObjgrVenom_80203EAC (int gobj_id)
 grVenom_80203EAC
void grVenom_80203F98 (Ground_GObj *gobj)
bool grVenom_80203FC4 (Ground_GObj *arg)
void grVenom_80203FCC (Ground_GObj *arg)
void grVenom_80203FD0 (Ground_GObj *arg)
void grVenom_80203FD4 (Ground_GObj *gobj)
bool grVenom_802040A4 (Ground_GObj *arg)
void grVenom_802040AC (Ground_GObj *arg)
void grVenom_802040B0 (Ground_GObj *arg)
StKind Stage_80225194 (void)
void fn_802040B4 (Ground_GObj *gobj)
void grVenom_802040F0 (Ground_GObj *gobj)
 grVenom_802040F0
bool grVenom_8020427C (Ground_GObj *arg)
void grVenom_80204284 (Ground_GObj *gobj)
void grVenom_80204424 (Ground_GObj *arg)
void grVenom_80204428 (Ground_GObj *gobj)
bool grVenom_80204544 (Ground_GObj *arg)
void grVenom_8020454C (Ground_GObj *gobj)
void grVenom_80204B84 (Ground_GObj *arg)
void grVenom_80204B88 (Ground_GObj *gobj)
void grVenom_80204CE0 (Ground_GObj *arg)
bool grVenom_80204CE4 (Ground_GObj *arg)
void grVenom_80204CEC (Ground_GObj *gobj)
void grVenom_80204DB0 (Ground_GObj *gobj)
void grVenom_80204DD4 (Ground_GObj *gobj)
 grVenom_80204DD4 Unit: main/melee/gr/grvenom
bool grVenom_80204EF4 (Ground_GObj *arg)
void grVenom_80204EFC (Ground_GObj *arg)
void grVenom_80204F1C (Ground_GObj *arg)
void grVenom_80204F20 (Ground_GObj *arg0)
bool grVenom_802052D8 (Ground_GObj *arg)
void grVenom_802052E0 (Ground_GObj *gobj, Vec3 *pos)
void grVenom_802053B0 (Ground_GObj *gobj)
 grVenom_802053B0
void grVenom_802056AC (Ground_GObj *arg)
void grVenom_802056B0 (Ground_GObj *gobj)
bool grVenom_80205750 (Ground_GObj *arg)
void grVenom_80205758 (Ground_GObj *gobj)
void grVenom_80205AD0 (Ground_GObj *arg)
void grVenom_80205AD4 (Ground_GObj *gobj)
bool grVenom_80205DF0 (Ground_GObj *arg)
s32 grVenom_80205DF8 (Vec3 *pos)
float Stage_GetBlastZoneBottomOffset (void)
 grVenom_80205E84
float Stage_GetBlastZoneLeftOffset (void)
float Stage_GetBlastZoneRightOffset (void)
float Stage_GetBlastZoneTopOffset (void)
 named stGetPlyDeadUp according to an assert in ftcamera.c
s32 grVenom_80205E84 (Vec3 *pos)
static s32 grVe_GetAnimArg (s32 fire_kind, Ground *gp, grVe_AnimData *anim_data)
 Steps the anim-arg row/column words on the stage-data base pointer and reads through the struct field so the +0x2FC displacement lands on the load itself.
void grVenom_80205F30 (Ground_GObj *gobj)
void grVenom_80206870 (Ground_GObj *arg)
void grVenom_80206874 (Ground_GObj *gobj)
bool grVenom_80206B68 (Ground_GObj *arg)
 grVenom_80206874
void grVenom_80206B70 (Ground_GObj *arg)
void grVenom_80206B90 (Ground_GObj *arg)
void grVenom_80206B94 (Ground_GObj *gobj)
bool grVenom_80206BBC (Ground_GObj *arg)
void grVenom_80206BC4 (Ground_GObj *gobj)
void grVenom_80206BEC (Ground_GObj *arg)
bool grVenom_80206BF0 (int arg0)
void grVenom_80206CB0 (s32 arg0)
s32 grVenom_80206D10 (s32 arg0)
DynamicsDescgrVenom_80206D74 (enum_t arg)
bool grVenom_80206D7C (Vec3 *pos, int arg1, HSD_JObj *arg2)

Variables

static grVe_Data grVe_803E5348
static int grVe_803E5380 [3] = { 0 }
StageCallbacks grVe_StageCallbacks [16]
StageData grVe_StageData
static struct grVenom_YakumonoParamyakumono_param
static u32 grVe_804D6A34
static s32 grVe_804D6A38
static s32 grVe_804D6A3C
static s32 grVe_804D6A40
static int grVe_803E5530 [53]
 Per-state map animation ids, read via the stage data base pointer (base[state + 0x7A], see grVenom_802053B0); trailing entries are the zero/3/6 words observed in the reference object.
static const GXColor grVe_804DB7D8 = { 0, 0, 0, 0 }
 grVenom_80204B88 Updates Venom stage lighting colors based on environment state.
static const GXColor grVe_804DB7DC = { 190, 10, 0, 0 }
static const GXColor grVe_804DB7E0 = { 110, 60, 25, 0 }
static const GXColor grVe_804DB7E4 = { 110, 90, 0, 0 }
static int grVe_803E5644 [10] = { -1, -1, 1, 0, 2, 2, 4, 4, 5, 5 }
 Per-state animation ids (cf. Corneria's grCn_803E214C).
static int grVe_803E566C [5] = { 0x0A, 0x0A, 0x0B, 0x0C, 0x0D }
 Per-group map animation ids (cf. Corneria's grCn_803E217C).
static int grVe_803E5680 [5] = { 4, 4, 4, 4, 3 }
 Joint id per Arwing group (cf. Corneria's grCn_803E2190).
static int grVe_803E56A0 [6] = { 1, 1, 1, 1, 1, 0 }
 Per-group animation flags (cf.
static const Vec3 grVe_803B82D0 = { 0.0F, 0.0F, 0.0F }
static const Vec3 grVe_803B82DC = { 0.0F, 0.0F, 0.0F }

Function Documentation

◆ grVe_GetArwingTypes()

int * grVe_GetArwingTypes ( grVe_Data * data)
inlinestatic

grVenom_8020362C

◆ grVe_RandRange()

s32 grVe_RandRange ( f32 fmin,
f32 fmax )
inlinestatic

◆ grVenom_8020362C()

void grVenom_8020362C ( void )

◆ grVenom_80203B14()

void grVenom_80203B14 ( bool arg)

◆ inlineA0()

void inlineA0 ( void )
inlinestatic

◆ grVenom_80203B18()

void grVenom_80203B18 ( void )

Stage initialization function for Venom.

Todo
shared loop with grVenom_8020454C

◆ grVenom_80203DD0()

void grVenom_80203DD0 ( void )

◆ grVenom_80203E80()

void grVenom_80203E80 ( void )

◆ grVenom_80203EA4()

bool grVenom_80203EA4 ( void )

◆ grVenom_80203EAC()

Ground_GObj * grVenom_80203EAC ( int gobj_id)

grVenom_80203EAC

◆ grVenom_80203F98()

void grVenom_80203F98 ( Ground_GObj * gobj)

◆ grVenom_80203FC4()

bool grVenom_80203FC4 ( Ground_GObj * arg)

◆ grVenom_80203FCC()

void grVenom_80203FCC ( Ground_GObj * arg)

◆ grVenom_80203FD0()

void grVenom_80203FD0 ( Ground_GObj * arg)

◆ grVenom_80203FD4()

void grVenom_80203FD4 ( Ground_GObj * gobj)

◆ grVenom_802040A4()

bool grVenom_802040A4 ( Ground_GObj * arg)

◆ grVenom_802040AC()

void grVenom_802040AC ( Ground_GObj * arg)

◆ grVenom_802040B0()

void grVenom_802040B0 ( Ground_GObj * arg)

◆ Stage_80225194()

StKind Stage_80225194 ( void )

◆ fn_802040B4()

void fn_802040B4 ( Ground_GObj * gobj)

◆ grVenom_802040F0()

void grVenom_802040F0 ( Ground_GObj * gobj)

grVenom_802040F0

◆ grVenom_8020427C()

bool grVenom_8020427C ( Ground_GObj * arg)

◆ grVenom_80204284()

void grVenom_80204284 ( Ground_GObj * gobj)

◆ grVenom_80204424()

void grVenom_80204424 ( Ground_GObj * arg)

◆ grVenom_80204428()

void grVenom_80204428 ( Ground_GObj * gobj)

◆ grVenom_80204544()

bool grVenom_80204544 ( Ground_GObj * arg)

◆ grVenom_8020454C()

void grVenom_8020454C ( Ground_GObj * gobj)

◆ grVenom_80204B84()

void grVenom_80204B84 ( Ground_GObj * arg)

◆ grVenom_80204B88()

void grVenom_80204B88 ( Ground_GObj * gobj)

◆ grVenom_80204CE0()

void grVenom_80204CE0 ( Ground_GObj * arg)

◆ grVenom_80204CE4()

bool grVenom_80204CE4 ( Ground_GObj * arg)

◆ grVenom_80204CEC()

void grVenom_80204CEC ( Ground_GObj * gobj)

◆ grVenom_80204DB0()

void grVenom_80204DB0 ( Ground_GObj * gobj)

◆ grVenom_80204DD4()

void grVenom_80204DD4 ( Ground_GObj * gobj)

grVenom_80204DD4 Unit: main/melee/gr/grvenom

◆ grVenom_80204EF4()

bool grVenom_80204EF4 ( Ground_GObj * arg)

◆ grVenom_80204EFC()

void grVenom_80204EFC ( Ground_GObj * arg)

◆ grVenom_80204F1C()

void grVenom_80204F1C ( Ground_GObj * arg)

◆ grVenom_80204F20()

void grVenom_80204F20 ( Ground_GObj * arg0)

◆ grVenom_802052D8()

bool grVenom_802052D8 ( Ground_GObj * arg)

◆ grVenom_802052E0()

void grVenom_802052E0 ( Ground_GObj * gobj,
Vec3 * pos )

◆ grVenom_802053B0()

void grVenom_802053B0 ( Ground_GObj * gobj)

grVenom_802053B0

◆ grVenom_802056AC()

void grVenom_802056AC ( Ground_GObj * arg)

◆ grVenom_802056B0()

void grVenom_802056B0 ( Ground_GObj * gobj)

◆ grVenom_80205750()

bool grVenom_80205750 ( Ground_GObj * arg)

◆ grVenom_80205758()

void grVenom_80205758 ( Ground_GObj * gobj)

◆ grVenom_80205AD0()

void grVenom_80205AD0 ( Ground_GObj * arg)

◆ grVenom_80205AD4()

void grVenom_80205AD4 ( Ground_GObj * gobj)

◆ grVenom_80205DF0()

bool grVenom_80205DF0 ( Ground_GObj * arg)

◆ grVenom_80205DF8()

s32 grVenom_80205DF8 ( Vec3 * pos)

◆ Stage_GetBlastZoneBottomOffset()

float Stage_GetBlastZoneBottomOffset ( void )

grVenom_80205E84

◆ Stage_GetBlastZoneLeftOffset()

float Stage_GetBlastZoneLeftOffset ( void )

◆ Stage_GetBlastZoneRightOffset()

float Stage_GetBlastZoneRightOffset ( void )

◆ Stage_GetBlastZoneTopOffset()

float Stage_GetBlastZoneTopOffset ( void )

named stGetPlyDeadUp according to an assert in ftcamera.c

◆ grVenom_80205E84()

s32 grVenom_80205E84 ( Vec3 * pos)

◆ grVe_GetAnimArg()

s32 grVe_GetAnimArg ( s32 fire_kind,
Ground * gp,
grVe_AnimData * anim_data )
inlinestatic

Steps the anim-arg row/column words on the stage-data base pointer and reads through the struct field so the +0x2FC displacement lands on the load itself.

Evidence: the reference object computes the address with two adds on the base register and loads lwz rD, 0x2FC(rA); direct 2D array indexing re-associates to an lwzx indexed load instead.

◆ grVenom_80205F30()

void grVenom_80205F30 ( Ground_GObj * gobj)

◆ grVenom_80206870()

void grVenom_80206870 ( Ground_GObj * arg)

◆ grVenom_80206874()

void grVenom_80206874 ( Ground_GObj * gobj)

◆ grVenom_80206B68()

bool grVenom_80206B68 ( Ground_GObj * arg)

◆ grVenom_80206B70()

void grVenom_80206B70 ( Ground_GObj * arg)

◆ grVenom_80206B90()

void grVenom_80206B90 ( Ground_GObj * arg)

◆ grVenom_80206B94()

void grVenom_80206B94 ( Ground_GObj * gobj)

◆ grVenom_80206BBC()

bool grVenom_80206BBC ( Ground_GObj * arg)

◆ grVenom_80206BC4()

void grVenom_80206BC4 ( Ground_GObj * gobj)

◆ grVenom_80206BEC()

void grVenom_80206BEC ( Ground_GObj * arg)

◆ grVenom_80206BF0()

bool grVenom_80206BF0 ( int arg0)

◆ grVenom_80206CB0()

void grVenom_80206CB0 ( s32 arg0)

◆ grVenom_80206D10()

s32 grVenom_80206D10 ( s32 arg0)

◆ grVenom_80206D74()

DynamicsDesc * grVenom_80206D74 ( enum_t arg)

◆ grVenom_80206D7C()

bool grVenom_80206D7C ( Vec3 * pos,
int arg1,
HSD_JObj * arg2 )

Variable Documentation

◆ grVe_803E5348

grVe_Data grVe_803E5348
static
Initial value:
= {
{
{ 0, 5, 0 },
{ 1, 5, 0 },
{ 2, 9, 0 },
{ 4, 10, 0 },
{ 3, 13, 0 },
},
}

◆ grVe_803E5380

int grVe_803E5380[3] = { 0 }
static

◆ grVe_StageCallbacks

StageCallbacks grVe_StageCallbacks[16]

◆ grVe_StageData

StageData grVe_StageData
Initial value:
= {
"/GrVe",
1,
grVe_803E5348.joints,
}
#define ARRAY_SIZE(arr)
Definition types.h:31
void grVenom_80203E80(void)
Definition grvenom.c:545
static grVe_Data grVe_803E5348
Definition grvenom.c:52
void grVenom_80203DD0(void)
Definition grvenom.c:525
bool grVenom_80203EA4(void)
Definition grvenom.c:550
bool grVenom_80206D7C(Vec3 *pos, int arg1, HSD_JObj *arg2)
Definition grvenom.c:1832
void grVenom_80203B18(void)
Stage initialization function for Venom.
Definition grvenom.c:440
void grVenom_80203B14(bool arg)
Definition grvenom.c:413
DynamicsDesc * grVenom_80206D74(enum_t arg)
Definition grvenom.c:1827
StageCallbacks grVe_StageCallbacks[16]
Definition grvenom.c:64
@ Gr_Kind_Venom
Definition forward.h:70

◆ yakumono_param

struct grVenom_YakumonoParam* yakumono_param
static

◆ grVe_804D6A34

u32 grVe_804D6A34
static

◆ grVe_804D6A38

s32 grVe_804D6A38
static

◆ grVe_804D6A3C

s32 grVe_804D6A3C
static

◆ grVe_804D6A40

s32 grVe_804D6A40
static

◆ grVe_803E5530

int grVe_803E5530[53]
static
Initial value:
= {
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 6,
}

Per-state map animation ids, read via the stage data base pointer (base[state + 0x7A], see grVenom_802053B0); trailing entries are the zero/3/6 words observed in the reference object.

◆ grVe_804DB7D8

const GXColor grVe_804DB7D8 = { 0, 0, 0, 0 }
static

grVenom_80204B88 Updates Venom stage lighting colors based on environment state.

◆ grVe_804DB7DC

const GXColor grVe_804DB7DC = { 190, 10, 0, 0 }
static

◆ grVe_804DB7E0

const GXColor grVe_804DB7E0 = { 110, 60, 25, 0 }
static

◆ grVe_804DB7E4

const GXColor grVe_804DB7E4 = { 110, 90, 0, 0 }
static

◆ grVe_803E5644

int grVe_803E5644[10] = { -1, -1, 1, 0, 2, 2, 4, 4, 5, 5 }
static

Per-state animation ids (cf. Corneria's grCn_803E214C).

◆ grVe_803E566C

int grVe_803E566C[5] = { 0x0A, 0x0A, 0x0B, 0x0C, 0x0D }
static

Per-group map animation ids (cf. Corneria's grCn_803E217C).

◆ grVe_803E5680

int grVe_803E5680[5] = { 4, 4, 4, 4, 3 }
static

Joint id per Arwing group (cf. Corneria's grCn_803E2190).

◆ grVe_803E56A0

int grVe_803E56A0[6] = { 1, 1, 1, 1, 1, 0 }
static

Per-group animation flags (cf.

Corneria's grCn_803E21B0); the trailing zero word is present in the reference object.

◆ grVe_803B82D0

const Vec3 grVe_803B82D0 = { 0.0F, 0.0F, 0.0F }
static

◆ grVe_803B82DC

const Vec3 grVe_803B82DC = { 0.0F, 0.0F, 0.0F }
static