mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-11 02:25:57 -05:00
file splitting, structs unificiation
This commit is contained in:
@@ -5,21 +5,7 @@
|
||||
#include "structs/str_position.h"
|
||||
#include "code_800E9A8.h"
|
||||
|
||||
typedef struct unkStruct_80416E0
|
||||
{
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 dir;
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
s32 unk14;
|
||||
u32 unk18;
|
||||
unkStruct_2039DB0 unk1C;
|
||||
} unkStruct_80416E0;
|
||||
|
||||
u32 sub_800E890(unkStruct_80416E0 *);
|
||||
s32 sub_800E890(unkStruct_80416E0 *);
|
||||
|
||||
void sub_800DC14(s32);
|
||||
bool8 sub_800E9A8(s32);
|
||||
|
||||
@@ -16,17 +16,17 @@ struct unkStruct_203B0CC_x94
|
||||
u8 unk20;
|
||||
};
|
||||
|
||||
struct unkStruct_203B0CC_xC
|
||||
typedef struct unkStruct_80416E0
|
||||
{
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
s32 dir;
|
||||
DungeonPos pos1;
|
||||
DungeonPos pos2;
|
||||
s32 unk14;
|
||||
DungeonPos unk18;
|
||||
DungeonPos unk1c;
|
||||
s32 unk20;
|
||||
s32 unk24;
|
||||
u32 unk18;
|
||||
unkStruct_2039DB0 spriteMasks;
|
||||
};
|
||||
} unkStruct_80416E0;
|
||||
|
||||
struct unkStruct_203B0CC_sub
|
||||
{
|
||||
@@ -34,7 +34,7 @@ struct unkStruct_203B0CC_sub
|
||||
u32 unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
struct unkStruct_203B0CC_xC unkC;
|
||||
unkStruct_80416E0 unkC;
|
||||
u32 unk34;
|
||||
u32 effectID;
|
||||
s32 paletteNum;
|
||||
|
||||
@@ -82,7 +82,6 @@ SECTIONS {
|
||||
src/code_800D090.o(.text);
|
||||
src/code_800D090_1.o(.text);
|
||||
src/code_800DAC0.o(.text);
|
||||
src/code_800E9A8.o(.text);
|
||||
src/code_800E9E4.o(.text);
|
||||
src/code_800ED38.o(.text);
|
||||
src/code_800F034.o(.text);
|
||||
|
||||
@@ -25,19 +25,41 @@ struct unkStruct_800F18C
|
||||
u32 counter;
|
||||
};
|
||||
|
||||
struct UnkStruct_8040094
|
||||
{
|
||||
u16 unk0;
|
||||
s16 unk2;
|
||||
DungeonPos unk4;
|
||||
DungeonPos unk8;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
};
|
||||
|
||||
extern s16 gUnknown_2026E4E;
|
||||
|
||||
extern s32 sub_800E2C0(s32);
|
||||
extern s32 sub_800E900(s32 a0);
|
||||
extern void sub_8009BE4(void);
|
||||
extern void sub_800F204(OpenedFile *file);
|
||||
extern struct unkStruct_800F18C *sub_800F18C(s32);
|
||||
extern void sub_800DCA8(struct unkStruct_203B0CC_sub *);
|
||||
|
||||
extern void sub_800F034(void);
|
||||
extern void sub_800ED38(u32);
|
||||
extern void sub_800F078();
|
||||
extern void sub_800ED64();
|
||||
extern void sub_800ED80();
|
||||
extern void sub_800F094();
|
||||
extern void sub_809971C(u16 a0, const RGB *a1, int a2);
|
||||
|
||||
s32 sub_800E2B8(OpenedFile *a0);
|
||||
OpenedFile *sub_800F1C0(u32 animType, s32 effectID);
|
||||
s32 sub_800E2F0(void);
|
||||
s32 sub_800E750(s32 a0, s32 a1);
|
||||
s32 sub_800E700(s32);
|
||||
void sub_800F15C(s32 effectID);
|
||||
unkStruct_80C183C *sub_800ECD0(s32 param_1);
|
||||
|
||||
extern const unkStruct_2039DB0 gUnknown_80B9C60;
|
||||
|
||||
void sub_800DAC0(u32 fileSelection)
|
||||
{
|
||||
@@ -425,9 +447,6 @@ bool8 sub_800DE38(struct unkStruct_203B0CC_sub *a1)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
extern s16 gUnknown_2026E4E;
|
||||
extern void sub_809971C(u16 a0, const RGB *a1, int a2);
|
||||
|
||||
static inline const EfoFileData *GetFileEfo(struct unkStruct_203B0CC_sub *a0)
|
||||
{
|
||||
return a0->unkB8->data;
|
||||
@@ -510,25 +529,21 @@ bool8 sub_800DE8C(struct unkStruct_203B0CC_sub *a0, DungeonPos *unused)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
s32 sub_800E2B8(OpenedFile *a0);
|
||||
OpenedFile *sub_800F1C0(u32 animType, s32 effectID);
|
||||
s32 sub_800E2F0(void);
|
||||
|
||||
void sub_800E0B4(struct unkStruct_203B0CC_sub *r5)
|
||||
{
|
||||
s32 r2;
|
||||
unkStruct_80B9CC4 *r6 = sub_800ECA4(r5->unkC.unkC);
|
||||
unkStruct_80B9CC4 *r6 = sub_800ECA4(r5->unkC.unk0);
|
||||
r5->unk34 = r6->animType;
|
||||
r5->effectID = r6->effectId;
|
||||
r5->unk4C = r6->unk10;
|
||||
r5->unk50 = r5->unkC.unk10 + r6->unk14;
|
||||
r5->unk50 = r5->unkC.unk4 + r6->unk14;
|
||||
r5->unk55 = r6->loop;
|
||||
r5->unk54 = r6->unk20;
|
||||
r2 = sub_800E2B8(r5->unkB8);
|
||||
r5->unk8 = r2;
|
||||
r5->unk40 = r6->animId;
|
||||
if (r5->unkC.unk14 != -1 && (r2 % 8) == 0) {
|
||||
r5->unk40 += r5->unkC.unk14;
|
||||
if (r5->unkC.dir != -1 && (r2 % 8) == 0) {
|
||||
r5->unk40 += r5->unkC.dir;
|
||||
}
|
||||
|
||||
switch (r5->unk34) {
|
||||
@@ -572,12 +587,12 @@ void sub_800E0B4(struct unkStruct_203B0CC_sub *r5)
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_800E208(s32 a0, struct unkStruct_203B0CC_xC *a1)
|
||||
s32 sub_800E208(s32 a0, unkStruct_80416E0 *a1)
|
||||
{
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr = gUnknown_203B0CC->unk0;
|
||||
|
||||
if (a1->unkC == 0)
|
||||
if (a1->unk0 == 0)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < UNK_203B0CC_ARR_COUNT; i++, ptr++) {
|
||||
@@ -585,7 +600,7 @@ s32 sub_800E208(s32 a0, struct unkStruct_203B0CC_xC *a1)
|
||||
unkStruct_80B9CC4 *strPtr;
|
||||
|
||||
MemoryClear8(ptr, sizeof(*ptr));
|
||||
strPtr = sub_800ECA4(a1->unkC);
|
||||
strPtr = sub_800ECA4(a1->unk0);
|
||||
if (strPtr->animType == 2 && gUnknown_203B0CC->fileSelection != 1)
|
||||
return -1;
|
||||
if (strPtr->animType == 1 && gUnknown_203B0CC->fileSelection != 0)
|
||||
@@ -631,31 +646,17 @@ s32 sub_800E2F0(void)
|
||||
return prev;
|
||||
}
|
||||
|
||||
struct UnkStruct_sub_800E308_1
|
||||
{
|
||||
u16 unk0;
|
||||
s16 unk2;
|
||||
DungeonPos unk4;
|
||||
DungeonPos unk8;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
};
|
||||
|
||||
s32 sub_800E750(s32 a0, s32 a1);
|
||||
|
||||
extern const unkStruct_2039DB0 gUnknown_80B9C60;
|
||||
|
||||
s32 sub_800E308(struct UnkStruct_sub_800E308_1 *a0, DungeonPos *a1)
|
||||
s32 sub_800E308(struct UnkStruct_8040094 *a0, DungeonPos *a1)
|
||||
{
|
||||
s32 id;
|
||||
struct unkStruct_203B0CC_xC sp = {
|
||||
.unkC = sub_800ECB8(a0->unk0)->unk6,
|
||||
.unk10 = a0->unk10,
|
||||
.unk14 = a0->unkC,
|
||||
.unk18 = a0->unk4,
|
||||
.unk1c = a0->unk8,
|
||||
.unk20 = sub_800E750(a0->unk2, a0->unk0),
|
||||
.unk24 = 0xFFFF,
|
||||
unkStruct_80416E0 sp = {
|
||||
.unk0 = sub_800ECB8(a0->unk0)->unk6,
|
||||
.unk4 = a0->unk10,
|
||||
.dir = a0->unkC,
|
||||
.pos1 = a0->unk4,
|
||||
.pos2 = a0->unk8,
|
||||
.unk14 = sub_800E750(a0->unk2, a0->unk0),
|
||||
.unk18 = 0xFFFF,
|
||||
.spriteMasks = gUnknown_80B9C60,
|
||||
};
|
||||
s32 retVal = sub_800E208(2, &sp);
|
||||
@@ -669,7 +670,7 @@ s32 sub_800E308(struct UnkStruct_sub_800E308_1 *a0, DungeonPos *a1)
|
||||
ptr->unkBC = a0->unk4;
|
||||
ptr->unkC0 = *a1;
|
||||
ptr->unkC4 = a0->unk2;
|
||||
ptr->unkC8 = ptr->unkC.unk1c;
|
||||
ptr->unkC8 = ptr->unkC.pos2;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
@@ -686,82 +687,66 @@ void sub_800E3AC(s32 a0, DungeonPos *pos, s32 a2)
|
||||
return;
|
||||
|
||||
ptr = &gUnknown_203B0CC->unk0[id];
|
||||
ptr->unkC.unk18 = *pos;
|
||||
ptr->unkC.pos1 = *pos;
|
||||
|
||||
val = max(abs(ptr->unkC0.x - ptr->unkBC.x), abs(ptr->unkC0.y - ptr->unkBC.y)) / 4;
|
||||
valMinus1 = val - 1;
|
||||
|
||||
ptr->unkC.unk1c.y += 9;
|
||||
ptr->unkC.unk1c.x *= valMinus1;
|
||||
ptr->unkC.unk1c.y *= valMinus1;
|
||||
ptr->unkC.unk1c.x /= val;
|
||||
ptr->unkC.unk1c.y /= val;
|
||||
ptr->unkC.unk1c.y -= 9;
|
||||
ptr->unkC.pos2.y += 9;
|
||||
ptr->unkC.pos2.x *= valMinus1;
|
||||
ptr->unkC.pos2.y *= valMinus1;
|
||||
ptr->unkC.pos2.x /= val;
|
||||
ptr->unkC.pos2.y /= val;
|
||||
ptr->unkC.pos2.y -= 9;
|
||||
|
||||
ptr->unkC.unk24 = a2;
|
||||
ptr->unkC.unk18 = a2;
|
||||
}
|
||||
|
||||
s32 sub_800E448(u8 a0, DungeonPos *pos)
|
||||
{
|
||||
struct unkStruct_203B0CC_xC sp = {
|
||||
.unkC = sub_800ECE4(a0),
|
||||
.unk10 = 0,
|
||||
unkStruct_80416E0 sp = {
|
||||
.unk0 = sub_800ECE4(a0),
|
||||
.unk4 = 0,
|
||||
.dir = -1,
|
||||
.pos1 = *pos,
|
||||
.pos2 = {0, 0},
|
||||
.unk14 = -1,
|
||||
.unk18 = *pos,
|
||||
.unk1c = {0, 0},
|
||||
.unk20 = -1,
|
||||
.unk24 = 0xFFFF,
|
||||
.unk18 = 0xFFFF,
|
||||
.spriteMasks = gUnknown_80B9C60,
|
||||
};
|
||||
return sub_800E208(3, &sp);
|
||||
}
|
||||
|
||||
s32 sub_800E700(s32);
|
||||
|
||||
s32 sub_800E49C(u8 a0, DungeonPos *pos, DungeonPos posArray[4], bool8 a3, s32 a4)
|
||||
{
|
||||
s32 r4 = a3 ? sub_800ECF8(a0) : sub_800ED0C(a0);
|
||||
s32 r5 = sub_800E700(r4);
|
||||
struct unkStruct_203B0CC_xC sp = {
|
||||
.unkC = r4,
|
||||
.unk10 = 0,
|
||||
unkStruct_80416E0 sp = {
|
||||
.unk0 = r4,
|
||||
.unk4 = 0,
|
||||
.dir = -1,
|
||||
.pos1 = *pos,
|
||||
.pos2 = {0, 0},
|
||||
.unk14 = -1,
|
||||
.unk18 = *pos,
|
||||
.unk1c = {0, 0},
|
||||
.unk20 = -1,
|
||||
.unk24 = 0,
|
||||
.unk18 = 0,
|
||||
.spriteMasks = gUnknown_80B9C60,
|
||||
};
|
||||
|
||||
sp.unk24 = a4;
|
||||
sp.unk18 = a4;
|
||||
if (a3) {
|
||||
if (r5 != -1) {
|
||||
sp.unk20 = r5;
|
||||
sp.unk1c = posArray[r5];
|
||||
sp.unk14 = r5;
|
||||
sp.pos2 = posArray[r5];
|
||||
}
|
||||
}
|
||||
else {
|
||||
sp.unk20 = 3;
|
||||
sp.unk1c = posArray[3];
|
||||
sp.unk14 = 3;
|
||||
sp.pos2 = posArray[3];
|
||||
}
|
||||
|
||||
return sub_800E208(4, &sp);
|
||||
}
|
||||
|
||||
// TODO: MERGE WITH UnkStruct_sub_800E308_1
|
||||
|
||||
struct UnkStruct_8040094
|
||||
{
|
||||
u16 unk0;
|
||||
s16 unk2;
|
||||
DungeonPos unk4;
|
||||
DungeonPos unk8;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
};
|
||||
|
||||
void sub_800F15C(s32 effectID);
|
||||
|
||||
s32 sub_800E52C(struct UnkStruct_8040094 *a0)
|
||||
{
|
||||
s32 i;
|
||||
@@ -777,23 +762,23 @@ s32 sub_800E52C(struct UnkStruct_8040094 *a0)
|
||||
{ -100, 32 },
|
||||
{ -120, -48 },
|
||||
};
|
||||
struct unkStruct_203B0CC_xC sp[8];
|
||||
unkStruct_80416E0 sp[8];
|
||||
s32 ret = 0;
|
||||
for (i = 0; i < 8; i++) {
|
||||
s32 possibleRet;
|
||||
s32 id;
|
||||
struct unkStruct_203B0CC_xC *curr = &sp[i];
|
||||
unkStruct_80416E0 *curr = &sp[i];
|
||||
|
||||
curr->unkC = sub_800ECB8(a0->unk0)->unk2;
|
||||
curr->unk10 = a0->unk10;
|
||||
curr->unk14 = a0->unkC;
|
||||
curr->unk18 = a0->unk4;
|
||||
curr->unk18.y += 64;
|
||||
curr->unk1c = a0->unk8;
|
||||
curr->unk1c.x += positions[i].x;
|
||||
curr->unk1c.y += positions[i].y - 64;
|
||||
curr->unk20 = sub_800E750(a0->unk2, a0->unk0);
|
||||
curr->unk24 = 0xFFFF;
|
||||
curr->unk0 = sub_800ECB8(a0->unk0)->unk2;
|
||||
curr->unk4 = a0->unk10;
|
||||
curr->dir = a0->unkC;
|
||||
curr->pos1 = a0->unk4;
|
||||
curr->pos1.y += 64;
|
||||
curr->pos2 = a0->unk8;
|
||||
curr->pos2.x += positions[i].x;
|
||||
curr->pos2.y += positions[i].y - 64;
|
||||
curr->unk14 = sub_800E750(a0->unk2, a0->unk0);
|
||||
curr->unk18 = 0xFFFF;
|
||||
curr->spriteMasks = gUnknown_80B9C60;
|
||||
possibleRet = sub_800E208(1, curr);
|
||||
id = sub_800E2C0(possibleRet);
|
||||
@@ -813,14 +798,14 @@ s32 sub_800E52C(struct UnkStruct_8040094 *a0)
|
||||
return ret;
|
||||
}
|
||||
else {
|
||||
struct unkStruct_203B0CC_xC sp = {
|
||||
.unkC = sub_800ECB8(a0->unk0)->unk2,
|
||||
.unk10 = a0->unk10,
|
||||
.unk14 = a0->unkC,
|
||||
.unk18 = a0->unk4,
|
||||
.unk1c = a0->unk8,
|
||||
.unk20 = sub_800E750(a0->unk2, a0->unk0),
|
||||
.unk24 = 0xFFFF,
|
||||
unkStruct_80416E0 sp = {
|
||||
.unk0 = sub_800ECB8(a0->unk0)->unk2,
|
||||
.unk4 = a0->unk10,
|
||||
.dir = a0->unkC,
|
||||
.pos1 = a0->unk4,
|
||||
.pos2 = a0->unk8,
|
||||
.unk14 = sub_800E750(a0->unk2, a0->unk0),
|
||||
.unk18 = 0xFFFF,
|
||||
.spriteMasks = gUnknown_80B9C60,
|
||||
};
|
||||
return sub_800E208(1, &sp);
|
||||
@@ -832,13 +817,13 @@ UNUSED static void sub_800E698(s32 a0, DungeonPos *pos1, DungeonPos *pos2)
|
||||
s32 id = sub_800E2C0(a0);
|
||||
if (id != -1) {
|
||||
struct unkStruct_203B0CC_sub *ptr = &gUnknown_203B0CC->unk0[id];
|
||||
ptr->unkC.unk18 = *pos1;
|
||||
if (ptr->unkC.unk20 != -1) {
|
||||
ptr->unkC.unk1c = *pos2;
|
||||
ptr->unkC.pos1 = *pos1;
|
||||
if (ptr->unkC.unk14 != -1) {
|
||||
ptr->unkC.pos2 = *pos2;
|
||||
}
|
||||
else {
|
||||
ptr->unkC.unk1c.x = 0;
|
||||
ptr->unkC.unk1c.y = 0;
|
||||
ptr->unkC.pos2.x = 0;
|
||||
ptr->unkC.pos2.y = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -848,7 +833,7 @@ s32 sub_800E6D8(s32 a0)
|
||||
s32 id = sub_800E2C0(a0);
|
||||
if (id != -1) {
|
||||
struct unkStruct_203B0CC_sub *ptr = &gUnknown_203B0CC->unk0[id];
|
||||
return ptr->unkC.unk20;
|
||||
return ptr->unkC.unk14;
|
||||
}
|
||||
else {
|
||||
return -1;
|
||||
@@ -860,8 +845,6 @@ s32 sub_800E700(s32 a0)
|
||||
return sub_800E900((s16) a0);
|
||||
}
|
||||
|
||||
unkStruct_80C183C *sub_800ECD0(s32 param_1);
|
||||
|
||||
s32 sub_800E710(s32 a0_, s32 a1)
|
||||
{
|
||||
s32 i;
|
||||
@@ -909,4 +892,159 @@ s32 sub_800E790(s32 a0_, s32 a1)
|
||||
return unkPtr1->unk18;
|
||||
}
|
||||
|
||||
//
|
||||
bool8 sub_800E7D0(u16 *param_1)
|
||||
{
|
||||
int local_1c [4];
|
||||
bool8 flag;
|
||||
s32 index;
|
||||
|
||||
flag = FALSE;
|
||||
local_1c[0] = sub_800ECB8(*param_1)->unk0;
|
||||
local_1c[1] = sub_800ECB8(*param_1)->unk2;
|
||||
local_1c[2] = sub_800ECB8(*param_1)->unk4;
|
||||
local_1c[3] = sub_800ECB8(*param_1)->unk6;
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
flag = (sub_800ECA4(local_1c[index])->animType == 4);
|
||||
if(flag) break;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_800E838(u16 *param_1, s32 param_2)
|
||||
{
|
||||
s32 local_1c [4];
|
||||
|
||||
local_1c[0] = sub_800ECB8(*param_1)->unk0;
|
||||
local_1c[1] = sub_800ECB8(*param_1)->unk2;
|
||||
local_1c[2] = sub_800ECB8(*param_1)->unk4;
|
||||
local_1c[3] = sub_800ECB8(*param_1)->unk6;
|
||||
return sub_800ECA4(local_1c[param_2])->animType == 4;
|
||||
}
|
||||
|
||||
s32 sub_800E890(unkStruct_80416E0 *param_1)
|
||||
{
|
||||
param_1->unk14 = sub_800E900(param_1->unk0);
|
||||
return sub_800E208(7, param_1);
|
||||
}
|
||||
|
||||
void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, unkStruct_2039DB0 *a4)
|
||||
{
|
||||
s32 index = sub_800E2C0(a0);
|
||||
if (index != -1) {
|
||||
struct unkStruct_203B0CC_sub *ptr = &gUnknown_203B0CC->unk0[index];
|
||||
|
||||
if (a1 != NULL) ptr->unkC.pos1 = *a1;
|
||||
if (a2 != NULL) ptr->unkC.pos2 = *a2;
|
||||
if (a3 != 0xFFFF) ptr->unkC.unk18 = a3;
|
||||
if (a4 != NULL) ptr->unkC.spriteMasks = *a4;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_800E900(s32 r0)
|
||||
{
|
||||
return sub_800ECA4(r0)->unk1c;
|
||||
}
|
||||
|
||||
bool8 sub_800E90C(DungeonPos *param_1)
|
||||
{
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
bool8 flag = FALSE;
|
||||
|
||||
for (i = 0, ptr = &gUnknown_203B0CC->unk0[i]; i < UNK_203B0CC_ARR_COUNT; i++, ptr++) {
|
||||
if (ptr->unk4 != -1) {
|
||||
if (ptr->unkC.unk4 <= 0) {
|
||||
if (ptr->unk34 == 4) {
|
||||
sub_800DE8C(ptr, param_1);
|
||||
}
|
||||
else {
|
||||
sub_800DD0C(ptr, param_1);
|
||||
}
|
||||
}
|
||||
if (ptr->unkC.unk4 > 0)
|
||||
ptr->unkC.unk4--;
|
||||
sub_800DCD0(ptr);
|
||||
if (ptr->unk54 == 0)
|
||||
flag = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
void sub_800E970(void)
|
||||
{
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
for (i = 0, ptr = &gUnknown_203B0CC->unk0[i]; i < UNK_203B0CC_ARR_COUNT; i++, ptr++) {
|
||||
if (ptr->unk4 != -1 && ptr->unkC.unk4 <= 0 && ptr->unk34 != 4) {
|
||||
sub_800DE38(ptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_800E9A8(s32 a0)
|
||||
{
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
if (a0 == -1)
|
||||
return FALSE;
|
||||
|
||||
ptr = gUnknown_203B0CC->unk0;
|
||||
for (i = 0; i < UNK_203B0CC_ARR_COUNT; i++, ptr++) {
|
||||
if (ptr->unk4 == a0) {
|
||||
if (ptr->unk54 != 0)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_800E9E4(u32 param_1)
|
||||
{
|
||||
if (sub_800E2C0(param_1) != -1) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_800E9FC(u8 a0)
|
||||
{
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr = gUnknown_203B0CC->unk0;
|
||||
for (i = 0; i < UNK_203B0CC_ARR_COUNT; i++, ptr++) {
|
||||
if (ptr->unk4 != -1) {
|
||||
if (a0 != 0)
|
||||
return TRUE;
|
||||
if (ptr->unk54 == 0)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (sub_800EC74())
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u8 sub_800EA44(unkStruct_800EA44 param_1, s32 param_2)
|
||||
{
|
||||
s32 i;
|
||||
s32 a = param_1.unk0;
|
||||
unkStruct_80BDBC4 *ret = sub_800ECB8(param_2);
|
||||
unkStruct_80C183C *unkStruct2 = sub_800ECD0(ret->unk20);
|
||||
|
||||
for (i = 0; i < ret->unk1C; i++, unkStruct2++) {
|
||||
if (unkStruct2->unk0 == a) {
|
||||
return unkStruct2->unk2;
|
||||
}
|
||||
}
|
||||
|
||||
return ret->unk10;
|
||||
}
|
||||
|
||||
@@ -1,171 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "structs/code_800E9E4.h"
|
||||
#include "code_800DAC0.h"
|
||||
#include "code_800E9A8.h"
|
||||
#include "code_800E9E4.h"
|
||||
#include "structs/str_position.h"
|
||||
|
||||
s32 sub_800E2C0(u32);
|
||||
|
||||
extern struct unkStruct_203B0CC *gUnknown_203B0CC;
|
||||
|
||||
void sub_800DE38(struct unkStruct_203B0CC_sub *);
|
||||
void sub_800DE8C(struct unkStruct_203B0CC_sub *, DungeonPos *);
|
||||
void sub_800DD0C(struct unkStruct_203B0CC_sub *, DungeonPos *);
|
||||
void sub_800DCD0(struct unkStruct_203B0CC_sub *);
|
||||
|
||||
s32 sub_800E900(s32 r0);
|
||||
s32 sub_800E208(s32, unkStruct_800E208*);
|
||||
|
||||
bool8 sub_800E7D0(u16 *param_1)
|
||||
{
|
||||
int local_1c [4];
|
||||
bool8 flag;
|
||||
s32 index;
|
||||
|
||||
flag = FALSE;
|
||||
local_1c[0] = sub_800ECB8(*param_1)->unk0;
|
||||
local_1c[1] = sub_800ECB8(*param_1)->unk2;
|
||||
local_1c[2] = sub_800ECB8(*param_1)->unk4;
|
||||
local_1c[3] = sub_800ECB8(*param_1)->unk6;
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
flag = (sub_800ECA4(local_1c[index])->animType == 4);
|
||||
if(flag) break;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
bool8 sub_800E838(u16 *param_1, s32 param_2)
|
||||
{
|
||||
s32 local_1c [4];
|
||||
|
||||
local_1c[0] = sub_800ECB8(*param_1)->unk0;
|
||||
local_1c[1] = sub_800ECB8(*param_1)->unk2;
|
||||
local_1c[2] = sub_800ECB8(*param_1)->unk4;
|
||||
local_1c[3] = sub_800ECB8(*param_1)->unk6;
|
||||
return sub_800ECA4(local_1c[param_2])->animType == 4;
|
||||
}
|
||||
|
||||
// TODO: look at this later
|
||||
// https://decomp.me/scratch/luz2f
|
||||
u32 sub_800E890(unkStruct_80416E0 *param_1)
|
||||
{
|
||||
param_1->unk14 = sub_800E900(param_1->unk0);
|
||||
return sub_800E208(7, (void*)¶m_1->unk0);
|
||||
}
|
||||
|
||||
void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, unkStruct_2039DB0 *a4)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
index = sub_800E2C0(a0);
|
||||
if(index != -1)
|
||||
{
|
||||
ptr = &gUnknown_203B0CC->unk0[index];
|
||||
|
||||
if(a1 != NULL) ptr->unkC.unk18 = *a1;
|
||||
if(a2 != NULL) ptr->unkC.unk1c = *a2;
|
||||
if(a3 != 0xFFFF) ptr->unkC.unk24 = a3;
|
||||
if(a4 != NULL) ptr->unkC.spriteMasks = *a4;
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_800E900(s32 r0)
|
||||
{
|
||||
return sub_800ECA4(r0)->unk1c;
|
||||
}
|
||||
|
||||
bool8 sub_800E90C(DungeonPos *param_1)
|
||||
{
|
||||
bool8 flag;
|
||||
s32 iVar1;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
flag = FALSE;
|
||||
|
||||
for (iVar1 = 0, ptr = &gUnknown_203B0CC->unk0[iVar1]; iVar1 < 0x20; iVar1++, ptr++) {
|
||||
if (ptr->unk4 != -1) {
|
||||
if (ptr->unkC.unk10 <= 0) {
|
||||
if (ptr->unk34 == 4) {
|
||||
sub_800DE8C(ptr, param_1);
|
||||
}
|
||||
else {
|
||||
sub_800DD0C(ptr, param_1);
|
||||
}
|
||||
}
|
||||
if (ptr->unkC.unk10 > 0)
|
||||
ptr->unkC.unk10--;
|
||||
sub_800DCD0(ptr);
|
||||
if (ptr->unk54 == 0)
|
||||
flag = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
void sub_800E970(void)
|
||||
{
|
||||
s32 iVar1;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
for (iVar1 = 0, ptr = &gUnknown_203B0CC->unk0[iVar1]; iVar1 < 0x20; iVar1++, ptr++) {
|
||||
if (ptr->unk4 != -1 && ptr->unkC.unk10 <= 0 && ptr->unk34 != 4) {
|
||||
sub_800DE38(ptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_800E9A8(s32 a0)
|
||||
{
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
if (a0 == -1)
|
||||
return FALSE;
|
||||
|
||||
ptr = gUnknown_203B0CC->unk0;
|
||||
for (i = 0; i < 32; i++, ptr++) {
|
||||
if (ptr->unk4 == a0) {
|
||||
if (ptr->unk54 != 0)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_800E9E4(u32 param_1)
|
||||
{
|
||||
if(sub_800E2C0(param_1) != -1)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_800E9FC(u8 a0)
|
||||
{
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
|
||||
ptr = gUnknown_203B0CC->unk0;
|
||||
for (i = 0; i < 32; i++, ptr++) {
|
||||
if (ptr->unk4 != -1) {
|
||||
if(a0 != 0)
|
||||
return TRUE;
|
||||
if (ptr->unk54 == 0)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if(sub_800EC74())
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
@@ -25,27 +25,7 @@ extern unkStruct_80C183C gUnknown_80C183C[4336];
|
||||
unkStruct_80C183C *sub_800ECD0(s32 param_1);
|
||||
|
||||
|
||||
u8 sub_800EA44(unkStruct_800EA44 param_1, s32 param_2)
|
||||
{
|
||||
s32 a;
|
||||
unkStruct_80BDBC4 *ret;
|
||||
unkStruct_80C183C *unkStruct2;
|
||||
s32 i;
|
||||
|
||||
a = (s32) param_1.unk0;
|
||||
ret = sub_800ECB8(param_2);
|
||||
unkStruct2 = sub_800ECD0(ret->unk20);
|
||||
|
||||
for (i = 0; i < ret->unk1C; i++, unkStruct2++)
|
||||
{
|
||||
if (unkStruct2->unk0 == a)
|
||||
{
|
||||
return unkStruct2->unk2;
|
||||
}
|
||||
}
|
||||
|
||||
return ret->unk10;
|
||||
}
|
||||
|
||||
|
||||
s32 sub_800E208(s32, unkStruct_800E208*);
|
||||
@@ -73,22 +53,20 @@ s32 sub_800EA84(s32 *param_1)
|
||||
return sub_800E208(5, &stack[0]);
|
||||
}
|
||||
|
||||
void sub_800EAE4(s32 param_1, DungeonPos *param_2, DungeonPos *param_3)
|
||||
UNUSED static void sub_800EAE4(s32 param_1, DungeonPos *param_2, DungeonPos *param_3)
|
||||
{
|
||||
s32 idx = sub_800E2C0(param_1);
|
||||
if (idx != -1)
|
||||
{
|
||||
struct unkStruct_203B0CC_sub *a;
|
||||
a = &gUnknown_203B0CC->unk0[idx];
|
||||
a->unkC.unk18 = *param_2;
|
||||
if (a->unkC.unk20 != -1)
|
||||
{
|
||||
a->unkC.unk1c = *param_3;
|
||||
a->unkC.pos1 = *param_2;
|
||||
if (a->unkC.unk14 != -1) {
|
||||
a->unkC.pos2 = *param_3;
|
||||
}
|
||||
else
|
||||
{
|
||||
a->unkC.unk1c.x = 0;
|
||||
a->unkC.unk1c.y = 0;
|
||||
else {
|
||||
a->unkC.pos2.x = 0;
|
||||
a->unkC.pos2.y = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -97,30 +75,29 @@ void sub_800EB24(s32 param_1, DungeonPos *param_2, DungeonPos *param_3, s32 r5,
|
||||
{
|
||||
s32 idx = sub_800E2C0(param_1);
|
||||
if (idx != -1) {
|
||||
struct unkStruct_203B0CC_sub *curStruct;
|
||||
curStruct = &gUnknown_203B0CC->unk0[idx];
|
||||
struct unkStruct_203B0CC_sub *curStruct = &gUnknown_203B0CC->unk0[idx];
|
||||
if (curStruct->unkCC.x == 0 && curStruct->unkCC.y == 0) {
|
||||
curStruct->unkC.unk18 = *param_2;
|
||||
curStruct->unkC.pos1 = *param_2;
|
||||
}
|
||||
|
||||
if (curStruct->unk0 == 6) {
|
||||
curStruct->unkC.unk24 = r5 + 1;
|
||||
curStruct->unkC.unk18 = r5 + 1;
|
||||
}
|
||||
else if ((curStruct->unk8 & 0x7) == 0) {
|
||||
else if ((curStruct->unk8 % 8) == 0) {
|
||||
s32 newStruct[8];
|
||||
memcpy(newStruct, gUnknown_80B9C9C, sizeof(s32) * 8);
|
||||
curStruct->unkC.unk24 = r5 + newStruct[r4 & 7];
|
||||
curStruct->unkC.unk18 = r5 + newStruct[r4 & 7];
|
||||
}
|
||||
else {
|
||||
curStruct->unkC.unk24 = r5 + 1;
|
||||
curStruct->unkC.unk18 = r5 + 1;
|
||||
}
|
||||
|
||||
if (curStruct->unkC.unk20 != -1) {
|
||||
curStruct->unkC.unk1c = *param_3;
|
||||
if (curStruct->unkC.unk14 != -1) {
|
||||
curStruct->unkC.pos2 = *param_3;
|
||||
}
|
||||
else {
|
||||
curStruct->unkC.unk1c.x = 0;
|
||||
curStruct->unkC.unk1c.y = 0;
|
||||
curStruct->unkC.pos2.x = 0;
|
||||
curStruct->unkC.pos2.y = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -154,7 +131,7 @@ s32 sub_800EBC8(s32 *param_1)
|
||||
return sub_800E208(6, &stack[0]);
|
||||
}
|
||||
|
||||
void sub_800EC28(u32 param_1, DungeonPos *param_2, DungeonPos *param_3)
|
||||
UNUSED static void sub_800EC28(u32 param_1, DungeonPos *param_2, DungeonPos *param_3)
|
||||
{
|
||||
s32 idx;
|
||||
idx = sub_800E2C0(param_1);
|
||||
@@ -162,15 +139,15 @@ void sub_800EC28(u32 param_1, DungeonPos *param_2, DungeonPos *param_3)
|
||||
{
|
||||
struct unkStruct_203B0CC_sub *struct203B0CC;
|
||||
struct203B0CC = &gUnknown_203B0CC->unk0[idx];
|
||||
struct203B0CC->unkC.unk18 = *param_2;
|
||||
if (struct203B0CC->unkC.unk20 != -1)
|
||||
struct203B0CC->unkC.pos1 = *param_2;
|
||||
if (struct203B0CC->unkC.unk14 != -1)
|
||||
{
|
||||
struct203B0CC->unkC.unk1c = *param_3;
|
||||
struct203B0CC->unkC.pos2 = *param_3;
|
||||
}
|
||||
else
|
||||
{
|
||||
struct203B0CC->unkC.unk1c.x = 0;
|
||||
struct203B0CC->unkC.unk1c.y = 0;
|
||||
struct203B0CC->unkC.pos2.x = 0;
|
||||
struct203B0CC->unkC.pos2.y = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -188,18 +165,18 @@ u8 sub_800EC74(void)
|
||||
|
||||
u8 sub_800EC84(s32 param_1)
|
||||
{
|
||||
unkStruct_80BDBC4 *ret;
|
||||
ret = sub_800ECB8(param_1);
|
||||
unkStruct_80BDBC4 *ret = sub_800ECB8(param_1);
|
||||
return ret->unk8;
|
||||
}
|
||||
|
||||
u8 sub_800EC94(s32 param_1)
|
||||
{
|
||||
unkStruct_80BDBC4 *ret;
|
||||
ret = sub_800ECB8(param_1);
|
||||
unkStruct_80BDBC4 *ret = sub_800ECB8(param_1);
|
||||
return ret->unk9;
|
||||
}
|
||||
|
||||
// FILE SPLIT
|
||||
|
||||
unkStruct_80B9CC4 *sub_800ECA4(s32 param_1)
|
||||
{
|
||||
return &gUnknown_80B9CC4[param_1];
|
||||
|
||||
@@ -246,14 +246,14 @@ s32 sub_8041550(Entity *entity, s32 a1, u8 a2, u8 a3, s32 a4, u8 a5)
|
||||
sp.unk0 = a1;
|
||||
sp.unk4 = 0;
|
||||
sp.dir = -1;
|
||||
sp.x = pixelPos.x / 256;
|
||||
sp.y = pixelPos.y / 256;
|
||||
sp.pos1.x = pixelPos.x / 256;
|
||||
sp.pos1.y = pixelPos.y / 256;
|
||||
sp.unk14 = -1;
|
||||
sp.unk10 = 0;
|
||||
sp.unk12 = 0;
|
||||
sp.pos2.x = 0;
|
||||
sp.pos2.y = 0;
|
||||
sp.unk18 = var;
|
||||
|
||||
sub_8004E8C(&sp.unk1C);
|
||||
sub_8004E8C(&sp.spriteMasks);
|
||||
r4 = sub_8041764(&sp, FALSE);
|
||||
if (a2) {
|
||||
for (i = 0; i < 100; i++) {
|
||||
@@ -286,14 +286,14 @@ s32 sub_80416E0(PixelPos *pos, u32 param_2, bool8 param_3)
|
||||
auStack_10.unk4 = 0;
|
||||
auStack_10.dir = -1;
|
||||
|
||||
auStack_10.x = pos->x / 256;
|
||||
auStack_10.y = pos->y / 256;
|
||||
auStack_10.pos1.x = pos->x / 256;
|
||||
auStack_10.pos1.y = pos->y / 256;
|
||||
|
||||
auStack_10.unk14 = -1;
|
||||
auStack_10.unk10 = 0;
|
||||
auStack_10.unk12 = 0;
|
||||
auStack_10.pos2.x = 0;
|
||||
auStack_10.pos2.y = 0;
|
||||
auStack_10.unk18 = 0xffff;
|
||||
sub_8004E8C(&auStack_10.unk1C);
|
||||
sub_8004E8C(&auStack_10.spriteMasks);
|
||||
ret = sub_8041764(&auStack_10, FALSE);
|
||||
if (param_3) {
|
||||
counter = 0;
|
||||
@@ -1232,13 +1232,13 @@ s32 sub_8042520(Entity *a0)
|
||||
local_58.unk0 = 357;
|
||||
local_58.unk4 = 0;
|
||||
local_58.dir = dir;
|
||||
local_58.x = pos.x;
|
||||
local_58.y = pos.y;
|
||||
local_58.unk10 = 0;
|
||||
local_58.unk12 = 0;
|
||||
local_58.pos1.x = pos.x;
|
||||
local_58.pos1.y = pos.y;
|
||||
local_58.pos2.x = 0;
|
||||
local_58.pos2.y = 0;
|
||||
local_58.unk14 = -1;
|
||||
local_58.unk18 = iVar8;
|
||||
sub_8004E8C(&local_58.unk1C);
|
||||
sub_8004E8C(&local_58.spriteMasks);
|
||||
uVar4 = sub_8041764(&local_58, 0);
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
@@ -1578,19 +1578,19 @@ void sub_8042B34(s32 a0, s32 a1, s32 a2)
|
||||
spStruct.unk0 = gUnknown_80F6624[gUnknown_203B414->unk0][r8].unk0;
|
||||
spStruct.unk4 = i;
|
||||
spStruct.dir = 0;
|
||||
spStruct.x = leader->pixelPos.x / 256;
|
||||
spStruct.y = leader->pixelPos.y / 256;
|
||||
spStruct.pos1.x = leader->pixelPos.x / 256;
|
||||
spStruct.pos1.y = leader->pixelPos.y / 256;
|
||||
|
||||
rnd = RandInt(2);
|
||||
gUnknown_203B414->unk4C[i] = (gUnknown_80F6624[gUnknown_203B414->unk0][r8].unk4 * 2) + rnd;
|
||||
gUnknown_203B414->unk8C[i].x = RandInt(240) + 152;
|
||||
gUnknown_203B414->unk8C[i].y = RandInt(8 + (i * 2)) - (((i - (i / 4 * 4)) * 40) - 24);
|
||||
|
||||
spStruct.unk10 = gUnknown_203B414->unk8C[i].x;
|
||||
spStruct.unk12 = gUnknown_203B414->unk8C[i].y;
|
||||
spStruct.pos2.x = gUnknown_203B414->unk8C[i].x;
|
||||
spStruct.pos2.y = gUnknown_203B414->unk8C[i].y;
|
||||
spStruct.unk14 = 4;
|
||||
spStruct.unk18 = 0xFFFF;
|
||||
spStruct.unk1C = gUnknown_80F683C;
|
||||
spStruct.spriteMasks = gUnknown_80F683C;
|
||||
gUnknown_203B414->unkC[i] = sub_800E890(&spStruct);
|
||||
|
||||
r8++;
|
||||
|
||||
@@ -1349,12 +1349,12 @@ u32 sub_8085EC8(s16 param_1,u32 param_2,u32 param_3,DungeonPos *param_4, bool32
|
||||
local_40.unk0 = param_1;
|
||||
local_40.unk4 = param_2;
|
||||
local_40.dir = param_3;
|
||||
local_40.x = param_4->x;
|
||||
local_40.y = param_4->y;
|
||||
local_40.unk10 = 0;
|
||||
local_40.unk12 = 0;
|
||||
local_40.pos1.x = param_4->x;
|
||||
local_40.pos1.y = param_4->y;
|
||||
local_40.pos2.x = 0;
|
||||
local_40.pos2.y = 0;
|
||||
local_40.unk18 = 0xffff;
|
||||
local_40.unk1C = (unkStruct_2039DB0) {0xFFFF, 0xFFFF, 0xFFFF, 0, 0, 0};
|
||||
local_40.spriteMasks = (unkStruct_2039DB0) {0xFFFF, 0xFFFF, 0xFFFF, 0, 0, 0};
|
||||
|
||||
uVar1 = sub_800E890(&local_40);
|
||||
if (param_5_bool8) {
|
||||
@@ -1493,14 +1493,14 @@ s32 sub_80861F8(s32 param_1,Entity *param_2,bool32 param_3)
|
||||
stack.unk0 = param_1Copy;
|
||||
stack.unk4 = 0;
|
||||
stack.dir = info->action.direction;
|
||||
stack.x = (param_2->pixelPos).x / 256;
|
||||
stack.y = (param_2->pixelPos).y / 256;
|
||||
stack.pos1.x = (param_2->pixelPos).x / 256;
|
||||
stack.pos1.y = (param_2->pixelPos).y / 256;
|
||||
|
||||
stack.unk10 = pos.x;
|
||||
stack.unk12 = pos.y;
|
||||
stack.pos2.x = pos.x;
|
||||
stack.pos2.y = pos.y;
|
||||
stack.unk14 = uStack_38;
|
||||
stack.unk18 = 0xffff;
|
||||
stack.unk1C = (unkStruct_2039DB0) {0xFFFF, 0xFFFF, 0xFFFF, 0, 0};
|
||||
stack.spriteMasks = (unkStruct_2039DB0) {0xFFFF, 0xFFFF, 0xFFFF, 0, 0};
|
||||
|
||||
uVar2 = sub_800E890(&stack);
|
||||
if (param_3_bool32) {
|
||||
|
||||
@@ -799,13 +799,13 @@ bool8 sub_80A7094(struct UnkGroundSpriteStruct *ptr, PixelPos *r10, PixelPos *po
|
||||
unkStruct.unk0 = ptr->unk58;
|
||||
unkStruct.unk4 = 0;
|
||||
unkStruct.dir = (s8) ptr->unk5A;
|
||||
unkStruct.x = posArg->x / 256;
|
||||
unkStruct.y = posArg->y / 256;
|
||||
unkStruct.unk10 = 0;
|
||||
unkStruct.unk12 = 0;
|
||||
unkStruct.pos1.x = posArg->x / 256;
|
||||
unkStruct.pos1.y = posArg->y / 256;
|
||||
unkStruct.pos2.x = 0;
|
||||
unkStruct.pos2.y = 0;
|
||||
unkStruct.unk14 = -1;
|
||||
unkStruct.unk18 = 0;
|
||||
unkStruct.unk1C = unkSubStruct;
|
||||
unkStruct.spriteMasks = unkSubStruct;
|
||||
ptr->unk5C = sub_800E890(&unkStruct);
|
||||
}
|
||||
else if (!sub_800E9E4(ptr->unk5C)) {
|
||||
|
||||
Reference in New Issue
Block a user