From 9d0fc6fb1cb914d0d1a81463f92df2422b503027 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Wed, 22 Nov 2023 20:57:07 -0500 Subject: [PATCH] unsplit and struct types --- include/common_structs.h | 15 +++++-- src/unsplit/unsplit.c | 89 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 src/unsplit/unsplit.c diff --git a/include/common_structs.h b/include/common_structs.h index dbfef15a..6bc0e07c 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -15,10 +15,19 @@ typedef struct Vec3f { f32 z; } Vec3f; -typedef struct unkStruct_1D3B44 { - struct unkStruct_1D3B44 *prev; +typedef struct unkStruct145A98 { + s16 unk_00; + char unk_02[10]; + s16 unk_0C; + char unk_0E[6]; + u8 unk_14; + char unk_15[0x53]; +} unkStruct145A98; // sizeof 0x68 + +typedef struct unkStruct1D3B44 { + struct unkStruct1D3B44 *prev; char unk_04[0x1A]; u16 unk_1E; -} unkStruct_1D3B44; +} unkStruct1D3B44; // sizeof ??? #endif diff --git a/src/unsplit/unsplit.c b/src/unsplit/unsplit.c new file mode 100644 index 00000000..225d956b --- /dev/null +++ b/src/unsplit/unsplit.c @@ -0,0 +1,89 @@ +#include "common.h" + +extern unkStruct145A98 lbl_80145A98[0x100]; +extern s32 debugFontColor; +extern s16 lbl_801D3B2C; +extern s16 lbl_801D3B2E; +extern unkStruct1D3B44* lbl_801D3B44; + +void fn_8000AEF0(void) { + s32 i; + + debugFontColor = 0xF; + lbl_801D3B2E = 0; + + for (i = 0; i < 0x100; i++) { + lbl_80145A98[i].unk_14 = 0; + } + fn_8000AF54(); +} + +void fn_8000AF54(void) { + s32 i; + + lbl_801D3B2E = 0; + lbl_801D3B2C = 0; + for (i = 0; i < 0x100; i++) { + lbl_80145A98[i].unk_0C = (s16) (i + 1); + lbl_80145A98[i].unk_00 = 0; + if (lbl_80145A98[i].unk_14 != 0) { + lbl_80145A98[i].unk_14 = 0; + } + } +} + +// HuPrcCall + +// HuPrcMemAlloc + +// HuPrcMemFree + +void HuPrcSetStat(unkStruct1D3B44* arg0, u16 arg1) { + arg0->unk_1E |= arg1; +} + +void HuPrcResetStat(unkStruct1D3B44* arg0, s32 arg1) { + arg0->unk_1E &= ~arg1; +} + +void HuPrcAllPause(s32 arg0) { + unkStruct1D3B44* var_r31; + + var_r31 = lbl_801D3B44; + if (arg0 != 0) { + while (var_r31 != NULL) { + if ((var_r31->unk_1E & 4) == 0) { + var_r31->unk_1E |= (u16) 1; + } + var_r31 = var_r31->prev; + } + return; + } + while (var_r31 != NULL) { + if ((var_r31->unk_1E & 1) != 0) { + var_r31->unk_1E &= -2; + } + var_r31 = var_r31->prev; + } +} + +void HuPrcAllUPause(s32 arg0) { + unkStruct1D3B44* var_r31; + + var_r31 = lbl_801D3B44; + if (arg0 != 0) { + while (var_r31 != NULL) { + if ((var_r31->unk_1E & 8) == 0) { + var_r31->unk_1E |= (u16) 2; + } + var_r31 = var_r31->prev; + } + return; + } + while (var_r31 != NULL) { + if ((var_r31->unk_1E & 2) != 0) { + var_r31->unk_1E &= -3; + } + var_r31 = var_r31->prev; + } +}