summaryrefslogtreecommitdiff
path: root/src/Main
diff options
context:
space:
mode:
authorYanis002 <35189056+Yanis002@users.noreply.github.com>2025-01-24 03:37:43 +0100
committerYanis002 <35189056+Yanis002@users.noreply.github.com>2025-01-24 03:37:43 +0100
commitdea4060fb5eca12980e578b820e6ee349d721c8e (patch)
tree4d4e8eff51ffb08680e3d16b15ef2017ed29fb77 /src/Main
parent3194675d0d444d3d200d8a5c85fca16ea4cb1f09 (diff)
more progress
Diffstat (limited to 'src/Main')
-rw-r--r--src/Main/Message/MessageManager.cpp70
1 files changed, 68 insertions, 2 deletions
diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp
index f4ef6438..92a2f965 100644
--- a/src/Main/Message/MessageManager.cpp
+++ b/src/Main/Message/MessageManager.cpp
@@ -17,8 +17,72 @@ extern UnkStruct2 data_027e077c;
extern u32 data_ov000_020eec9c[];
extern u8 data_02056be4[];
+// non-matching
+ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {}
+
+// non-matching
+ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_020366c4(void) {
+ if (((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) && ((data_02056be4[data_027e077c.mUnk_0] & 2) == 0)) {
+ return this->unk_28[2];
+ }
+
+ return this->unk_28[0];
+}
+
+// non-matching
+ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036700(void) {
+ if (((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) && ((data_02056be4[data_027e077c.mUnk_0] & 2) == 0)) {
+ return this->unk_28[0];
+ }
+
+ return this->unk_28[2];
+}
+
+ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_0203673c(void) {
+ bool iVar1 = this->func_02036824();
+ bool iVar2 = this->func_02036850();
+
+ if (iVar1) {
+ return this->unk_18;
+ }
+
+ if (iVar2) {
+ return this->unk_1C;
+ }
+
+ return NULL;
+}
+
+ARM unk32 UnkStruct_027E0C68::func_02036798(void) {
+ unk32 uVar2 = 1;
+
+ if (this->unk_04 == 0) {
+ bool bVar1 = false;
+
+ if (this->unk_1C != NULL && (this->unk_1C->unk_18 & 0xFFFF0000) != 0x1000000) {
+ bVar1 = true;
+ }
+
+ if (!bVar1) {
+ uVar2 = 0;
+ }
+ }
+
+ return uVar2;
+}
+
+ARM bool UnkStruct_027E0C68::func_020367dc(int param_2) {
+ return param_2 == 0;
+}
+
+ARM bool UnkStruct_027E0C68::func_020367ec(void) {
+ //! TODO: fake?
+ return this->unk_28[0]->unk_15C > 0;
+}
+
ARM bool UnkStruct_027E0C68::func_02036808(void) {
- return this->unk_28[2]->unk_15[0x2E] > 0;
+ //! TODO: fake?
+ return this->unk_28[2]->unk_15C > 0;
}
ARM bool UnkStruct_027E0C68::func_02036824(void) {
@@ -34,6 +98,7 @@ ARM bool UnkStruct_027E0C68::func_02036824(void) {
return false;
}
+// non-matching
ARM bool UnkStruct_027E0C68::func_02036850(void) {
bool ret = false;
u8 value;
@@ -52,7 +117,8 @@ ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* para
if ((param_2->unk_18 & 0xFFFF0000) != 0x1000000) {
UnkStruct_027E0C68_UnkSubClass1* iVar1 = this->func_020366c4();
- if (iVar1->unk_5C <= 0) {
+ //! TODO: fake?
+ if (iVar1->unk_15C <= 0) {
param_2->vfunc_10();
} else {
param_2->vfunc_0C(this->func_020366c4());