SSBM Decomp
Loading...
Searching...
No Matches
gmresult.c File Reference
#include "gmresult.h"
#include "gm/types.h"
#include "gm_unsplit.h"
#include "gmresultplayer.h"
#include "baselib/dobj.h"
#include "baselib/gobj.h"
#include "baselib/gobjgxlink.h"
#include "baselib/gobjobject.h"
#include "baselib/gobjproc.h"
#include "baselib/jobj.h"
#include "dolphin/gx/GXStruct.h"
#include "dolphin/types.h"
#include "gm/gm_1601.h"
#include "if/ifcoget.h"
#include "lb/lb_00B0.h"
#include "lb/lbarchive.h"
#include "lb/lbaudio_ax.h"
#include "lb/lblanguage.h"
#include "lb/lbspdisplay.h"
#include "lb/lbvector.h"
#include "mn/inlines.h"
#include "mn/mnmain.h"
#include "pl/player.h"
#include "sc/types.h"

Data Structures

struct  StatsEntry
struct  StatsList
struct  ResultsStatsInfo

Functions

static void order_sdata (void)
MatchEndfn_80174274 (void)
s32 fn_80174284_noinline (u8 slot)
s32 fn_80174284 (u8 slot)
void fn_80174338 (void)
void fn_8017435C (void)
void fn_80174380 (void)
bool gm_801743A4 (u8 outcome)
bool fn_801743C4 (s32 slot, StatsEntry *entry)
static s32 find_nth_nonzero (u8 *arr, s32 n)
 Find the nth non-zero byte in array, returning its index 8x unrolled loop matching assembly pattern: lbz first, then lbzu for rest.
void fn_80174468 (s32 slot, HSD_Text *text1, HSD_Text *text2, HSD_Text *text3, StatsList *list, s32 entry_idx)
void * fn_801748EC (void *list_, s32 mode, s32 idx)
u8 fn_80174920 (struct ResultsPlayerData *data)
void fn_801749B8 (HSD_GObj *unused)
s32 fn_80174A60 (StatsList *list, s32 slot)
static void order_data (void)
static void fn_80174B4C_blk14829 (ResultsData *data, s32 slot, struct ResultsPlayerData **pdata, StatsList **list)
void fn_80174B4C (ResultsData *data, s32 slot)
void fn_80174FD0 (HSD_JObj *jobj, s32 arg1)
void fn_80175038 (HSD_GObj *gobj, int flag)
GXColor fn_8017507C (s32 slot)
void fn_80175240 (s32 slot)
void fn_8017556C (s32 slot)
void fn_801756E0 (s32 slot)
void fn_80175880 (s32 slot)
static MatchEndfn_80175A94_get_match_end (void)
void fn_80175A94 (s32 slot, Vec3 *position)
void fn_80175C5C (void)
void fn_80175D34 (void)
void fn_80175DC8 (HSD_GObj *gobj)
void fn_80176A6C (void)
void fn_80176BCC (HSD_GObj *gobj)
static int fn_80176BF0_inline (u8 arg1)
HSD_JObjfn_80176BF0 (HSD_JObj *arg0, u8 arg1, int arg2)
void fn_80176D18 (HSD_GObj *gobj)
void fn_80176D3C (Vec3 *positions)
void fn_80176F60 (void)
void fn_801771C0 (ResultsData *data)
static void gmResultLoadArchive (ResultsData *data)
static void gmResultReportLightGObj (void)
static void gmResultReportLightLObj (void)
static void gmResultReportModelGObj (void)
void gm_80177368_OnEnter (void *arg0_)
void gm_80177704_OnLeave (void *unused)

Variables

static struct ResultsData lbl_8046DBE8
static u32 lbl_804D3F8C [2] = { 0x817C817C, 0x817C0000 }
u32 lbl_804D3FA0 = 0x817C0000
u32 lbl_804D3FA4 = 0x817B0000
union { 
   u32   words [2] 
   char   text [8] 
lbl_804D3FA8 = { { 0x817C8146, 0x817C0000 } }
HSD_Archivelbl_804D65B8
static ResultsStatsInfo lbl_8046E190 [4]
static StatsEntry lbl_803D6488 []
 Static data for stats lists.
static StatsEntry lbl_803D6558 []
static StatsEntry lbl_803D6858 []
static StatsList lbl_803D6878 []
struct { 
   u8   lookup [34][2] 
   Vec3   translate 
lbl_803B7B18

Function Documentation

◆ order_sdata()

void order_sdata ( void )
static
Todo
.sdata order hack

◆ fn_80174274()

MatchEnd * fn_80174274 ( void )

◆ fn_80174284_noinline()

s32 fn_80174284_noinline ( u8 slot)

◆ fn_80174284()

s32 fn_80174284 ( u8 slot)

◆ fn_80174338()

void fn_80174338 ( void )

◆ fn_8017435C()

void fn_8017435C ( void )

◆ fn_80174380()

void fn_80174380 ( void )

◆ gm_801743A4()

bool gm_801743A4 ( u8 outcome)

◆ fn_801743C4()

bool fn_801743C4 ( s32 slot,
StatsEntry * entry )

◆ find_nth_nonzero()

s32 find_nth_nonzero ( u8 * arr,
s32 n )
static

Find the nth non-zero byte in array, returning its index 8x unrolled loop matching assembly pattern: lbz first, then lbzu for rest.

◆ fn_80174468()

void fn_80174468 ( s32 slot,
HSD_Text * text1,
HSD_Text * text2,
HSD_Text * text3,
StatsList * list,
s32 entry_idx )

Mode 2: special handling for pairs

◆ fn_801748EC()

void * fn_801748EC ( void * list_,
s32 mode,
s32 idx )

◆ fn_80174920()

u8 fn_80174920 ( struct ResultsPlayerData * data)

◆ fn_801749B8()

void fn_801749B8 ( HSD_GObj * unused)

◆ fn_80174A60()

s32 fn_80174A60 ( StatsList * list,
s32 slot )

◆ order_data()

void order_data ( void )
static
Todo
.data order hack

◆ fn_80174B4C_blk14829()

void fn_80174B4C_blk14829 ( ResultsData * data,
s32 slot,
struct ResultsPlayerData ** pdata,
StatsList ** list )
inlinestatic

Clear existing stats text

◆ fn_80174B4C()

void fn_80174B4C ( ResultsData * data,
s32 slot )

Look up stats list

Set flags

Count visible entries

Set more flags based on scroll position

Create text objects for visible entries

◆ fn_80174FD0()

void fn_80174FD0 ( HSD_JObj * jobj,
s32 arg1 )

◆ fn_80175038()

void fn_80175038 ( HSD_GObj * gobj,
int flag )

◆ fn_8017507C()

GXColor fn_8017507C ( s32 slot)

◆ fn_80175240()

void fn_80175240 ( s32 slot)

maybe x4C is an array of Vec2's

◆ fn_8017556C()

void fn_8017556C ( s32 slot)

◆ fn_801756E0()

void fn_801756E0 ( s32 slot)

◆ fn_80175880()

void fn_80175880 ( s32 slot)

◆ fn_80175A94_get_match_end()

MatchEnd * fn_80175A94_get_match_end ( void )
inlinestatic

◆ fn_80175A94()

void fn_80175A94 ( s32 slot,
Vec3 * position )

◆ fn_80175C5C()

void fn_80175C5C ( void )

◆ fn_80175D34()

void fn_80175D34 ( void )

<

Todo
:: why does this have so much stack space

◆ fn_80175DC8()

void fn_80175DC8 ( HSD_GObj * gobj)

◆ fn_80176A6C()

void fn_80176A6C ( void )

◆ fn_80176BCC()

void fn_80176BCC ( HSD_GObj * gobj)

◆ fn_80176BF0_inline()

int fn_80176BF0_inline ( u8 arg1)
inlinestatic

◆ fn_80176BF0()

HSD_JObj * fn_80176BF0 ( HSD_JObj * arg0,
u8 arg1,
int arg2 )

◆ fn_80176D18()

void fn_80176D18 ( HSD_GObj * gobj)

◆ fn_80176D3C()

void fn_80176D3C ( Vec3 * positions)

◆ fn_80176F60()

void fn_80176F60 ( void )

◆ fn_801771C0()

void fn_801771C0 ( ResultsData * data)

◆ gmResultLoadArchive()

void gmResultLoadArchive ( ResultsData * data)
inlinestatic

◆ gmResultReportLightGObj()

void gmResultReportLightGObj ( void )
inlinestatic

◆ gmResultReportLightLObj()

void gmResultReportLightLObj ( void )
inlinestatic

◆ gmResultReportModelGObj()

void gmResultReportModelGObj ( void )
inlinestatic

◆ gm_80177368_OnEnter()

void gm_80177368_OnEnter ( void * arg0_)

◆ gm_80177704_OnLeave()

void gm_80177704_OnLeave ( void * unused)

Variable Documentation

◆ lbl_8046DBE8

struct ResultsData lbl_8046DBE8
static

◆ lbl_804D3F8C

u32 lbl_804D3F8C[2] = { 0x817C817C, 0x817C0000 }
static

◆ lbl_804D3FA0

u32 lbl_804D3FA0 = 0x817C0000

◆ lbl_804D3FA4

u32 lbl_804D3FA4 = 0x817B0000

◆ words

u32 words[2]

◆ text

char text[8]

◆ [union]

union { ... } lbl_804D3FA8

◆ lbl_804D65B8

HSD_Archive* lbl_804D65B8
extern

◆ lbl_8046E190

ResultsStatsInfo lbl_8046E190[4]
static

◆ lbl_803D6488

StatsEntry lbl_803D6488[]
static
Initial value:
= {
{ 0x08, { 0 }, NULL, NULL, NULL },
{ 0x08, { 0 }, NULL, NULL, NULL },
{ -1, { 0 }, fn_8017AE70, fn_8017BB94, "P" },
{ -1, { 0 }, fn_8017AED8, fn_8017BC50, NULL },
{ -1, { 0 }, fn_8017AF40, fn_8017BD0C, NULL },
{ -1, { 0 }, fn_8017AFA8, fn_8017BDC8, NULL },
{ 0x09, { 0 }, NULL, NULL, NULL },
{ -1, { 0 }, fn_8017B07C, fn_8017BB94, "%" },
{ -1, { 0 }, fn_8017B0E4, fn_8017BC50, NULL },
{ -1, { 0 }, fn_8017B14C, fn_8017BD0C, NULL },
{ -1, { 0 }, fn_8017B1B4, fn_8017BDC8, NULL },
{ 0x0C, { 0 }, fn_8017B21C, NULL, NULL },
{ 0x0C, { 0 }, NULL, NULL, NULL },
}
s32 fn_8017AFA8(s32 arg0)
Definition gm_17AD.c:123
s32 fn_8017AF40(s32 arg0)
Definition gm_17AD.c:108
s32 fn_8017B0E4(s32 arg0)
Definition gm_17AD.c:165
s32 fn_8017B07C(s32 arg0)
Definition gm_17AD.c:149
s32 fn_8017B14C(s32 arg0)
Definition gm_17AD.c:180
s32 fn_8017AE70(s32 arg0)
Definition gm_17AD.c:78
s32 fn_8017AED8(s32 arg0)
Definition gm_17AD.c:93
s32 fn_8017B1B4(s32 arg0)
Definition gm_17AD.c:195
s32 fn_8017B21C(s32 arg0)
Definition gm_17AD.c:209
const char * fn_8017BB94(int arg0)
Definition gm_17BA.c:68
const char * fn_8017BDC8(int arg0)
Definition gm_17BA.c:86
const char * fn_8017BD0C(int arg0)
Definition gm_17BA.c:80
const char * fn_8017BC50(int arg0)
Definition gm_17BA.c:74
#define NULL
Definition stddef.h:19

Static data for stats lists.

◆ lbl_803D6558

StatsEntry lbl_803D6558[]
static

◆ lbl_803D6858

StatsEntry lbl_803D6858[]
static
Initial value:
= {
{ 0x08, { 0 }, NULL, NULL, NULL },
{ 0x08, { 0 }, NULL, NULL, NULL },
}

◆ lbl_803D6878

StatsList lbl_803D6878[]
static
Initial value:
= {
{ 0, 0x0D, { 0 }, lbl_803D6488 },
{ 1, 0x30, { 0 }, lbl_803D6558 },
{ 2, 0x02, { 0 }, lbl_803D6858 },
{ 3, 0x00, { 0 }, NULL },
}
static StatsEntry lbl_803D6858[]
Definition gmresult.c:510
static StatsEntry lbl_803D6558[]
Definition gmresult.c:459
static StatsEntry lbl_803D6488[]
Static data for stats lists.
Definition gmresult.c:443

◆ lookup

u8 lookup[34][2]

◆ translate

Vec3 translate

◆ [struct]

const struct { ... } lbl_803B7B18
Initial value:
= {
{
{ 0x00, 0x0 }, { 0x01, 0x1 }, { 0x02, 0x2 }, { 0x03, 0x3 },
{ 0x04, 0x5 }, { 0x05, 0x6 }, { 0x06, 0xD }, { 0x07, 0x6 },
{ 0x08, 0x6 }, { 0x09, 0x7 }, { 0x0A, 0x9 }, { 0x0B, 0x8 },
{ 0x0C, 0x6 }, { 0x0D, 0x9 }, { 0x0E, 0x4 }, { 0x0F, 0x9 },
{ 0x10, 0xA }, { 0x11, 0xC }, { 0x12, 0xD }, { 0x13, 0xD },
{ 0x14, 0x2 }, { 0x15, 0xD }, { 0x16, 0x6 }, { 0x17, 0x7 },
{ 0x18, 0x9 }, { 0x19, 0xD }, { 0 }, { 0 },
{ 0 }, { 0 }, { 0 }, { 0 },
{ 0 }, { 0 },
},
{ 0.0F, 4.0F, 0.0F },
}