diff options
author | Max <mparisi@stevens.edu> | 2020-10-22 14:47:56 -0400 |
---|---|---|
committer | Max <mparisi@stevens.edu> | 2020-10-22 14:47:56 -0400 |
commit | e59582e0613910f8a47b0d6458975a5205d16d4e (patch) | |
tree | 8738887e457e1810630882b715783ed34a2838c5 /src | |
parent | d777bee871875f336299c8863e06918ffe0d0b8d (diff) |
decompile code_801DB81C, and revamp the source file layout template and type naming convention. Rename unkStruct to ctorStruct
Diffstat (limited to 'src')
-rw-r--r-- | src/code_801DAA30.cpp | 7 | ||||
-rw-r--r-- | src/code_801DAAE0.cpp | 25 | ||||
-rw-r--r-- | src/code_801DB040.cpp | 61 | ||||
-rw-r--r-- | src/code_801DB81C.cpp | 79 |
4 files changed, 81 insertions, 91 deletions
diff --git a/src/code_801DAA30.cpp b/src/code_801DAA30.cpp index 17375d9..c8f0756 100644 --- a/src/code_801DAA30.cpp +++ b/src/code_801DAA30.cpp @@ -1,11 +1,8 @@ #include "types.h"
-#include "unkStruct.h"
+#include "ctorStruct.h"
#include "code_801DAAE0.h"
-namespace
-{
- unkStruct gUnk8063F2C8(1, 4, 0);
-}
+static ctorStruct gUnk8063F2C8(1, 4, 0);
void* operator new(size_t sz)
{
diff --git a/src/code_801DAAE0.cpp b/src/code_801DAAE0.cpp index 31b84e5..dd5e504 100644 --- a/src/code_801DAAE0.cpp +++ b/src/code_801DAAE0.cpp @@ -1,5 +1,5 @@ #include "types.h"
-#include "unkStruct.h"
+#include "ctorStruct.h"
#include "Runtime/__mem.h"
#include "SDK/mem.h"
#include "code_801DAAE0.h"
@@ -19,17 +19,22 @@ namespace u16 groupID;
u32 unk8;
};
-
- const size_t ARR_SIZE = 16;
- unkClass gUnk804912B0[ARR_SIZE];
-
- unkStruct gUnk8063F2D0(1, 4, 0);
- u8 gUnk8063F2D6;
- u8 gUnk8063F2D7;
- MEMHeapHandle gUnk8063F2D8;
- u16 gUnk8063F2DC;
}
+static unkClass* func_801DAAE0(void);
+static void* lbl_801DAC9C(MEMHeapHandle heap, u32 size, int fill);
+static BOOL func_801DAD1C(MEMHeapHandle heap, void* memBlock, u32 size);
+static u32 func_801DAD60(MEMHeapHandle heap);
+static void lbl_801DAF1C(void* memBlock, MEMHeapHandle, u32 p3);
+
+static const size_t ARR_SIZE = 16;
+static unkClass gUnk804912B0[ARR_SIZE];
+static ctorStruct gUnk8063F2D0(1, 4, 0);
+static u8 gUnk8063F2D6;
+static u8 gUnk8063F2D7;
+static MEMHeapHandle gUnk8063F2D8;
+static u16 gUnk8063F2DC;
+
extern "C" {
static unkClass* func_801DAAE0(void)
diff --git a/src/code_801DB040.cpp b/src/code_801DB040.cpp index cf295c2..088dc2a 100644 --- a/src/code_801DB040.cpp +++ b/src/code_801DB040.cpp @@ -1,31 +1,30 @@ #include "types.h"
-#include "unkStruct.h"
+#include "ctorStruct.h"
#include "Runtime/__mem.h"
#include "SDK/mem.h"
#include "code_801DAAE0.h"
#include "code_801DBB3C.h"
#include "code_801DB040.h"
-extern "C" {
+static gUnkClass1* func_801DB040(u32 p1, u32 p2);
-namespace
-{
- unkStruct gUnk8063F2E0(1, 4, 0);
- unkClass* gUnk8063F2E8;
- unkClass2* gUnk8063F2EC;
-}
+static ctorStruct gUnk8063F2E0(1, 4, 0);
+static gUnkClass1* gUnk8063F2E8;
+static gUnkClass2* gUnk8063F2EC;
+
+extern "C" {
-static unkClass* func_801DB040(u32 p1, u32 p2)
+static gUnkClass1* func_801DB040(u32 p1, u32 p2)
{
- for (unkClass* r5 = gUnk8063F2E8; r5; r5 = r5->unk1C)
+ for (gUnkClass1* r5 = gUnk8063F2E8; r5; r5 = r5->unk1C)
if (r5->unk10 == p1 && r5->unk14 == p2)
return r5;
return NULL;
}
-unkClass* func_801DB07C(unkClass* p1, BOOL p2)
+gUnkClass1* func_801DB07C(gUnkClass1* p1, BOOL p2)
{
- unkClass* r31;
+ gUnkClass1* r31;
if (p1->unk18 && p1->unk18(p1->unkC, p1->unk10, p1->unk14) == 0)
return p1->unk1C;
if (p1->unk0) {
@@ -38,7 +37,7 @@ unkClass* func_801DB07C(unkClass* p1, BOOL p2) p1->unkC = NULL;
r31 = p1->unk1C;
if (p2) {
- unkClass* r3 = p1->unk20;
+ gUnkClass1* r3 = p1->unk20;
if (r3)
r3->unk1C = r31;
else
@@ -57,11 +56,11 @@ void func_801DB15C(u32 p1) gUnk8063F2EC = func_801DBD74(p1, 36);
}
-static void* func_801DB184(MEMHeapHandle heap, u32 size, u32 p3, u32 p4, FuncPtr p5)
+static void* func_801DB184(MEMHeapHandle heap, u32 size, u32 p3, u32 p4, gFuncPtr1 p5)
{
if (func_801DB040(p3, p4))
return NULL;
- unkClass* r31 = func_801DBC58(gUnk8063F2EC);
+ gUnkClass1* r31 = func_801DBC58(gUnk8063F2EC);
if (!r31)
return NULL;
if ((r31->unkC = func_801DAC94(heap, size)) == NULL) {
@@ -85,11 +84,11 @@ static void* func_801DB184(MEMHeapHandle heap, u32 size, u32 p3, u32 p4, FuncPtr return r31->unkC;
}
-void* func_801DB270(MEMHeapHandle heap, u32 size, int align, u32 p4, u32 p5, FuncPtr p6)
+void* func_801DB270(MEMHeapHandle heap, u32 size, int align, u32 p4, u32 p5, gFuncPtr1 p6)
{
if (func_801DB040(p4, p5))
return NULL;
- unkClass* r31 = func_801DBC58(gUnk8063F2EC);
+ gUnkClass1* r31 = func_801DBC58(gUnk8063F2EC);
if (!r31)
return NULL;
if ((r31->unkC = func_801DAD08(heap, size, align)) == NULL) {
@@ -112,14 +111,14 @@ void* func_801DB270(MEMHeapHandle heap, u32 size, int align, u32 p4, u32 p5, Fun return r31->unkC;
}
-void* func_801DB360(u32 size, int align, u32 p3, u32 p4, FuncPtr p5)
+void* func_801DB360(u32 size, int align, u32 p3, u32 p4, gFuncPtr1 p5)
{
return func_801DB270(func_801DAC0C(), size, align, p3, p4, p5);
}
-void func_801DB3BC(void* p1, u32 p2, u32 p3, FuncPtr p4)
+void func_801DB3BC(void* p1, u32 p2, u32 p3, gFuncPtr1 p4)
{
- unkClass* r31 = func_801DB040(p2, p3);
+ gUnkClass1* r31 = func_801DB040(p2, p3);
if (!p1) {
if (r31)
func_801DB07C(r31, TRUE);
@@ -136,7 +135,7 @@ void func_801DB3BC(void* p1, u32 p2, u32 p3, FuncPtr p4) r31->unk18 = p4;
}
} else {
- unkClass* r3 = func_801DBC58(gUnk8063F2EC);
+ gUnkClass1* r3 = func_801DBC58(gUnk8063F2EC);
if (r3) {
if (gUnk8063F2E8)
gUnk8063F2E8->unk20 = r3;
@@ -155,7 +154,7 @@ void func_801DB3BC(void* p1, u32 p2, u32 p3, FuncPtr p4) void* func_801DB4BC(u32 p1, u32 p2)
{
- unkClass* r3 = func_801DB040(p1, p2);
+ gUnkClass1* r3 = func_801DB040(p1, p2);
if (!r3 || r3->unk1)
return NULL;
return r3->unkC;
@@ -163,7 +162,7 @@ void* func_801DB4BC(u32 p1, u32 p2) u32 func_801DB4FC(u32 p1, u32 p2)
{
- unkClass* r3 = func_801DB040(p1, p2);
+ gUnkClass1* r3 = func_801DB040(p1, p2);
if (!r3 || r3->unk1)
return 0;
return ++r3->unk4;
@@ -171,7 +170,7 @@ u32 func_801DB4FC(u32 p1, u32 p2) u32 func_801DB548(u32 p1, u32 p2)
{
- unkClass* r31 = func_801DB040(p1, p2);
+ gUnkClass1* r31 = func_801DB040(p1, p2);
if (!r31 || r31->unk1)
return 0;
if (r31->unk4 == 0) {
@@ -185,7 +184,7 @@ u32 func_801DB548(u32 p1, u32 p2) u32 func_801DB5E4(u32 p1, u32 p2)
{
- unkClass* r3 = func_801DB040(p1, p2);
+ gUnkClass1* r3 = func_801DB040(p1, p2);
if (!r3)
return 0;
if (!r3->unkC)
@@ -197,21 +196,21 @@ u32 func_801DB5E4(u32 p1, u32 p2) void func_801DB644(u32 p1, u32 p2)
{
- unkClass* r3 = func_801DB040(p1, p2);
+ gUnkClass1* r3 = func_801DB040(p1, p2);
if (r3)
func_801DB07C(r3, TRUE);
}
void func_801DB674(u32 p1)
{
- unkClass* p = gUnk8063F2E8;
+ gUnkClass1* p = gUnk8063F2E8;
while (p)
p = (p->unk10 == p1) ? func_801DB07C(p, TRUE) : p->unk1C;
}
-BOOL func_801DB6D0(u32 p1, u32 p2, MEMHeapHandle heap, u32 p4, u32 p5, FuncPtr p6)
+BOOL func_801DB6D0(u32 p1, u32 p2, MEMHeapHandle heap, u32 p4, u32 p5, gFuncPtr1 p6)
{
- unkClass* r31 = func_801DB040(p1, p2);
+ gUnkClass1* r31 = func_801DB040(p1, p2);
if (!r31 || r31->unk1 || !r31->unkC || !r31->unk0)
return FALSE;
u32 blockSize = func_801DAEE0(r31->unkC);
@@ -226,14 +225,14 @@ BOOL func_801DB6D0(u32 p1, u32 p2, MEMHeapHandle heap, u32 p4, u32 p5, FuncPtr p void func_801DB79C(u32 p1, u32 p2)
{
- unkClass* r3 = func_801DB040(p1, p2);
+ gUnkClass1* r3 = func_801DB040(p1, p2);
if (r3)
r3->unk1 = 1;
}
void func_801DB7CC(u32 p1, u32 p2)
{
- unkClass* r3 = func_801DB040(p1, p2);
+ gUnkClass1* r3 = func_801DB040(p1, p2);
if (r3)
r3->unk1 = 0;
}
diff --git a/src/code_801DB81C.cpp b/src/code_801DB81C.cpp index bbe99c7..678fafa 100644 --- a/src/code_801DB81C.cpp +++ b/src/code_801DB81C.cpp @@ -1,44 +1,33 @@ #include "types.h"
-#include "unkStruct.h"
+#include "ctorStruct.h"
#include "SDK/os.h"
#include "code_801DB81C.h"
-#pragma unsafe_global_reg_vars off
-#pragma ignore_global_reg_vars on
-
-extern "C" {
-
-typedef void (*FuncPtr2)(u32, u32, u8);
-
namespace
{
- struct unkClass3
+ typedef void (*funcPtr)(u32, u32, u8);
+
+ struct unkClass
{
u8 unk0;
u8 unk1;
- FuncPtr2 unk4;
+ funcPtr unk4;
};
-
- unkStruct gUnk8063F2F0(1, 4, 0);
- u32 gUnk8063F2F8;
- u32 gUnk8063F2FC;
}
-u32 gUnk8063F300 asm("r14"); // TODO: how do you reference this from inline asm
-
-
-extern u8 lbl_8063F304;
-extern u32 lbl_8063F308;
-
-// TODO: define, rename, localize
-extern unkClass3 lbl_80491370[32];
-
-
-
-
static void func_801DB81C(u8 p1);
static void func_801DB92C(u8 start, u8 width, u32 setOrClear);
+static unkClass gUnk80491370[32];
+static ctorStruct gUnk8063F2F0(1, 4, 0);
+static u32 gUnk8063F2F8;
+static u32 gUnk8063F2FC;
+static u32 gUnk8063F300;
+static u8 gUnk8063F304;
+static u32 gUnk8063F308;
+
+extern "C" {
+
static void func_801DB81C(u8 p1)
{
size_t i;
@@ -50,8 +39,8 @@ static void func_801DB81C(u8 p1) new_var = 0;
new_var5 = &i;
for (i = new_var; i < 32; i++) {
- lbl_8063F308 = new_var;
- lbl_80491370[i].unk0 = 0xff;
+ gUnk8063F308 = new_var;
+ gUnk80491370[i].unk0 = 0xff;
}
LCEnable();
@@ -67,11 +56,11 @@ static void func_801DB81C(u8 p1) new_var4 = new_var3;
new_var2 = *new_var4;
func_801DB92C(0 & 0xFFu, (u8)new_var2, 1);
- lbl_80491370[0].unk0 = 0;
- lbl_80491370[0].unk1 = (u8)*new_var3;
+ gUnk80491370[0].unk0 = 0;
+ gUnk80491370[0].unk1 = (u8)*new_var3;
}
- lbl_8063F304 = 0;
+ gUnk8063F304 = 0;
}
static void func_801DB92C(u8 start, u8 width, u32 setOrClear)
@@ -80,7 +69,7 @@ static void func_801DB92C(u8 start, u8 width, u32 setOrClear) while (start--)
bit >>= 1;
while (width--) {
- lbl_8063F308 = (setOrClear == 1) ? lbl_8063F308 | bit : lbl_8063F308 & ~bit;
+ gUnk8063F308 = (setOrClear == 1) ? gUnk8063F308 | bit : gUnk8063F308 & ~bit;
bit >>= 1;
}
}
@@ -104,8 +93,8 @@ asm u32 func_801DB978(u8 p1) /* 801DB9AC 001D760C 38 60 00 01 */ li r3, 1
/* 801DB9B0 001D7610 48 00 00 2C */ b lbl_801DB9DC
lbl_801DB9B4:
- /* 801DB9B4 001D7614 80 6D A0 3C */ lwz r3, 0xA03C(r13)
- /* 801DB9B8 001D7618 80 AD A0 38 */ lwz r5, 0xA038(r13)
+ /* 801DB9B4 001D7614 80 6D A0 3C */ lwz r3, gUnk8063F2FC
+ /* 801DB9B8 001D7618 80 AD A0 38 */ lwz r5, gUnk8063F2F8
/* 801DB9BC 001D761C 7C 63 2A 14 */ add r3, r3, r5
/* 801DB9C0 001D7620 38 23 FF F8 */ addi r1, r3, -8
/* 801DB9C4 001D7624 38 60 FF FF */ li r3, -1
@@ -135,22 +124,22 @@ void func_801DB9FC(void) u32 new_var4;
u32 *new_var5;
new_var = 0xff;
- if (lbl_8063F304 != 1) {
+ if (gUnk8063F304 != 1) {
new_var2 = 9;
i = 31, j = 0;
new_var3 = &i;
new_var5 = &new_var4;
do {
- unsigned char r0 = lbl_80491370[j].unk0;
+ unsigned char r0 = gUnk80491370[j].unk0;
new_var4 = *new_var3;
- if ((((u32) r0) != new_var) && lbl_80491370[j].unk4) {
- lbl_80491370[j].unk4(0, gUnk8063F2FC + (r0 << new_var2), lbl_80491370[j].unk1);
+ if ((((u32) r0) != new_var) && gUnk80491370[j].unk4) {
+ gUnk80491370[j].unk4(0, gUnk8063F2FC + (r0 << new_var2), gUnk80491370[j].unk1);
}
i = *new_var5;
j++;
} while ((i--) != 0);
- lbl_8063F304 = 1;
+ gUnk8063F304 = 1;
}
}
@@ -164,23 +153,23 @@ void func_801DBA8C(void) u32 new_var4;
u32 *new_var5;
new_var = 0xff;
- if (lbl_8063F304 != 0) {
+ if (gUnk8063F304 != 0) {
new_var2 = 9;
i = 31, j = 0;
new_var3 = &i;
new_var5 = &new_var4;
do {
- unsigned char r0 = lbl_80491370[j].unk0;
+ unsigned char r0 = gUnk80491370[j].unk0;
new_var4 = *new_var3;
- if ((((u32) r0) != new_var) && lbl_80491370[j].unk4) {
- lbl_80491370[j].unk4(1, gUnk8063F2FC + (r0 << new_var2), lbl_80491370[j].unk1);
+ if ((((u32) r0) != new_var) && gUnk80491370[j].unk4) {
+ gUnk80491370[j].unk4(1, gUnk8063F2FC + (r0 << new_var2), gUnk80491370[j].unk1);
}
i = *new_var5;
j++;
} while ((i--) != 0);
- lbl_8063F304 = 0;
+ gUnk8063F304 = 0;
}
}
-}
+} //extern "C"
|