match m407/score.c

This commit is contained in:
Rainchus 2024-04-05 12:39:00 -05:00
parent ebd8bf2491
commit aa65939684
3 changed files with 203 additions and 15 deletions

View file

@ -197,17 +197,17 @@ lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:4byte
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC scope:local data:4byte
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float
lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float
lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float
lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float
lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float
lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float
lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double
lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float
lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float
lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float
lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double
lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float
lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float
lbl_1_data_0 = .data:0x00000000; // type:object size:0x100
lbl_1_data_100 = .data:0x00000100; // type:object size:0x20
lbl_1_data_120 = .data:0x00000120; // type:object size:0x19 data:string

View file

@ -841,7 +841,7 @@ config.libs = [
Object(Matching, "REL/m407dll/whomp_score.c"),
Object(Matching, "REL/m407dll/effect.c"),
Object(Matching, "REL/m407dll/main.c"),
Object(NonMatching, "REL/m407dll/score.c"),
Object(Matching, "REL/m407dll/score.c"),
}
),
Rel('m408Dll',
@ -1055,7 +1055,7 @@ config.libs = [
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/resultDll/main.c"),
Object(NonMatching, "REL/resultDll/battle.c"),
Object(Matching, "REL/resultDll/datalist.c"),
Object(NonMatching, "REL/resultDll/datalist.c"),
}
),
Rel('safDll',
@ -1141,8 +1141,8 @@ config.libs = [
Object(Matching, "REL/w06Dll/main.c"),
Object(Matching, "REL/w06Dll/mg_item.c"),
Object(Matching, "REL/w06Dll/mg_coin.c"),
Object(Matching, "REL/w06Dll/fire.c"),
Object(Matching, "REL/w06Dll/bridge.c"),
Object(NonMatching, "REL/w06Dll/fire.c"),
Object(NonMatching, "REL/w06Dll/bridge.c"),
Object(NonMatching, "REL/w06Dll/bowser.c"),
}
),

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

@ -0,0 +1,188 @@
#include "game/process.h"
#include "game/object.h"
#include "game/esprite.h"
typedef struct unkDominationData6 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C[8]; //what size is this??
/* 0x1C */ s32 unk_1C;
/* 0x20 */ f32 unk_20;
} unkDominationData6; //sizeof 0x24
//func signatures
void fn_1_61A0(void);
void fn_1_6218(void);
void fn_1_62A0(void);
void fn_1_5FE4(omObjData* arg0);
void fn_1_5FB4(s32 arg0);
s16 fn_1_28D4(void);
//bss
Process* lbl_1_bss_398C;
omObjData* lbl_1_bss_3988;
//data
typedef void (*ObjFuncs)(void);
ObjFuncs lbl_1_data_360[] = {
fn_1_61A0,
fn_1_6218,
fn_1_62A0
};
void fn_1_5C5C(Process* arg0, s16 arg1) {
unkDominationData6* temp_r31;
u32 i;
lbl_1_bss_398C = arg0;
lbl_1_bss_3988 = omAddObjEx(lbl_1_bss_398C, 0x800, 0U, 0U, 7, fn_1_5FE4);
lbl_1_bss_3988->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x24, 0x10000000U);
temp_r31 = lbl_1_bss_3988->data;
temp_r31->unk_08 = arg1;
temp_r31->unk_0A = 0;
temp_r31->unk_0C[6] = espEntry(0x260025, 2, 0);
espTPLvlSet(temp_r31->unk_0C[6], 0.5f);
espPosSet(temp_r31->unk_0C[6], 508.0f, 64.0f);
temp_r31->unk_0C[7] = espEntry(0x260022, 1, 0);
espPosSet(temp_r31->unk_0C[7], 480.0f, 56.0f);
for (i = 0; i < 3; i++) {
temp_r31->unk_0C[i] = espEntry(0x26001F, 0, 0);
espPosSet(temp_r31->unk_0C[i], i * 16 + 0x1F4, 56.0f);
espDispOff(temp_r31->unk_0C[i]);
}
for (i = 0; i < 3; i++) {
temp_r31->unk_0C[i+3] = espEntry(0x260020, 1, 0);
espPosSet(temp_r31->unk_0C[i+3], i * 16 + 0x1F4, 74.0f);
}
for (i = 0; i < 8; i++) {
espDispOff(temp_r31->unk_0C[i]);
}
fn_1_5FB4(0);
}
void fn_1_5ECC(void) {
s32 i;
unkDominationData6* temp_r30;
temp_r30 = lbl_1_bss_3988->data;
for (i = 0; i < 7; i++) {
espKill(temp_r30->unk_0C[i]);
}
HuMemDirectFree(lbl_1_bss_3988->data);
}
void fn_1_5F40(s32 arg0) {
switch (arg0) {
case 0:
fn_1_5FB4(1);
break;
case 1:
fn_1_5FB4(2);
break;
}
}
void fn_1_5F90(void) {
fn_1_5FB4(0);
}
//this function is an inline for other TUs, but not this one
void fn_1_5FB4(s32 arg0) {
unkDominationData6* temp_r31;
temp_r31 = lbl_1_bss_3988->data;
temp_r31->unk_00 = arg0;
temp_r31->unk_04 = 0;
}
void fn_1_5FE4(omObjData* arg0) {
s16 temp_r31;
unkDominationData6* temp_r30;
temp_r30 = lbl_1_bss_3988->data;
lbl_1_data_360[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_61A0(void) {
s32 i;
unkDominationData6* temp_r31;
temp_r31 = lbl_1_bss_3988->data;
if (temp_r31->unk_04 == 0) {
for (i = 0; i < 8; i++) {
espDispOff(temp_r31->unk_0C[i]);
}
temp_r31->unk_04++;
}
}
void fn_1_6218(void) {
s16 i;
unkDominationData6* temp_r31;
temp_r31 = lbl_1_bss_3988->data;
if (temp_r31->unk_04 == 0) {
for (i = 0; i < 8; i++) {
espDispOn(temp_r31->unk_0C[i]);
}
temp_r31->unk_04++;
}
temp_r31->unk_0A = fn_1_28D4();
}
void fn_1_62A0(void) {
s32 i;
unkDominationData6* temp_r31;
temp_r31 = lbl_1_bss_3988->data;
if (temp_r31->unk_04 == 0) {
temp_r31->unk_1C = 0;
temp_r31->unk_20 = 1.0f;
if (temp_r31->unk_0A > temp_r31->unk_08) {
temp_r31->unk_08 = temp_r31->unk_0A;
}
temp_r31->unk_04++;
}
if (temp_r31->unk_1C == 0) {
if ((temp_r31->unk_20 += 0.02f) >= 1.2f) {
temp_r31->unk_20 = 1.2f;
temp_r31->unk_1C = 1;
}
} else {
if ((temp_r31->unk_20 -= 0.04f) <= 1.0f) {
temp_r31->unk_20 = 1.0f;
temp_r31->unk_1C = 0;
}
}
for (i = 0; i <= 2; i++) {
espScaleSet(temp_r31->unk_0C[i], temp_r31->unk_20, temp_r31->unk_20);
}
espScaleSet(temp_r31->unk_0C[7], temp_r31->unk_20, temp_r31->unk_20);
}