This commit is contained in:
CreateSource 2024-10-31 13:19:49 -04:00
commit 0e5ead6543
7 changed files with 3217 additions and 143 deletions

1771
src/REL/m453Dll/main.c Normal file

File diff suppressed because it is too large Load diff

1091
src/REL/m453Dll/map.c Normal file

File diff suppressed because it is too large Load diff

188
src/REL/m453Dll/score.c Normal file
View file

@ -0,0 +1,188 @@
#include "ext_math.h"
#include "game/audio.h"
#include "game/chrman.h"
#include "game/esprite.h"
#include "game/flag.h"
#include "game/frand.h"
#include "game/gamework.h"
#include "game/hsfanim.h"
#include "game/hsfman.h"
#include "game/memory.h"
#include "game/minigame_seq.h"
#include "game/object.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/sprite.h"
#include "game/wipe.h"
#include "REL/m453Dll.h"
typedef struct M453ScoreUnkStruct {
s32 unk_00;
s32 unk_04;
s16 unk_08;
s16 unk_0A;
s16 unk_0C[4];
s16 unk_14;
s16 unk_16;
s32 unk_18;
float unk_1C;
} M453ScoreUnkStruct; /* size = 0x20 */
typedef void (*M453ScoreUnkFunc)(void);
void fn_1_92C0(s32 arg0);
void fn_1_92F0(omObjData *object);
void fn_1_940C(void);
void fn_1_9484(void);
void fn_1_9510(void);
M453ScoreUnkFunc lbl_1_data_BC0[3] = { fn_1_940C, fn_1_9484, fn_1_9510 };
Process *lbl_1_bss_C4;
omObjData *lbl_1_bss_C0;
void fn_1_8F48(Process *arg0, s16 arg1)
{
M453ScoreUnkStruct *var_r31;
u32 var_r30;
lbl_1_bss_C4 = arg0;
lbl_1_bss_C0 = omAddObjEx(lbl_1_bss_C4, 0x800, 0, 0, 7, fn_1_92F0);
lbl_1_bss_C0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M453ScoreUnkStruct), MEMORY_DEFAULT_NUM);
var_r31 = lbl_1_bss_C0->data;
var_r31->unk_08 = arg1;
var_r31->unk_0A = 0;
var_r31->unk_14 = espEntry(0x530000, 2, 0);
espTPLvlSet(var_r31->unk_14, 0.5f);
espPosSet(var_r31->unk_14, 520.0f, 64.0f);
espColorSet(var_r31->unk_14, 0, 0, 0);
var_r31->unk_16 = espEntry(0x610037, 1, 0);
espPosSet(var_r31->unk_16, 501.0f, 55.0f);
for (var_r30 = 0; var_r30 < 2; var_r30++) {
var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0);
espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x12) + 0x20A, 56.0f);
espDispOff(var_r31->unk_0C[var_r30]);
}
for (var_r30 = 0; var_r30 < 2; var_r30++) {
var_r31->unk_0C[var_r30 + 2] = espEntry(0x610031, 1, 0);
espPosSet(var_r31->unk_0C[var_r30 + 2], (var_r30 * 0x12) + 0x20A, 72.0f);
}
for (var_r30 = 0; var_r30 < 6; var_r30++) {
espDispOff(var_r31->unk_0C[var_r30]);
}
HuDataDirClose(0x530000);
HuDataDirClose(0x610000);
fn_1_92C0(0);
}
void fn_1_91D8(void)
{
s32 var_r31;
M453ScoreUnkStruct *var_r30 = lbl_1_bss_C0->data;
for (var_r31 = 0; var_r31 < 7; var_r31++) {
espKill(var_r30->unk_0C[var_r31]);
}
HuMemDirectFree(lbl_1_bss_C0->data);
}
void fn_1_924C(s32 arg0)
{
switch (arg0) {
case 0:
fn_1_92C0(1);
break;
case 1:
fn_1_92C0(2);
break;
}
}
void fn_1_929C(void)
{
fn_1_92C0(0);
}
void fn_1_92C0(s32 arg0)
{
M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data;
var_r31->unk_00 = arg0;
var_r31->unk_04 = 0;
}
void fn_1_92F0(omObjData *arg0)
{
s16 var_r30;
M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data;
lbl_1_data_BC0[var_r31->unk_00]();
var_r30 = var_r31->unk_08;
espBankSet(var_r31->unk_0C[0], var_r30 / 10);
var_r30 -= (var_r30 / 10) * 10;
espBankSet(var_r31->unk_0C[1], var_r30);
var_r30 = var_r31->unk_0A;
espBankSet(var_r31->unk_0C[2], var_r30 / 10);
var_r30 -= (var_r30 / 10) * 10;
espBankSet(var_r31->unk_0C[3], var_r30);
}
void fn_1_940C(void)
{
s32 var_r30;
M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data;
if (var_r31->unk_04 == 0) {
for (var_r30 = 0; var_r30 < 6; var_r30++) {
espDispOff(var_r31->unk_0C[var_r30]);
}
var_r31->unk_04 = var_r31->unk_04 + 1;
}
}
void fn_1_9484(void)
{
s16 var_r30;
M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data;
if (var_r31->unk_04 == 0) {
for (var_r30 = 0; var_r30 < 6; var_r30++) {
espDispOn(var_r31->unk_0C[var_r30]);
}
var_r31->unk_04 = var_r31->unk_04 + 1;
}
var_r31->unk_0A = fn_1_639C();
}
void fn_1_9510(void)
{
s32 var_r30;
M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data;
if (var_r31->unk_04 == 0) {
var_r31->unk_18 = 0;
var_r31->unk_1C = 1.0f;
if (var_r31->unk_0A > var_r31->unk_08) {
var_r31->unk_08 = var_r31->unk_0A;
}
var_r31->unk_04 = var_r31->unk_04 + 1;
}
if (var_r31->unk_18 == 0) {
if ((var_r31->unk_1C += 0.02f) >= 1.2f) {
var_r31->unk_1C = 1.2f;
var_r31->unk_18 = 1;
}
}
else {
if ((var_r31->unk_1C -= 0.04f) <= 1.0f) {
var_r31->unk_1C = 1.0f;
var_r31->unk_18 = 0;
}
}
for (var_r30 = 0; var_r30 <= 1; var_r30++) {
espScaleSet(var_r31->unk_0C[var_r30], var_r31->unk_1C, var_r31->unk_1C);
}
espScaleSet(var_r31->unk_16, var_r31->unk_1C, var_r31->unk_1C);
}