more progress

This commit is contained in:
Yanis002
2025-01-29 23:38:06 +01:00
parent 27e9ac2396
commit 348916e3c2
7 changed files with 188 additions and 33 deletions
+8 -8
View File
@@ -1908,8 +1908,8 @@ func_0203951c kind:function(arm,size=0x40) addr:0x203951c
func_0203955c kind:function(arm,size=0x14) addr:0x203955c
func_02039570 kind:function(arm,size=0x8) addr:0x2039570
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_0CEhhhi kind:function(arm,size=0x3c) addr:0x2039578
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub1C2Ev kind:function(thumb,size=0x244) addr:0x20395b4
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub1C1Ev kind:function(thumb,size=0x244) addr:0x20397f8
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub1C2Eisi kind:function(thumb,size=0x244) addr:0x20395b4
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub1C1Eisi kind:function(thumb,size=0x244) addr:0x20397f8
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039a3cEv kind:function(thumb,size=0x20) addr:0x2039a3c
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_2CEv kind:function(arm,size=0x24c) addr:0x2039a5c
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039ca8Ev kind:function(arm,size=0x24) addr:0x2039ca8
@@ -1919,23 +1919,23 @@ _ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a188Eiii kind:function(arm,s
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x203a2c0
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a30cEv kind:function(arm,size=0x1c) addr:0x203a30c
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_48Ev kind:function(arm,size=0x34) addr:0x203a328
func_0203a35c kind:function(arm,size=0x84) addr:0x203a35c
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a35cEv kind:function(arm,size=0x84) addr:0x203a35c
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x203a3e0
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x203a3fc
func_0203a6d0 kind:function(arm,size=0x120) addr:0x203a6d0
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x203a6d0
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_50EP9EntryINF1jPsi kind:function(arm,size=0x198) addr:0x203a7f0
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_54Ev kind:function(arm,size=0x520) addr:0x203a988
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_5CEv kind:function(arm,size=0x74) addr:0x203aea8
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x203af1c
func_0203b0bc kind:function(arm,size=0x30) addr:0x203b0bc
func_0203b0ec kind:function(arm,size=0x178) addr:0x203b0ec
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b0bcEv kind:function(arm,size=0x30) addr:0x203b0bc
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b0ecEi kind:function(arm,size=0x178) addr:0x203b0ec
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_18EP18UnkStruct_0203b264ii kind:function(arm,size=0xac) addr:0x203b264
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_1CEcP18UnkStruct_0203b264ci kind:function(arm,size=0x100) addr:0x203b310
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_60EP21func_0203b410_param_2ii kind:function(arm,size=0x1c0) addr:0x203b410
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_64Ei kind:function(arm,size=0x194) addr:0x203b5d0
func_0203b764 kind:function(arm,size=0xb0) addr:0x203b764
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b764Ev kind:function(arm,size=0xb0) addr:0x203b764
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_20Ev kind:function(arm,size=0x578) addr:0x203b814
func_0203bd8c kind:function(arm,size=0x40) addr:0x203bd8c
_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
func_0203be64 kind:function(arm,size=0x220) addr:0x203be64
+2
View File
@@ -21,6 +21,8 @@ struct UnkStruct_027e103c {
void func_ov000_020cf284(unk32, unk32);
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);
+1 -2
View File
@@ -81,8 +81,7 @@ public:
class UnkStruct_027E0C68 : public SysObject {
public:
/* 0x00 */ unk16 unk_00;
/* 0x02 */ u8 unk_02;
/* 0x00 */ u8 unk_00[2];
/* 0x03 */ u8 unk_03;
/* 0x04 */ u8 unk_04;
/* 0x05 */ u8 unk_05;
@@ -3,6 +3,7 @@
#include "System/SysNew.hpp"
#include "Message/BMG.hpp"
#include "Unknown/func_ov000_020d0644.hpp"
#include "lib/math.h"
// temp
#define UNK_TYPE void
@@ -140,6 +141,7 @@ public:
void func_0203ec34(void);
void func_0203ebe0(void);
void func_0203ebf8(void);
void func_0203ec4c(UnkStruct_0203b264* param_2, unk32 param_3, s32 param_4, s32 param_5);
};
// same as UnkSubClass1_unk_410?
@@ -152,6 +154,7 @@ public:
void func_0203ef78(unk16, u16, unk8);
void func_0203ef78(unk16); // overload?
void func_0203ee48(void);
UnkStruct_0203b264* func_0203eeb0(unk32 param_2, unk32 param_3);
};
class UnkSubClass1_unk_124 {
@@ -213,7 +216,7 @@ public:
/* 0x008 */ UnkSubClass1_02256FF8* unk_08;
/* 0x00C */ unk32* unk_0C;
/* 0x010 */ unk32 unk_10;
/* 0x014 */ unk32 unk_14;
/* 0x014 */ s32 unk_14;
/* 0x018 */ s32 unk_18;
/* 0x01C */ unk32 unk_1C;
/* 0x020 */ unk32 unk_20;
@@ -287,7 +290,8 @@ public:
class UnkStruct_027E0C68_UnkSubClass1_Base_0 : public UnkStruct_027E0C68_UnkSubClass1_Base_1 {
public:
/* 0x052 */ unk16 unk_52;
/* 0x054 */ unk32 unk_54;
/* 0x054 */ unk16 unk_54;
/* 0x054 */ unk16 unk_56;
/* 0x058 */ unk32 unk_58;
/* 0x05C */ s16 unk_5C;
/* 0x05E */ s16 unk_5E;
@@ -333,7 +337,10 @@ public:
/* 0x0FC */ unk32 unk_FC;
/* 0x100 */ unk32 unk_100;
/* 0x104 */ unk32 unk_104;
/* 0x108 */ unk32 unk_108;
/* 0x108 */ unk8 unk_108;
/* 0x108 */ unk8 unk_109;
/* 0x108 */ unk8 unk_10A;
/* 0x108 */ unk8 unk_10B;
/* 0x10C */ unk32 unk_10C;
/* 0x110 */ unk32 unk_110;
/* 0x118 */ UnkStruct_027E0C68_UnkSubClass1_Base_0_unk_114* unk_114;
@@ -387,8 +394,7 @@ public:
/* 0x128 */ UnkSubClass1_UnkownClass2 unk_128;
/* 0x150 */ u8 unk_150[4];
/* 0x154 */ UnkSubClass1_unk_154* unk_154;
/* 0x158 */ unk16 unk_158;
/* 0x15A */ unk16 unk_15A;
/* 0x158 */ Vec2s unk_158; // textbox position?
/* 0x15C */ s16 unk_15C;
/* 0x15E */ s8 unk_15E;
/* 0x15F */ s8 unk_15F;
@@ -447,11 +453,6 @@ public:
void func_020393a8(unk32 param_2);
void func_0203a188(unk32, unk32);
unk32 func_0203a3e0(void);
unk32 func_0203a6d0(unk32, unk32);
unk32 func_0203b0bc(void);
void 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_0203cb5c(unk8, s16);
@@ -462,6 +463,7 @@ public:
void func_0203e090(void);
void func_0203e0f8(void);
void func_0203e1b0(unk32, unk32, unk32);
void func_02039440(unk32, unk32);
// not sure it belongs to this class:
void func_02032fcc(unk32, unk32);
@@ -590,6 +592,13 @@ public:
unk32 func_0203a30c(void);
void func_0203a35c(void);
bool func_0203a3e0(void);
bool func_0203a6d0(unk32 param_2, unk32 param_3);
bool func_0203b0bc(void);
unk32 func_0203b0ec(unk32 param_2);
void func_0203b764(void);
void func_0203bd8c(u16 param_2);
unk32 func_02038cb8(unk32 param_2);
};
class UnkStruct_027E0C68_UnkSubClass1_Sub2 : public UnkStruct_027E0C68_UnkSubClass1_Base {
@@ -776,3 +785,15 @@ public:
void func_ov003_020f4874(void);
};
extern UnkClass_027e1054 data_027e1054;
class UnkClass_ov000_020eec9c {
public:
void func_ov000_020d77e4(unk32);
};
extern UnkClass_ov000_020eec9c data_ov000_020eec9c;
class UnkClass_ov000_027e0d04 {
public:
void func_0203fe60(unk32);
};
extern UnkClass_ov000_027e0d04 data_027e0d04;
@@ -14,7 +14,7 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_34(unk32 param_2) {
iVar2 = this->func_02038cf4();
iVar3 = this->func_02038d10();
iVar1 = ((this->unk_15A - (this->unk_18 << 3) / 2));
iVar1 = ((this->unk_158.y - (this->unk_18 << 3) / 2));
if ((param_2 < iVar2 + iVar1) || (iVar2 + iVar3 + iVar1 <= param_2)) {
return -1;
@@ -67,8 +67,8 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_68(unk32 param_2) {
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_70(unk32* param_2, unk32* param_3) {
this->vfunc_6C(param_2, param_3);
*param_2 += this->unk_158;
*param_3 += this->unk_15A;
*param_2 += this->unk_158.x;
*param_3 += this->unk_158.y;
}
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) {
+1 -1
View File
@@ -49,7 +49,7 @@ THUMB UnkStruct_027E0C68_UnkSubClass1_Base::UnkStruct_027E0C68_UnkSubClass1_Base
{
this->func_020387e0(this->unk_150);
this->unk_154 = 0;
this->unk_15A = 0;
this->unk_158.y = 0;
this->unk_15C = 0;
this->unk_15E = 0xFF;
this->unk_15F = 0xFF;
+142 -9
View File
@@ -233,7 +233,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
this->vfunc_6C(&local_8c, &local_90);
this->func_0203a188(local_8c + param_2, local_90 + param_3, 0);
this->func_0203e1b0(param_2 + local_8c + (this->unk_158 - (this->unk_14 << 3) / 2), param_3 + local_90 + (this->unk_15A - (this->unk_18 << 3) / 2), 0);
this->func_0203e1b0(param_2 + local_8c + (this->unk_158.x - (this->unk_14 << 3) / 2), param_3 + local_90 + (this->unk_158.y - (this->unk_18 << 3) / 2), 0);
if (this->unk_584 != 0) {
iVar5 = this->unk_18 << 3;
@@ -244,8 +244,8 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
iVar5 = 0;
}
this->unk_300.func_02034a1c(param_2 + local_8c + this->unk_55C + (this->unk_158 - (this->unk_14 << 3) / 2),
iVar5 + param_3 + local_90 + this->unk_560 + ((this->unk_15A - (iVar5 / 2))), 0);
this->unk_300.func_02034a1c(param_2 + local_8c + this->unk_55C + (this->unk_158.x - (this->unk_14 << 3) / 2),
iVar5 + param_3 + local_90 + this->unk_560 + ((this->unk_158.y - (iVar5 / 2))), 0);
}
if (this->unk_585 != 0 && ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0)) {
@@ -267,8 +267,8 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
iVar8 = bVar1->unk_18;
uVar9 = data_02056a04[iVar8];
// func_0203489c(uVar9, data_02056a16[iVar8], &local_94, &local_98);
iVar6 = this->unk_158 - local_94;
iVar7 = this->unk_15A - local_98;
iVar6 = this->unk_158.x - local_94;
iVar7 = this->unk_158.y - local_98;
if ((this->unk_15E != 7) && (this->func_0203a2c0() != 0)) {
func_01ffbe34(&aStack_48);
@@ -338,10 +338,10 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a188(unk32 param_2, unk3
uVar5 = data_02056a04[iVar6];
func_0203489c(uVar5, data_02056a16[iVar6], &iStack_48, &iStack_4c);
iVar3 = iStack_50 + (this->unk_158 - iStack_48);
iVar3 = iStack_50 + (this->unk_158.x - iStack_48);
func_02034698(uVar5, data_02056a0e[iVar6], &iStack_50, &iStack_54);
iVar4 = iStack_54 + (this->unk_15A - iStack_4c);
iVar4 = iStack_54 + (this->unk_158.y - iStack_4c);
func_01ffbe34(&aStack_44);
aStack_44.mUnk_0a = 1;
@@ -477,6 +477,36 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_44(s32 touchLastX, s32 touc
}
}
ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a6d0(unk32 param_2, unk32 param_3) {
unk32 iVar1;
unk32 uVar2;
UnkStruct_0203b264* piVar3;
if (this->unk_164->unk_168.unk_06 > 0 && this->unk_164->unk_15C <= 0) {
return false;
}
iVar1 = this->vfunc_34(param_3);
piVar3 = NULL;
if (!(iVar1 < 0) && iVar1 < 4) {
piVar3 = this->unk_424.func_0203eeb0(iVar1, param_2);
}
if (piVar3 != NULL && ((piVar3->mUnk_0[3] << 0x10) | ((u16*)piVar3->mUnk_0)[2]) == 0x00FF0002) {
uVar2 = this->func_02038cb8(iVar1);
this->unk_410.func_0203ec4c(piVar3, uVar2,
(s16)(this->unk_158.x - ((this->unk_14 << 3) / 2)) + iVar1 + this->unk_56E,
(s16)(this->unk_158.y - ((this->unk_18 << 3) / 2)) + iVar1 + this->unk_570
);
this->unk_57F = 0;
return true;
}
return false;
}
// non-matching
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_50(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) {
bool bVar5;
@@ -779,6 +809,109 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_58(void) {
this->func_02039398();
}
ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203b0bc(void) {
return this->unk_57F != 0 && data_027e077c.mUnk_0 == data_027e077c.mUnk_4;
}
// non-matching
ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203b0ec(unk32 param_2) {
s32 iVar4;
u16 *puVar2;
u32 uVar3;
s32 unaff_r6;
bool bVar1;
iVar4 = 0;
bVar1 = false;
uVar3 = param_2;
if (((data_02056be4[data_027e077c.mUnk_0] & 1) == 0)) {
uVar3 = 0;
} else {
uVar3 = 1;
}
unaff_r6 = this->unk_50 == uVar3;
this->unk_410.func_0203ec34();
this->unk_585 = 0;
this->unk_584 = 0;
if (this->unk_150[3] != 0) {
iVar4 = 1;
this->unk_56C = this->unk_578;
bVar1 = true;
this->unk_15C = 0x78;
} else {
if ((this->unk_128.unk_00 == NULL || this->unk_128.unk_00[0] == 0) != 0) {
this->func_02038b40();
if (data_027e0d38 != 0) {
data_027e103c->func_ov000_020cf224(1);
data_027e103c->func_ov000_020cf2a0(1);
}
if (this->unk_08 == NULL) {
this->vfunc_58();
}
iVar4 = 1;
}
}
if (iVar4 != 0) {
if (bVar1) {
this->vfunc_54();
}
if (unaff_r6 != 0) {
data_027e0d04.func_0203fe60(0);
}
}
if (((param_2 != 0 && iVar4 != 0) && unaff_r6 != 0) && this->unk_15E != 7) {
data_ov000_020eec9c.func_ov000_020d77e4(0x19);
}
return iVar4;
}
// non-matching
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203b764(void) {
s32 i = data_027e0c68.unk_00[this->unk_50];
this->func_02039440(data_02056a04[i * 0x18], data_02056a16[i]);
switch (this->unk_57B) {
case 1:
this->unk_158.y -= 38;
break;
case 2:
switch (this->unk_154->unk_06) {
case 2:
this->unk_158.y -= 111;
break;
case 3:
this->unk_158.y -= 98;
break;
default:
break;
}
break;
default:
break;
}
}
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203bd8c(u16 param_2) {
this->unk_576 = param_2;
if (this->func_0203b0ec(0) != 0) {
data_ov000_020eec9c.func_ov000_020d77e4(this->unk_564[param_2]);
}
}
// non-matching (regalloc)
ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) {
u16 sVar1;
@@ -926,8 +1059,8 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_60(func_0203b410_param_2* p
if (param_2->unk_10 <= 0 && iVar3 > 0) {
uVar2 = param_2->unk_12;
this->unk_158 = param_2->unk_10;
this->unk_15A = uVar2;
this->unk_158.x = param_2->unk_10;
this->unk_158.y = uVar2;
} else {
this->func_0203b764();
}