more progress

This commit is contained in:
Yanis002
2025-01-29 16:36:55 +01:00
parent d4e8b81dde
commit 27e9ac2396
6 changed files with 164 additions and 76 deletions
+6 -6
View File
@@ -1872,13 +1872,13 @@ func_02038888 kind:function(arm,size=0xc8) addr:0x2038888
func_02038950 kind:function(arm,size=0x130) addr:0x2038950
func_02038a80 kind:function(arm,size=0x1c) addr:0x2038a80
func_02038a9c kind:function(thumb,size=0x4) addr:0x2038a9c
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseC1Eisi kind:function(thumb,size=0x5c) addr:0x2038aa0
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseC2Eisi kind:function(thumb,size=0x5c) addr:0x2038aa0
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseD1Ev kind:function(thumb,size=0xc) addr:0x2038afc
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseD0Ev kind:function(thumb,size=0x14) addr:0x2038b08
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseD2Ev kind:function(thumb,size=0xc) addr:0x2038b1c
func_02038b28 kind:function(thumb,size=0xc) addr:0x2038b28
func_02038b34 kind:function(arm,size=0xc) addr:0x2038b34
_Z13func_02038b40P31UnkStruct_027E0C68_UnkSubClass1_Sub1 kind:function(arm,size=0x34) addr:0x2038b40
_ZN36UnkStruct_027E0C68_UnkSubClass1_Base13func_02038b40Ev kind:function(arm,size=0x34) addr:0x2038b40
func_02038b74 kind:function(arm,size=0x4) addr:0x2038b74
func_02038b78 kind:function(arm,size=0xbc) addr:0x2038b78
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_34Ei kind:function(arm,size=0x84) addr:0x2038c34
@@ -1915,7 +1915,7 @@ _ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_2CEv kind:function(arm,size=0x24
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039ca8Ev kind:function(arm,size=0x24) addr:0x2039ca8
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_3CEi kind:function(arm,size=0xa8) addr:0x2039ccc
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_40Eii kind:function(arm,size=0x414) addr:0x2039d74
func_0203a188 kind:function(arm,size=0x138) addr:0x203a188
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a188Eiii kind:function(arm,size=0x138) addr:0x203a188
_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
@@ -1946,7 +1946,7 @@ func_0203c25c 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
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub3C1Ev kind:function(thumb,size=0x44) addr:0x203c358
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub3C1Eisi kind:function(thumb,size=0x44) addr:0x203c358
func_0203c39c kind:function(thumb,size=0x78) addr:0x203c39c
func_0203c414 kind:function(arm,size=0x4c) addr:0x203c414
func_0203c460 kind:function(arm,size=0x4c) addr:0x203c460
@@ -1955,8 +1955,8 @@ func_0203c5c4 kind:function(arm,size=0x18) addr:0x203c5c4
func_0203c5dc kind:function(arm,size=0x120) addr:0x203c5dc
func_0203c6fc kind:function(arm,size=0x1c) addr:0x203c6fc
func_0203c718 kind:function(arm,size=0x14) addr:0x203c718
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub2C1Ev kind:function(arm,size=0x110) addr:0x203c72c
func_0203c83c kind:function(arm,size=0x4) addr:0x203c83c
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub2C1Eisi kind:function(arm,size=0x110) addr:0x203c72c
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub213func_0203c83cEv kind:function(arm,size=0x4) addr:0x203c83c
func_0203c840 kind:function(arm,size=0x30) addr:0x203c840
func_0203c870 kind:function(arm,size=0x38) addr:0x203c870
func_0203c8a8 kind:function(arm,size=0x58) addr:0x203c8a8
@@ -2,6 +2,7 @@
#include "System/SysNew.hpp"
#include "Message/BMG.hpp"
#include "Unknown/func_ov000_020d0644.hpp"
// temp
#define UNK_TYPE void
@@ -131,19 +132,6 @@ public:
/* 0x08 */
};
class UnknownClass2 : public SysObject {
public:
/* 0x00 (vtable) */
/* 0x04 */ unk32* unk_04;
/* 0x08 */
UnknownClass2();
/* 0x00 */ virtual ~UnknownClass2();
/* 0x08 */ virtual UNK_TYPE vfunc_08(UNK_TYPE);
/* 0x0C */ virtual UNK_TYPE vfunc_0C(UNK_TYPE);
/* 0x10 */
};
class UnkSubClass1_unk_410 {
public:
/* 0x00 */ struct UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_00;
@@ -217,13 +205,14 @@ public:
/* 0x3C */
};
// astruct_8?
class UnkStruct_027E0C68_UnkSubClass1_Base_1 : public SysObject {
public:
/* 0x000 (vtable) */
/* 0x004 */ unk32* unk_04;
/* 0x008 */ UnkSubClass1_02256FF8* unk_08;
/* 0x00C */ unk32* unk_0C;
/* 0x010 */ unk32* unk_10;
/* 0x010 */ unk32 unk_10;
/* 0x014 */ unk32 unk_14;
/* 0x018 */ s32 unk_18;
/* 0x01C */ unk32 unk_1C;
@@ -281,6 +270,20 @@ public:
/* 0x74 */
};
class UnkStruct_027E0C68_UnkSubClass1_Base_0_unk_114 : public SysObject {
public:
/* 0x00 (vtable) */
/* 0x04 */ unk32* unk_04;
/* 0x08 */
UnkStruct_027E0C68_UnkSubClass1_Base_0_unk_114();
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Base_0_unk_114() override;
/* 0x04 */ virtual UNK_TYPE vfunc_04(UNK_TYPE);
/* 0x08 */ virtual UNK_TYPE vfunc_08(UNK_TYPE);
/* 0x0C */
};
// astruct_7
class UnkStruct_027E0C68_UnkSubClass1_Base_0 : public UnkStruct_027E0C68_UnkSubClass1_Base_1 {
public:
/* 0x052 */ unk16 unk_52;
@@ -333,14 +336,13 @@ public:
/* 0x108 */ unk32 unk_108;
/* 0x10C */ unk32 unk_10C;
/* 0x110 */ unk32 unk_110;
/* 0x118 */ void* unk_114;
/* 0x118 */ UnkStruct_027E0C68_UnkSubClass1_Base_0_unk_114* unk_114;
/* 0x118 */ s32 unk_118;
/* 0x11C */ unk8 unk_11C;
/* 0x11D */ unk8 unk_11D;
/* 0x11E */ u8 unk_11E;
/* 0x11C */ unk16 unk_11C;
/* 0x11E */ unk8 unk_11E;
/* 0x11F */ unk8 unk_11F;
/* 0x120 */ u8 unk_120;
/* 0x121 */ u8 unk_121;
/* 0x121 */ s8 unk_121;
/* 0x122 */ u8 unk_122;
/* 0x123 */ u8 unk_123;
/* 0x124 */
@@ -392,13 +394,9 @@ public:
/* 0x15F */ s8 unk_15F;
/* 0x160 */ unk8 unk_160;
/* 0x160 */ unk8 unk_161;
/* 0x160 */ unk8 unk_162;
/* 0x160 */ unk8 unk_163;
/* 0x160 */ unk16 unk_162;
/* 0x164 */
//! TODO: fake?
UnkStruct_027E0C68_UnkSubClass1_Base();
UnkStruct_027E0C68_UnkSubClass1_Base(unk32 param_2, unk16 param_3, unk32 param_4);
//! TODO: remove the function declarations that are not overridden
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Base();
@@ -439,6 +437,7 @@ public:
u16* func_02037604(u16**);
void func_02038b28(void);
void func_02038b40(void);
void func_02039208(unk32 param_2);
unk32 func_02038d10(void);
void func_02038d20(void);
void func_02038f44(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5, unk32 param_6);
@@ -447,7 +446,6 @@ public:
void func_02039398(void);
void func_020393a8(unk32 param_2);
void func_0203a188(unk32, unk32);
void func_0203a35c(void);
unk32 func_0203a3e0(void);
unk32 func_0203a6d0(unk32, unk32);
unk32 func_0203b0bc(void);
@@ -478,6 +476,14 @@ public:
void func_0203fc78(unk32*, unk32*);
};
// does it host both choices?
struct UnknownMsgChoiceStruct {
/* 0x00 */ UnkStruct_0203b264* unk_00;
/* 0x04 */ unk32 unk_04;
/* 0x08 */
};
// astruct_2
class UnkStruct_027E0C68_UnkSubClass1_Sub1 : public UnkStruct_027E0C68_UnkSubClass1_Base {
public:
/* 0x164 */ UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_164;
@@ -494,12 +500,8 @@ public:
/* 0x420 */ unk16 unk_420;
/* 0x420 */ unk16 unk_422;
/* 0x424 */ UnkSubClass1_unk_424 unk_424;
/* 0x428 */ u16* unk_428;
/* 0x42C */ unk32 unk_42C;
/* 0x430 */ unk32 unk_430;
/* 0x434 */ u8 unk_434[0xF4];
/* 0x528 */ u16* unk_528;
/* 0x52C */ u8 unk_52C;
/* 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;
@@ -545,6 +547,7 @@ public:
/* 0x5B4 */
UnkStruct_027E0C68_UnkSubClass1_Sub1();
UnkStruct_027E0C68_UnkSubClass1_Sub1(unk32 param_2, unk16 param_3, unk32 param_4);
//! TODO: remove the function declarations that are not overridden
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Sub1() override;
/* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
@@ -585,15 +588,28 @@ public:
void func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4);
bool func_0203a2c0(void);
unk32 func_0203a30c(void);
void func_0203a35c(void);
bool func_0203a3e0(void);
};
class UnkStruct_027E0C68_UnkSubClass1_Sub2 : public UnkStruct_027E0C68_UnkSubClass1_Base {
public:
/* 0x164 */ u8 unk_164[0x5C];
/* 0x164 */ unk16 unk_164;
/* 0x166 */ unk16 unk_166;
/* 0x168 */ unk16 unk_168;
/* 0x16A */ unk16 unk_16A;
/* 0x16C */ unk16 unk_16C;
/* 0x16E */ unk16 unk_16E;
/* 0x170 */ unk16 unk_170;
/* 0x172 */ unk16 unk_172;
/* 0x174 */ unk16 unk_174;
/* 0x178 */ unk32 unk_178;
/* 0x17C */ unk32 unk_17C;
/* 0x180 */ UnkClass_func_ov000_020d0644 unk_180[4];
/* 0x1C0 */
UnkStruct_027E0C68_UnkSubClass1_Sub2();
UnkStruct_027E0C68_UnkSubClass1_Sub2(unk32 param_2, unk16 param_3, unk32 param_4);
//! TODO: remove the function declarations that are not overridden
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Sub2();
/* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
@@ -625,14 +641,21 @@ public:
/* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3) override;
/* 0x74 */
static void func_0203c83c(void);
};
class UnkStruct_027E0C68_UnkSubClass1_Sub3 : public UnkStruct_027E0C68_UnkSubClass1_Base {
public:
/* 0x164 */ u8 unk_164[0xC];
/* 0x164 */ unk16 unk_164;
/* 0x164 */ unk16 unk_166;
/* 0x164 */ unk16 unk_168;
/* 0x164 */ unk16 unk_16A;
/* 0x164 */ unk16 unk_16C;
/* 0x164 */ unk16 unk_16E;
/* 0x170 */
UnkStruct_027E0C68_UnkSubClass1_Sub3();
UnkStruct_027E0C68_UnkSubClass1_Sub3(unk32 param_2, unk16 param_3, unk32 param_4);
//! TODO: remove the function declarations that are not overridden
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Sub3();
/* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
@@ -672,7 +695,6 @@ extern "C" u32 func_01ff9b4c(unk32, unk32);
extern "C" unk32 func_0203c084(void);
extern "C" void func_ov018_02169634(UnkStruct_027E0C68_UnkSubClass1_Sub1*);
extern "C" unk32 func_ov000_02079e04(void);
extern "C" unk32 func_01ff9b88(unk32, unk32);
extern "C" unk32 func_02016fcc(unk32);
extern "C" void func_02032304(unk32*, char*, unk32, unk32, unk32);
extern "C" unk32 func_0202d5b4(char*, char*, unk32, unk32, unk32);
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "global.h"
#include "System/SysNew.hpp"
class UnkClass_func_ov000_020d0644 {
public:
/* 0x00 */ unk32 unk_00;
/* 0x04 */ unk32 unk_04;
/* 0x08 */ unk32 unk_08;
// /* 0x0C */ unk32 unk_0C;
/* 0x10 */
static void func_020d060c(void);
UnkClass_func_ov000_020d0644();
virtual ~UnkClass_func_ov000_020d0644();
void func_ov000_020d0644(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5, unk32 param_6);
};
-5
View File
@@ -132,11 +132,6 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) {
this->pGroups->func_020373b4(2);
}
// non-matching
ARM UnkStruct_027E0C68_UnkSubClass2_Base1::~UnkStruct_027E0C68_UnkSubClass2_Base1() {
}
// non-matching
ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_020366c4(void) {
if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) {
+70 -11
View File
@@ -9,12 +9,16 @@
extern "C" void func_ov000_020d0460(void*);
extern "C" void func_0203efd8(void*, void*);
extern "C" void func_0203ee48(void*);
extern "C" void func_0204f614(UnkClass_func_ov000_020d0644*, unk32, unk32, void*, void*);
extern unk16 data_02056a0e[];
extern u8 data_02056a08[];
THUMB UnkStruct_027E0C68_UnkSubClass1_Sub1::UnkStruct_027E0C68_UnkSubClass1_Sub1() : unk_164(NULL) {
u16** ppuVar3;
THUMB UnkStruct_027E0C68_UnkSubClass1_Sub1::UnkStruct_027E0C68_UnkSubClass1_Sub1(unk32 param_2, unk16 param_3, unk32 param_4) :
UnkStruct_027E0C68_UnkSubClass1_Base(0, 0, param_4),
unk_164(NULL)
{
UnknownMsgChoiceStruct* puVar3;
this->unk_410.unk_00 = this;
this->unk_414 = 0;
@@ -25,11 +29,11 @@ THUMB UnkStruct_027E0C68_UnkSubClass1_Sub1::UnkStruct_027E0C68_UnkSubClass1_Sub1
this->unk_424.unk_00 = this;
// ???
ppuVar3 = &this->unk_428;
puVar3 = this->unk_428;
do {
*ppuVar3 = NULL;
ppuVar3 += 2;
} while (ppuVar3 < &this->unk_528);
puVar3->unk_00 = NULL;
puVar3 += 1;
} while ((unk32*)puVar3 < (unk32*)this->unk_528);
func_0203ee48(&this->unk_424);
func_ov000_020d0460(&this->unk_534);
@@ -179,7 +183,7 @@ ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a2c0(void) {
}
ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a30c(void) {
return func_01ff9b88(this->unk_574, this->unk_154->unk_06);
return this->unk_574 / this->unk_154->unk_06;
}
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_3C(unk32 param_2) {
@@ -359,6 +363,22 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_48(void) {
this->unk_410.func_0203ec34();
}
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a35c(void) {
if ((this->unk_57C == 1 || this->unk_150[3] != 0) || (this->unk_128.unk_00 == NULL || this->unk_128.unk_00[0] == 0) != 0) {
if (this->func_0203a3e0()) {
s16 unk_56E = this->unk_56E;
s16 unk_570 = this->unk_570;
UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_164 = this->unk_164;
unk_164->unk_168.unk_10 = unk_56E;
unk_164->unk_168.unk_14 = unk_570;
this->unk_164->func_02039208(4);
}
} else {
this->unk_164->func_02038b40();
}
}
ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a3e0(void) {
return this->unk_164->unk_168.unk_06 > 0;
}
@@ -546,7 +566,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_54(void) {
local_54[0] = puVar3;
iVar2 = 0;
for (iVar2 = 0; func_01ff9b88(iVar2, this->unk_154->unk_06) == 0; iVar2++, puVar3 = this->func_02037604(local_54)) {
for (iVar2 = 0; (iVar2 / this->unk_154->unk_06) == 0; iVar2++, puVar3 = this->func_02037604(local_54)) {
if (local_54[iVar2] != NULL) {
puVar3 = local_54[iVar2];
}
@@ -645,7 +665,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_54(void) {
}
} else if (*local_54[iVar2] == '\n') {
iVar2 = iVar2 + 1;
iVar4 = func_01ff9b88(iVar2, this->unk_154->unk_06);
iVar4 = (iVar2 / this->unk_154->unk_06);
if (iVar4 == 0) {
break;
@@ -821,8 +841,10 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_1C(unk8 param_2, UnkStruct
case 0:
return this->func_0203905c(param_2, param_3, param_4, param_5);
case 1:
iVar1 = this->func_0203a30c();
return this->unk_164->func_0203cb5c(param_2, ((this->unk_428[this->unk_528[iVar1]] & ~0xFFFF)));
UnknownMsgChoiceStruct* pChoiceData;
s32 i = this->func_0203a30c();
pChoiceData = &this->unk_428[this->unk_528[i]];
return this->unk_164->func_0203cb5c(param_2, (((pChoiceData->unk_00->mUnk_0[3] << 0x10) | ((u16*)pChoiceData->unk_00->mUnk_0)[2]) + ~0xFFFE));
default:
break;
}
@@ -957,3 +979,40 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Sub1::~UnkStruct_027E0C68_UnkSubClass1_Sub1(
ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_38(void) {
return true;
}
THUMB UnkStruct_027E0C68_UnkSubClass1_Sub3::UnkStruct_027E0C68_UnkSubClass1_Sub3(unk32 param_2, unk16 param_3, unk32 param_4) :
UnkStruct_027E0C68_UnkSubClass1_Base(0, 0, param_4)
{
this->unk_162 = 4;
this->unk_164 = 1;
this->unk_166 = 0;
this->unk_168 = -1;
this->unk_16A = 0;
this->unk_16C = 1;
this->unk_16E = 0;
}
// non-matching
ARM UnkStruct_027E0C68_UnkSubClass1_Sub2::UnkStruct_027E0C68_UnkSubClass1_Sub2(unk32 param_2, unk16 param_3, unk32 param_4) :
UnkStruct_027E0C68_UnkSubClass1_Base(1, 0, param_4)
{
this->unk_162 = 1;
this->unk_164 = 0x1A;
this->unk_166 = 0xA6;
this->unk_168 = 0x1D;
this->unk_16A = 0;
this->unk_16C = 1;
this->unk_170 = -1;
this->unk_172 = -1;
this->unk_174 = -1;
func_0204f614(this->unk_180, ARRAY_LEN(this->unk_180), sizeof(UnkClass_func_ov000_020d0644), UnkClass_func_ov000_020d0644::func_020d060c, this->func_0203c83c);
this->unk_180[0].func_ov000_020d0644(0x1E, 0, 0x8A, 0, 0);
this->unk_180[1].func_ov000_020d0644(0x1E, 1, 0x8B, 0, 0);
this->unk_180[2].func_ov000_020d0644(0x1E, 2, 0x8C, 0, 0);
this->unk_180[3].func_ov000_020d0644(0x1E, 3, 0x8D, 0, 0);
}
void UnkStruct_027E0C68_UnkSubClass1_Sub2::func_0203c83c(void) {
}
+13 -20
View File
@@ -5,15 +5,13 @@
#include "DTCM/UnkStruct_027e103c.hpp"
#include "Player/TouchControl.hpp"
#include "Item/ItemManager.hpp"
#include "System/SysNew.hpp"
extern u32 *data_027e0ce0[];
extern "C" void func_02007938(unk32, unk32, unk32, unk32, unk32);
extern "C" UnknownClass2* func_0203d1d0(void);
extern "C" UnknownClass2* func_0203d254(void);
extern "C" void func_02007938(unk32, unk32*, unk32, unk32, unk32);
// non-matching
THUMB UnkStruct_027E0C68_UnkSubClass1_Base_0::UnkStruct_027E0C68_UnkSubClass1_Base_0(unk32 param_2, unk32 param_3, unk32 param_4) {
UnknownClass2 *pvVar1;
this->unk_114 = NULL;
this->unk_118 = -1;
this->unk_11C = 0;
@@ -23,24 +21,19 @@ THUMB UnkStruct_027E0C68_UnkSubClass1_Base_0::UnkStruct_027E0C68_UnkSubClass1_Ba
this->unk_121 = param_2;
this->unk_122 = 0;
func_02007938(0, this->unk_54, 0xc0, 1, param_4);
func_02007938(0, &this->unk_54, 0xC0, 1, param_4);
if (this->unk_10[this->unk_121 - 0x10] == '\0') {
// pvVar1 = new(*data_027e0ce0[0], 4) UnknownClass2();
if (pvVar1 != NULL) {
pvVar1 = func_0203d1d0();
}
this->unk_114 = pvVar1;
if (this->unk_121 == 0) {
this->unk_114 = new(data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Base_0_unk_114();
} else {
// pvVar1 = new(*data_027e0ce0[0], 4) UnknownClass2();
this->unk_114 = new(data_027e0ce0[1], 4) UnkStruct_027E0C68_UnkSubClass1_Base_0_unk_114();
}
}
if (pvVar1 != NULL) {
pvVar1 = func_0203d254();
}
this->unk_114 = pvVar1;
THUMB UnkStruct_027E0C68_UnkSubClass1_Base_0::~UnkStruct_027E0C68_UnkSubClass1_Base_0() {
if (this->unk_114 != NULL) {
delete this->unk_114;
this->unk_114 = NULL;
}
}