fewer ugly array access

This commit is contained in:
Rémi Calixte
2021-06-01 19:57:57 +02:00
parent 6ed67e61ef
commit f8e4e3e590
3 changed files with 240 additions and 2359 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
#include "global.h"
#include "unk_0200BB14.h"
#include "game_init.h"
#include "heap.h"
extern void FUN_0201D060(u32 *param0, u32 param1, u32 param2);
@@ -17,70 +18,52 @@ extern void FUN_02009EAC(u32 param0,
extern u32 FUN_0201C328(u32 param0, u32 param1);
extern void FUN_0201D168();
extern void FUN_0201E0BC();
extern u32 FUN_02008C9C(u32 param0, u32 *param1, u32 param2);
extern u32 FUN_02008C9C(u32 param0, void *param1, u32 param2);
extern void FUN_0201FFC8(u32 param0);
extern void FUN_0201FDEC(u32 param0);
extern void FUN_02009F80();
extern void FUN_0201C348();
extern void FUN_0201FD58();
extern void FUN_0201FD58(u32 param0);
extern void FUN_02008C80(u32 param0);
extern u32 FUN_02009660(u32 param0, u32 param1);
extern u32 FUN_02009660(u32 *param0, s32 param1);
extern void FUN_020096B4(u32 param0);
extern void FUN_02009C30(u32 param0);
extern void FUN_02009E28(u32 param0);
extern void FUN_02009448(u32 param0);
extern void FUN_02009C30(u32 *param0);
extern void FUN_02009E28(u32 *param0);
extern void FUN_02009448(u32 *param0);
extern void FUN_02008E2C(u32 param0);
extern void FUN_0201C350(u32 param0);
extern void FUN_0201D12C();
extern void FUN_0201E08C();
extern void FUN_02009FA0();
extern u32 FUN_0200965C(u32 param0);
extern u32 FUN_020161A4(u32 param0, u32 param1);
extern void FUN_02009668(u32 param0, u32 param1, u32 param2);
extern u32 FUN_0200965C(s32 param0);
extern void FUN_02009668(void *param0, u32 param1, u32 param2);
extern u32 FUN_020096CC(u32 param0);
extern u32 FUN_02008DEC(u32 param0, u32 param1, u32 param2);
extern u32 FUN_02009424(u32 param0, u32 param1);
extern u32 FUN_020093A8(u32 param0, u32 param1, u32 param2, u32 param3);
extern void FUN_02009A90(u32 param0);
extern void FUN_02009D34(u32 param0);
extern u32 FUN_02008DEC(u32 param0, s32 param1, u32 param2);
extern u32 *FUN_02009424(u32 param0, u32 param1);
extern u32 FUN_020093A8(u32 param0, u32 param1, u32 *param2, u32 param3);
extern void FUN_02009A90(u32 *param0);
extern void FUN_02009D34(u32 *param0);
extern u32 FUN_02008BE0(
u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7);
extern u32 FUN_0200BE74(u32 *param0,
u32 *param1,
u32 param2,
s16 param3,
s16 param4,
s16 param5,
u16 param6,
u32 param7,
u32 param8,
u32 param9,
u32 param10,
u32 param11,
u32 param12,
u32 param13);
void *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7);
extern u32 FUN_0201FE94(struct UnkStruct4 *param0);
extern void FUN_02020130(u32 param0, u32 param1);
extern void FUN_02020248(u32 param0, u32 param1);
extern u32 FUN_0200945C(u32 param0, u32 param1);
extern u32 FUN_0200945C(u32 param0, s32 param1);
extern u32 FUN_02008F34(
u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6);
extern void FUN_02009B04(u32 param0);
extern u32 FUN_0200C474(u32 *param0, u32 param1);
extern u32 FUN_02008FEC(
u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7);
u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6, u32 param7);
extern u32 FUN_02009D68(u32 param0);
extern u32 FUN_02009E88(u32 param0, u32 param1);
extern void FUN_02003108(u32 param0, u32 param1, u16 param2, u32 param3);
extern u32 FUN_0200C404(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
extern void FUN_02008AA4(u32 param0,
u32 param1,
u32 param2,
u32 param3,
u32 param4,
u32 param5,
u32 param6,
extern void FUN_02008AA4(struct UnkStruct7 *param0,
s32 param1,
s32 param2,
s32 param3,
s32 param4,
s32 param5,
s32 param6,
u32 param7,
u32 param8,
u32 param9,
@@ -92,12 +75,9 @@ extern void FUN_02008AA4(u32 param0,
extern u8 FUN_020202A0(u32 param0);
extern u32 FUN_020094F0(u32 param0, u32 param1);
extern u32 FUN_02009E54(u32 param0, u32 param1);
extern u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2);
extern u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2);
extern u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2);
extern void FUN_02009CDC(u32 param0);
extern u32 FUN_020090AC(
u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6);
extern u32 FUN_02009530(u32 param0);
extern void FUN_02009490(u32 param0, u32 param1);
extern void FUN_0201D324(u32 param0);
@@ -111,7 +91,6 @@ extern void FUN_02020208(u32 param0);
extern void FUN_0202022C(u32 param0);
extern void FUN_020200A0(u32 param0, u32 param1);
extern u8 FUN_02020128(u32 param0);
extern void FUN_02020248(u32 param0, u32 param1);
extern void FUN_020202A8(u32 param0, u32 param1);
extern u8 FUN_02020300(u32 param0);
extern void FUN_02020238(u32 param0, u8 param1);
@@ -123,7 +102,7 @@ extern void FUN_02020044(u32 param0, u32 *param1);
extern u32 *FUN_0202011C(u32 param0, u16 *param1, u16 *param2);
extern void FUN_020200EC(u32 param0, u32 param1);
extern u32 *FUN_02020120(u32 param0);
extern void FUN_02020064(u32 param0, u32 param1);
extern void FUN_02020064(u32 param0, s32 *param1);
extern void FUN_02020088(u32 param0, u16 param1);
extern u16 FUN_02020124(u32 param0);
extern void FUN_02020100(u32 param0, u32 param1);
@@ -139,7 +118,7 @@ extern void FUN_02009DE0(u32 param0);
THUMB_FUNC struct UnkStruct1 *FUN_0200BB14(u32 heap_id)
{
struct UnkStruct1 *ptr = AllocFromHeap(heap_id, 0x138);
struct UnkStruct1 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct1));
if (ptr == NULL)
{
return NULL;
@@ -156,7 +135,7 @@ THUMB_FUNC struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0)
{
GF_ASSERT(param0 != NULL);
struct UnkStruct2 *ptr = AllocFromHeap(param0->unk000, 0x58);
struct UnkStruct2 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct2));
if (ptr == NULL)
{
return NULL;
@@ -177,7 +156,7 @@ THUMB_FUNC u32 FUN_0200BB68(u32 param0)
return param0 + 0x10;
}
THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3)
THUMB_FUNC u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, u32 param3)
{
GF_ASSERT(param0 != NULL);
@@ -186,13 +165,13 @@ THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3)
return 0;
}
u32 st14[4] = { param2[0], param2[1], param2[2], param0[0] };
u32 st14[4] = { param2[0], param2[1], param2[2], param0->unk000 };
FUN_0201D060(st14, param2[3], param2[4]);
FUN_0201E00C(param3, param0[0]);
FUN_0201E00C(param3, param0->unk000);
NNS_G2dInitOamManagerModule();
if (param0[2] == 1)
if (param0->unk008 == 1)
{
FUN_02009EAC(param1[0],
param1[1],
@@ -202,24 +181,24 @@ THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3)
param1[5],
param1[6],
param1[7],
param0[0]);
param0->unk000);
}
param0[3] = FUN_0201C328(0x20, param0[0]);
param0->unk00c = FUN_0201C328(0x20, param0->unk000);
FUN_0201D168();
FUN_0201E0BC();
return 1;
}
THUMB_FUNC u32 FUN_0200BBF0(u32 *param0, u32 *param1, u32 param2)
THUMB_FUNC u32 FUN_0200BBF0(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 param2)
{
if (param0 == NULL || param1 == NULL)
{
return 0;
}
param1[0] = FUN_02008C9C(param2, param0 + 4, param0[0]);
param1->unk00 = FUN_02008C9C(param2, param0->unk010, param0->unk000);
return 1;
}
@@ -246,34 +225,34 @@ THUMB_FUNC void FUN_0200BC38()
FUN_0201C348();
}
THUMB_FUNC void FUN_0200BC40(u32 *param0)
THUMB_FUNC void FUN_0200BC40(struct UnkStruct2 *param0)
{
FUN_0201FD58(*param0);
FUN_0201FD58(param0->unk00);
}
THUMB_FUNC void FUN_0200BC4C(u32 *param0)
THUMB_FUNC void FUN_0200BC4C(struct UnkStruct2 *param0)
{
if (param0[1] != 0)
if (param0->unk04 != 0)
{
FUN_02008C80(param0[1]);
FUN_02008C80(param0->unk04);
}
}
THUMB_FUNC void FUN_0200BC5C(u32 *param0)
THUMB_FUNC void FUN_0200BC5C(struct UnkStruct2 *param0)
{
for (int i = 0; i < (int)param0[21]; i++)
for (int i = 0; i < (int)param0->unk54; i++)
{
FUN_020096B4(FUN_02009660(param0[2], i));
FUN_020096B4(FUN_02009660(param0->unk08, i));
}
FreeToHeap(param0[2]);
FUN_02009C30(param0[9]);
FUN_02009E28(param0[10]);
FreeToHeap(param0->unk08);
FUN_02009C30(param0->unk24[0]);
FUN_02009E28(param0->unk24[1]);
for (int i = 0; i < (int)param0[21]; i++)
for (int i = 0; i < (int)param0->unk54; i++)
{
FUN_02009448(param0[i + 9]);
FUN_02008E2C(param0[i + 3]);
FUN_02009448(param0->unk24[i]);
FUN_02008E2C(param0->unk0c[i]);
}
}
@@ -289,13 +268,13 @@ THUMB_FUNC void FUN_0200BCB0(u32 *param0)
}
}
THUMB_FUNC void FUN_0200BCD0(u32 *param0, void *param1)
THUMB_FUNC void FUN_0200BCD0(struct UnkStruct1 *param0, struct UnkStruct2 *param1)
{
param0[1]--;
param0->unk004--;
FreeToHeap(param1);
}
THUMB_FUNC void FUN_0200BCE0(u32 *param0, u32 *param1)
THUMB_FUNC void FUN_0200BCE0(struct UnkStruct1 *param0, struct UnkStruct2 *param1)
{
FUN_0200BC40(param1);
FUN_0200BC4C(param1);
@@ -310,10 +289,11 @@ THUMB_FUNC void FUN_0200BD04(u32 *param0)
FreeToHeap(param0);
}
THUMB_FUNC u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2)
THUMB_FUNC u32 FUN_0200BD20(
struct UnkStruct1 *param0, struct UnkStruct2 *param1, const char **param2)
{
int st14 = 6;
u32 *st10 = param2;
const char **st10 = param2;
if (param0 == NULL || param1 == NULL)
{
@@ -325,36 +305,43 @@ THUMB_FUNC u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2)
st14 = 4;
}
param1[21] = st14;
param1->unk54 = st14;
u32 r2 = FUN_0200965C(st14);
param1[2] = AllocFromHeap(param0[0], r2 * st14);
param1->unk08 = AllocFromHeap(param0->unk000, r2 * st14);
for (int i = 0; i < st14; i++)
{
u32 st18 = FUN_02009660(param1[2], i);
u32 st1c = FUN_020161A4(param0[0], st10[i]);
u32 st18 = FUN_02009660(param1->unk08, i);
void *st1c = FUN_020161A4(param0->unk000, st10[i]);
FUN_02009668(st1c, st18, param0[0]);
FUN_02009668(st1c, st18, param0->unk000);
FreeToHeap(st1c);
}
for (int i = 0; i < st14; i++)
{
param1[3 + i] = FUN_02008DEC(FUN_020096CC(FUN_02009660(param1[2], i)), i, param0[0]);
param1->unk0c[i] =
FUN_02008DEC(FUN_020096CC(FUN_02009660(param1->unk08, i)), i, param0->unk000);
}
for (int i = 0; i < st14; i++)
{
u32 st20 = FUN_02009660(param1[2], i);
param1[9 + i] = FUN_02009424(FUN_020096CC(st20), param0[0]);
param1[15 + i] = FUN_020093A8(param1[3 + i], st20, param1[9 + i], param0[0]);
u32 st20 = FUN_02009660(param1->unk08, i);
param1->unk24[i] = FUN_02009424(FUN_020096CC(st20), param0->unk000);
param1->unk3c[i] = FUN_020093A8(param1->unk0c[i], st20, param1->unk24[i], param0->unk000);
}
FUN_02009A90(param1[9]);
FUN_02009D34(param1[10]);
u32 r6 = FUN_020161A4(param0[0], st10[6]);
param1[1] = FUN_02008BE0(
r6, param0[0], param1[3], param1[4], param1[5], param1[6], param1[7], param1[8]);
FUN_02009A90(param1->unk24[0]);
FUN_02009D34(param1->unk24[1]);
void *r6 = FUN_020161A4(param0->unk000, st10[6]);
param1->unk04 = FUN_02008BE0(r6,
param0->unk000,
param1->unk0c[0],
param1->unk0c[1],
param1->unk0c[2],
param1->unk0c[3],
param1->unk0c[4],
param1->unk0c[5]);
FreeToHeap(r6);
return 1;
@@ -393,10 +380,14 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
u32 param12,
u32 param13)
{
#pragma unused(param10)
#pragma unused(param11)
#pragma unused(param12)
#pragma unused(param13)
struct UnkStruct4 st0;
st0.unk00 = param1[0];
st0.unk04 = *(u32 *)(param1[1]) + param2 * 0x24;
st0.unk04 = &(*(struct UnkStruct7 **)(param1[1]))[param2];
float r0;
if (param3 > 0)
@@ -407,7 +398,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
{
r0 = ((float)(param3 << 0xc) - (float)0.5);
}
st0.unk08 = r0;
st0.unk08 = (s32)r0;
if (param4 > 0)
{
@@ -417,7 +408,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
{
r0 = ((float)(param4 << 0xc) - (float)0.5);
}
st0.unk0c = r0;
st0.unk0c = (s32)r0;
if (param5 > 0)
{
@@ -427,7 +418,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
{
r0 = ((float)(param5 << 0xc) - (float)0.5);
}
st0.unk10 = r0;
st0.unk10 = (s32)r0;
if (param9 == 2)
{
@@ -453,13 +444,13 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
return r4;
}
THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2)
THUMB_FUNC u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2)
{
u32 *st0 = param0;
struct UnkStruct1 *st0 = param0;
int i;
int st4 = 6;
if (st0 == 0 || param1 == 0)
if (st0 == NULL || param1 == NULL)
{
return 0;
}
@@ -469,23 +460,23 @@ THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2)
st4 = 4;
}
param1[21] = st4;
param1->unk54 = st4;
for (i = 0; i < st4; i++)
{
param1[3 + i] = FUN_02008DEC(param2[i], i, st0[0]);
param1->unk0c[i] = FUN_02008DEC(param2[i], i, st0->unk000);
}
for (i = 0; i < st4; i++)
{
if (param2[i] != 0)
{
param1[9 + i] = FUN_02009424(param2[i], st0[0]);
param1[15 + i] = 0;
param1->unk24[i] = FUN_02009424(param2[i], st0->unk000);
param1->unk3c[i] = 0;
for (int j = 0; j < (int)((u32 *)param1[9 + i])[1]; j++)
for (int j = 0; j < (int)((u32 *)param1->unk24[i])[1]; j++)
{
((u32 *)(((u32 *)param1[9 + i])[0]))[j] = 0;
((u32 *)(((u32 *)param1->unk24[i])[0]))[j] = 0;
}
}
}
@@ -494,22 +485,22 @@ THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2)
}
THUMB_FUNC u32 FUN_0200C00C(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6)
{
if (FUN_0200945C(param1[3], param6) == 0)
if (FUN_0200945C(param1->unk0c[0], param6) == 0)
{
return 0;
}
u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]);
u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]);
if (r5 != 0)
{
FUN_02009B04(r5);
FUN_0200C474(param1[9], r5);
FUN_0200C474(param1->unk24[0], r5);
return 1;
}
ErrorHandling();
GF_AssertFail();
if (r5 != 0)
{
return 1;
@@ -519,87 +510,88 @@ THUMB_FUNC u32 FUN_0200C00C(
}
THUMB_FUNC s32 FUN_0200C06C(u32 *param0,
u32 *param1,
struct UnkStruct2 *param1,
u32 param2,
u32 param3,
u32 param4,
u32 param5,
u32 param6,
u32 param7)
s32 param7)
{
if (FUN_0200945C(param1[4], param7) == 0)
if (FUN_0200945C(param1->unk0c[1], param7) == 0)
{
return -1;
}
u32 r5 = FUN_02008FEC(param1[4], param2, param3, param4, param7, param6, param5, param0[0]);
u32 r5 = FUN_02008FEC(param1->unk0c[1], param2, param3, param4, param7, param6, param5, param0[0]);
if (r5 != 0)
{
GF_ASSERT(FUN_02009D68(r5) == 1);
FUN_0200C474(param1[10], r5);
FUN_0200C474(param1->unk24[1], r5);
return (s8)FUN_02009E88(r5, param6);
}
ErrorHandling();
GF_AssertFail();
return -1;
}
THUMB_FUNC u8 FUN_0200C0DC(u32 param0,
u32 param1,
u32 *param2,
u32 *param3,
struct UnkStruct2 *param3,
u32 param4,
u32 param5,
u32 param6,
u32 param7,
u32 param8,
u32 param9)
s32 param9)
{
s32 r4 = FUN_0200C06C(param2, param3, param4, param5, param6, param7, param8, param9);
if (r4 != -1)
{
FUN_02003108(param0, param1, r4 << 4, param7 << 5);
FUN_02003108(param0, param1, (u16)(r4 << 4), param7 << 5);
}
return r4;
return (u8)r4;
}
THUMB_FUNC u32 FUN_0200C124(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5)
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5)
{
return FUN_0200C404(param0, param1, param2, param3, param4, 2, param5);
}
THUMB_FUNC u32 FUN_0200C13C(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5)
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5)
{
return FUN_0200C404(param0, param1, param2, param3, param4, 3, param5);
}
THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
THUMB_FUNC struct UnkStruct5 *FUN_0200C154(
struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2)
{
struct UnkStruct4 st44;
s32 st2c[6];
u32 *ptr = AllocFromHeap(param0[0], 0x10);
struct UnkStruct5 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct5));
if (ptr == NULL)
{
return 0;
}
ptr[2] = AllocFromHeap(param0[0], 0x8);
if (ptr[2] == 0)
ptr->unk08 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct6));
if (ptr->unk08 == 0)
{
return 0;
}
((u32 *)ptr[2])[0] = AllocFromHeap(param0[0], 0x24);
ptr[1] = ((u32 *)ptr[2])[0];
if (((u32 *)ptr[2])[0] == 0)
ptr->unk08->unk0 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct7));
ptr->unk04 = ptr->unk08->unk0;
if (ptr->unk08->unk0 == NULL)
{
if (ptr[2] != 0)
if (ptr->unk08 != NULL)
{
FreeToHeap(ptr[2]);
FreeToHeap(ptr->unk08);
}
return 0;
@@ -607,28 +599,28 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
for (int i = 0; i < 6; i++)
{
st2c[i] = param2[5 + i];
st2c[i] = (s32)param2[5 + i];
}
if (param1[7] == 0 || param1[8] == 0)
if (param1->unk0c[4] == 0 || param1->unk0c[5] == 0)
{
st2c[4] = -1;
st2c[5] = -1;
}
else
{
if (st2c[4] != -1 && FUN_0200945C(param1[7], st2c[4]) == 0)
if (st2c[4] != -1 && FUN_0200945C(param1->unk0c[4], st2c[4]) == 0)
{
st2c[4] = -1;
}
if (st2c[5] != -1 && FUN_0200945C(param1[8], st2c[5]) == 0)
if (st2c[5] != -1 && FUN_0200945C(param1->unk0c[5], st2c[5]) == 0)
{
st2c[5] = -1;
}
}
FUN_02008AA4(ptr[1],
FUN_02008AA4(ptr->unk04,
st2c[0],
st2c[1],
st2c[2],
@@ -637,15 +629,15 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
st2c[5],
param2[12],
param2[11],
param1[3],
param1[4],
param1[5],
param1[6],
param1[7],
param1[8]);
param1->unk0c[0],
param1->unk0c[1],
param1->unk0c[2],
param1->unk0c[3],
param1->unk0c[4],
param1->unk0c[5]);
st44.unk00 = param1[0];
st44.unk04 = ptr[1];
st44.unk00 = param1->unk00;
st44.unk04 = ptr->unk04;
float r0;
if (((s16 *)param2)[0] > 0)
{
@@ -655,7 +647,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
{
r0 = ((float)(((s16 *)param2)[0] << 0xc) - (float)0.5);
}
st44.unk08 = r0;
st44.unk08 = (s32)r0;
if (((s16 *)param2)[1] > 0)
{
@@ -665,7 +657,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
{
r0 = ((float)(((s16 *)param2)[1] << 0xc) - (float)0.5);
}
st44.unk0c = r0;
st44.unk0c = (s32)r0;
if (((s16 *)param2)[2] > 0)
{
@@ -675,7 +667,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
{
r0 = ((float)(((s16 *)param2)[2] << 0xc) - (float)0.5);
}
st44.unk10 = r0;
st44.unk10 = (s32)r0;
if (param2[4] == 2)
{
@@ -688,21 +680,21 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
st44.unk20 = 0;
st44.unk24 = param2[2];
st44.unk28 = param2[4];
st44.unk2c = param0[0];
st44.unk2c = param0->unk000;
ptr[0] = FUN_0201FE94(&st44);
ptr[3] = param2[12];
ptr->unk00 = FUN_0201FE94(&st44);
ptr->unk0c = param2[12];
if (ptr[0] != 0)
if (ptr->unk00 != 0)
{
u8 r6 = FUN_020202A0(ptr[0]);
u8 r6 = FUN_020202A0(ptr->unk00);
FUN_02020130(ptr[0], ((u16 *)param2)[3]);
FUN_02020248(ptr[0], r6 + param2[3]);
FUN_02020130(ptr->unk00, ((u16 *)param2)[3]);
FUN_02020248(ptr->unk00, r6 + param2[3]);
}
else
{
ErrorHandling();
GF_AssertFail();
}
return ptr;
@@ -718,36 +710,36 @@ THUMB_FUNC u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2)
return FUN_02009E88(FUN_020094F0(param0[4], param1), param2);
}
THUMB_FUNC u32 FUN_0200C358(u32 *param0, u32 param1)
THUMB_FUNC u32 FUN_0200C358(struct UnkStruct2 *param0, u32 param1)
{
return FUN_0200C4F4(param0[3], param0[9], param1);
return FUN_0200C4F4(param0->unk0c[0], param0->unk24[0], param1);
}
THUMB_FUNC u32 FUN_0200C368(u32 *param0, u32 param1)
THUMB_FUNC u32 FUN_0200C368(struct UnkStruct2 *param0, u32 param1)
{
return FUN_0200C548(param0[4], param0[10], param1);
return FUN_0200C548(param0->unk0c[1], param0->unk24[1], param1);
}
THUMB_FUNC u32 FUN_0200C378(u32 *param0, u32 param1)
THUMB_FUNC u32 FUN_0200C378(struct UnkStruct2 *param0, u32 param1)
{
return FUN_0200C4A8(param0[5], param0[11], param1);
return FUN_0200C4A8(param0->unk0c[2], param0->unk24[2], param1);
}
THUMB_FUNC u32 FUN_0200C388(u32 *param0, u32 param1)
THUMB_FUNC u32 FUN_0200C388(struct UnkStruct2 *param0, u32 param1)
{
return FUN_0200C4A8(param0[6], param0[12], param1);
return FUN_0200C4A8(param0->unk0c[3], param0->unk24[3], param1);
}
THUMB_FUNC void FUN_0200C398(u32 param0, u32 *param1)
THUMB_FUNC void FUN_0200C398(struct UnkStruct1 *param0, struct UnkStruct2 *param1)
{
FUN_0200BC40(param1);
FUN_02009C30(param1[9]);
FUN_02009E28(param1[10]);
FUN_02009C30(param1->unk24[0]);
FUN_02009E28(param1->unk24[1]);
for (int i = 0; i < (int)param1[21]; i++)
for (int i = 0; i < (int)param1->unk54; i++)
{
FUN_02009448(param1[9 + i]);
FUN_02008E2C(param1[3 + i]);
FUN_02009448(param1->unk24[i]);
FUN_02008E2C(param1->unk0c[i]);
}
FUN_0200BCD0(param0, param1);
@@ -766,21 +758,21 @@ THUMB_FUNC void FUN_0200C3DC(u32 *param0)
}
THUMB_FUNC u32 FUN_0200C404(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6)
{
if (FUN_0200945C(param1[3 + param5], param6) == 0)
if (FUN_0200945C(param1->unk0c[param5], param6) == 0)
{
return 0;
}
u32 r5 = FUN_020090AC(param1[3 + param5], param2, param3, param4, param6, param5, param0[0]);
u32 r5 = FUN_020090AC(param1->unk0c[param5], param2, param3, param4, param6, param5, param0[0]);
if (r5 != 0)
{
u32 r4 = FUN_0200C474(param1[9 + param5], r5);
u32 r4 = FUN_0200C474(param1->unk24[param5], r5);
GF_ASSERT(r4 == 1);
return r4;
}
ErrorHandling();
GF_AssertFail();
if (r5 != 0)
{
return 1;
@@ -959,12 +951,12 @@ THUMB_FUNC void FUN_0200C644(u32 *param0, u32 param1)
THUMB_FUNC u8 FUN_0200C650(u32 param0)
{
FUN_02020128(param0);
return FUN_02020128(param0);
}
THUMB_FUNC u8 FUN_0200C658(u32 *param0)
{
FUN_0200C650(*param0);
return FUN_0200C650(*param0);
}
THUMB_FUNC void FUN_0200C664(u32 param0, u32 param1)
@@ -994,7 +986,7 @@ THUMB_FUNC u8 FUN_0200C68C(u32 *param0)
THUMB_FUNC void FUN_0200C698(u32 param0, u32 param1)
{
FUN_02020238(param0, param1);
FUN_02020238(param0, (u8)param1);
}
THUMB_FUNC u8 FUN_0200C6A4(u32 *param0)
@@ -1070,18 +1062,18 @@ THUMB_FUNC void FUN_0200C75C(u32 param0, u16 *param1, u16 *param2)
{
u32 *r4 = FUN_0202011C(param0, param1, param2);
param1[0] = (int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc;
param1[0] = (u16)((int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc);
if (FUN_02020380(param0) == 2)
{
u32 r1 = r4[1] - 0xc0000;
param2[0] = (int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc;
param2[0] = (u16)((int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc);
return;
}
param2[0] = (int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc;
param2[0] = (u16)((int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc);
}
THUMB_FUNC void FUN_0200C7A0(u32 *param0, u16 *param1, u16 *param2)
@@ -1093,18 +1085,18 @@ THUMB_FUNC void FUN_0200C7AC(u32 param0, u16 *param1, u16 *param2, u32 param3)
{
u32 *r4 = FUN_0202011C(param0, param1, param2);
param1[0] = (int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc;
param1[0] = (u16)((int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc);
if (FUN_02020380(param0) == 2)
{
u32 r1 = r4[1] - param3;
param2[0] = (int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc;
param2[0] = (u16)((int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc);
return;
}
param2[0] = (int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc;
param2[0] = (u16)((int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc);
}
THUMB_FUNC void FUN_0200C7F0(u32 *param0, u16 *param1, u16 *param2, u32 param3)
@@ -1142,10 +1134,10 @@ THUMB_FUNC void FUN_0200C840(u32 *param0, u32 param1)
THUMB_FUNC void FUN_0200C84C(u32 param0, f32 param1, f32 param2)
{
int *r4 = FUN_02020120(param0);
s32 *r4 = FUN_02020120(param0);
r4[0] = param1 * 0x1000;
r4[1] = param2 * 0x1000;
r4[0] = (s32)(param1 * 0x1000);
r4[1] = (s32)(param2 * 0x1000);
FUN_02020064(param0, r4);
}
@@ -1213,23 +1205,23 @@ THUMB_FUNC void FUN_0200C90C(u32 *param0, u32 param1)
}
THUMB_FUNC u32 FUN_0200C918(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6)
{
if (FUN_0200945C(param1[3], param6) == 0)
if (FUN_0200945C(param1->unk0c[0], param6) == 0)
{
return 0;
}
u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]);
u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]);
if (r5 != 0)
{
FUN_02009AC4(r5);
FUN_0200C474(param1[9], r5);
FUN_0200C474(param1->unk24[0], r5);
return 1;
}
ErrorHandling();
GF_AssertFail();
if (r5 != 0)
{
return 1;
@@ -1239,23 +1231,23 @@ THUMB_FUNC u32 FUN_0200C918(
}
THUMB_FUNC u32 FUN_0200C978(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6)
{
if (FUN_0200945C(param1[3], param6) == 0)
if (FUN_0200945C(param1->unk0c[0], param6) == 0)
{
return 0;
}
u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]);
u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]);
if (r5 != 0)
{
FUN_02009B78(r5);
FUN_0200C474(param1[9], r5);
FUN_0200C474(param1->unk24[0], r5);
return 1;
}
ErrorHandling();
GF_AssertFail();
if (r5 != 0)
{
return 1;

View File

@@ -5,14 +5,19 @@ struct UnkStruct1
u32 unk000;
u32 unk004;
u32 unk008;
u8 unk00c[0x12c];
u32 unk00c;
u8 unk010[0x128];
};
struct UnkStruct2
{
u8 unk00[0xc];
u32 unk00;
u32 unk04;
u32 *unk08;
u32 unk0c[6];
u8 unk24[0x34];
u32 *unk24[6];
u32 unk3c[6];
s32 unk54;
};
struct UnkStruct3
@@ -31,10 +36,14 @@ struct UnkStruct3
u32 unk24;
};
struct UnkStruct7 {
u8 unk00[0x24];
};
struct UnkStruct4
{
u32 unk00;
u32 unk04;
struct UnkStruct7 *unk04;
s32 unk08;
s32 unk0c;
s32 unk10;
@@ -47,23 +56,38 @@ struct UnkStruct4
u32 unk2c;
};
struct UnkStruct6 {
struct UnkStruct7 *unk0;
u32 unk4;
};
struct UnkStruct5 {
u32 unk00;
struct UnkStruct7 *unk04;
struct UnkStruct6 *unk08;
u32 unk0c;
};
struct UnkStruct1 *FUN_0200BB14(u32 heap_id);
struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0);
u32 FUN_0200BB68(u32 param0);
u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3);
u32 FUN_0200BBF0(u32 *param0, u32 *param1, u32 param2);
u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, u32 param3);
u32 FUN_0200BBF0(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 param2);
void FUN_0200BC14(u32 param0);
void FUN_0200BC1C(u32 *param0);
void FUN_0200BC30();
void FUN_0200BC38();
void FUN_0200BC40(u32 *param0);
void FUN_0200BC4C(u32 *param0);
void FUN_0200BC5C(u32 *param0);
void FUN_0200BC40(struct UnkStruct2 *param0);
void FUN_0200BC4C(struct UnkStruct2 *param0);
void FUN_0200BC5C(struct UnkStruct2 *param0);
void FUN_0200BCB0(u32 *param0);
void FUN_0200BCD0(u32 *param0, void *param1);
void FUN_0200BCE0(u32 *param0, u32 *param1);
void FUN_0200BCD0(struct UnkStruct1 *param0, struct UnkStruct2 *param1);
void FUN_0200BCE0(struct UnkStruct1 *param0, struct UnkStruct2 *param1);
void FUN_0200BD04(u32 *param0);
u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2);
u32 FUN_0200BD20(struct UnkStruct1 *param0, struct UnkStruct2 *param1, const char **param2);
u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct3 *param2);
u32 FUN_0200BE74(u32 *param0,
u32 *param1,
@@ -79,40 +103,40 @@ u32 FUN_0200BE74(u32 *param0,
u32 param11,
u32 param12,
u32 param13);
u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2);
u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2);
u32 FUN_0200C00C(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6);
s32 FUN_0200C06C(u32 *param0,
u32 *param1,
struct UnkStruct2 *param1,
u32 param2,
u32 param3,
u32 param4,
u32 param5,
u32 param6,
u32 param7);
s32 param7);
u8 FUN_0200C0DC(u32 param0,
u32 param1,
u32 *param2,
u32 *param3,
struct UnkStruct2 *param3,
u32 param4,
u32 param5,
u32 param6,
u32 param7,
u32 param8,
u32 param9);
u32 FUN_0200C124(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5);
u32 FUN_0200C13C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5);
u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2);
s32 param9);
u32 FUN_0200C124(u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5);
u32 FUN_0200C13C(u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5);
struct UnkStruct5 *FUN_0200C154(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2);
u32 FUN_0200C334(u32 *param0, u32 param1);
u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2);
u32 FUN_0200C358(u32 *param0, u32 param1);
u32 FUN_0200C368(u32 *param0, u32 param1);
u32 FUN_0200C378(u32 *param0, u32 param1);
u32 FUN_0200C388(u32 *param0, u32 param1);
void FUN_0200C398(u32 param0, u32 *param1);
u32 FUN_0200C358(struct UnkStruct2 *param0, u32 param1);
u32 FUN_0200C368(struct UnkStruct2 *param0, u32 param1);
u32 FUN_0200C378(struct UnkStruct2 *param0, u32 param1);
u32 FUN_0200C388(struct UnkStruct2 *param0, u32 param1);
void FUN_0200C398(struct UnkStruct1 *param0, struct UnkStruct2 *param1);
void FUN_0200C3DC(u32 *param0);
u32 FUN_0200C404(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6);
u32 FUN_0200C474(u32 *param0, u32 param1);
u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2);
u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2);
@@ -173,9 +197,9 @@ void FUN_0200C8F8(u32 *param0, u32 param1);
void FUN_0200C904(u32 param0, u32 param1);
void FUN_0200C90C(u32 *param0, u32 param1);
u32 FUN_0200C918(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6);
u32 FUN_0200C978(
u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6);
void FUN_0200C9D8(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5);
void FUN_0200CA0C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5);
u32 FUN_0200CA40(u32 *param0);