summaryrefslogtreecommitdiff
path: root/src/Main/Message
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main/Message')
-rw-r--r--src/Main/Message/BMG.cpp3
-rw-r--r--src/Main/Message/MessageManager.cpp15
-rw-r--r--src/Main/Message/func_02032f0c.cpp28
-rw-r--r--src/Main/Message/func_0203744c.cpp51
-rw-r--r--src/Main/Message/func_020397f8.cpp84
-rw-r--r--src/Main/Message/func_0203c8a8.cpp2
6 files changed, 147 insertions, 36 deletions
diff --git a/src/Main/Message/BMG.cpp b/src/Main/Message/BMG.cpp
index 69dae832..8d899b5b 100644
--- a/src/Main/Message/BMG.cpp
+++ b/src/Main/Message/BMG.cpp
@@ -48,9 +48,6 @@ static char* sBMGFileNames[BMG_FILE_INDEX_MAX] = {
"kaitei_F", // BMG_FILE_INDEX_KAITEI_F
};
-ARM void func_020371b0(void) {
-}
-
THUMB void func_020371b4(BMGFileInfo* pFileInfo) {
pFileInfo->pHeader = NULL;
pFileInfo->pINF1 = NULL;
diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp
index 282ed162..f0c7bc9f 100644
--- a/src/Main/Message/MessageManager.cpp
+++ b/src/Main/Message/MessageManager.cpp
@@ -133,7 +133,9 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) {
}
// non-matching
-ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {}
+ARM UnkStruct_027E0C68_UnkSubClass2_Base1::~UnkStruct_027E0C68_UnkSubClass2_Base1() {
+
+}
// non-matching
ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_020366c4(void) {
@@ -232,7 +234,7 @@ ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* para
}
}
-ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass3* param_2) {
+ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) {
if (this->unk_20[1] != NULL) {
return false;
}
@@ -398,7 +400,7 @@ ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* para
return false;
}
-ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass3* param_2) {
+ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) {
if (this->unk_20[0] != NULL && this->unk_20[0] != param_2) {
return false;
}
@@ -407,7 +409,7 @@ ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass3* para
return true;
}
-ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_027E0C68_UnkSubClass3* param_2) {
+ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) {
if (this->unk_20[0] == param_2) {
this->unk_20[0] = NULL;
return true;
@@ -521,7 +523,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036f68(u32
}
//! TODO: fake?
- pSVar5->unk_164 = pSVar2;
+ pSVar5->unk_164 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)pSVar2;
pSVar5->unk_418 = this->unk_28[5];
pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0);
@@ -585,3 +587,6 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02037178(UnkS
return NULL;
}
+
+ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {
+}
diff --git a/src/Main/Message/func_02032f0c.cpp b/src/Main/Message/func_02032f0c.cpp
index b6d77ed2..35cfbef0 100644
--- a/src/Main/Message/func_02032f0c.cpp
+++ b/src/Main/Message/func_02032f0c.cpp
@@ -9,6 +9,20 @@
extern "C" void func_020078f4(unk32, void*, unk32);
extern "C" void func_020078c0(unk32, void*, unk32);
+ARM UnkSubClass1_UnkownClass2_Base1::UnkSubClass1_UnkownClass2_Base1() {
+ this->unk_00 = NULL;
+ this->unk_08 = 0;
+ this->unk_0A = 0;
+ this->unk_0C = 0;
+ this->unk_0E = 0;
+
+ if (func_0202ab48() == 0) {
+ this->unk_10 = 2;
+ } else {
+ this->unk_10 = 3;
+ }
+}
+
THUMB UnkStruct_027E0C68_UnkSubClass1_Base_1::UnkStruct_027E0C68_UnkSubClass1_Base_1() {
this->unk_04 = 0;
this->unk_08 = 0;
@@ -30,3 +44,17 @@ THUMB UnkStruct_027E0C68_UnkSubClass1_Base_1::UnkStruct_027E0C68_UnkSubClass1_Ba
this->unk_30 = 2;
this->unk_34 = 3;
}
+
+ARM UnkSubClass1_UnkownClass1::UnkSubClass1_UnkownClass1() {
+ this->unk_74 = NULL;
+ this->unk_78 = 0;
+ this->unk_7C = 0;
+ this->unk_80 = 0;
+ this->unk_82 = 0;
+ this->unk_84 = 0;
+ this->unk_86 = 0;
+ this->unk_87 = 0;
+}
+
+ARM UnkSubClass1_UnkownClass1::~UnkSubClass1_UnkownClass1() {
+}
diff --git a/src/Main/Message/func_0203744c.cpp b/src/Main/Message/func_0203744c.cpp
index 42ac32d2..067e0ae4 100644
--- a/src/Main/Message/func_0203744c.cpp
+++ b/src/Main/Message/func_0203744c.cpp
@@ -6,15 +6,56 @@
#include "Player/TouchControl.hpp"
#include "Item/ItemManager.hpp"
-THUMB UnkStruct_027E0C68_UnkSubClass1_Base::UnkStruct_027E0C68_UnkSubClass1_Base(unk32 param_2, unk8 param_3) {
- this->unk_124 = 0;
- this->func_0203881c(&this->unk_128);
+ARM UnkStruct_027E0C68_UnkSubClass2_Base1::UnkStruct_027E0C68_UnkSubClass2_Base1(unk32 param_2, unk32 param_3) {
+ s32 i;
+
+ this->unk_14 = param_3;
+ this->unk_18 = param_2;
+ this->unk_1C = 0;
+ this->unk_1D = 0xFF;
+ this->unk_1E = 0;
+
+ for (i = 0; i < ARRAY_LEN(this->unk_04); i++) {
+ this->unk_04[i] = 0;
+ }
+}
+
+ARM UnkStruct_027E0C68_UnkSubClass2_Base1::~UnkStruct_027E0C68_UnkSubClass2_Base1() {
+ if (data_027e0c68.unk_20[0] == this) {
+ data_027e0c68.func_02036d4c(this);
+ }
+}
+
+// non-matching
+ARM UnkStruct_027E0C68_UnkSubClass2::UnkStruct_027E0C68_UnkSubClass2() : UnkStruct_027E0C68_UnkSubClass2_Base1(0x1000000, 0) {
+ this->unk_20 = -1;
+ this->unk_24.func_020376c0(gVec3p_ZERO);
+}
+
+ARM UnkStruct_027E0C68_UnkSubClass2::~UnkStruct_027E0C68_UnkSubClass2() {
+}
+
+ARM UnkSubClass1_UnkownClass2::UnkSubClass1_UnkownClass2() {
+ this->unk_14 = 0x1000;
+ this->unk_18 = 0;
+ this->unk_1C = 0;
+ this->unk_20 = 0;
+ this->unk_24 = 0;
+}
+
+THUMB UnkStruct_027E0C68_UnkSubClass1_Base::UnkStruct_027E0C68_UnkSubClass1_Base(unk32 param_2, unk16 param_3, unk32 param_4)
+ : UnkStruct_027E0C68_UnkSubClass1_Base_0(param_2, param_3, param_4),
+ unk_124(0)
+{
this->func_020387e0(this->unk_150);
this->unk_154 = 0;
this->unk_15A = 0;
this->unk_15C = 0;
- this->unk_15E = 0xff;
- this->unk_15F = 0xff;
+ this->unk_15E = 0xFF;
+ this->unk_15F = 0xFF;
this->unk_160 = 1;
this->unk_11E = param_3;
}
+
+THUMB UnkStruct_027E0C68_UnkSubClass1_Base::~UnkStruct_027E0C68_UnkSubClass1_Base() {
+}
diff --git a/src/Main/Message/func_020397f8.cpp b/src/Main/Message/func_020397f8.cpp
index e9f32362..a24c1b38 100644
--- a/src/Main/Message/func_020397f8.cpp
+++ b/src/Main/Message/func_020397f8.cpp
@@ -10,6 +10,9 @@ extern "C" void func_ov000_020d0460(void*);
extern "C" void func_0203efd8(void*, void*);
extern "C" void func_0203ee48(void*);
+extern unk16 data_02056a0e[];
+extern u8 data_02056a08[];
+
THUMB UnkStruct_027E0C68_UnkSubClass1_Sub1::UnkStruct_027E0C68_UnkSubClass1_Sub1() : unk_164(NULL) {
u16** ppuVar3;
@@ -101,8 +104,8 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_2C(void) {
}
if (this->unk_15C > 0) {
- if ((this->unk_12C == NULL || this->unk_12C[0] == 0) != 0) {
- this->unk_424.func_0203ef78(this->unk_130);
+ if ((this->unk_128.unk_00 == NULL || this->unk_128.unk_00[0] == 0) != 0) {
+ this->unk_424.func_0203ef78(this->unk_128.unk_08);
}
this->func_0203be64();
@@ -225,7 +228,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
bVar1 = data_027e0c68.unk_28[this->unk_50];
this->vfunc_6C(&local_8c, &local_90);
- this->func_0203a188(local_8c + param_2, local_90 + param_3);
+ 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);
if (this->unk_584 != 0) {
@@ -259,7 +262,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
iVar5 = this->func_02032fa4();
iVar8 = bVar1->unk_18;
uVar9 = data_02056a04[iVar8];
- func_0203489c(uVar9, data_02056a16[iVar8], &local_94, &local_98);
+ // func_0203489c(uVar9, data_02056a16[iVar8], &local_94, &local_98);
iVar6 = this->unk_158 - local_94;
iVar7 = this->unk_15A - local_98;
@@ -286,7 +289,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
aStack_68.mUnk_0a = 1;
this->unk_1F0.func_02034a1c(local_9c, local_a0, &aStack_68);
} else {
- func_02034984(iVar5 != 0 ? 0x11F : 0x18, 0, local_9c, local_a0 + 2, 0);
+ // func_02034984(iVar5 != 0 ? 0x11F : 0x18, 0, local_9c, local_a0 + 2, 0);
}
}
@@ -304,6 +307,49 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
}
}
+ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4) {
+ unk16 sVar1;
+ unk16 sVar2;
+ unk32 iVar3;
+ unk32 iVar4;
+ unk32 uVar5;
+ unk32 iVar6;
+ unk32 iStack_54;
+ unk32 iStack_50;
+ unk32 iStack_4c;
+ unk32 iStack_48;
+ UnkStruct_01ffbe34 aStack_44;
+ unk32 uStack_24;
+
+ if (this->unk_15E == 7) {
+ return;
+ }
+
+ // (short)(ushort)*(byte *)((int)data_027e0c68.unk_28[(this->unk_50 - 0x28) * 0x18];
+
+ iVar6 = data_027e0c68.unk_10 + this->unk_50;
+ // uStack_24 = param_4;
+
+ if (data_027e0cbc.func_0203d7e0(data_02056a00[iVar6]) != 0) {
+ uVar5 = data_02056a04[iVar6];
+
+ func_0203489c(uVar5, data_02056a16[iVar6], &iStack_48, &iStack_4c);
+ iVar3 = iStack_50 + (this->unk_158 - iStack_48);
+
+ func_02034698(uVar5, data_02056a0e[iVar6], &iStack_50, &iStack_54);
+ iVar4 = iStack_54 + (this->unk_15A - iStack_4c);
+
+ func_01ffbe34(&aStack_44);
+ aStack_44.mUnk_0a = 1;
+
+ if (this->unk_580 != 0) {
+ this->unk_168.func_02034a1c(param_2 + iVar3, param_3 + iVar4, &aStack_44);
+ } else {
+ func_02034984(uVar5, data_02056a08[iVar6], param_2 + iVar3, param_3 + iVar4);
+ }
+ }
+}
+
// non-matching (regalloc)
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_48(void) {
if (this->unk_164 != NULL && this->unk_164->unk_15C > 0) {
@@ -380,13 +426,13 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_44(s32 touchLastX, s32 touc
//! TODO: fixme
// if (this->unk_164->unk_168.unk_06 <= 0) {
// if ((data_027e0d78.mFlags & 2) != 0) {
- // this->unk_13C = 0;
+ // this->unk_128.unk_14 = 0;
// if (this->func_0203b0bc() != 0) {
// this->func_0203b0ec(1);
// }
- // this->unk_1F0.unk_64 = 0;
+ // this->unk_1F0.unk_5C.unk_08 = 0;
// this->unk_1F0.func_020352d8();
// }
// }
@@ -395,13 +441,13 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_44(s32 touchLastX, s32 touc
case 1:
default:
if ((data_027e0d78.mFlags & 2) != 0) {
- this->unk_13C = 0;
+ this->unk_128.unk_14 = 0;
if (this->func_0203b0bc() != 0) {
this->func_0203b0ec(1);
}
- this->unk_1F0.unk_64 = 0;
+ this->unk_1F0.unk_5C.unk_08 = 0;
this->unk_1F0.func_020352d8();
}
break;
@@ -496,7 +542,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_54(void) {
this->unk_424.func_0203ee48();
this->unk_150[1] = 1;
- puVar3 = this->unk_12C;
+ puVar3 = this->unk_128.unk_00;
local_54[0] = puVar3;
iVar2 = 0;
@@ -642,14 +688,14 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_54(void) {
this->func_0203b764();
if (this->unk_15F == 0 || this->unk_154->unk_06 < 3) {
- this->unk_168.unk_64 = this->unk_168.unk_7C;
+ this->unk_168.unk_5C.unk_08 = this->unk_168.unk_7C;
this->unk_168.func_020352d8();
} else {
this->unk_168.func_020351b8(1, 0, 0, 0);
}
}
- this->unk_1F0.unk_64 = 0;
+ this->unk_1F0.unk_5C.unk_08 = 0;
this->unk_1F0.func_020352d8();
this->vfunc_0C(0, 0, 0, 0);
// (**(code **)(*(int *)param_1 + 0x10))(0);
@@ -657,10 +703,10 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_54(void) {
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_5C(void) {
if (this->unk_15F == 0 || this->unk_154->unk_06 <= 2) {
- this->unk_168.unk_64 = this->unk_168.unk_7C;
+ this->unk_168.unk_5C.unk_08 = this->unk_168.unk_7C;
this->unk_168.func_020352d8();
} else {
- this->unk_168.unk_64 = 0;
+ this->unk_168.unk_5C.unk_08 = 0;
this->unk_168.func_020352d8();
this->unk_168.func_020351b8(1, 0, 0, 0);
}
@@ -744,7 +790,7 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_18(UnkStruct_0203b264* par
}
if (bVar5) {
- this->unk_424.func_0203ee80(this->unk_130);
+ this->unk_424.func_0203ee80(this->unk_128.unk_08);
}
}
@@ -759,7 +805,7 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_1C(unk8 param_2, UnkStruct
psVar3 = param_3->mUnk_4;
if (psVar3[0] == 10) {
- this->unk_424.func_0203ef78(this->unk_130, psVar3[0], param_4);
+ this->unk_424.func_0203ef78(this->unk_128.unk_08, psVar3[0], param_4);
this->unk_574++;
if (this->func_0203a30c() == 0) {
@@ -906,12 +952,6 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_6C(unk32* param_2, unk32* p
}
ARM UnkStruct_027E0C68_UnkSubClass1_Sub1::~UnkStruct_027E0C68_UnkSubClass1_Sub1() {
- this->unk_388.func_020350ac();
- this->unk_300.func_020350ac();
- this->unk_278.func_020350ac();
- this->unk_1F0.func_020350ac();
- this->unk_168.func_020350ac();
- this->func_02038b1c();
}
ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_38(void) {
diff --git a/src/Main/Message/func_0203c8a8.cpp b/src/Main/Message/func_0203c8a8.cpp
index 34042c3c..1345b7c8 100644
--- a/src/Main/Message/func_0203c8a8.cpp
+++ b/src/Main/Message/func_0203c8a8.cpp
@@ -11,7 +11,7 @@ extern "C" void func_02007938(unk32, unk32, unk32, unk32, unk32);
extern "C" UnknownClass2* func_0203d1d0(void);
extern "C" UnknownClass2* func_0203d254(void);
-THUMB UnkStruct_027E0C68_UnkSubClass1_Base_0::UnkStruct_027E0C68_UnkSubClass1_Base_0(unk8 param_2, unk32 param_3, unk32 param_4) {
+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;