summaryrefslogtreecommitdiff
path: root/src/Main/Unknown/UnkStruct_02038aa0.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main/Unknown/UnkStruct_02038aa0.cpp')
-rw-r--r--src/Main/Unknown/UnkStruct_02038aa0.cpp280
1 files changed, 239 insertions, 41 deletions
diff --git a/src/Main/Unknown/UnkStruct_02038aa0.cpp b/src/Main/Unknown/UnkStruct_02038aa0.cpp
index 371c886a..227a4370 100644
--- a/src/Main/Unknown/UnkStruct_02038aa0.cpp
+++ b/src/Main/Unknown/UnkStruct_02038aa0.cpp
@@ -1,43 +1,241 @@
#include "Unknown/UnkStruct_02038aa0.hpp"
-UnkStruct_0203881c::UnkStruct_0203881c() {}
-void UnkStruct_0203881c::func_02038858(unk32 param1) {}
-void UnkStruct_0203881c::func_02038888() {}
-void UnkStruct_0203881c::func_02038950(UnkStruct_02038aa0 *param1, s32 param2) {}
-void UnkStruct_0203881c::func_02038a80(s32 param1) {}
-UnkStruct_0203881c::~UnkStruct_0203881c() {}
-
-UnkStruct_02038aa0::UnkStruct_02038aa0(u8 param1, u8 param2) :
- UnkStruct_0203dae0(param1) {}
-UnkStruct_02038aa0::~UnkStruct_02038aa0() {}
-void UnkStruct_02038aa0::func_02038b34(u32 param1, unk32 param2) {}
-void UnkStruct_02038aa0::vfunc_4c() {}
-void UnkStruct_02038aa0::vfunc_10(unk32 param1) {}
-void UnkStruct_02038aa0::func_02038b40() {}
-void UnkStruct_02038aa0::vfunc_48() {}
-bool UnkStruct_02038aa0::func_02038b78() {}
-unk32 UnkStruct_02038aa0::vfunc_34(s32 param1) {}
-s32 UnkStruct_02038aa0::func_02038cb8(s32 param1) {}
-s32 UnkStruct_02038aa0::func_02038cf4() {}
-s32 UnkStruct_02038aa0::func_02038d10() {}
-void UnkStruct_02038aa0::vfunc_2c() {}
-void UnkStruct_02038aa0::vfunc_30() {}
-bool UnkStruct_02038aa0::func_02038ef4(s32 param1, s32 param2) {}
-void UnkStruct_02038aa0::vfunc_44() {}
-void UnkStruct_02038aa0::vfunc_50(unk32 param1, unk32 param2, s32 param3, unk32 param4) {}
-void UnkStruct_02038aa0::vfunc_5c() {}
-unk32 UnkStruct_02038aa0::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {}
-unk32 UnkStruct_02038aa0::vfunc_20(s32 param1, s32 *param2) {}
-void UnkStruct_02038aa0::func_02039208(unk16 param1) {}
-void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {}
-unk32 UnkStruct_02038aa0::func_02039250() {}
-void UnkStruct_02038aa0::vfunc_54() {}
-void UnkStruct_02038aa0::vfunc_58() {}
-void UnkStruct_02038aa0::vfunc_60() {}
-void UnkStruct_02038aa0::vfunc_64() {}
-s32 UnkStruct_02038aa0::vfunc_68(unk32 param1) {}
-void UnkStruct_02038aa0::func_02039440(unk32 param1, unk32 param2) {}
-void UnkStruct_02038aa0::vfunc_6c(s32 *param1, s32 *param2) {}
-void UnkStruct_02038aa0::vfunc_70(s32 *param1, s32 *param2) {}
-bool UnkStruct_02038aa0::func_0203951c() {}
-unk32 UnkStruct_02038aa0::vfunc_38() {}
+ARM UnkStruct_0203881c::UnkStruct_0203881c() {
+ this->unk_14 = 0x1000;
+ this->unk_18 = 0;
+ this->unk_1C = 0;
+ this->unk_20 = 0;
+ this->unk_24 = 0;
+}
+
+ARM void UnkStruct_0203881c::func_02038858(unk32 param1) {}
+ARM void UnkStruct_0203881c::func_02038888() {}
+ARM void UnkStruct_0203881c::func_02038950(UnkStruct_02038aa0 *param1, s32 param2) {}
+ARM void UnkStruct_0203881c::func_02038a80(s32 param1) {}
+ARM UnkStruct_0203881c::~UnkStruct_0203881c() {}
+
+THUMB UnkStruct_02038aa0::UnkStruct_02038aa0(u8 param1, u8 param2) :
+ UnkStruct_0203dae0(param1), mUnk_124(0) {
+ this->func_020387e0(this->unk_150);
+ this->pInfoEntry = 0;
+ this->unk_158.y = 0;
+ this->unk_15C = 0;
+ this->unk_15E = 0xFF;
+ this->unk_15F = 0xFF;
+ this->unk_160 = 1;
+ this->unk_11E = param2;
+}
+
+THUMB UnkStruct_02038aa0::~UnkStruct_02038aa0() {
+}
+
+THUMB void UnkStruct_02038aa0::func_02038b28(void) {
+ this->unk_114->unk_04 = NULL;
+}
+
+ARM void UnkStruct_02038aa0::func_02038b34(u32 param1, unk32 param2) {
+ MsgProc_Type1::func_0203e060(this, param1, param2);
+}
+
+ARM void UnkStruct_02038aa0::vfunc_4c() {}
+ARM void UnkStruct_02038aa0::vfunc_10(unk32 param1) {}
+
+ARM void UnkStruct_02038aa0::func_02038b40() {
+ this->unk_15C = -1;
+ this->unk_128.unk_00 = NULL;
+ this->func_0203dc10(0);
+ this->vfunc_48();
+}
+
+ARM void UnkStruct_02038aa0::vfunc_48() {}
+
+ARM void UnkStruct_02038aa0::func_02038b74(void) {
+}
+
+// non-matching
+ARM bool UnkStruct_02038aa0::func_02038b78() {
+ if (data_027e0c54 == 0) {
+ if ((this->unk_50 != 0 && data_027e0c68.func_02036850() != 0) || (this->unk_50 == 0 && data_027e0c68.func_02036824() != 0)) {
+ return true;
+ }
+
+ return false;
+ } else {
+ bool ret = CHECK_UNK_FLAGS(1);
+
+ if ((this->unk_50 == 0 || ret)) {
+ return (this->unk_50 != 0 && ret);
+ }
+
+ return false;
+ }
+}
+
+ARM unk32 UnkStruct_02038aa0::vfunc_34(s32 param1) {
+ s16 iVar1;
+ unk32 iVar2;
+ unk32 iVar3;
+ unk32 uVar4;
+
+ iVar2 = this->func_02038cf4();
+ iVar3 = this->func_02038d10();
+ iVar1 = ((this->unk_158.y - (this->unk_18 << 3) / 2));
+
+ if ((param1 < iVar2 + iVar1) || (iVar2 + iVar3 + iVar1 <= param1)) {
+ return -1;
+ }
+
+ iVar3 = this->mUnk_34;
+ uVar4 = this->func_02032fb4();
+ iVar2 = (param1 - iVar1) - iVar2;
+
+ return func_01ff9b4c(iVar2 + iVar3 / 2, uVar4);
+}
+
+ARM s32 UnkStruct_02038aa0::func_02038cb8(s32 param1) {
+ u8 bVar1 = this->unk_2C[0]->unk_08[1];
+ unk32 iVar2 = this->func_02038cf4();
+ unk32 iVar1 = this->func_020337d8(param1 + 1);
+ return iVar2 + iVar1 - bVar1;
+}
+
+ARM s32 UnkStruct_02038aa0::func_02038cf4() {
+ unk32 iVar1;
+ unk32 iVar2;
+
+ iVar2 = this->mUnk_18;
+ iVar1 = this->func_02038d10();
+ return (iVar2 * 8 - iVar1) / 2;
+}
+
+ARM s32 UnkStruct_02038aa0::func_02038d10() {
+ return this->func_020337d8(this->unk_150[0]);
+}
+
+ARM void UnkStruct_02038aa0::vfunc_2c() {}
+
+ARM void UnkStruct_02038aa0::vfunc_30() {
+ if (this->unk_15C > 0) {
+ this->func_0203e090();
+ } else {
+ this->unk_118 = -1;
+ }
+}
+
+ARM bool UnkStruct_02038aa0::func_02038ef4(s32 param1, s32 param2) {
+ unk32 local_14;
+ unk32 local_18;
+
+ this->vfunc_70(&local_14, &local_18);
+ this->func_0203e1b0(local_14 + param1, local_18 + param2, 0);
+}
+
+ARM void UnkStruct_02038aa0::func_02038f40(void) {
+}
+
+// non-matching
+ARM void UnkStruct_02038aa0::vfunc_44() {
+ int iVar1;
+
+ this->pInfoEntry = param_2;
+ this->unk_08 = param_5;
+ this->unk_15F = -1;
+ this->unk_15C = 0x78;
+ this->unk_15E = param_4->mUnk_0c;
+ this->func_0203dcfc(param_6, 0, this->unk_11E, 2);
+ this->unk_128.func_02038858(param_3);
+ this->unk_30 = this->unk_150[4] + 5;
+
+ this->vfunc_54();
+ // this->vfunc_60(0, 0, (unk32)param_4);
+ // this->vfunc_64(param_4);
+
+ if (*(unk32*)data_027e0618 == 2) {
+ if (this->func_02032fa4() == 0) {
+ data_027e103c->func_ov000_020cfc9c(1, 0);
+ } else {
+ data_027e103c->func_ov000_020cfc9c(0, 1);
+ }
+ }
+
+ this->vfunc_5C();
+}
+
+ARM void UnkStruct_02038aa0::vfunc_50(unk32 param1, unk32 param2, s32 param3, unk32 param4) {
+}
+
+// non-matching
+ARM void UnkStruct_02038aa0::vfunc_5c() {
+ u16 sVar1;
+ bool bVar5;
+
+ sVar1 = param_2[0];
+ bVar5 = (sVar1 == 0xA || sVar1 == 0x20) || sVar1 == 0x3000;
+
+ if (bVar5 && this->unk_150[2] != 0) {
+ this->unk_150[2] = 1;
+ } else {
+ this->unk_150[2] = 0;
+ }
+
+ // this->unk_150[2] = bVar5;
+
+ return this->func_02033360();
+}
+
+ARM unk32 UnkStruct_02038aa0::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {}
+ARM unk32 UnkStruct_02038aa0::vfunc_20(s32 param1, s32 *param2) {}
+ARM void UnkStruct_02038aa0::func_02039208(unk16 param1) {}
+
+// non-matching
+ARM void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {
+ this->unk_15C = 10;
+ this->unk_150[2] = 1;
+ this->func_0203e2ac(param2);
+}
+
+ARM unk32 UnkStruct_02038aa0::func_02039250() {}
+ARM void UnkStruct_02038aa0::vfunc_54() {}
+ARM void UnkStruct_02038aa0::vfunc_58() {}
+ARM void UnkStruct_02038aa0::vfunc_60() {}
+ARM void UnkStruct_02038aa0::vfunc_64() {}
+
+ARM s32 UnkStruct_02038aa0::vfunc_68(unk32 param1) {
+ switch (param_2) {
+ case 0:
+ break;
+ case 1:
+ this->unk_34 = 4;
+ break;
+ case 2:
+ this->unk_34 = 6;
+ break;
+ case 3:
+ this->unk_34 = 1;
+ break;
+ case 4:
+ this->unk_34 = 0;
+ break;
+ default:
+ break;
+ }
+
+ return ((this->unk_18 << 3) - this->func_020337d8(param1)) / 2;
+}
+
+ARM void UnkStruct_02038aa0::func_02039440(unk32 param1, unk32 param2) {}
+ARM void UnkStruct_02038aa0::vfunc_6c(s32 *param1, s32 *param2) {}
+
+ARM void UnkStruct_02038aa0::vfunc_70(s32 *param1, s32 *param2) {
+ this->vfunc_6C(param1, param2);
+ *param1 += this->unk_158.x;
+ *param2 += this->unk_158.y;
+}
+
+ARM bool UnkStruct_02038aa0::func_0203951c() {}
+ARM unk32 UnkStruct_02038aa0::vfunc_38() {}
+
+ARM void UnkStruct_02038aa0::vfunc_0c(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) {
+ this->func_0203dc10(1, param_3);
+ this->func_02033190(param_2, param_3, param_4, param_5);
+}