184 lines
4.7 KiB
C
184 lines
4.7 KiB
C
#include "game/data.h"
|
|
#include "game/esprite.h"
|
|
|
|
#include "REL/m442Dll.h"
|
|
|
|
s32 fn_1_9520(s32 arg0);
|
|
void fn_1_9550(omObjData *object);
|
|
void fn_1_970C(void);
|
|
void fn_1_9784(void);
|
|
void fn_1_980C(void);
|
|
|
|
typedef void (*M442ScoreFunc)(void);
|
|
|
|
M442ScoreFunc lbl_1_data_268[3] = { fn_1_970C, fn_1_9784, fn_1_980C };
|
|
|
|
Process *lbl_1_bss_11F4C;
|
|
omObjData *lbl_1_bss_11F48;
|
|
|
|
typedef struct M442ScoreWork {
|
|
/* 0x00 */ s32 unk_00;
|
|
/* 0x04 */ s32 unk_04;
|
|
/* 0x08 */ s16 unk_08;
|
|
/* 0x0A */ s16 unk_0A;
|
|
/* 0x0C */ s16 unk_0C[6];
|
|
/* 0x18 */ s16 unk_18;
|
|
/* 0x1A */ s16 unk_1A;
|
|
/* 0x0E */ s32 unk_1C;
|
|
/* 0x20 */ float unk_20;
|
|
} M442ScoreWork; /* size = 0x24 */
|
|
|
|
s32 fn_1_91AC(Process *arg0, s16 arg1)
|
|
{
|
|
M442ScoreWork *var_r31;
|
|
u32 var_r30;
|
|
|
|
lbl_1_bss_11F4C = arg0;
|
|
lbl_1_bss_11F48 = omAddObjEx(lbl_1_bss_11F4C, 0x800, 0, 0, 7, fn_1_9550);
|
|
lbl_1_bss_11F48->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M442ScoreWork), MEMORY_DEFAULT_NUM);
|
|
var_r31 = lbl_1_bss_11F48->data;
|
|
var_r31->unk_08 = arg1;
|
|
var_r31->unk_0A = 0;
|
|
var_r31->unk_18 = espEntry(0x610023, 2, 0);
|
|
espTPLvlSet(var_r31->unk_18, 0.5f);
|
|
espPosSet(var_r31->unk_18, 508.0f, 64.0f);
|
|
espColorSet(var_r31->unk_18, 0, 0, 0);
|
|
var_r31->unk_1A = espEntry(0x610037, 1, 0);
|
|
espPosSet(var_r31->unk_1A, 480.0f, 56.0f);
|
|
for (var_r30 = 0; var_r30 < 3; var_r30++) {
|
|
var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0);
|
|
espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x10) + 0x1F4, 56.0f);
|
|
espDispOff(var_r31->unk_0C[var_r30]);
|
|
}
|
|
for (var_r30 = 0; var_r30 < 3; var_r30++) {
|
|
var_r31->unk_0C[var_r30 + 3] = espEntry(0x610031, 1, 0);
|
|
espPosSet(var_r31->unk_0C[var_r30 + 3], (var_r30 * 0x10) + 0x1F4, 74.0f);
|
|
}
|
|
for (var_r30 = 0; var_r30 < 8; var_r30++) {
|
|
espDispOff(var_r31->unk_0C[var_r30]);
|
|
}
|
|
HuDataDirClose(0x610000);
|
|
return fn_1_9520(0);
|
|
}
|
|
|
|
void fn_1_9438(void)
|
|
{
|
|
s32 var_r31;
|
|
M442ScoreWork *var_r30;
|
|
|
|
var_r30 = lbl_1_bss_11F48->data;
|
|
for (var_r31 = 0; var_r31 < 8; var_r31++) {
|
|
espKill(var_r30->unk_0C[var_r31]);
|
|
}
|
|
HuMemDirectFree(lbl_1_bss_11F48->data);
|
|
}
|
|
|
|
void fn_1_94AC(s32 arg0)
|
|
{
|
|
switch (arg0) {
|
|
case 0:
|
|
fn_1_9520(1);
|
|
break;
|
|
case 1:
|
|
fn_1_9520(2);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void fn_1_94FC(void)
|
|
{
|
|
fn_1_9520(0);
|
|
}
|
|
|
|
s32 fn_1_9520(s32 arg0)
|
|
{
|
|
M442ScoreWork *var_r31;
|
|
|
|
var_r31 = lbl_1_bss_11F48->data;
|
|
var_r31->unk_00 = arg0;
|
|
var_r31->unk_04 = 0;
|
|
}
|
|
|
|
void fn_1_9550(omObjData *arg0)
|
|
{
|
|
s16 temp_r31;
|
|
M442ScoreWork* temp_r30;
|
|
|
|
temp_r30 = lbl_1_bss_11F48->data;
|
|
lbl_1_data_268[temp_r30->unk_00]();
|
|
temp_r31 = temp_r30->unk_08;
|
|
espBankSet(temp_r30->unk_0C[0], temp_r31 / 100);
|
|
temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100));
|
|
espBankSet(temp_r30->unk_0C[1], (temp_r31 / 10));
|
|
temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10));
|
|
espBankSet(temp_r30->unk_0C[2], temp_r31);
|
|
temp_r31 = temp_r30->unk_0A;
|
|
espBankSet(temp_r30->unk_0C[3], (temp_r31 / 100));
|
|
temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100));
|
|
espBankSet(temp_r30->unk_0C[4], (temp_r31 / 10));
|
|
temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10));
|
|
espBankSet(temp_r30->unk_0C[5], temp_r31);
|
|
}
|
|
|
|
void fn_1_970C(void)
|
|
{
|
|
M442ScoreWork *var_r31;
|
|
s32 var_r30;
|
|
|
|
var_r31 = lbl_1_bss_11F48->data;
|
|
if (var_r31->unk_04 == 0) {
|
|
for (var_r30 = 0; var_r30 < 8; var_r30++) {
|
|
espDispOff(var_r31->unk_0C[var_r30]);
|
|
}
|
|
var_r31->unk_04++;
|
|
}
|
|
}
|
|
|
|
void fn_1_9784(void)
|
|
{
|
|
s16 var_r30;
|
|
M442ScoreWork *var_r31;
|
|
|
|
var_r31 = lbl_1_bss_11F48->data;
|
|
if (var_r31->unk_04 == 0) {
|
|
for (var_r30 = 0; var_r30 < 8; var_r30++) {
|
|
espDispOn(var_r31->unk_0C[var_r30]);
|
|
}
|
|
var_r31->unk_04++;
|
|
}
|
|
var_r31->unk_0A = fn_1_90EC();
|
|
}
|
|
|
|
void fn_1_980C(void)
|
|
{
|
|
M442ScoreWork *var_r31;
|
|
s32 var_r30;
|
|
|
|
var_r31 = lbl_1_bss_11F48->data;
|
|
if (var_r31->unk_04 == 0) {
|
|
var_r31->unk_1C = 0;
|
|
var_r31->unk_20 = 1.0f;
|
|
if (var_r31->unk_0A > var_r31->unk_08) {
|
|
var_r31->unk_08 = var_r31->unk_0A;
|
|
}
|
|
var_r31->unk_04++;
|
|
}
|
|
if (var_r31->unk_1C == 0) {
|
|
if ((var_r31->unk_20 += 0.02f) >= 1.2f) {
|
|
var_r31->unk_20 = 1.2f;
|
|
var_r31->unk_1C = 1;
|
|
}
|
|
}
|
|
else {
|
|
if ((var_r31->unk_20 -= 0.04f) <= 1.0f) {
|
|
var_r31->unk_20 = 1.0f;
|
|
var_r31->unk_1C = 0;
|
|
}
|
|
}
|
|
for (var_r30 = 0; var_r30 <= 2; var_r30++) {
|
|
espScaleSet(var_r31->unk_0C[var_r30], var_r31->unk_20, var_r31->unk_20);
|
|
}
|
|
espScaleSet(var_r31->unk_1A, var_r31->unk_20, var_r31->unk_20);
|
|
}
|