SSBM Decomp
Loading...
Searching...
No Matches
grcorneria.c File Reference
#include "grcorneria.h"
#include "grcorneria.static.h"
#include "placeholder.h"
#include "baselib/forward.h"
#include "baselib/sislib.h"
#include "cm/camera.h"
#include "ft/ftlib.h"
#include "gm/gm_1832.h"
#include "gm/gm_1A45.h"
#include "gm/gmregclear.h"
#include "gr/granime.h"
#include "gr/grdatfiles.h"
#include "gr/grdisplay.h"
#include "gr/grlib.h"
#include "gr/grmaterial.h"
#include "gr/ground.h"
#include "gr/grvenom.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/item.h"
#include "it/items/itarwinglaser.h"
#include "it/items/itgreatfoxlaser.h"
#include "lb/lb_00B0.h"
#include "lb/lb_00F9.h"
#include "lb/lbaudio_ax.h"
#include "mp/mplib.h"
#include "pl/player.h"
#include <baselib/controller.h>
#include <baselib/debug.h>
#include <baselib/gobj.h>
#include <baselib/gobjgxlink.h>
#include <baselib/jobj.h>
#include <baselib/particle.h>
#include <baselib/random.h>

Data Structures

struct  grCn_StageData
struct  grCn_Entry
struct  grCn_Data

Functions

void grCorneria_801DCCFC (void)
static s32 grCn_RandRange (f32 fmin, f32 fmax)
static s32 grCn_CheckFar (Vec3 *pos)
static void grCn_SpawnArwing (grCn_Data *data, s32 slot, u32 type_id, s32 group)
static u32 grCn_PickUniqueType (grCn_Data *data, s32 slot, s32 range, s32 base)
void grCorneria_801DCE1C (void)
void grCorneria_801DD2C0 (void)
void grCorneria_801DD350 (void)
void grCorneria_801DD478 (void)
void grCorneria_801DD508 (void)
bool grCorneria_801DD52C (void)
HSD_GObjgrCorneria_801DD534 (int arg0)
void grCorneria_801DD620 (Ground_GObj *gobj)
bool grCorneria_801DD64C (Ground_GObj *arg)
void grCorneria_801DD654 (Ground_GObj *arg)
void grCorneria_801DD658 (Ground_GObj *arg)
void grCorneria_801DD65C (Ground_GObj *gobj)
void grCorneria_801DD674 (Ground_GObj *ground_gobj)
bool grCorneria_801DD9A0 (Ground_GObj *arg)
void grCorneria_801DD9A8 (Ground_GObj *gobj)
void grCorneria_801DDAC0 (Ground_GObj *arg)
void grCorneria_801DDAC4 (Ground_GObj *gobj)
bool grCorneria_801DDCE8 (Ground_GObj *arg)
void grCorneria_801DDCF0 (Vec3 *vec)
void grCorneria_801DDD4C (Vec3 *vec)
void grCorneria_801DDDA8 (HSD_GObj *gobj, Vec3 *vec)
void grCorneria_801DDE88 (HSD_GObj *gobj)
void grCorneria_801DE024 (Ground_GObj *gobj)
void grCorneria_801DE4BC (Ground_GObj *arg)
void grCorneria_Arwing_801DE4C0 (Ground_GObj *gobj)
bool grCorneria_801DE560 (Ground_GObj *arg)
void grCorneria_801DE568 (Ground_GObj *gobj)
void grCorneria_801DE8E0 (Ground_GObj *arg)
void grCorneria_801DE8E4 (Ground_GObj *gobj)
bool grCorneria_801DEC00 (Ground_GObj *arg)
s32 grCorneria_801DEC08 (Vec3 *pos)
s32 grCorneria_801DEC94 (Vec3 *pos)
void grCorneria_801DED50 (Ground_GObj *gobj)
void grCorneria_801DF8CC (Ground_GObj *arg)
void grCorneria_801DF8D0 (Ground_GObj *gobj)
bool grCorneria_801DFBC4 (Ground_GObj *arg)
void grCorneria_801DFBCC (Ground_GObj *arg)
void grCorneria_801DFBEC (Ground_GObj *arg)
void grCorneria_801DFBF0 (Ground_GObj *gobj)
bool grCorneria_801DFC1C (Ground_GObj *arg)
void grCorneria_801DFC24 (Ground_GObj *arg)
void grCorneria_801DFC28 (Ground_GObj *arg)
void grCorneria_801DFC2C (Ground_GObj *gobj)
bool grCorneria_801DFC90 (Ground_GObj *arg)
void grCorneria_801DFC98 (Ground_GObj *gobj)
void grCorneria_801DFEB4 (Ground_GObj *arg)
void grCorneria_801DFEB8 (Ground_GObj *gobj)
bool grCorneria_801DFF18 (Ground_GObj *arg)
void grCorneria_801DFF20 (Ground_GObj *gobj)
void grCorneria_801E013C (Ground_GObj *arg)
void grCorneria_801E0140 (Ground_GObj *gobj)
bool grCorneria_801E01A0 (Ground_GObj *arg)
void grCorneria_801E01A8 (Ground_GObj *gobj)
void grCorneria_801E03C4 (Ground_GObj *arg)
void grCorneria_801E03C8 (Ground_GObj *gobj, int id)
void grCorneria_801E0678 (void)
int grCorneria_801E08CC (void)
int grCorneria_801E0A74 (f32 *arg0)
static void clearX10_b2 (HSD_GObj *gobj)
void grCorneria_801E0C3C (Ground_GObj *gobj)
bool grCorneria_801E0D28 (Ground_GObj *arg)
void grCorneria_801E0D30 (Ground_GObj *gobj)
void grCorneria_801E0DE0 (Ground_GObj *arg)
void grCorneria_801E0DE4 (Ground_GObj *gobj)
bool grCorneria_801E0E0C (Ground_GObj *arg)
void grCorneria_801E0E14 (Ground_GObj *gobj)
void grCorneria_801E0E3C (Ground_GObj *arg)
void grCorneria_801E0E40 (void)
void grCorneria_801E0F30 (Ground_GObj *arg)
void grCorneria_801E0F34 (Ground_GObj *gobj, int val)
bool grCorneria_801E0F64 (Ground_GObj *arg)
void grCorneria_801E0F6C (Ground_GObj *gobj)
void grCorneria_801E1030 (Ground_GObj *gobj)
void grCorneria_801E1054 (Ground_GObj *arg)
bool grCorneria_801E1058 (Ground_GObj *arg)
static void Fake_HSD_JObjSetTranslateX (HSD_JObj *jobj, f32 x)
void grCorneria_801E1060 (Ground_GObj *gobj)
void grCorneria_801E12CC (Ground_GObj *arg)
void fn_801E12D0 (Item_GObj *gobj, Ground *gr)
void fn_801E12D4 (Item_GObj *gobj, Ground *gr, Vec3 *pos, HSD_GObj *arg3, f32 damage)
void grCorneria_801E1348 (Ground_GObj *gobj)
void grCorneria_801E1878 (Ground_GObj *gobj)
void grCorneria_801E1970 (Ground_GObj *gobj)
HSD_GObjgrCorneria_801E1BF0 (void)
void grCorneria_801E2110 (void)
void grCorneria_801E2228 (Ground_GObj *gobj)
HSD_GeneratorgrCorneria_801E2454 (Vec3 *vec, s32 arg1)
HSD_GeneratorgrCorneria_801E2480 (Vec3 *vec, s32 arg1)
void smashTaunt_801E24AC (Ground_GObj *gobj, int renderpass)
 This triggers for both Corneria and Venom.
void smashTaunt_801E2550 (Ground_GObj *gobj, struct grSmashTaunt_GroundVars *gv)
s32 grCorneria_801E2598 (u32 arg0, u32 arg1)
void grCorneria_801E25C4 (HSD_GObj *gobj, void *gv, int line, int arg3, int arg4)
void grCorneria_801E2738 (HSD_GObj *gobj, void *ptr, u32 idx1, u32 idx2)
void grCorneria_801E277C (Ground_GObj *gobj, struct grSmashTaunt_GroundVars *gv)
void grCorneria_801E2A6C (void)
void grCorneria_801E2AF4 (void)
bool grCorneria_801E2B80 (void)
bool grCorneria_801E2C34 (void)
bool grCorneria_801E2CE8 (void)
bool grCorneria_801E2D14 (void)
bool grCorneria_801E2D90 (enum_t line_id)
bool grCorneria_801E2E50 (int line_id)
f32 grCorneria_801E2EA0 (void)
DynamicsDescgrCorneria_801E2EE4 (enum_t arg)
bool grCorneria_801E2EEC (Vec3 *v, int arg1, HSD_JObj *jobj)
f32 grCorneria_801E2FCC (void)

Variables

int grCn_803E1D80 [3] = { 0, 0, 0 }
int grCn_803E2190 [5] = { 0, 0, 1, 2, 5 }
int grCn_804D466C = -1
static grCn_StageDatagrCn_804D69A0
static u32 grCn_804D69A4
static int grCn_804D69A8
static int grCn_804D69AC
static int grCn_804D69B0
grCn_Data grCn_803E1D38
Vec3 grCn_803B8090
static u8 grCn_callback_pad [0x34] = { 0 }
StageCallbacks grCn_803E1D8C [19]
static u8 grCn_report_pad [0x34] = { 1 }
char grCn_803E1F3C [0x24] = "%s:%d: couldn t get gobj(id=%d)\n"
char grCn_803E1F60 [0x10] = "grcorneria.c"
grZakoGenerator_Spawn grCn_803E1FE8 []
grZakoGenerator_Spawn grCn_803E2000 []
Vec3 grCn_803E1F70 [5]
Vec3 grCn_803E1FAC [5]
grCn_Entry grCn_803E2204 [][5]
Vec3 grCn_803B809C
Vec3 grCn_803B80A8
Vec3 grCn_803B80B4
GXColor grCn_804DB218
GXColor grCn_804DB21C
GXColor grCn_804DB220
GXColor grCn_804DB224
GXColor grCn_804DB228
GXColor grCn_804DB22C
GXColor grCn_804DB230
GXColor grCn_804DB234
GXColor grCn_804DB238
GXColor grCn_804DB24C

Function Documentation

◆ grCorneria_801DCCFC()

void grCorneria_801DCCFC ( void )

◆ grCn_RandRange()

s32 grCn_RandRange ( f32 fmin,
f32 fmax )
inlinestatic

◆ grCn_CheckFar()

s32 grCn_CheckFar ( Vec3 * pos)
inlinestatic

◆ grCn_SpawnArwing()

void grCn_SpawnArwing ( grCn_Data * data,
s32 slot,
u32 type_id,
s32 group )
inlinestatic

◆ grCn_PickUniqueType()

u32 grCn_PickUniqueType ( grCn_Data * data,
s32 slot,
s32 range,
s32 base )
inlinestatic

◆ grCorneria_801DCE1C()

void grCorneria_801DCE1C ( void )

◆ grCorneria_801DD2C0()

void grCorneria_801DD2C0 ( void )

◆ grCorneria_801DD350()

void grCorneria_801DD350 ( void )

◆ grCorneria_801DD478()

void grCorneria_801DD478 ( void )

◆ grCorneria_801DD508()

void grCorneria_801DD508 ( void )

◆ grCorneria_801DD52C()

bool grCorneria_801DD52C ( void )

◆ grCorneria_801DD534()

HSD_GObj * grCorneria_801DD534 ( int arg0)

◆ grCorneria_801DD620()

void grCorneria_801DD620 ( Ground_GObj * gobj)

◆ grCorneria_801DD64C()

bool grCorneria_801DD64C ( Ground_GObj * arg)

◆ grCorneria_801DD654()

void grCorneria_801DD654 ( Ground_GObj * arg)

◆ grCorneria_801DD658()

void grCorneria_801DD658 ( Ground_GObj * arg)

◆ grCorneria_801DD65C()

void grCorneria_801DD65C ( Ground_GObj * gobj)

◆ grCorneria_801DD674()

void grCorneria_801DD674 ( Ground_GObj * ground_gobj)

◆ grCorneria_801DD9A0()

bool grCorneria_801DD9A0 ( Ground_GObj * arg)

◆ grCorneria_801DD9A8()

void grCorneria_801DD9A8 ( Ground_GObj * gobj)

◆ grCorneria_801DDAC0()

void grCorneria_801DDAC0 ( Ground_GObj * arg)

◆ grCorneria_801DDAC4()

void grCorneria_801DDAC4 ( Ground_GObj * gobj)

◆ grCorneria_801DDCE8()

bool grCorneria_801DDCE8 ( Ground_GObj * arg)

◆ grCorneria_801DDCF0()

void grCorneria_801DDCF0 ( Vec3 * vec)

◆ grCorneria_801DDD4C()

void grCorneria_801DDD4C ( Vec3 * vec)

◆ grCorneria_801DDDA8()

void grCorneria_801DDDA8 ( HSD_GObj * gobj,
Vec3 * vec )

◆ grCorneria_801DDE88()

void grCorneria_801DDE88 ( HSD_GObj * gobj)

◆ grCorneria_801DE024()

void grCorneria_801DE024 ( Ground_GObj * gobj)

◆ grCorneria_801DE4BC()

void grCorneria_801DE4BC ( Ground_GObj * arg)

◆ grCorneria_Arwing_801DE4C0()

void grCorneria_Arwing_801DE4C0 ( Ground_GObj * gobj)

◆ grCorneria_801DE560()

bool grCorneria_801DE560 ( Ground_GObj * arg)

◆ grCorneria_801DE568()

void grCorneria_801DE568 ( Ground_GObj * gobj)

◆ grCorneria_801DE8E0()

void grCorneria_801DE8E0 ( Ground_GObj * arg)

◆ grCorneria_801DE8E4()

void grCorneria_801DE8E4 ( Ground_GObj * gobj)

◆ grCorneria_801DEC00()

bool grCorneria_801DEC00 ( Ground_GObj * arg)

◆ grCorneria_801DEC08()

s32 grCorneria_801DEC08 ( Vec3 * pos)

◆ grCorneria_801DEC94()

s32 grCorneria_801DEC94 ( Vec3 * pos)

◆ grCorneria_801DED50()

void grCorneria_801DED50 ( Ground_GObj * gobj)

◆ grCorneria_801DF8CC()

void grCorneria_801DF8CC ( Ground_GObj * arg)

◆ grCorneria_801DF8D0()

void grCorneria_801DF8D0 ( Ground_GObj * gobj)

◆ grCorneria_801DFBC4()

bool grCorneria_801DFBC4 ( Ground_GObj * arg)

◆ grCorneria_801DFBCC()

void grCorneria_801DFBCC ( Ground_GObj * arg)

◆ grCorneria_801DFBEC()

void grCorneria_801DFBEC ( Ground_GObj * arg)

◆ grCorneria_801DFBF0()

void grCorneria_801DFBF0 ( Ground_GObj * gobj)

◆ grCorneria_801DFC1C()

bool grCorneria_801DFC1C ( Ground_GObj * arg)

◆ grCorneria_801DFC24()

void grCorneria_801DFC24 ( Ground_GObj * arg)

◆ grCorneria_801DFC28()

void grCorneria_801DFC28 ( Ground_GObj * arg)

◆ grCorneria_801DFC2C()

void grCorneria_801DFC2C ( Ground_GObj * gobj)

◆ grCorneria_801DFC90()

bool grCorneria_801DFC90 ( Ground_GObj * arg)

◆ grCorneria_801DFC98()

void grCorneria_801DFC98 ( Ground_GObj * gobj)

◆ grCorneria_801DFEB4()

void grCorneria_801DFEB4 ( Ground_GObj * arg)

◆ grCorneria_801DFEB8()

void grCorneria_801DFEB8 ( Ground_GObj * gobj)

◆ grCorneria_801DFF18()

bool grCorneria_801DFF18 ( Ground_GObj * arg)

◆ grCorneria_801DFF20()

void grCorneria_801DFF20 ( Ground_GObj * gobj)

◆ grCorneria_801E013C()

void grCorneria_801E013C ( Ground_GObj * arg)

◆ grCorneria_801E0140()

void grCorneria_801E0140 ( Ground_GObj * gobj)

◆ grCorneria_801E01A0()

bool grCorneria_801E01A0 ( Ground_GObj * arg)

◆ grCorneria_801E01A8()

void grCorneria_801E01A8 ( Ground_GObj * gobj)

◆ grCorneria_801E03C4()

void grCorneria_801E03C4 ( Ground_GObj * arg)

◆ grCorneria_801E03C8()

void grCorneria_801E03C8 ( Ground_GObj * gobj,
int id )

◆ grCorneria_801E0678()

void grCorneria_801E0678 ( void )

◆ grCorneria_801E08CC()

int grCorneria_801E08CC ( void )

◆ grCorneria_801E0A74()

int grCorneria_801E0A74 ( f32 * arg0)

◆ clearX10_b2()

void clearX10_b2 ( HSD_GObj * gobj)
inlinestatic

◆ grCorneria_801E0C3C()

void grCorneria_801E0C3C ( Ground_GObj * gobj)

◆ grCorneria_801E0D28()

bool grCorneria_801E0D28 ( Ground_GObj * arg)

◆ grCorneria_801E0D30()

void grCorneria_801E0D30 ( Ground_GObj * gobj)

◆ grCorneria_801E0DE0()

void grCorneria_801E0DE0 ( Ground_GObj * arg)

◆ grCorneria_801E0DE4()

void grCorneria_801E0DE4 ( Ground_GObj * gobj)

◆ grCorneria_801E0E0C()

bool grCorneria_801E0E0C ( Ground_GObj * arg)

◆ grCorneria_801E0E14()

void grCorneria_801E0E14 ( Ground_GObj * gobj)

◆ grCorneria_801E0E3C()

void grCorneria_801E0E3C ( Ground_GObj * arg)

◆ grCorneria_801E0E40()

void grCorneria_801E0E40 ( void )

◆ grCorneria_801E0F30()

void grCorneria_801E0F30 ( Ground_GObj * arg)

◆ grCorneria_801E0F34()

void grCorneria_801E0F34 ( Ground_GObj * gobj,
int val )

◆ grCorneria_801E0F64()

bool grCorneria_801E0F64 ( Ground_GObj * arg)

◆ grCorneria_801E0F6C()

void grCorneria_801E0F6C ( Ground_GObj * gobj)

◆ grCorneria_801E1030()

void grCorneria_801E1030 ( Ground_GObj * gobj)

◆ grCorneria_801E1054()

void grCorneria_801E1054 ( Ground_GObj * arg)

◆ grCorneria_801E1058()

bool grCorneria_801E1058 ( Ground_GObj * arg)

◆ Fake_HSD_JObjSetTranslateX()

void Fake_HSD_JObjSetTranslateX ( HSD_JObj * jobj,
f32 x )
inlinestatic

◆ grCorneria_801E1060()

void grCorneria_801E1060 ( Ground_GObj * gobj)

◆ grCorneria_801E12CC()

void grCorneria_801E12CC ( Ground_GObj * arg)

◆ fn_801E12D0()

void fn_801E12D0 ( Item_GObj * gobj,
Ground * gr )

◆ fn_801E12D4()

void fn_801E12D4 ( Item_GObj * gobj,
Ground * gr,
Vec3 * pos,
HSD_GObj * arg3,
f32 damage )

◆ grCorneria_801E1348()

void grCorneria_801E1348 ( Ground_GObj * gobj)

◆ grCorneria_801E1878()

void grCorneria_801E1878 ( Ground_GObj * gobj)

◆ grCorneria_801E1970()

void grCorneria_801E1970 ( Ground_GObj * gobj)

◆ grCorneria_801E1BF0()

HSD_GObj * grCorneria_801E1BF0 ( void )

◆ grCorneria_801E2110()

void grCorneria_801E2110 ( void )

◆ grCorneria_801E2228()

void grCorneria_801E2228 ( Ground_GObj * gobj)

◆ grCorneria_801E2454()

HSD_Generator * grCorneria_801E2454 ( Vec3 * vec,
s32 arg1 )

◆ grCorneria_801E2480()

HSD_Generator * grCorneria_801E2480 ( Vec3 * vec,
s32 arg1 )

◆ smashTaunt_801E24AC()

void smashTaunt_801E24AC ( Ground_GObj * gobj,
int renderpass )

This triggers for both Corneria and Venom.

◆ smashTaunt_801E2550()

void smashTaunt_801E2550 ( Ground_GObj * gobj,
struct grSmashTaunt_GroundVars * gv )

◆ grCorneria_801E2598()

s32 grCorneria_801E2598 ( u32 arg0,
u32 arg1 )

◆ grCorneria_801E25C4()

void grCorneria_801E25C4 ( HSD_GObj * gobj,
void * gv,
int line,
int arg3,
int arg4 )

◆ grCorneria_801E2738()

void grCorneria_801E2738 ( HSD_GObj * gobj,
void * ptr,
u32 idx1,
u32 idx2 )

◆ grCorneria_801E277C()

void grCorneria_801E277C ( Ground_GObj * gobj,
struct grSmashTaunt_GroundVars * gv )

◆ grCorneria_801E2A6C()

void grCorneria_801E2A6C ( void )

◆ grCorneria_801E2AF4()

void grCorneria_801E2AF4 ( void )

◆ grCorneria_801E2B80()

bool grCorneria_801E2B80 ( void )

◆ grCorneria_801E2C34()

bool grCorneria_801E2C34 ( void )

◆ grCorneria_801E2CE8()

bool grCorneria_801E2CE8 ( void )

◆ grCorneria_801E2D14()

bool grCorneria_801E2D14 ( void )

◆ grCorneria_801E2D90()

bool grCorneria_801E2D90 ( enum_t line_id)

◆ grCorneria_801E2E50()

bool grCorneria_801E2E50 ( int line_id)

◆ grCorneria_801E2EA0()

f32 grCorneria_801E2EA0 ( void )

◆ grCorneria_801E2EE4()

DynamicsDesc * grCorneria_801E2EE4 ( enum_t arg)

◆ grCorneria_801E2EEC()

bool grCorneria_801E2EEC ( Vec3 * v,
int arg1,
HSD_JObj * jobj )

◆ grCorneria_801E2FCC()

f32 grCorneria_801E2FCC ( void )

Variable Documentation

◆ grCn_803E1D80

int grCn_803E1D80[3] = { 0, 0, 0 }

◆ grCn_803E2190

int grCn_803E2190[5] = { 0, 0, 1, 2, 5 }

◆ grCn_804D466C

int grCn_804D466C = -1

◆ grCn_804D69A0

grCn_StageData* grCn_804D69A0
static

◆ grCn_804D69A4

u32 grCn_804D69A4
static

◆ grCn_804D69A8

int grCn_804D69A8
static

◆ grCn_804D69AC

int grCn_804D69AC
static

◆ grCn_804D69B0

int grCn_804D69B0
static

◆ grCn_803E1D38

grCn_Data grCn_803E1D38
extern

◆ grCn_803B8090

Vec3 grCn_803B8090
extern

◆ grCn_callback_pad

u8 grCn_callback_pad[0x34] = { 0 }
static

◆ grCn_803E1D8C

StageCallbacks grCn_803E1D8C[19]

◆ grCn_report_pad

u8 grCn_report_pad[0x34] = { 1 }
static

◆ grCn_803E1F3C

char grCn_803E1F3C[0x24] = "%s:%d: couldn t get gobj(id=%d)\n"

◆ grCn_803E1F60

char grCn_803E1F60[0x10] = "grcorneria.c"

◆ grCn_803E1FE8

grZakoGenerator_Spawn grCn_803E1FE8[]
extern

◆ grCn_803E2000

grZakoGenerator_Spawn grCn_803E2000[]
extern

◆ grCn_803E1F70

Vec3 grCn_803E1F70[5]
extern

◆ grCn_803E1FAC

Vec3 grCn_803E1FAC[5]
extern

◆ grCn_803E2204

grCn_Entry grCn_803E2204[][5]
extern

◆ grCn_803B809C

Vec3 grCn_803B809C
extern

◆ grCn_803B80A8

Vec3 grCn_803B80A8
extern

◆ grCn_803B80B4

Vec3 grCn_803B80B4
extern

◆ grCn_804DB218

GXColor grCn_804DB218
extern

◆ grCn_804DB21C

GXColor grCn_804DB21C
extern

◆ grCn_804DB220

GXColor grCn_804DB220
extern

◆ grCn_804DB224

GXColor grCn_804DB224
extern

◆ grCn_804DB228

GXColor grCn_804DB228
extern

◆ grCn_804DB22C

GXColor grCn_804DB22C
extern

◆ grCn_804DB230

GXColor grCn_804DB230
extern

◆ grCn_804DB234

GXColor grCn_804DB234
extern

◆ grCn_804DB238

GXColor grCn_804DB238
extern

◆ grCn_804DB24C

GXColor grCn_804DB24C
extern