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
@@ -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();
}