summaryrefslogtreecommitdiff
path: root/src/Main
diff options
context:
space:
mode:
authorYanis002 <35189056+Yanis002@users.noreply.github.com>2025-01-23 21:54:51 +0100
committerYanis002 <35189056+Yanis002@users.noreply.github.com>2025-01-23 21:54:51 +0100
commitcf97807bbc2941a50267b1de59b88ae971009488 (patch)
tree6db36b5296240db97f84b64ab368339646dbe8eb /src/Main
parent302c28edcb006510d84824c0da0291bf81507b04 (diff)
progress and add more funcs
Diffstat (limited to 'src/Main')
-rw-r--r--src/Main/Message/MessageManager.cpp96
1 files changed, 88 insertions, 8 deletions
diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp
index 7413e15c..c18ce30f 100644
--- a/src/Main/Message/MessageManager.cpp
+++ b/src/Main/Message/MessageManager.cpp
@@ -1,11 +1,12 @@
#include "Message/MessageManager.hpp"
-s32 func_02036824(void);
-unk32 func_ov000_020d7f18(u32*, unk32);
-unk32 func_ov000_020d77e4(u32*, unk32);
-unk32 func_02037628(u8*);
-THUMB unk32 func_0202ab48(void);
-ARM void func_02038b40(Struct_027E0C68_unk_28*);
+extern s32 func_02036824(void);
+extern unk32 func_ov000_020d7f18(u32*, unk32);
+extern unk32 func_ov000_020d77e4(u32*, unk32);
+extern unk32 func_02037628(u8*);
+extern THUMB unk32 func_0202ab48(void);
+extern ARM void func_02038b40(Struct_027E0C68_unk_28*);
+extern ARM unk32 func_0203de14(Struct_027E0C68_unk_28*, unk32);
// see Actor.cpp
struct UnkStruct2 {
@@ -17,19 +18,43 @@ extern UnkStruct2 data_027e077c;
extern u32 data_ov000_020eec9c[];
extern u8 data_02056be4[];
+ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) {
+ s32 i;
+
+ for (i = 0; i < ARRAY_LEN(this->unk_28); i++) {
+ if (this->unk_28[i] != NULL && func_0203de14(this->unk_28[i], param_2) != 0) {
+ this->unk_28[i]->unk_00->unk_28(this->unk_28[i]);
+ }
+ }
+}
+
+ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) {
+ s32 i;
+
+ for (i = 0; i < ARRAY_LEN(this->unk_28); i++) {
+ Struct_027E0C68_unk_28* pSVar1 = this->unk_28[i];
+
+ if (pSVar1 != NULL) {
+ pSVar1->unk_00->unk_3C(pSVar1, param_2);
+ }
+ }
+}
+
+// non-matching
ARM s32 UnkStruct_027E0C68::func_02036ce4(Struct_027E0C68_unk_18* param_2, unk32 param_3) {
if (param_3 == 0) {
return 0;
}
- if (func_020373ec(this->pGroups,param_3) != -1) {
- param_2->unk_00->unk_08(param_2);
+ if (func_020373ec(this->pGroups, param_3) != -1) {
+ param_2->unk_00->unk_08();
return 1;
}
return 0;
}
+// non-matching
ARM unk32 UnkStruct_027E0C68::func_02036d30(unk32 param_2) {
if (this->unk_20 == 0 || this->unk_20 == param_2) {
this->unk_20 = param_2;
@@ -48,6 +73,7 @@ ARM unk32 UnkStruct_027E0C68::func_02036d4c(unk32 param_2) {
return 0;
}
+// non-matching
ARM void UnkStruct_027E0C68::func_02036d6c(void) {
s32 i;
@@ -58,6 +84,59 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) {
}
}
+// non-matching
+ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02036da8(u32 param_2, s32* param_3) {
+ EntryINF1 *pEVar1;
+ EntryINF1 *pEVar2;
+ u8* puVar3;
+ Struct_027E0C68_unk_28 *pSVar4;
+ BMGGroups *pBVar5;
+ bool bVar6;
+ u8 iStack_38;
+ int iStack_34;
+ int iStack_30;
+ u8 uStack_2c;
+ u8 uStack_23;
+
+ pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xFFFF);
+
+ if (pEVar1 == NULL) {
+ return NULL;
+ }
+
+ if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) {
+ pSVar4 = this->unk_28[4];
+ func_02037628(&iStack_38);
+ bVar6 = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0;
+ puVar3 = data_02056be4;
+
+ if (bVar6) {
+ puVar3[0] = 1;
+ }
+
+ uStack_23 = puVar3[0];
+
+ if (!bVar6) {
+ uStack_23 = 0;
+ }
+
+ uStack_2c = 1;
+ iStack_38 = *param_3;
+ iStack_34 = param_3[1];
+ iStack_30 = param_3[2];
+ pBVar5 = this->pGroups;
+ pEVar2 = func_02037258(&pBVar5->entries[param_2 >> 0x10], param_2 & 0xFFFF);
+
+ pSVar4->unk_00->unk_50(pSVar4, pEVar1, (int)&((pBVar5->entries[param_2 >> 0x10].pDAT1)->base).tag + (pEVar2->offset & 0xfffffffe), &iStack_38);
+
+ func_ov000_020d77e4(data_ov000_020eec9c, 0x1C);
+ return pSVar4;
+ }
+
+ return NULL;
+}
+
+// non-matching
ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) {
Struct_027E0C68_unk_28 *pSVar1;
u8 auStack_28[24];
@@ -81,6 +160,7 @@ ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) {
}
}
+// non-matching
ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) {
EntryINF1 *pEVar1;
Struct_027E0C68_unk_28 *pSVar2;