mirror of
https://github.com/zeldaret/ph
synced 2026-06-02 10:10:10 -04:00
more progress
This commit is contained in:
@@ -1937,12 +1937,12 @@ _ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b764Ev kind:function(arm,siz
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_20Ev kind:function(arm,size=0x578) addr:0x203b814
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203bd8cEt kind:function(arm,size=0x40) addr:0x203bd8c
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_6CEPiS0_ kind:function(arm,size=0x3c) addr:0x203bdcc
|
||||
func_0203be08 kind:function(arm,size=0x5c) addr:0x203be08
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203be08Ev kind:function(arm,size=0x5c) addr:0x203be08
|
||||
func_0203be64 kind:function(arm,size=0x220) addr:0x203be64
|
||||
func_0203c084 kind:function(arm,size=0xb8) addr:0x203c084
|
||||
func_0203c13c kind:function(arm,size=0x64) addr:0x203c13c
|
||||
func_0203c1a0 kind:function(arm,size=0xbc) addr:0x203c1a0
|
||||
func_0203c25c kind:function(arm,size=0x6c) addr:0x203c25c
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203c084Ev kind:function(arm,size=0xb8) addr:0x203c084
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203c13cEv kind:function(arm,size=0x64) addr:0x203c13c
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203c1a0Ev kind:function(arm,size=0xbc) addr:0x203c1a0
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203c25cEPS_ kind:function(arm,size=0x6c) addr:0x203c25c
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub1D0Ev kind:function(arm,size=0x48) addr:0x203c2c8
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub1D2Ev kind:function(arm,size=0x40) addr:0x203c310
|
||||
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_38Ev kind:function(arm,size=0x8) addr:0x203c350
|
||||
|
||||
@@ -23,15 +23,21 @@ struct UnkStruct_027e103c {
|
||||
|
||||
void func_ov000_020cf224(unk32);
|
||||
void func_ov000_020cf2a0(unk32);
|
||||
unk32 func_ov000_020cf4bc(void);
|
||||
unk8* func_ov000_020cef9c(void);
|
||||
void func_ov000_020cfb38(void);
|
||||
unk32 func_ov000_020cf488(void);
|
||||
void func_ov000_020cfa24(void);
|
||||
void func_ov000_020cfe40(unk32, unk32);
|
||||
void func_ov005_02104028(unk32);
|
||||
s8* func_ov000_020cef9c(void);
|
||||
unk32 func_ov000_020cf0bc(void);
|
||||
bool func_ov000_020cf42c(void);
|
||||
unk32 func_ov000_020cf488(void);
|
||||
unk32 func_ov000_020cf4bc(void);
|
||||
void func_ov000_020cfa24(void);
|
||||
void func_ov000_020cfb38(void);
|
||||
void func_ov000_020cfe40(unk32, unk32);
|
||||
void func_ov005_02103f8c(unk32*);
|
||||
void func_ov005_02104028(unk32);
|
||||
void func_ov000_020cfb58(u8*);
|
||||
unk32 func_ov000_020cf8fc(unk32);
|
||||
|
||||
//! TODO: find out if the type is always `UnkStruct_027E0C68_UnkSubClass1_Sub1*`
|
||||
void func_ov000_020cfb20(void*);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e103c *data_027e103c;
|
||||
|
||||
@@ -82,6 +82,7 @@ public:
|
||||
class UnkStruct_027E0C68 : public SysObject {
|
||||
public:
|
||||
/* 0x00 */ u8 unk_00[2];
|
||||
/* 0x02 */ u8 unk_02;
|
||||
/* 0x03 */ u8 unk_03;
|
||||
/* 0x04 */ u8 unk_04;
|
||||
/* 0x05 */ u8 unk_05;
|
||||
|
||||
@@ -119,12 +119,14 @@ public:
|
||||
/* 0x08 */
|
||||
};
|
||||
|
||||
typedef bool (*UnknownCallback)(class UnkStruct_027E0C68_UnkSubClass1_Sub1*);
|
||||
|
||||
class UnkSubClass1_UnkownClass2 : public UnkSubClass1_UnkownClass2_Base1 {
|
||||
public:
|
||||
/* 0x14 */ unk32 unk_14;
|
||||
/* 0x18 */ unk32 unk_18;
|
||||
/* 0x1C */ unk32 unk_1C;
|
||||
/* 0x20 */ unk32 unk_20;
|
||||
/* 0x1C */ UnknownCallback unk_1C;
|
||||
/* 0x20 */ class UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_20;
|
||||
/* 0x24 */ unk32 unk_24;
|
||||
/* 0x2C */
|
||||
|
||||
@@ -271,6 +273,8 @@ public:
|
||||
/* 0x6C */ virtual void vfunc_6C(unk32* param_2, unk32* param_3);
|
||||
/* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3);
|
||||
/* 0x74 */
|
||||
|
||||
unk32 func_02032fa4(void);
|
||||
};
|
||||
|
||||
class UnkStruct_027E0C68_UnkSubClass1_Base_0_unk_114 : public SysObject {
|
||||
@@ -437,7 +441,6 @@ public:
|
||||
|
||||
static void func_020387e0(u8* param_2);
|
||||
|
||||
unk32 func_02032fa4(void);
|
||||
unk32 func_02032fb4(void);
|
||||
unk32 func_020337d8(unk32 param_2);
|
||||
u16* func_02037604(u16**);
|
||||
@@ -453,8 +456,6 @@ public:
|
||||
void func_020393a8(unk32 param_2);
|
||||
void func_0203a188(unk32, unk32);
|
||||
unk32 func_0203a3e0(void);
|
||||
void func_0203be08(void);
|
||||
void func_0203be64(void);
|
||||
unk32 func_0203cb5c(unk8, s16);
|
||||
void func_0203dc10(u8 param_2);
|
||||
void func_0203dc10(u8 param_2, u8 param_3);
|
||||
@@ -505,16 +506,20 @@ public:
|
||||
/* 0x428 */ UnknownMsgChoiceStruct unk_428[0x20];
|
||||
/* 0x528 */ unk16 unk_528[4]; // number of choices?
|
||||
/* 0x55C */ unk32 unk_530;
|
||||
/* 0x55C */ unk32 unk_534;
|
||||
/* 0x55C */ unk32 unk_538;
|
||||
/* 0x55C */ unk16 unk_534;
|
||||
/* 0x55C */ unk16 unk_536;
|
||||
/* 0x55C */ unk16 unk_538;
|
||||
/* 0x55C */ unk16 unk_53A;
|
||||
/* 0x55C */ unk32 unk_53C;
|
||||
/* 0x55C */ unk32 unk_540;
|
||||
/* 0x55C */ unk8 unk_544;
|
||||
/* 0x55C */ unk8 unk_545;
|
||||
/* 0x55C */ unk8 unk_546;
|
||||
/* 0x55C */ unk8 unk_547;
|
||||
/* 0x55C */ unk32 unk_548;
|
||||
/* 0x55C */ unk32 unk_54C;
|
||||
/* 0x55C */ unk16 unk_548;
|
||||
/* 0x55C */ unk16 unk_54A;
|
||||
/* 0x55C */ unk16 unk_54C;
|
||||
/* 0x55C */ unk16 unk_54E;
|
||||
/* 0x55C */ unk32 unk_550;
|
||||
/* 0x55C */ unk32 unk_554;
|
||||
/* 0x55C */ unk8 unk_558;
|
||||
@@ -581,6 +586,8 @@ public:
|
||||
/* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3) override;
|
||||
/* 0x74 */
|
||||
|
||||
static bool func_0203c25c(class UnkStruct_027E0C68_UnkSubClass1_Sub1* param_1);
|
||||
|
||||
void func_0203e060(u8 param_2, u8 param_3);
|
||||
void func_02039a3c(void);
|
||||
|
||||
@@ -597,6 +604,11 @@ public:
|
||||
unk32 func_0203b0ec(unk32 param_2);
|
||||
void func_0203b764(void);
|
||||
void func_0203bd8c(u16 param_2);
|
||||
void func_0203be08(void);
|
||||
void func_0203be64(void);
|
||||
unk32 func_0203c084(void);
|
||||
bool func_0203c13c(void);
|
||||
unk32 func_0203c1a0(void);
|
||||
|
||||
unk32 func_02038cb8(unk32 param_2);
|
||||
};
|
||||
@@ -777,12 +789,21 @@ typedef struct UnkStruct_01ffbe34 {
|
||||
} UnkStruct_01ffbe34;
|
||||
extern "C" void func_01ffbe34(UnkStruct_01ffbe34 *param1);
|
||||
|
||||
struct UnkClass_027e1054_unk_00_unk00 {
|
||||
/* 0x00 */ u8 unk_00[0x95];
|
||||
/* 0x95 */ u8 unk_95;
|
||||
};
|
||||
struct UnkClass_027e1054_unk_00 {
|
||||
/* 0x00 */ unk32 unk_04;
|
||||
/* 0x00 */ UnkClass_027e1054_unk_00_unk00* unk_00;
|
||||
};
|
||||
class UnkClass_027e1054 {
|
||||
public:
|
||||
unk32 unk_00;
|
||||
UnkClass_027e1054_unk_00* unk_00;
|
||||
unk32 unk_04;
|
||||
|
||||
void func_ov003_020f4874(void);
|
||||
void func_ov003_020f4760(u8, unk32);
|
||||
};
|
||||
extern UnkClass_027e1054 data_027e1054;
|
||||
|
||||
@@ -800,3 +821,9 @@ public:
|
||||
void func_0203fe60(unk32);
|
||||
};
|
||||
extern UnkClass_ov000_027e0d04 data_027e0d04;
|
||||
|
||||
class UnkClass_data_027e0f7c {
|
||||
public:
|
||||
u8* func_ov000_0209d90c(s8, s8);
|
||||
};
|
||||
extern UnkClass_data_027e0f7c data_027e0f7c;
|
||||
|
||||
@@ -765,7 +765,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_5C(void) {
|
||||
// non-matching
|
||||
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_58(void) {
|
||||
bool bVar1;
|
||||
unk8* puVar2;
|
||||
s8* puVar2;
|
||||
int iVar3;
|
||||
char *pcVar4;
|
||||
|
||||
@@ -799,11 +799,11 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_58(void) {
|
||||
}
|
||||
}
|
||||
|
||||
if (data_027e0618[0] == 2 && func_ov000_02079e04() && (data_027e1054.unk_04 + 0x99) != 0 &&
|
||||
(data_027e077c.mUnk_0 != 0x39 || data_027e103c->func_ov000_020cf0bc())) {
|
||||
data_027e1054.func_ov003_020f4874();
|
||||
data_027e103c->func_ov005_02103f8c(data_02057ed4);
|
||||
}
|
||||
// if (data_027e0618[0] == 2 && func_ov000_02079e04() && (data_027e1054.unk_04 + 0x99) != 0 &&
|
||||
// (data_027e077c.mUnk_0 != 0x39 || data_027e103c->func_ov000_020cf0bc())) {
|
||||
// data_027e1054.func_ov003_020f4874();
|
||||
// data_027e103c->func_ov005_02103f8c(data_02057ed4);
|
||||
// }
|
||||
}
|
||||
|
||||
this->func_02039398();
|
||||
@@ -1106,6 +1106,110 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_6C(unk32* param_2, unk32* p
|
||||
*param_3 += this->unk_570;
|
||||
}
|
||||
|
||||
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203be08(void) {
|
||||
if (data_027e0d38 != 0) {
|
||||
if (data_027e103c->func_ov000_020cf42c() != 0) {
|
||||
this->unk_534 = this->unk_538;
|
||||
} else {
|
||||
this->unk_534 = this->unk_536;
|
||||
}
|
||||
|
||||
if (this->func_0203c084() != 0) {
|
||||
this->unk_548 = this->unk_54C;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203c084(void) {
|
||||
unk32 uVar4;
|
||||
bool bVar2;
|
||||
bool bVar1;
|
||||
bool bVar3;
|
||||
|
||||
uVar4 = 0;
|
||||
|
||||
if (this->unk_50 == 0) {
|
||||
bVar2 = true;
|
||||
bVar1 = true;
|
||||
|
||||
if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0 && data_027e103c->func_ov000_020cf8fc(0x8F) == 0) {
|
||||
bVar1 = false;
|
||||
}
|
||||
|
||||
if (!bVar1 && data_027e0618[0x101] == 0) {
|
||||
if ((data_027e0d38 != NULL && data_027e0d38->mUnk_14 == 1) == 0) {
|
||||
bVar2 = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (bVar2) {
|
||||
uVar4 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return uVar4;
|
||||
}
|
||||
|
||||
ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203c13c(void) {
|
||||
if (this->func_02032fa4() == 0) {
|
||||
data_ov000_020eec9c.func_ov000_020d77e4(6);
|
||||
data_027e103c->func_ov000_020cfb20(this);
|
||||
this->unk_585 = 1;
|
||||
this->unk_584 = 1;
|
||||
this->unk_128.unk_18 = 0x00016000;
|
||||
this->unk_128.unk_1C = NULL;
|
||||
this->unk_128.unk_20 = 0;
|
||||
this->unk_128.unk_24 = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// non-matching
|
||||
ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203c1a0(void) {
|
||||
s8* pVar1;
|
||||
u8* iVar3;
|
||||
|
||||
if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) {
|
||||
this->unk_584 = 1;
|
||||
|
||||
pVar1 = data_027e103c->func_ov000_020cef9c();
|
||||
iVar3 = data_027e0f7c.func_ov000_0209d90c(pVar1[0x24F], 0);
|
||||
data_027e1054.func_ov003_020f4760(iVar3[1], 0);
|
||||
data_ov000_020eec9c.func_ov000_020d77e4(6);
|
||||
data_027e103c->func_ov000_020cfb58(iVar3);
|
||||
|
||||
this->unk_128.unk_18 = 0x0000A000;
|
||||
this->unk_128.unk_1C = this->func_0203c25c;
|
||||
this->unk_128.unk_20 = this;
|
||||
this->unk_128.unk_24 = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203c25c(UnkStruct_027E0C68_UnkSubClass1_Sub1* param_1) {
|
||||
if (data_027e1054.unk_00->unk_00->unk_95 != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) {
|
||||
param_1->unk_585 = 1;
|
||||
param_1->unk_128.unk_18 = 0x00016000;
|
||||
param_1->unk_128.unk_1C = NULL;
|
||||
param_1->unk_128.unk_20 = 0;
|
||||
param_1->unk_128.unk_24 = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
ARM UnkStruct_027E0C68_UnkSubClass1_Sub1::~UnkStruct_027E0C68_UnkSubClass1_Sub1() {
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user