summaryrefslogtreecommitdiff
path: root/src/code_801DBB3C.cpp
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-23 23:22:36 -0400
committerMax <mparisi@stevens.edu>2020-10-23 23:22:36 -0400
commit813f6a67a079e00b4003952e612bd7177f707fc6 (patch)
treeb2b17318236db00b1920cb57cfb5697c20d0eed0 /src/code_801DBB3C.cpp
parente3def2d7a360b72359c64924e11ebd67c94843c9 (diff)
cleanup
Diffstat (limited to 'src/code_801DBB3C.cpp')
-rw-r--r--src/code_801DBB3C.cpp73
1 files changed, 28 insertions, 45 deletions
diff --git a/src/code_801DBB3C.cpp b/src/code_801DBB3C.cpp
index 8e10633..5037b5a 100644
--- a/src/code_801DBB3C.cpp
+++ b/src/code_801DBB3C.cpp
@@ -5,67 +5,53 @@
#include "code_801DB040.h"
#include "code_801DBB3C.h"
-// array of free stores
+static u32 func_801DBB3C(void);
+static void func_801DBB44(u32);
+static void func_801DBB48(gUnkClass2 *p1, size_t nodes, size_t size);
+
static gUnkClass2 gUnk80491470[32];
static ctorStruct gUnk8063F310(1, 4, 0);
+
extern "C" {
-//static
-u32 func_801DBB3C(void)
+
+static u32 func_801DBB3C(void)
{
return 0;
}
-//static
-void func_801DBB44(u32)
+static void func_801DBB44(u32)
{
}
-//static
-void func_801DBB48(gUnkClass2 *p1, size_t nodes, size_t size)
+static void func_801DBB48(gUnkClass2 *p1, size_t nodes, size_t size)
{
- size_t r31;
- size_t r30;
- gUnkClass2 *r29;
- unsigned int new_var;
- int new_var2;
- u8 **new_var3;
- size += 7;
- r30 = size & (~0x3);
- new_var = r30;
- r31 = new_var;
- r30 = nodes;
- r29 = p1;
- p1->unk8 = nodes;
- new_var2 = nodes + 1;
- p1->unkC = r31;
- u8 *data = (u8 *) func_801DAD98(new_var2 * r31);
- r29->unk10 = data;
- r29->unk18 = (gUnkClass3 *) data;
- r29->unk14 = data + (r30 * r31);
- u8 *curr = data;
- u8 *next;
- size_t i;
- new_var3 = &next;
- gUnkClass3 *r8 = 0;
- for (i = 0; i < r30; i++)
- {
- next = curr + r31;
- r8 = (gUnkClass3 *) curr;
- ((gUnkClass3 *) curr)->unk0 = (gUnkClass3 *) (*new_var3);
- curr = *new_var3;
- }
-
- r8->unk0 = 0;
+ size_t blockSize = (size+7) & ~0x3;
+ p1->unk8 = nodes;
+ p1->unkC = blockSize;
+ u8* data = (u8*)func_801DAD98((nodes + 1) * blockSize);
+ p1->unk10 = data;
+ p1->unk18 = (gUnkClass3*)data;
+ p1->unk14 = data + (nodes * blockSize);
+ u8* next;
+ u8** pnext = &next;
+ size_t i;
+ gUnkClass3* r8 = NULL;
+ for (i = 0; i < nodes; i++) {
+ *pnext = data + blockSize;
+ r8 = (gUnkClass3*)data;
+ ((gUnkClass3*)data)->unk0 = (gUnkClass3*)(*pnext);
+ data = *pnext;
+ }
+ r8->unk0 = 0;
}
-// allocate a linked list node from the free store
gUnkClass1* func_801DBC58(gUnkClass2* p1)
{
gUnkClass3* r31 = p1->unk18;
u32 r30 = func_801DBB3C();
func_801DBB44(0);
if (r31) {
- p1->unk18 = r31->unk0; // point unk18 to possible next free block?
+ p1->unk18 = r31->unk0;
goto passCheck;
}
func_801DBB44(r30);
@@ -78,8 +64,6 @@ passCheck:
return &r31->unk4;
}
-// return node p2 to free store p1, making it the new head of the
-// free node linked list
void func_801DBD00(gUnkClass2* p1, gUnkClass1* p2)
{
u32 r31;
@@ -94,7 +78,6 @@ void func_801DBD00(gUnkClass2* p1, gUnkClass1* p2)
}
}
-// allocate the free store given number of elements and size of each?
gUnkClass2* func_801DBD74(u32 nodes, u32 size)
{
size_t i;