From 302c28edcb006510d84824c0da0291bf81507b04 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Thu, 23 Jan 2025 19:24:03 +0100 Subject: more funcs + split BMG.cpp --- src/Main/Message/MessageManager.cpp | 174 ++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 src/Main/Message/MessageManager.cpp (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp new file mode 100644 index 00000000..7413e15c --- /dev/null +++ b/src/Main/Message/MessageManager.cpp @@ -0,0 +1,174 @@ +#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*); + +// see Actor.cpp +struct UnkStruct2 { + /* 0 */ u32 mUnk_0; + /* 4 */ u32 mUnk_4; + /* 8 */ +}; +extern UnkStruct2 data_027e077c; +extern u32 data_ov000_020eec9c[]; +extern u8 data_02056be4[]; + +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); + return 1; + } + + return 0; +} + +ARM unk32 UnkStruct_027E0C68::func_02036d30(unk32 param_2) { + if (this->unk_20 == 0 || this->unk_20 == param_2) { + this->unk_20 = param_2; + return 1; + } + + return 0; +} + +ARM unk32 UnkStruct_027E0C68::func_02036d4c(unk32 param_2) { + if (this->unk_20 == param_2) { + this->unk_20 = 0; + return 1; + } + + return 0; +} + +ARM void UnkStruct_027E0C68::func_02036d6c(void) { + s32 i; + + for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + if (func_0202ab48() == 0 || i != 5) { + func_02038b40(this->unk_28[i]); + } + } +} + +ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { + Struct_027E0C68_unk_28 *pSVar1; + u8 auStack_28[24]; + u8 local_13; + + func_02037628(auStack_28); + local_13 = 0; + + if ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (data_02056be4[data_027e077c.mUnk_0] & 2) == 0) { + local_13 = 1; + } + + auStack_28[21] = local_13; + auStack_28[20] = param_3; + pSVar1 = this->func_02036f68(param_2, auStack_28); + + if (pSVar1 != NULL) { + if (this->unk_04 == 0) { + this->unk_08 = pSVar1; + } + } +} + +ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { + EntryINF1 *pEVar1; + Struct_027E0C68_unk_28 *pSVar2; + EntryINF1 *pEVar3; + int iVar4; + Struct_027E0C68_unk_28 *pSVar5; + BMGGroups *pBVar6; + + pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xffff); + + if (pEVar1 == NULL) { + return NULL; + } + + if (param_3[21] != 0) { + pSVar5 = this->unk_28[2]; + pSVar2 = this->unk_28[3]; + } else { + pSVar5 = this->unk_28[0]; + pSVar2 = this->unk_28[1]; + } + + pSVar5[0x16].unk_04 = pSVar2; + pSVar5[0x41].unk_08 = this->unk_28[5]; + pBVar6 = this->pGroups; + pEVar3 = func_02037258(&pBVar6->entries[param_2 >> 0x10], param_2 & 0xffff); + + pSVar5->unk_00->unk_50(pSVar5, pEVar1, (int)&((pBVar6->entries[param_2 >> 0x10].pDAT1)->base).tag + (pEVar3->offset & 0xfffffffe), param_3); + + if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 && + func_ov000_020d7f18(data_ov000_020eec9c, 0x34) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x35) == 0 && + func_ov000_020d7f18(data_ov000_020eec9c, 0x1A) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x1B) == 0 && + (param_3[12]) != 7) { + func_ov000_020d77e4(data_ov000_020eec9c, 0x1C); + } + + return pSVar5; +} + +ARM Struct_027E0C68_unk_18* UnkStruct_027E0C68::func_020370d0(unk32 param_2, unk32 param_3) { + return this->func_020370e8(param_2, -1, -1, param_3); +} + +ARM Struct_027E0C68_unk_18* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { + Struct_027E0C68_unk_18* puVar2; + + if (func_02036824() != 0) { + puVar2 = this->unk_18; + } else { + if (this->func_02036850() != 0) { + puVar2 = this->unk_1C; + } else { + return NULL; + } + } + + puVar2->unk_30 = param_5; + puVar2->unk_34 = param_3; + puVar2->unk_36 = param_4; + + if (this->func_02036ce4(puVar2, param_2) != 0) { + return puVar2; + } + + return NULL; +} + +ARM void UnkStruct_027E0C68::func_02037158(Struct_027E0C68_unk_28* param_2) { + Struct_027E0C68_unk_28* pSVar1; + + pSVar1 = this->func_02037178(param_2); + + if (pSVar1 != NULL) { + pSVar1->unk_00->unk_58(pSVar1); + } +} + +ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02037178(Struct_027E0C68_unk_28* param_2) { + Struct_027E0C68_unk_28* piVar1; + s32 iVar2; + + for (iVar2 = 0; iVar2 < ARRAY_LEN(this->unk_28); iVar2++) { + piVar1 = this->unk_28[iVar2]; + + if (piVar1 != NULL && piVar1->unk_08 == param_2) { + return piVar1; + } + } + + return NULL; +} -- cgit v1.2.3 From cf97807bbc2941a50267b1de59b88ae971009488 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Thu, 23 Jan 2025 21:54:51 +0100 Subject: progress and add more funcs --- src/Main/Message/MessageManager.cpp | 96 +++++++++++++++++++++++++++++++++---- 1 file changed, 88 insertions(+), 8 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') 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; -- cgit v1.2.3 From 3194675d0d444d3d200d8a5c85fca16ea4cb1f09 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 24 Jan 2025 02:24:14 +0100 Subject: more progress & cleanup structs --- src/Main/Message/MessageManager.cpp | 122 +++++++++++++++++++++++++----------- 1 file changed, 86 insertions(+), 36 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index c18ce30f..f4ef6438 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -1,12 +1,11 @@ #include "Message/MessageManager.hpp" -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); +extern ARM void func_02038b40(UnkStruct_027E0C68_UnkSubClass1*); +extern ARM unk32 func_0203de14(UnkStruct_027E0C68_UnkSubClass1*, unk32); // see Actor.cpp struct UnkStruct2 { @@ -18,12 +17,64 @@ extern UnkStruct2 data_027e077c; extern u32 data_ov000_020eec9c[]; extern u8 data_02056be4[]; +ARM bool UnkStruct_027E0C68::func_02036808(void) { + return this->unk_28[2]->unk_15[0x2E] > 0; +} + +ARM bool UnkStruct_027E0C68::func_02036824(void) { + switch (data_027e077c.mUnk_0) { + case 0x01: + case 0x37: + case 0x3B: + return true; + default: + break; + } + + return false; +} + +ARM bool UnkStruct_027E0C68::func_02036850(void) { + bool ret = false; + u8 value; + u32 val = data_027e077c.mUnk_0; + + value = data_02056be4[val]; + + if (!(value & 2)) { + ret = value & 1; + } + + return ret; +} + +ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2) { + if ((param_2->unk_18 & 0xFFFF0000) != 0x1000000) { + UnkStruct_027E0C68_UnkSubClass1* iVar1 = this->func_020366c4(); + + if (iVar1->unk_5C <= 0) { + param_2->vfunc_10(); + } else { + param_2->vfunc_0C(this->func_020366c4()); + } + } +} + +ARM bool UnkStruct_027E0C68::func_020368f4(unk32 param_2) { + if (this->unk_24 != 0) { + return false; + } + + this->unk_24 = param_2; + return true; +} + 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]); + this->unk_28[i]->vfunc_28(); } } } @@ -32,41 +83,40 @@ 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]; + UnkStruct_027E0C68_UnkSubClass1* pSVar1 = this->unk_28[i]; if (pSVar1 != NULL) { - pSVar1->unk_00->unk_3C(pSVar1, param_2); + pSVar1->vfunc_3C(param_2); } } } // non-matching -ARM s32 UnkStruct_027E0C68::func_02036ce4(Struct_027E0C68_unk_18* param_2, unk32 param_3) { +ARM s32 UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* 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->vfunc_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; - return 1; +ARM unk32 UnkStruct_027E0C68::func_02036d30(u32* param_2) { + if (this->unk_20 != NULL && this->unk_20 != param_2) { + return 0; } - return 0; + this->unk_20 = param_2; + return 1; } -ARM unk32 UnkStruct_027E0C68::func_02036d4c(unk32 param_2) { +ARM unk32 UnkStruct_027E0C68::func_02036d4c(u32* param_2) { if (this->unk_20 == param_2) { - this->unk_20 = 0; + this->unk_20 = NULL; return 1; } @@ -85,11 +135,11 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { } // non-matching -ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02036da8(u32 param_2, s32* param_3) { +ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param_2, s32* param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; u8* puVar3; - Struct_027E0C68_unk_28 *pSVar4; + UnkStruct_027E0C68_UnkSubClass1 *pSVar4; BMGGroups *pBVar5; bool bVar6; u8 iStack_38; @@ -127,7 +177,7 @@ ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02036da8(u32 param_2, s32* 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); + pSVar4->vfunc_50(pEVar1, (int)&((pBVar5->entries[param_2 >> 0x10].pDAT1)->base).tag + (pEVar2->offset & 0xfffffffe), &iStack_38); func_ov000_020d77e4(data_ov000_020eec9c, 0x1C); return pSVar4; @@ -138,7 +188,7 @@ ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02036da8(u32 param_2, s32* // non-matching ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { - Struct_027E0C68_unk_28 *pSVar1; + UnkStruct_027E0C68_UnkSubClass1 *pSVar1; u8 auStack_28[24]; u8 local_13; @@ -161,12 +211,12 @@ 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) { +ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { EntryINF1 *pEVar1; - Struct_027E0C68_unk_28 *pSVar2; + UnkStruct_027E0C68_UnkSubClass1 *pSVar2; EntryINF1 *pEVar3; int iVar4; - Struct_027E0C68_unk_28 *pSVar5; + UnkStruct_027E0C68_UnkSubClass1 *pSVar5; BMGGroups *pBVar6; pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xffff); @@ -183,12 +233,12 @@ ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* p pSVar2 = this->unk_28[1]; } - pSVar5[0x16].unk_04 = pSVar2; - pSVar5[0x41].unk_08 = this->unk_28[5]; + pSVar5[0x16].unk_04 = (unk32*)pSVar2; + pSVar5[0x41].unk_08 = (unk32*)this->unk_28[5]; pBVar6 = this->pGroups; pEVar3 = func_02037258(&pBVar6->entries[param_2 >> 0x10], param_2 & 0xffff); - pSVar5->unk_00->unk_50(pSVar5, pEVar1, (int)&((pBVar6->entries[param_2 >> 0x10].pDAT1)->base).tag + (pEVar3->offset & 0xfffffffe), param_3); + pSVar5->vfunc_50(pEVar1, (int)&((pBVar6->entries[param_2 >> 0x10].pDAT1)->base).tag + (pEVar3->offset & 0xfffffffe), param_3); if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x34) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x35) == 0 && @@ -200,14 +250,14 @@ ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* p return pSVar5; } -ARM Struct_027E0C68_unk_18* UnkStruct_027E0C68::func_020370d0(unk32 param_2, unk32 param_3) { +ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370d0(unk32 param_2, unk32 param_3) { return this->func_020370e8(param_2, -1, -1, param_3); } -ARM Struct_027E0C68_unk_18* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { - Struct_027E0C68_unk_18* puVar2; +ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { + UnkStruct_027E0C68_UnkSubClass2* puVar2; - if (func_02036824() != 0) { + if (this->func_02036824() != 0) { puVar2 = this->unk_18; } else { if (this->func_02036850() != 0) { @@ -228,24 +278,24 @@ ARM Struct_027E0C68_unk_18* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk return NULL; } -ARM void UnkStruct_027E0C68::func_02037158(Struct_027E0C68_unk_28* param_2) { - Struct_027E0C68_unk_28* pSVar1; +ARM void UnkStruct_027E0C68::func_02037158(UnkStruct_027E0C68_UnkSubClass1* param_2) { + UnkStruct_027E0C68_UnkSubClass1* pSVar1; pSVar1 = this->func_02037178(param_2); if (pSVar1 != NULL) { - pSVar1->unk_00->unk_58(pSVar1); + pSVar1->vfunc_58(); } } -ARM Struct_027E0C68_unk_28* UnkStruct_027E0C68::func_02037178(Struct_027E0C68_unk_28* param_2) { - Struct_027E0C68_unk_28* piVar1; +ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02037178(UnkStruct_027E0C68_UnkSubClass1* param_2) { + UnkStruct_027E0C68_UnkSubClass1* piVar1; s32 iVar2; for (iVar2 = 0; iVar2 < ARRAY_LEN(this->unk_28); iVar2++) { piVar1 = this->unk_28[iVar2]; - if (piVar1 != NULL && piVar1->unk_08 == param_2) { + if (piVar1 != NULL && piVar1->unk_08 == (unk32*)param_2) { return piVar1; } } -- cgit v1.2.3 From dea4060fb5eca12980e578b820e6ee349d721c8e Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 24 Jan 2025 03:37:43 +0100 Subject: more progress --- src/Main/Message/MessageManager.cpp | 70 +++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') 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()); -- cgit v1.2.3 From b4d8083acebcd9564d4cac82f51e85fb431ac1df Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 24 Jan 2025 15:16:58 +0100 Subject: more progress --- src/Main/Message/MessageManager.cpp | 147 ++++++++++++++++++++++++++++++++---- 1 file changed, 133 insertions(+), 14 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 92a2f965..5a107d8d 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -6,6 +6,7 @@ extern unk32 func_02037628(u8*); extern THUMB unk32 func_0202ab48(void); extern ARM void func_02038b40(UnkStruct_027E0C68_UnkSubClass1*); extern ARM unk32 func_0203de14(UnkStruct_027E0C68_UnkSubClass1*, unk32); +extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1*, unk32, unk32); // see Actor.cpp struct UnkStruct2 { @@ -16,6 +17,126 @@ struct UnkStruct2 { extern UnkStruct2 data_027e077c; extern u32 data_ov000_020eec9c[]; extern u8 data_02056be4[]; +extern u32 data_027e0618; +extern u32** data_027e0ce0[]; +extern u32 data_02056924[]; +extern u32* data_02068e6c; +extern u32* data_02068e8c; + +ARM void func_0203643c(int *param_1, UnkStruct_027E0C68* param_2, u32 param_3) { + BMGGroups *pBVar2 = param_2->pGroups; + *param_1 = BMG_GET_MSG_ADDR(pBVar2, param_3); +} + +THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 param_4) { + s32 i; + + this->unk_03 = 0; + this->unk_0C = 0; + + func_020372f0(this->pGroups, BMG_FILE_INDEX_SYSTEM, 2); + + switch (data_027e0618) { + case 3: + func_020372f0(this->pGroups, BMG_FILE_INDEX_MAINSELECT, 2); + func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLE, 2); + break; + case 5: + func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLE, 2); + func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLECOMMON, 2); + break; + case 6: + func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLE, 2); + func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLECOMMON, 2); + break; + case 7: + func_020372f0(this->pGroups, BMG_FILE_INDEX_MAINSELECT, 2); + break; + default: + break; + } + + for (i = 0; i < ARRAY_LEN(this->unk_18); i++) { + if (this->unk_18[i] != NULL) { + this->unk_18[i] = NULL; + } + } + + for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + if (this->unk_28[i] != NULL) { + this->unk_28[i] = NULL; + } + } + + for (i = 0; i < ARRAY_LEN(this->unk_18); i++) { + this->unk_18[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass2(); + } + + this->unk_18[0]->unk_39 = 0; + this->unk_18[1]->unk_39 = 1; + + // switch? + if (data_027e0618 == 2 || data_027e0618 == 3 || data_027e0618 == 6) { + for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + switch (data_02056924[i + 1]) { + case 0: + if (data_027e0618 != 2) { + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + func_0203dc74(this->unk_28[i], 0xE0, 0x40); + this->unk_28[i]->unk_2C = data_02068e6c; + this->unk_28[i]->unk_50 = i != 0; + } + break; + case 1: + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + func_0203dc74(this->unk_28[i], 0x50, 0x60); + this->unk_28[i]->unk_2C = data_02068e6c; + break; + case 2: + this->unk_28[i] = NULL; + break; + case 3: + if (func_0202ab48() == 0) { + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + func_0203dc74(this->unk_28[i], 0xC0, 0x20); + this->unk_28[i]->unk_2C = data_02068e8c; + } else { + this->unk_28[i] = NULL; + } + break; + default: + break; + } + + if (this->unk_28[i] != NULL) { + this->unk_28[i]->vfunc_4C(); + } + } + } +} + +// non-matching +THUMB void UnkStruct_027E0C68::func_0203665c(void) { + s32 i; + + for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + if (this->unk_28[i] != NULL) { + delete this->unk_28[i]; + + this->unk_28[i] = NULL; + } + } + + for (i = 0; i < ARRAY_LEN(this->unk_18); i++) { + if (this->unk_18[i] != NULL) { + delete this->unk_18[i]; + + this->unk_18[i] = NULL; + } + } + + func_020373b4(this->pGroups, 2); +} // non-matching ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {} @@ -43,23 +164,27 @@ ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_0203673c(void) { bool iVar2 = this->func_02036850(); if (iVar1) { - return this->unk_18; + return this->unk_18[0]; } if (iVar2) { - return this->unk_1C; + return this->unk_18[1]; } return NULL; } +ARM bool UnkStruct_027E0C68::func_02036770(u32 param_2) { + return (this->unk_18[param_2]->unk_18 & ~0xFFFF) == (0x100 << 0x10); +} + 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) { + if (this->unk_18[1] != NULL && (this->unk_18[1]->unk_18 & 0xFFFF0000) != 0x1000000) { bVar1 = true; } @@ -241,9 +366,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param 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->vfunc_50(pEVar1, (int)&((pBVar5->entries[param_2 >> 0x10].pDAT1)->base).tag + (pEVar2->offset & 0xfffffffe), &iStack_38); + pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), &iStack_38); func_ov000_020d77e4(data_ov000_020eec9c, 0x1C); return pSVar4; @@ -283,7 +406,6 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param EntryINF1 *pEVar3; int iVar4; UnkStruct_027E0C68_UnkSubClass1 *pSVar5; - BMGGroups *pBVar6; pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xffff); @@ -299,12 +421,9 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param pSVar2 = this->unk_28[1]; } - pSVar5[0x16].unk_04 = (unk32*)pSVar2; + // pSVar5[0x16].unk_04 = (unk32*)pSVar2; pSVar5[0x41].unk_08 = (unk32*)this->unk_28[5]; - pBVar6 = this->pGroups; - pEVar3 = func_02037258(&pBVar6->entries[param_2 >> 0x10], param_2 & 0xffff); - - pSVar5->vfunc_50(pEVar1, (int)&((pBVar6->entries[param_2 >> 0x10].pDAT1)->base).tag + (pEVar3->offset & 0xfffffffe), param_3); + pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), param_3); if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x34) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x35) == 0 && @@ -324,10 +443,10 @@ ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 par UnkStruct_027E0C68_UnkSubClass2* puVar2; if (this->func_02036824() != 0) { - puVar2 = this->unk_18; + puVar2 = this->unk_18[0]; } else { if (this->func_02036850() != 0) { - puVar2 = this->unk_1C; + puVar2 = this->unk_18[1]; } else { return NULL; } -- cgit v1.2.3 From 2e722d333a55861694da6f7486dc6ef056db3433 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 24 Jan 2025 18:33:53 +0100 Subject: func_0203690c: 90% --- src/Main/Message/MessageManager.cpp | 131 ++++++++++++++++++++++++++++++++---- 1 file changed, 117 insertions(+), 14 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 5a107d8d..6e0cb0d8 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -1,4 +1,5 @@ #include "Message/MessageManager.hpp" +#include "Actor/ActorManager.hpp" extern unk32 func_ov000_020d7f18(u32*, unk32); extern unk32 func_ov000_020d77e4(u32*, unk32); @@ -22,6 +23,13 @@ extern u32** data_027e0ce0[]; extern u32 data_02056924[]; extern u32* data_02068e6c; extern u32* data_02068e8c; +extern u16 data_02056918[]; +extern ActorTypeId data_0205691c[]; +extern u8 data_027e0c54; + +// this should be `data_027e0ffc->func_ov000_020cec60(u16, Vec3p*, s32);` +extern u32* data_027e0ffc; +extern void func_ov000_020cec60(u32*, u16, Vec3p*, Actor*, unk32); ARM void func_0203643c(int *param_1, UnkStruct_027E0C68* param_2, u32 param_3) { BMGGroups *pBVar2 = param_2->pGroups; @@ -239,7 +247,7 @@ ARM bool UnkStruct_027E0C68::func_02036850(void) { } ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2) { - if ((param_2->unk_18 & 0xFFFF0000) != 0x1000000) { + if ((param_2->unk_18 & ~0xFFFF) != (0x100 << 0x10)) { UnkStruct_027E0C68_UnkSubClass1* iVar1 = this->func_020366c4(); //! TODO: fake? @@ -251,15 +259,110 @@ ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* para } } -ARM bool UnkStruct_027E0C68::func_020368f4(unk32 param_2) { - if (this->unk_24 != 0) { +ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass3* param_2) { + if (this->unk_20[1] != NULL) { return false; } - this->unk_24 = param_2; + this->unk_20[1] = param_2; return true; } +ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { + UnkStruct_027E0C68_UnkSubClass1* unk_28_0; + UnkStruct_027E0C68_UnkSubClass1* unk_28_2; + UnkStruct_027E0C68_UnkSubClass1 *pSVar4; + ActorRef actorRef; + Actor* pActor; + bool iVar1; + bool iVar2; + s32 i; + + if (!this->func_020367dc(param_2)) { + return; + } + + this->unk_40[1] = this->unk_40[0]; + + unk_28_0 = this->unk_28[0]; + + if (unk_28_0 != NULL && unk_28_0->unk_15C > 0) { + unk_28_2 = this->unk_28[2]; + + if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { + this->unk_40[0] = this->func_020366c4(); + } else { + this->unk_40[0] = unk_28_2; + } + } else { + unk_28_2 = this->unk_28[2]; + + if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { + this->unk_40[0] = unk_28_0; + } else { + this->unk_40[0] = NULL; + } + } + + iVar1 = this->func_02036824(); + iVar2 = this->func_02036850(); + + if (this->unk_20[1] != NULL && ((this->unk_20[1]->unk_18 & ~0xFFFF) != (0x100 << 0x10))) { + this->unk_20[1]->vfunc_10(); + this->unk_20[1] = NULL; + } + + if (iVar1) { + this->func_02036888(this->unk_18[0]); + } else if (iVar2) { + this->func_02036888(this->unk_18[1]); + } + + for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + if (this->unk_28[i] != NULL) { + this->unk_28[i]->vfunc_2C(); + } + } + + this->unk_04 = 0; + + if (this->unk_20[0] != NULL) { + if ((this->unk_20[0]->unk_18 & ~0xFFFF) == (0x100 << 0x10)) { + this->unk_20[0] = NULL; + } else { + this->unk_04 = 1; + } + } + + if ((this->unk_18[0] != NULL) && ((this->unk_18[0]->unk_18 & ~0xFFFF) != (0x100 << 0x10))) { + this->unk_04 = 1; + + //! TODO: fake? + pSVar4 = this->func_02037178((UnkStruct_027E0C68_UnkSubClass1*)this->unk_18[0]); + + if (data_027e0c54 != 0 && pSVar4 != NULL && pSVar4->unk_48 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { + this->unk_04 = 0; + } + } + + if (this->unk_08 != NULL && this->unk_08->unk_15C > 0) { + this->unk_04 = 1; + } else { + this->unk_08 = NULL; + } + + this->func_02036bbc(); + + if (this->unk_10 != 0) { + ActorManager::FindActorByType(&actorRef, gActorManager, data_0205691c[this->unk_10]); + pActor = gActorManager->GetActor(&actorRef); + + if (pActor != NULL) { + func_ov000_020cec60(data_027e0ffc, data_02056918[this->unk_10], &pActor->mPos, pActor, 0); + } + } +} + ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) { s32 i; @@ -296,22 +399,22 @@ ARM s32 UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* param return 0; } -ARM unk32 UnkStruct_027E0C68::func_02036d30(u32* param_2) { - if (this->unk_20 != NULL && this->unk_20 != param_2) { - return 0; +ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass3* param_2) { + if (this->unk_20[0] != NULL && this->unk_20[0] != param_2) { + return false; } - this->unk_20 = param_2; - return 1; + this->unk_20[0] = param_2; + return true; } -ARM unk32 UnkStruct_027E0C68::func_02036d4c(u32* param_2) { - if (this->unk_20 == param_2) { - this->unk_20 = NULL; - return 1; +ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_027E0C68_UnkSubClass3* param_2) { + if (this->unk_20[0] == param_2) { + this->unk_20[0] = NULL; + return true; } - return 0; + return false; } // non-matching -- cgit v1.2.3 From 5b8beb79d7a44014aa0ed490a1eca726c2c3310b Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 24 Jan 2025 18:36:33 +0100 Subject: make func_0203643c static --- src/Main/Message/MessageManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 6e0cb0d8..b84af893 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -31,7 +31,7 @@ extern u8 data_027e0c54; extern u32* data_027e0ffc; extern void func_ov000_020cec60(u32*, u16, Vec3p*, Actor*, unk32); -ARM void func_0203643c(int *param_1, UnkStruct_027E0C68* param_2, u32 param_3) { +ARM void UnkStruct_027E0C68::func_0203643c(int *param_1, UnkStruct_027E0C68* param_2, u32 param_3) { BMGGroups *pBVar2 = param_2->pGroups; *param_1 = BMG_GET_MSG_ADDR(pBVar2, param_3); } -- cgit v1.2.3 From d44088642ebf495a5f40a0212cddb023d4a4f454 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 24 Jan 2025 19:21:26 +0100 Subject: match func_02036bbc --- src/Main/Message/MessageManager.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index b84af893..45b6dec0 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -1,5 +1,6 @@ #include "Message/MessageManager.hpp" #include "Actor/ActorManager.hpp" +#include "Player/TouchControl.hpp" extern unk32 func_ov000_020d7f18(u32*, unk32); extern unk32 func_ov000_020d77e4(u32*, unk32); @@ -26,6 +27,8 @@ extern u32* data_02068e8c; extern u16 data_02056918[]; extern ActorTypeId data_0205691c[]; extern u8 data_027e0c54; +extern TouchControl data_027e0d78; +extern s16 data_027e0d04; // this should be `data_027e0ffc->func_ov000_020cec60(u16, Vec3p*, s32);` extern u32* data_027e0ffc; @@ -363,6 +366,28 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p } } +ARM void UnkStruct_027E0C68::func_02036bbc(void) { + UnkStruct_027E0C68_UnkSubClass1* pSVar3; + bool bVar2; + bool bVar4; + s32 i; + + if (data_027e0d04 > 0) { + return; + } + + bVar2 = this->func_02036824(); + bVar4 = this->func_02036850(); + + for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + pSVar3 = this->unk_28[i]; + + if (pSVar3 != NULL && ((bVar2 && pSVar3->unk_48 == 0) || (bVar4 && pSVar3->unk_48 != 0))) { + pSVar3->vfunc_44(data_027e0d78.mTouchLastX, data_027e0d78.mTouchLastY); + } + } +} + ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) { s32 i; -- cgit v1.2.3 From 3de7041c34072cca1942d46441e5811344db6150 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 24 Jan 2025 21:16:19 +0100 Subject: more progress --- src/Main/Message/MessageManager.cpp | 75 +++++++++++++++---------------------- 1 file changed, 31 insertions(+), 44 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 45b6dec0..e8026341 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -2,9 +2,9 @@ #include "Actor/ActorManager.hpp" #include "Player/TouchControl.hpp" -extern unk32 func_ov000_020d7f18(u32*, unk32); -extern unk32 func_ov000_020d77e4(u32*, unk32); -extern unk32 func_02037628(u8*); +extern ARM unk32 func_ov000_020d7f18(u32*, unk32); +extern ARM unk32 func_ov000_020d77e4(u32*, unk32); +extern ARM unk32 func_02037628(u8*); extern THUMB unk32 func_0202ab48(void); extern ARM void func_02038b40(UnkStruct_027E0C68_UnkSubClass1*); extern ARM unk32 func_0203de14(UnkStruct_027E0C68_UnkSubClass1*, unk32); @@ -17,8 +17,8 @@ struct UnkStruct2 { /* 8 */ }; extern UnkStruct2 data_027e077c; -extern u32 data_ov000_020eec9c[]; extern u8 data_02056be4[]; +extern u32 data_ov000_020eec9c[]; extern u32 data_027e0618; extern u32** data_027e0ce0[]; extern u32 data_02056924[]; @@ -126,11 +126,8 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 } } -// non-matching THUMB void UnkStruct_027E0C68::func_0203665c(void) { - s32 i; - - for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + for (s32 i = 0; i < ARRAY_LEN(this->unk_28); i++) { if (this->unk_28[i] != NULL) { delete this->unk_28[i]; @@ -138,7 +135,7 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) { } } - for (i = 0; i < ARRAY_LEN(this->unk_18); i++) { + for (s32 i = 0; i < ARRAY_LEN(this->unk_18); i++) { if (this->unk_18[i] != NULL) { delete this->unk_18[i]; @@ -154,7 +151,7 @@ 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)) { + if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { return this->unk_28[2]; } @@ -163,7 +160,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_020366c4(void) { // 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)) { + if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { return this->unk_28[0]; } @@ -236,17 +233,7 @@ ARM bool UnkStruct_027E0C68::func_02036824(void) { // non-matching ARM bool UnkStruct_027E0C68::func_02036850(void) { - bool ret = false; - u8 value; - u32 val = data_027e077c.mUnk_0; - - value = data_02056be4[val]; - - if (!(value & 2)) { - ret = value & 1; - } - - return ret; + return !(data_02056be4[data_027e077c.mUnk_0] & 2) && (data_02056be4[data_027e077c.mUnk_0] & 1); } ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2) { @@ -271,6 +258,7 @@ ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass3* para return true; } +// non-matching ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { UnkStruct_027E0C68_UnkSubClass1* unk_28_0; UnkStruct_027E0C68_UnkSubClass1* unk_28_2; @@ -410,18 +398,21 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { } } -// non-matching -ARM s32 UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* param_2, unk32 param_3) { +ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* param_2, unk32 param_3) { + u32 uVar1; + if (param_3 == 0) { - return 0; + return false; } - if (func_020373ec(this->pGroups, param_3) != -1) { - param_2->vfunc_08(); - return 1; + uVar1 = func_020373ec(this->pGroups, param_3); + + if (uVar1 != -1) { + param_2->vfunc_08(uVar1); + return true; } - return 0; + return false; } ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass3* param_2) { @@ -442,7 +433,6 @@ ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_027E0C68_UnkSubClass3* para return false; } -// non-matching ARM void UnkStruct_027E0C68::func_02036d6c(void) { s32 i; @@ -457,7 +447,6 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param_2, s32* param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; - u8* puVar3; UnkStruct_027E0C68_UnkSubClass1 *pSVar4; BMGGroups *pBVar5; bool bVar6; @@ -465,7 +454,6 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param int iStack_34; int iStack_30; u8 uStack_2c; - u8 uStack_23; pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xFFFF); @@ -476,17 +464,14 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param 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; + // ??? + bVar6 = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0; if (bVar6) { - puVar3[0] = 1; + data_02056be4[0] = 1; } - - uStack_23 = puVar3[0]; - if (!bVar6) { - uStack_23 = 0; + data_02056be4[0] = 0; } uStack_2c = 1; @@ -549,8 +534,10 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param pSVar2 = this->unk_28[1]; } - // pSVar5[0x16].unk_04 = (unk32*)pSVar2; - pSVar5[0x41].unk_08 = (unk32*)this->unk_28[5]; + //! TODO: fake? + pSVar5->unk_164 = pSVar2; + pSVar5->unk_418 = this->unk_28[5]; + pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), param_3); if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 && @@ -570,10 +557,10 @@ ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370d0(unk32 par ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { UnkStruct_027E0C68_UnkSubClass2* puVar2; - if (this->func_02036824() != 0) { + if (this->func_02036824()) { puVar2 = this->unk_18[0]; } else { - if (this->func_02036850() != 0) { + if (this->func_02036850()) { puVar2 = this->unk_18[1]; } else { return NULL; @@ -584,7 +571,7 @@ ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 par puVar2->unk_34 = param_3; puVar2->unk_36 = param_4; - if (this->func_02036ce4(puVar2, param_2) != 0) { + if (this->func_02036ce4(puVar2, param_2)) { return puVar2; } -- cgit v1.2.3 From 660c5e96554153dda38e8d2185db07ae70432266 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 24 Jan 2025 22:11:59 +0100 Subject: convert BMGGroups to a class --- src/Main/Message/MessageManager.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index e8026341..f314c86d 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -45,23 +45,23 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 this->unk_03 = 0; this->unk_0C = 0; - func_020372f0(this->pGroups, BMG_FILE_INDEX_SYSTEM, 2); + this->pGroups->func_020372f0(BMG_FILE_INDEX_SYSTEM, 2); switch (data_027e0618) { case 3: - func_020372f0(this->pGroups, BMG_FILE_INDEX_MAINSELECT, 2); - func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLE, 2); + this->pGroups->func_020372f0(BMG_FILE_INDEX_MAINSELECT, 2); + this->pGroups->func_020372f0(BMG_FILE_INDEX_BATTLE, 2); break; case 5: - func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLE, 2); - func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLECOMMON, 2); + this->pGroups->func_020372f0(BMG_FILE_INDEX_BATTLE, 2); + this->pGroups->func_020372f0(BMG_FILE_INDEX_BATTLECOMMON, 2); break; case 6: - func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLE, 2); - func_020372f0(this->pGroups, BMG_FILE_INDEX_BATTLECOMMON, 2); + this->pGroups->func_020372f0(BMG_FILE_INDEX_BATTLE, 2); + this->pGroups->func_020372f0(BMG_FILE_INDEX_BATTLECOMMON, 2); break; case 7: - func_020372f0(this->pGroups, BMG_FILE_INDEX_MAINSELECT, 2); + this->pGroups->func_020372f0(BMG_FILE_INDEX_MAINSELECT, 2); break; default: break; @@ -143,7 +143,7 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) { } } - func_020373b4(this->pGroups, 2); + this->pGroups->func_020373b4(2); } // non-matching @@ -405,7 +405,7 @@ ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* para return false; } - uVar1 = func_020373ec(this->pGroups, param_3); + uVar1 = this->pGroups->func_020373ec(param_3); if (uVar1 != -1) { param_2->vfunc_08(uVar1); -- cgit v1.2.3 From 45f07884d2db01590e0fdcb4409349e36ab4f8fa Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 25 Jan 2025 03:07:39 +0100 Subject: started vfuncs decomp --- src/Main/Message/MessageManager.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index f314c86d..8a1255bc 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -120,7 +120,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 } if (this->unk_28[i] != NULL) { - this->unk_28[i]->vfunc_4C(); + this->unk_28[i]->func_02039a3c(); } } } @@ -311,7 +311,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { if (this->unk_28[i] != NULL) { - this->unk_28[i]->vfunc_2C(); + this->unk_28[i]->func_02039a5c(); } } @@ -331,7 +331,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p //! TODO: fake? pSVar4 = this->func_02037178((UnkStruct_027E0C68_UnkSubClass1*)this->unk_18[0]); - if (data_027e0c54 != 0 && pSVar4 != NULL && pSVar4->unk_48 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { + if (data_027e0c54 != 0 && pSVar4 != NULL && pSVar4->unk_50 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { this->unk_04 = 0; } } @@ -370,8 +370,8 @@ ARM void UnkStruct_027E0C68::func_02036bbc(void) { for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { pSVar3 = this->unk_28[i]; - if (pSVar3 != NULL && ((bVar2 && pSVar3->unk_48 == 0) || (bVar4 && pSVar3->unk_48 != 0))) { - pSVar3->vfunc_44(data_027e0d78.mTouchLastX, data_027e0d78.mTouchLastY); + if (pSVar3 != NULL && ((bVar2 && pSVar3->unk_50 == 0) || (bVar4 && pSVar3->unk_50 != 0))) { + pSVar3->func_0203a3fc(data_027e0d78.mTouchLastX, data_027e0d78.mTouchLastY); } } } @@ -381,7 +381,7 @@ ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) { 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]->vfunc_28(); + this->unk_28[i]->func_0203e0c8(); } } } @@ -393,7 +393,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { UnkStruct_027E0C68_UnkSubClass1* pSVar1 = this->unk_28[i]; if (pSVar1 != NULL) { - pSVar1->vfunc_3C(param_2); + pSVar1->func_02039ccc(param_2); } } } @@ -479,7 +479,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param iStack_34 = param_3[1]; iStack_30 = param_3[2]; pBVar5 = this->pGroups; - pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), &iStack_38); + pSVar4->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), &iStack_38); func_ov000_020d77e4(data_ov000_020eec9c, 0x1C); return pSVar4; @@ -538,7 +538,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param pSVar5->unk_164 = pSVar2; pSVar5->unk_418 = this->unk_28[5]; - pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), param_3); + pSVar5->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), param_3); if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x34) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x35) == 0 && @@ -584,7 +584,7 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkStruct_027E0C68_UnkSubClass1* para pSVar1 = this->func_02037178(param_2); if (pSVar1 != NULL) { - pSVar1->vfunc_58(); + pSVar1->func_0203af1c(); } } -- cgit v1.2.3 From 1af423e8ae2dd22a8dd77e23d5ae26c69dc343bc Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sun, 26 Jan 2025 14:19:50 +0100 Subject: update symbols --- src/Main/Message/MessageManager.cpp | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 8a1255bc..8e61f134 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -6,8 +6,6 @@ extern ARM unk32 func_ov000_020d7f18(u32*, unk32); extern ARM unk32 func_ov000_020d77e4(u32*, unk32); extern ARM unk32 func_02037628(u8*); extern THUMB unk32 func_0202ab48(void); -extern ARM void func_02038b40(UnkStruct_027E0C68_UnkSubClass1*); -extern ARM unk32 func_0203de14(UnkStruct_027E0C68_UnkSubClass1*, unk32); extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1*, unk32, unk32); // see Actor.cpp @@ -329,7 +327,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->unk_04 = 1; //! TODO: fake? - pSVar4 = this->func_02037178((UnkStruct_027E0C68_UnkSubClass1*)this->unk_18[0]); + pSVar4 = this->func_02037178((UnkSubClass1_02256FF8*)this->unk_18[0]); if (data_027e0c54 != 0 && pSVar4 != NULL && pSVar4->unk_50 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { this->unk_04 = 0; @@ -380,7 +378,7 @@ 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) { + if (this->unk_28[i] != NULL && this->unk_28[i]->func_0203de14(param_2) != 0) { this->unk_28[i]->func_0203e0c8(); } } @@ -438,7 +436,7 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { if (func_0202ab48() == 0 || i != 5) { - func_02038b40(this->unk_28[i]); + this->unk_28[i]->func_02038b40(); } } } @@ -578,7 +576,7 @@ ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 par return NULL; } -ARM void UnkStruct_027E0C68::func_02037158(UnkStruct_027E0C68_UnkSubClass1* param_2) { +ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { UnkStruct_027E0C68_UnkSubClass1* pSVar1; pSVar1 = this->func_02037178(param_2); @@ -588,15 +586,12 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkStruct_027E0C68_UnkSubClass1* para } } -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02037178(UnkStruct_027E0C68_UnkSubClass1* param_2) { - UnkStruct_027E0C68_UnkSubClass1* piVar1; - s32 iVar2; - - for (iVar2 = 0; iVar2 < ARRAY_LEN(this->unk_28); iVar2++) { - piVar1 = this->unk_28[iVar2]; +ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { + s32 i; - if (piVar1 != NULL && piVar1->unk_08 == (unk32*)param_2) { - return piVar1; + for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + if (this->unk_28[i] != NULL && this->unk_28[i]->unk_08 == param_2) { + return this->unk_28[i]; } } -- cgit v1.2.3 From 1518fbfa8042ab241dc037f77739594bc11a964e Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sun, 26 Jan 2025 23:54:14 +0100 Subject: more vfuncs progress --- src/Main/Message/MessageManager.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 8e61f134..0c42adb2 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -442,16 +442,15 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param_2, s32* param_3) { +ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; UnkStruct_027E0C68_UnkSubClass1 *pSVar4; BMGGroups *pBVar5; bool bVar6; - u8 iStack_38; + s16 iStack_38; int iStack_34; int iStack_30; - u8 uStack_2c; pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xFFFF); @@ -461,7 +460,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { pSVar4 = this->unk_28[4]; - func_02037628(&iStack_38); + func_02037628((u8*)&iStack_38); // ??? bVar6 = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0; @@ -472,12 +471,16 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param data_02056be4[0] = 0; } - uStack_2c = 1; iStack_38 = *param_3; - iStack_34 = param_3[1]; - iStack_30 = param_3[2]; + // iStack_34 = param_3[1]; + // iStack_30 = param_3[2]; pBVar5 = this->pGroups; - pSVar4->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), &iStack_38); + // pSVar4->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); + BMGFileInfo* entry = &(pBVar5)->entries[(param_2) >> 0x10]; + pSVar4->func_0203a7f0(pEVar1, + ((u32)entry->pDAT1 + (((func_02037258(entry, (((param_2))) & 0xFFFF))->offset) & ~1)), + // BMG_GET_MSG_ADDR(pBVar5, param_2), + (s16*)&iStack_38, 1); func_ov000_020d77e4(data_ov000_020eec9c, 0x1C); return pSVar4; @@ -536,7 +539,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param pSVar5->unk_164 = pSVar2; pSVar5->unk_418 = this->unk_28[5]; - pSVar5->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), param_3); + pSVar5->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0); if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x34) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x35) == 0 && -- cgit v1.2.3 From 097e8853e4abe1d2827c05ef83993cd08ad6e765 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Mon, 27 Jan 2025 18:17:33 +0100 Subject: progress --- src/Main/Message/MessageManager.cpp | 65 ++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 34 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 0c42adb2..15573317 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -6,7 +6,7 @@ extern ARM unk32 func_ov000_020d7f18(u32*, unk32); extern ARM unk32 func_ov000_020d77e4(u32*, unk32); extern ARM unk32 func_02037628(u8*); extern THUMB unk32 func_0202ab48(void); -extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1*, unk32, unk32); +extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1_Base*, unk32, unk32); // see Actor.cpp struct UnkStruct2 { @@ -90,14 +90,14 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 switch (data_02056924[i + 1]) { case 0: if (data_027e0618 != 2) { - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub1(); func_0203dc74(this->unk_28[i], 0xE0, 0x40); this->unk_28[i]->unk_2C = data_02068e6c; this->unk_28[i]->unk_50 = i != 0; } break; case 1: - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub2(); func_0203dc74(this->unk_28[i], 0x50, 0x60); this->unk_28[i]->unk_2C = data_02068e6c; break; @@ -106,7 +106,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 break; case 3: if (func_0202ab48() == 0) { - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub3(); func_0203dc74(this->unk_28[i], 0xC0, 0x20); this->unk_28[i]->unk_2C = data_02068e8c; } else { @@ -148,21 +148,21 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) { ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {} // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_020366c4(void) { +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)) { - return this->unk_28[2]; + return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; } - return this->unk_28[0]; + return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036700(void) { +ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036700(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return this->unk_28[0]; + return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; } - return this->unk_28[2]; + return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; } ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_0203673c(void) { @@ -207,13 +207,11 @@ ARM bool UnkStruct_027E0C68::func_020367dc(int param_2) { } ARM bool UnkStruct_027E0C68::func_020367ec(void) { - //! TODO: fake? - return this->unk_28[0]->unk_15C > 0; + return ((UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0])->unk_15C > 0; } ARM bool UnkStruct_027E0C68::func_02036808(void) { - //! TODO: fake? - return this->unk_28[2]->unk_15C > 0; + return ((UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2])->unk_15C > 0; } ARM bool UnkStruct_027E0C68::func_02036824(void) { @@ -236,9 +234,8 @@ ARM bool UnkStruct_027E0C68::func_02036850(void) { ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2) { if ((param_2->unk_18 & ~0xFFFF) != (0x100 << 0x10)) { - UnkStruct_027E0C68_UnkSubClass1* iVar1 = this->func_020366c4(); + UnkStruct_027E0C68_UnkSubClass1_Sub1* iVar1 = this->func_020366c4(); - //! TODO: fake? if (iVar1->unk_15C <= 0) { param_2->vfunc_10(); } else { @@ -258,9 +255,9 @@ ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass3* para // non-matching ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { - UnkStruct_027E0C68_UnkSubClass1* unk_28_0; - UnkStruct_027E0C68_UnkSubClass1* unk_28_2; - UnkStruct_027E0C68_UnkSubClass1 *pSVar4; + UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_28_0; + UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_28_2; + UnkStruct_027E0C68_UnkSubClass1_Base *pSVar4; ActorRef actorRef; Actor* pActor; bool iVar1; @@ -273,10 +270,10 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->unk_40[1] = this->unk_40[0]; - unk_28_0 = this->unk_28[0]; + unk_28_0 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; if (unk_28_0 != NULL && unk_28_0->unk_15C > 0) { - unk_28_2 = this->unk_28[2]; + unk_28_2 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { this->unk_40[0] = this->func_020366c4(); @@ -284,7 +281,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->unk_40[0] = unk_28_2; } } else { - unk_28_2 = this->unk_28[2]; + unk_28_2 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { this->unk_40[0] = unk_28_0; @@ -353,7 +350,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p } ARM void UnkStruct_027E0C68::func_02036bbc(void) { - UnkStruct_027E0C68_UnkSubClass1* pSVar3; + UnkStruct_027E0C68_UnkSubClass1_Base* pSVar3; bool bVar2; bool bVar4; s32 i; @@ -388,7 +385,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { - UnkStruct_027E0C68_UnkSubClass1* pSVar1 = this->unk_28[i]; + UnkStruct_027E0C68_UnkSubClass1_Base* pSVar1 = this->unk_28[i]; if (pSVar1 != NULL) { pSVar1->func_02039ccc(param_2); @@ -442,10 +439,10 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { +ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; - UnkStruct_027E0C68_UnkSubClass1 *pSVar4; + UnkStruct_027E0C68_UnkSubClass1_Base *pSVar4; BMGGroups *pBVar5; bool bVar6; s16 iStack_38; @@ -491,7 +488,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param // non-matching ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { - UnkStruct_027E0C68_UnkSubClass1 *pSVar1; + UnkStruct_027E0C68_UnkSubClass1_Sub1 *pSVar1; u8 auStack_28[24]; u8 local_13; @@ -514,12 +511,12 @@ ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { +ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { EntryINF1 *pEVar1; - UnkStruct_027E0C68_UnkSubClass1 *pSVar2; + UnkStruct_027E0C68_UnkSubClass1_Base *pSVar2; EntryINF1 *pEVar3; int iVar4; - UnkStruct_027E0C68_UnkSubClass1 *pSVar5; + UnkStruct_027E0C68_UnkSubClass1_Sub1 *pSVar5; pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xffff); @@ -528,10 +525,10 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param } if (param_3[21] != 0) { - pSVar5 = this->unk_28[2]; + pSVar5 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; pSVar2 = this->unk_28[3]; } else { - pSVar5 = this->unk_28[0]; + pSVar5 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; pSVar2 = this->unk_28[1]; } @@ -580,7 +577,7 @@ ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 par } ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { - UnkStruct_027E0C68_UnkSubClass1* pSVar1; + UnkStruct_027E0C68_UnkSubClass1_Base* pSVar1; pSVar1 = this->func_02037178(param_2); @@ -589,7 +586,7 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { } } -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { +ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { -- cgit v1.2.3 From 06a1f74615de91663c877fe526790b2323edcbf9 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:21:40 +0100 Subject: fix function names (and more) --- src/Main/Message/MessageManager.cpp | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 15573317..282ed162 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -5,27 +5,15 @@ extern ARM unk32 func_ov000_020d7f18(u32*, unk32); extern ARM unk32 func_ov000_020d77e4(u32*, unk32); extern ARM unk32 func_02037628(u8*); -extern THUMB unk32 func_0202ab48(void); extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1_Base*, unk32, unk32); -// see Actor.cpp -struct UnkStruct2 { - /* 0 */ u32 mUnk_0; - /* 4 */ u32 mUnk_4; - /* 8 */ -}; -extern UnkStruct2 data_027e077c; -extern u8 data_02056be4[]; extern u32 data_ov000_020eec9c[]; -extern u32 data_027e0618; extern u32** data_027e0ce0[]; extern u32 data_02056924[]; extern u32* data_02068e6c; extern u32* data_02068e8c; extern u16 data_02056918[]; extern ActorTypeId data_0205691c[]; -extern u8 data_027e0c54; -extern TouchControl data_027e0d78; extern s16 data_027e0d04; // this should be `data_027e0ffc->func_ov000_020cec60(u16, Vec3p*, s32);` @@ -45,7 +33,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 this->pGroups->func_020372f0(BMG_FILE_INDEX_SYSTEM, 2); - switch (data_027e0618) { + switch (*data_027e0618) { case 3: this->pGroups->func_020372f0(BMG_FILE_INDEX_MAINSELECT, 2); this->pGroups->func_020372f0(BMG_FILE_INDEX_BATTLE, 2); @@ -85,11 +73,11 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 this->unk_18[1]->unk_39 = 1; // switch? - if (data_027e0618 == 2 || data_027e0618 == 3 || data_027e0618 == 6) { + if (*data_027e0618 == 2 || *data_027e0618 == 3 || *data_027e0618 == 6) { for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { switch (data_02056924[i + 1]) { case 0: - if (data_027e0618 != 2) { + if (*data_027e0618 != 2) { this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub1(); func_0203dc74(this->unk_28[i], 0xE0, 0x40); this->unk_28[i]->unk_2C = data_02068e6c; @@ -118,7 +106,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 } if (this->unk_28[i] != NULL) { - this->unk_28[i]->func_02039a3c(); + this->unk_28[i]->vfunc_4C(); } } } @@ -306,7 +294,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { if (this->unk_28[i] != NULL) { - this->unk_28[i]->func_02039a5c(); + this->unk_28[i]->vfunc_2C(); } } @@ -366,7 +354,7 @@ ARM void UnkStruct_027E0C68::func_02036bbc(void) { pSVar3 = this->unk_28[i]; if (pSVar3 != NULL && ((bVar2 && pSVar3->unk_50 == 0) || (bVar4 && pSVar3->unk_50 != 0))) { - pSVar3->func_0203a3fc(data_027e0d78.mTouchLastX, data_027e0d78.mTouchLastY); + pSVar3->vfunc_44(data_027e0d78.mTouchLastX, data_027e0d78.mTouchLastY); } } } @@ -376,7 +364,7 @@ ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) { for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { if (this->unk_28[i] != NULL && this->unk_28[i]->func_0203de14(param_2) != 0) { - this->unk_28[i]->func_0203e0c8(); + this->unk_28[i]->vfunc_28(); } } } @@ -388,7 +376,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { UnkStruct_027E0C68_UnkSubClass1_Base* pSVar1 = this->unk_28[i]; if (pSVar1 != NULL) { - pSVar1->func_02039ccc(param_2); + pSVar1->vfunc_3C(param_2); } } } @@ -472,9 +460,9 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02036da8(u32 // iStack_34 = param_3[1]; // iStack_30 = param_3[2]; pBVar5 = this->pGroups; - // pSVar4->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); + // pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); BMGFileInfo* entry = &(pBVar5)->entries[(param_2) >> 0x10]; - pSVar4->func_0203a7f0(pEVar1, + pSVar4->vfunc_50(pEVar1, ((u32)entry->pDAT1 + (((func_02037258(entry, (((param_2))) & 0xFFFF))->offset) & ~1)), // BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); @@ -536,7 +524,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036f68(u32 pSVar5->unk_164 = pSVar2; pSVar5->unk_418 = this->unk_28[5]; - pSVar5->func_0203a7f0(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0); + pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0); if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x34) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x35) == 0 && @@ -582,7 +570,7 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { pSVar1 = this->func_02037178(param_2); if (pSVar1 != NULL) { - pSVar1->func_0203af1c(); + pSVar1->vfunc_58(); } } -- cgit v1.2.3 From d4e8b81dde4aaa5947b53fffb2e2ba6644e3a860 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 28 Jan 2025 18:47:44 +0100 Subject: more ctor/dtor progress --- src/Main/Message/MessageManager.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') 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() { +} -- cgit v1.2.3 From 27e9ac2396ae3c6c3d8002c04dd258e935166caa Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:36:55 +0100 Subject: more progress --- src/Main/Message/MessageManager.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index f0c7bc9f..15446045 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -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)) { -- cgit v1.2.3 From 1ef64a530850feb22e9fb6d7250c9d5f271c7e3c Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Wed, 29 Jan 2025 23:43:03 +0100 Subject: fix build issues --- src/Main/Message/MessageManager.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 15446045..6a9577ac 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -3,18 +3,15 @@ #include "Player/TouchControl.hpp" extern ARM unk32 func_ov000_020d7f18(u32*, unk32); -extern ARM unk32 func_ov000_020d77e4(u32*, unk32); extern ARM unk32 func_02037628(u8*); extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1_Base*, unk32, unk32); -extern u32 data_ov000_020eec9c[]; extern u32** data_027e0ce0[]; extern u32 data_02056924[]; extern u32* data_02068e6c; extern u32* data_02068e8c; extern u16 data_02056918[]; extern ActorTypeId data_0205691c[]; -extern s16 data_027e0d04; // this should be `data_027e0ffc->func_ov000_020cec60(u16, Vec3p*, s32);` extern u32* data_027e0ffc; @@ -340,7 +337,7 @@ ARM void UnkStruct_027E0C68::func_02036bbc(void) { bool bVar4; s32 i; - if (data_027e0d04 > 0) { + if (data_027e0d04.unk_00 > 0) { return; } @@ -464,7 +461,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02036da8(u32 // BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); - func_ov000_020d77e4(data_ov000_020eec9c, 0x1C); + data_ov000_020eec9c.func_ov000_020d77e4(0x1C); return pSVar4; } @@ -523,11 +520,11 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036f68(u32 pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0); - if (func_ov000_020d7f18(data_ov000_020eec9c, 0x19) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x18) == 0 && - func_ov000_020d7f18(data_ov000_020eec9c, 0x34) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x35) == 0 && - func_ov000_020d7f18(data_ov000_020eec9c, 0x1A) == 0 && func_ov000_020d7f18(data_ov000_020eec9c, 0x1B) == 0 && + if (data_ov000_020eec9c.func_ov000_020d7f18(0x19) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x18) == 0 && + data_ov000_020eec9c.func_ov000_020d7f18(0x34) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x35) == 0 && + data_ov000_020eec9c.func_ov000_020d7f18(0x1A) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x1B) == 0 && (param_3[12]) != 7) { - func_ov000_020d77e4(data_ov000_020eec9c, 0x1C); + data_ov000_020eec9c.func_ov000_020d77e4(0x1C); } return pSVar5; -- cgit v1.2.3 From 268d0822eb3eb9076e6afa7ba79f9b07867e4d8f Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Thu, 30 Jan 2025 17:36:52 +0100 Subject: renamed some classes --- src/Main/Message/MessageManager.cpp | 64 ++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 32 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 6a9577ac..9e022c8a 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -4,7 +4,7 @@ extern ARM unk32 func_ov000_020d7f18(u32*, unk32); extern ARM unk32 func_02037628(u8*); -extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1_Base*, unk32, unk32); +extern ARM void func_0203dc74(MsgProc_Main*, unk32, unk32); extern u32** data_027e0ce0[]; extern u32 data_02056924[]; @@ -75,14 +75,14 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 switch (data_02056924[i + 1]) { case 0: if (*data_027e0618 != 2) { - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub1(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type1(); func_0203dc74(this->unk_28[i], 0xE0, 0x40); this->unk_28[i]->unk_2C = data_02068e6c; this->unk_28[i]->unk_50 = i != 0; } break; case 1: - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub2(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type3(); func_0203dc74(this->unk_28[i], 0x50, 0x60); this->unk_28[i]->unk_2C = data_02068e6c; break; @@ -91,7 +91,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 break; case 3: if (func_0202ab48() == 0) { - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub3(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type2(); func_0203dc74(this->unk_28[i], 0xC0, 0x20); this->unk_28[i]->unk_2C = data_02068e8c; } else { @@ -130,21 +130,21 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) { } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_020366c4(void) { +ARM MsgProc_Type1* UnkStruct_027E0C68::func_020366c4(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; + return (MsgProc_Type1*)this->unk_28[2]; } - return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; + return (MsgProc_Type1*)this->unk_28[0]; } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036700(void) { +ARM MsgProc_Type1* UnkStruct_027E0C68::func_02036700(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; + return (MsgProc_Type1*)this->unk_28[0]; } - return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; + return (MsgProc_Type1*)this->unk_28[2]; } ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_0203673c(void) { @@ -189,11 +189,11 @@ ARM bool UnkStruct_027E0C68::func_020367dc(int param_2) { } ARM bool UnkStruct_027E0C68::func_020367ec(void) { - return ((UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0])->unk_15C > 0; + return ((MsgProc_Type1*)this->unk_28[0])->unk_15C > 0; } ARM bool UnkStruct_027E0C68::func_02036808(void) { - return ((UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2])->unk_15C > 0; + return ((MsgProc_Type1*)this->unk_28[2])->unk_15C > 0; } ARM bool UnkStruct_027E0C68::func_02036824(void) { @@ -216,7 +216,7 @@ ARM bool UnkStruct_027E0C68::func_02036850(void) { ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2) { if ((param_2->unk_18 & ~0xFFFF) != (0x100 << 0x10)) { - UnkStruct_027E0C68_UnkSubClass1_Sub1* iVar1 = this->func_020366c4(); + MsgProc_Type1* iVar1 = this->func_020366c4(); if (iVar1->unk_15C <= 0) { param_2->vfunc_10(); @@ -237,9 +237,9 @@ ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass2_Base1 // non-matching ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { - UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_28_0; - UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_28_2; - UnkStruct_027E0C68_UnkSubClass1_Base *pSVar4; + MsgProc_Type1* unk_28_0; + MsgProc_Type1* unk_28_2; + MsgProc_Main *pSVar4; ActorRef actorRef; Actor* pActor; bool iVar1; @@ -252,10 +252,10 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->unk_40[1] = this->unk_40[0]; - unk_28_0 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; + unk_28_0 = (MsgProc_Type1*)this->unk_28[0]; if (unk_28_0 != NULL && unk_28_0->unk_15C > 0) { - unk_28_2 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; + unk_28_2 = (MsgProc_Type1*)this->unk_28[2]; if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { this->unk_40[0] = this->func_020366c4(); @@ -263,7 +263,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->unk_40[0] = unk_28_2; } } else { - unk_28_2 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; + unk_28_2 = (MsgProc_Type1*)this->unk_28[2]; if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { this->unk_40[0] = unk_28_0; @@ -332,7 +332,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p } ARM void UnkStruct_027E0C68::func_02036bbc(void) { - UnkStruct_027E0C68_UnkSubClass1_Base* pSVar3; + MsgProc_Main* pSVar3; bool bVar2; bool bVar4; s32 i; @@ -367,7 +367,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { - UnkStruct_027E0C68_UnkSubClass1_Base* pSVar1 = this->unk_28[i]; + MsgProc_Main* pSVar1 = this->unk_28[i]; if (pSVar1 != NULL) { pSVar1->vfunc_3C(param_2); @@ -421,10 +421,10 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { +ARM MsgProc_Main* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; - UnkStruct_027E0C68_UnkSubClass1_Base *pSVar4; + MsgProc_Main *pSVar4; BMGGroups *pBVar5; bool bVar6; s16 iStack_38; @@ -470,7 +470,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02036da8(u32 // non-matching ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { - UnkStruct_027E0C68_UnkSubClass1_Sub1 *pSVar1; + MsgProc_Type1 *pSVar1; u8 auStack_28[24]; u8 local_13; @@ -493,12 +493,12 @@ ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { +ARM MsgProc_Type1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { EntryINF1 *pEVar1; - UnkStruct_027E0C68_UnkSubClass1_Base *pSVar2; + MsgProc_Main *pSVar2; EntryINF1 *pEVar3; int iVar4; - UnkStruct_027E0C68_UnkSubClass1_Sub1 *pSVar5; + MsgProc_Type1 *pSVar5; pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xffff); @@ -507,15 +507,15 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036f68(u32 } if (param_3[21] != 0) { - pSVar5 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; + pSVar5 = (MsgProc_Type1*)this->unk_28[2]; pSVar2 = this->unk_28[3]; } else { - pSVar5 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; + pSVar5 = (MsgProc_Type1*)this->unk_28[0]; pSVar2 = this->unk_28[1]; } //! TODO: fake? - pSVar5->unk_164 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)pSVar2; + pSVar5->unk_164 = (MsgProc_Type1*)pSVar2; pSVar5->unk_418 = this->unk_28[5]; pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0); @@ -559,7 +559,7 @@ ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 par } ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { - UnkStruct_027E0C68_UnkSubClass1_Base* pSVar1; + MsgProc_Main* pSVar1; pSVar1 = this->func_02037178(param_2); @@ -568,7 +568,7 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { } } -ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { +ARM MsgProc_Main* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { -- cgit v1.2.3 From 91b1c854144a8e4b0c7a0e4909e9d05c5794ba2d Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sun, 2 Feb 2025 22:24:35 +0100 Subject: I don't like vfuncs --- src/Main/Message/MessageManager.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 9e022c8a..12851d46 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -8,8 +8,8 @@ extern ARM void func_0203dc74(MsgProc_Main*, unk32, unk32); extern u32** data_027e0ce0[]; extern u32 data_02056924[]; -extern u32* data_02068e6c; -extern u32* data_02068e8c; +extern UnkStruct_MsgProc_Base_unk_2C* data_02068e6c; +extern UnkStruct_MsgProc_Base_unk_2C* data_02068e8c; extern u16 data_02056918[]; extern ActorTypeId data_0205691c[]; @@ -456,10 +456,10 @@ ARM MsgProc_Main* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { pBVar5 = this->pGroups; // pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); BMGFileInfo* entry = &(pBVar5)->entries[(param_2) >> 0x10]; - pSVar4->vfunc_50(pEVar1, - ((u32)entry->pDAT1 + (((func_02037258(entry, (((param_2))) & 0xFFFF))->offset) & ~1)), - // BMG_GET_MSG_ADDR(pBVar5, param_2), - (s16*)&iStack_38, 1); + // pSVar4->vfunc_50(pEVar1, + // ((u32)entry->pDAT1 + (((func_02037258(entry, (((param_2))) & 0xFFFF))->offset) & ~1)), + // // BMG_GET_MSG_ADDR(pBVar5, param_2), + // (s16*)&iStack_38, 1); data_ov000_020eec9c.func_ov000_020d77e4(0x1C); return pSVar4; -- cgit v1.2.3 From b072add9515e35d733e089b3b54af910d47d9eb1 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 4 Feb 2025 20:02:58 +0100 Subject: post-update cleanup: step 1 --- src/Main/Message/MessageManager.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 12851d46..70caaf7b 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -63,7 +63,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 } for (i = 0; i < ARRAY_LEN(this->unk_18); i++) { - this->unk_18[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass2(); + this->unk_18[i] = new(*data_027e0ce0[0], 4) UnkStruct_020386d8(); } this->unk_18[0]->unk_39 = 0; @@ -147,7 +147,7 @@ ARM MsgProc_Type1* UnkStruct_027E0C68::func_02036700(void) { return (MsgProc_Type1*)this->unk_28[2]; } -ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_0203673c(void) { +ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_0203673c(void) { bool iVar1 = this->func_02036824(); bool iVar2 = this->func_02036850(); @@ -214,7 +214,7 @@ ARM bool UnkStruct_027E0C68::func_02036850(void) { return !(data_02056be4[data_027e077c.mUnk_0] & 2) && (data_02056be4[data_027e077c.mUnk_0] & 1); } -ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2) { +ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_020386d8* param_2) { if ((param_2->unk_18 & ~0xFFFF) != (0x100 << 0x10)) { MsgProc_Type1* iVar1 = this->func_020366c4(); @@ -226,7 +226,7 @@ ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* para } } -ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) { +ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_02037750* param_2) { if (this->unk_20[1] != NULL) { return false; } @@ -375,7 +375,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { } } -ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* param_2, unk32 param_3) { +ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_020386d8* param_2, unk32 param_3) { u32 uVar1; if (param_3 == 0) { @@ -392,7 +392,7 @@ ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* para return false; } -ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) { +ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_02037750* param_2) { if (this->unk_20[0] != NULL && this->unk_20[0] != param_2) { return false; } @@ -401,7 +401,7 @@ ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass2_Base1 return true; } -ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) { +ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_02037750* param_2) { if (this->unk_20[0] == param_2) { this->unk_20[0] = NULL; return true; @@ -530,12 +530,12 @@ ARM MsgProc_Type1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { return pSVar5; } -ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370d0(unk32 param_2, unk32 param_3) { +ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_020370d0(unk32 param_2, unk32 param_3) { return this->func_020370e8(param_2, -1, -1, param_3); } -ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { - UnkStruct_027E0C68_UnkSubClass2* puVar2; +ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { + UnkStruct_020386d8* puVar2; if (this->func_02036824()) { puVar2 = this->unk_18[0]; -- cgit v1.2.3 From 5bd0f31b8bb36f54578a109a6dc6a24a2d6e4631 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Wed, 5 Feb 2025 01:47:40 +0100 Subject: post-update cleanup: step 3 (1/2) --- src/Main/Message/MessageManager.cpp | 271 ++++++++++++++++++------------------ 1 file changed, 136 insertions(+), 135 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 70caaf7b..e78a9e64 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -1,10 +1,11 @@ #include "Message/MessageManager.hpp" #include "Actor/ActorManager.hpp" #include "Player/TouchControl.hpp" +#include "System/SysNew.hpp" extern ARM unk32 func_ov000_020d7f18(u32*, unk32); extern ARM unk32 func_02037628(u8*); -extern ARM void func_0203dc74(MsgProc_Main*, unk32, unk32); +extern ARM void func_0203dc74(UnkStruct_02038aa0*, unk32, unk32); extern u32** data_027e0ce0[]; extern u32 data_02056924[]; @@ -25,8 +26,8 @@ ARM void UnkStruct_027E0C68::func_0203643c(int *param_1, UnkStruct_027E0C68* par THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 param_4) { s32 i; - this->unk_03 = 0; - this->unk_0C = 0; + this->mUnk_03 = 0; + this->mUnk_0c = 0; this->pGroups->func_020372f0(BMG_FILE_INDEX_SYSTEM, 2); @@ -50,79 +51,79 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 break; } - for (i = 0; i < ARRAY_LEN(this->unk_18); i++) { - if (this->unk_18[i] != NULL) { - this->unk_18[i] = NULL; + for (i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { + if (this->mUnk_18[i] != NULL) { + this->mUnk_18[i] = NULL; } } - for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { - if (this->unk_28[i] != NULL) { - this->unk_28[i] = NULL; + for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + if (this->mUnk_28[i] != NULL) { + this->mUnk_28[i] = NULL; } } - for (i = 0; i < ARRAY_LEN(this->unk_18); i++) { - this->unk_18[i] = new(*data_027e0ce0[0], 4) UnkStruct_020386d8(); + for (i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { + this->mUnk_18[i] = new(*data_027e0ce0[0], 4) UnkStruct_020386d8(); } - this->unk_18[0]->unk_39 = 0; - this->unk_18[1]->unk_39 = 1; + this->mUnk_18[0]->mUnk_39 = 0; + this->mUnk_18[1]->mUnk_39 = 1; // switch? if (*data_027e0618 == 2 || *data_027e0618 == 3 || *data_027e0618 == 6) { - for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { switch (data_02056924[i + 1]) { case 0: if (*data_027e0618 != 2) { - this->unk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type1(); - func_0203dc74(this->unk_28[i], 0xE0, 0x40); - this->unk_28[i]->unk_2C = data_02068e6c; - this->unk_28[i]->unk_50 = i != 0; + this->mUnk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_020397f8(); + func_0203dc74(this->mUnk_28[i], 0xE0, 0x40); + this->mUnk_28[i]->mUnk_2c = &data_02068e6c; + this->mUnk_28[i]->mUnk_50 = i != 0; } break; case 1: - this->unk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type3(); - func_0203dc74(this->unk_28[i], 0x50, 0x60); - this->unk_28[i]->unk_2C = data_02068e6c; + this->mUnk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type3(); + func_0203dc74(this->mUnk_28[i], 0x50, 0x60); + this->mUnk_28[i]->mUnk_2c = &data_02068e6c; break; case 2: - this->unk_28[i] = NULL; + this->mUnk_28[i] = NULL; break; case 3: if (func_0202ab48() == 0) { - this->unk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type2(); - func_0203dc74(this->unk_28[i], 0xC0, 0x20); - this->unk_28[i]->unk_2C = data_02068e8c; + this->mUnk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type2(); + func_0203dc74(this->mUnk_28[i], 0xC0, 0x20); + this->mUnk_28[i]->mUnk_2c = &data_02068e8c; } else { - this->unk_28[i] = NULL; + this->mUnk_28[i] = NULL; } break; default: break; } - if (this->unk_28[i] != NULL) { - this->unk_28[i]->vfunc_4C(); + if (this->mUnk_28[i] != NULL) { + this->mUnk_28[i]->vfunc_4C(); } } } } THUMB void UnkStruct_027E0C68::func_0203665c(void) { - for (s32 i = 0; i < ARRAY_LEN(this->unk_28); i++) { - if (this->unk_28[i] != NULL) { - delete this->unk_28[i]; + for (s32 i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + if (this->mUnk_28[i] != NULL) { + delete this->mUnk_28[i]; - this->unk_28[i] = NULL; + this->mUnk_28[i] = NULL; } } - for (s32 i = 0; i < ARRAY_LEN(this->unk_18); i++) { - if (this->unk_18[i] != NULL) { - delete this->unk_18[i]; + for (s32 i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { + if (this->mUnk_18[i] != NULL) { + delete this->mUnk_18[i]; - this->unk_18[i] = NULL; + this->mUnk_18[i] = NULL; } } @@ -130,21 +131,21 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) { } // non-matching -ARM MsgProc_Type1* UnkStruct_027E0C68::func_020366c4(void) { +ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_020366c4(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return (MsgProc_Type1*)this->unk_28[2]; + return (UnkStruct_020397f8*)this->mUnk_28[2]; } - return (MsgProc_Type1*)this->unk_28[0]; + return (UnkStruct_020397f8*)this->mUnk_28[0]; } // non-matching -ARM MsgProc_Type1* UnkStruct_027E0C68::func_02036700(void) { +ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_02036700(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return (MsgProc_Type1*)this->unk_28[0]; + return (UnkStruct_020397f8*)this->mUnk_28[0]; } - return (MsgProc_Type1*)this->unk_28[2]; + return (UnkStruct_020397f8*)this->mUnk_28[2]; } ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_0203673c(void) { @@ -152,27 +153,27 @@ ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_0203673c(void) { bool iVar2 = this->func_02036850(); if (iVar1) { - return this->unk_18[0]; + return this->mUnk_18[0]; } if (iVar2) { - return this->unk_18[1]; + return this->mUnk_18[1]; } return NULL; } ARM bool UnkStruct_027E0C68::func_02036770(u32 param_2) { - return (this->unk_18[param_2]->unk_18 & ~0xFFFF) == (0x100 << 0x10); + return (this->mUnk_18[param_2]->mUnk_18 & ~0xFFFF) == (0x100 << 0x10); } ARM unk32 UnkStruct_027E0C68::func_02036798(void) { unk32 uVar2 = 1; - if (this->unk_04 == 0) { + if (this->mUnk_04 == 0) { bool bVar1 = false; - if (this->unk_18[1] != NULL && (this->unk_18[1]->unk_18 & 0xFFFF0000) != 0x1000000) { + if (this->mUnk_18[1] != NULL && (this->mUnk_18[1]->mUnk_18 & 0xFFFF0000) != 0x1000000) { bVar1 = true; } @@ -189,11 +190,11 @@ ARM bool UnkStruct_027E0C68::func_020367dc(int param_2) { } ARM bool UnkStruct_027E0C68::func_020367ec(void) { - return ((MsgProc_Type1*)this->unk_28[0])->unk_15C > 0; + return ((UnkStruct_020397f8*)this->mUnk_28[0])->mUnk_15c > 0; } ARM bool UnkStruct_027E0C68::func_02036808(void) { - return ((MsgProc_Type1*)this->unk_28[2])->unk_15C > 0; + return ((UnkStruct_020397f8*)this->mUnk_28[2])->mUnk_15c > 0; } ARM bool UnkStruct_027E0C68::func_02036824(void) { @@ -215,31 +216,31 @@ ARM bool UnkStruct_027E0C68::func_02036850(void) { } ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_020386d8* param_2) { - if ((param_2->unk_18 & ~0xFFFF) != (0x100 << 0x10)) { - MsgProc_Type1* iVar1 = this->func_020366c4(); + if ((param_2->mUnk_18 & ~0xFFFF) != (0x100 << 0x10)) { + UnkStruct_020397f8* iVar1 = this->func_020366c4(); - if (iVar1->unk_15C <= 0) { + if (iVar1->mUnk_15c <= 0) { param_2->vfunc_10(); } else { - param_2->vfunc_0C(this->func_020366c4()); + param_2->vfunc_0c(this->func_020366c4()); } } } ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_02037750* param_2) { - if (this->unk_20[1] != NULL) { + if (this->mUnk_20[1] != NULL) { return false; } - this->unk_20[1] = param_2; + this->mUnk_20[1] = param_2; return true; } // non-matching ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { - MsgProc_Type1* unk_28_0; - MsgProc_Type1* unk_28_2; - MsgProc_Main *pSVar4; + UnkStruct_020397f8* unk_28_0; + UnkStruct_020397f8* unk_28_2; + UnkStruct_02038aa0 *pSVar4; ActorRef actorRef; Actor* pActor; bool iVar1; @@ -250,104 +251,104 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p return; } - this->unk_40[1] = this->unk_40[0]; + this->mUnk_40[1] = this->mUnk_40[0]; - unk_28_0 = (MsgProc_Type1*)this->unk_28[0]; + unk_28_0 = (UnkStruct_020397f8*)this->mUnk_28[0]; - if (unk_28_0 != NULL && unk_28_0->unk_15C > 0) { - unk_28_2 = (MsgProc_Type1*)this->unk_28[2]; + if (unk_28_0 != NULL && unk_28_0->mUnk_15c > 0) { + unk_28_2 = (UnkStruct_020397f8*)this->mUnk_28[2]; - if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { - this->unk_40[0] = this->func_020366c4(); + if (unk_28_2 != NULL && unk_28_2->mUnk_15c > 0) { + this->mUnk_40[0] = this->func_020366c4(); } else { - this->unk_40[0] = unk_28_2; + this->mUnk_40[0] = unk_28_2; } } else { - unk_28_2 = (MsgProc_Type1*)this->unk_28[2]; + unk_28_2 = (UnkStruct_020397f8*)this->mUnk_28[2]; - if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { - this->unk_40[0] = unk_28_0; + if (unk_28_2 != NULL && unk_28_2->mUnk_15c > 0) { + this->mUnk_40[0] = unk_28_0; } else { - this->unk_40[0] = NULL; + this->mUnk_40[0] = NULL; } } iVar1 = this->func_02036824(); iVar2 = this->func_02036850(); - if (this->unk_20[1] != NULL && ((this->unk_20[1]->unk_18 & ~0xFFFF) != (0x100 << 0x10))) { - this->unk_20[1]->vfunc_10(); - this->unk_20[1] = NULL; + if (this->mUnk_20[1] != NULL && ((this->mUnk_20[1]->mUnk_18 & ~0xFFFF) != (0x100 << 0x10))) { + this->mUnk_20[1]->vfunc_10(); + this->mUnk_20[1] = NULL; } if (iVar1) { - this->func_02036888(this->unk_18[0]); + this->func_02036888(this->mUnk_18[0]); } else if (iVar2) { - this->func_02036888(this->unk_18[1]); + this->func_02036888(this->mUnk_18[1]); } - for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { - if (this->unk_28[i] != NULL) { - this->unk_28[i]->vfunc_2C(); + for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + if (this->mUnk_28[i] != NULL) { + this->mUnk_28[i]->vfunc_2C(); } } - this->unk_04 = 0; + this->mUnk_04 = 0; - if (this->unk_20[0] != NULL) { - if ((this->unk_20[0]->unk_18 & ~0xFFFF) == (0x100 << 0x10)) { - this->unk_20[0] = NULL; + if (this->mUnk_20[0] != NULL) { + if ((this->mUnk_20[0]->mUnk_18 & ~0xFFFF) == (0x100 << 0x10)) { + this->mUnk_20[0] = NULL; } else { - this->unk_04 = 1; + this->mUnk_04 = 1; } } - if ((this->unk_18[0] != NULL) && ((this->unk_18[0]->unk_18 & ~0xFFFF) != (0x100 << 0x10))) { - this->unk_04 = 1; + if ((this->mUnk_18[0] != NULL) && ((this->mUnk_18[0]->mUnk_18 & ~0xFFFF) != (0x100 << 0x10))) { + this->mUnk_04 = 1; //! TODO: fake? - pSVar4 = this->func_02037178((UnkSubClass1_02256FF8*)this->unk_18[0]); + pSVar4 = this->func_02037178((UnkSubClass1_02256FF8*)this->mUnk_18[0]); - if (data_027e0c54 != 0 && pSVar4 != NULL && pSVar4->unk_50 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { - this->unk_04 = 0; + if (data_027e0c54 != 0 && pSVar4 != NULL && pSVar4->mUnk_50 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { + this->mUnk_04 = 0; } } - if (this->unk_08 != NULL && this->unk_08->unk_15C > 0) { - this->unk_04 = 1; + if (this->mUnk_08 != NULL && this->mUnk_08->mUnk_15c > 0) { + this->mUnk_04 = 1; } else { - this->unk_08 = NULL; + this->mUnk_08 = NULL; } this->func_02036bbc(); - if (this->unk_10 != 0) { - ActorManager::FindActorByType(&actorRef, gActorManager, data_0205691c[this->unk_10]); + if (this->mUnk_10 != 0) { + ActorManager::FindActorByType(&actorRef, gActorManager, data_0205691c[this->mUnk_10]); pActor = gActorManager->GetActor(&actorRef); if (pActor != NULL) { - func_ov000_020cec60(data_027e0ffc, data_02056918[this->unk_10], &pActor->mPos, pActor, 0); + func_ov000_020cec60(data_027e0ffc, data_02056918[this->mUnk_10], &pActor->mPos, pActor, 0); } } } ARM void UnkStruct_027E0C68::func_02036bbc(void) { - MsgProc_Main* pSVar3; + UnkStruct_02038aa0* pSVar3; bool bVar2; bool bVar4; s32 i; - if (data_027e0d04.unk_00 > 0) { + if (data_027e0d04.mUnk_00 > 0) { return; } bVar2 = this->func_02036824(); bVar4 = this->func_02036850(); - for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { - pSVar3 = this->unk_28[i]; + for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + pSVar3 = this->mUnk_28[i]; - if (pSVar3 != NULL && ((bVar2 && pSVar3->unk_50 == 0) || (bVar4 && pSVar3->unk_50 != 0))) { + if (pSVar3 != NULL && ((bVar2 && pSVar3->mUnk_50 == 0) || (bVar4 && pSVar3->mUnk_50 != 0))) { pSVar3->vfunc_44(data_027e0d78.mTouchLastX, data_027e0d78.mTouchLastY); } } @@ -356,9 +357,9 @@ ARM void UnkStruct_027E0C68::func_02036bbc(void) { 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 && this->unk_28[i]->func_0203de14(param_2) != 0) { - this->unk_28[i]->vfunc_28(); + for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + if (this->mUnk_28[i] != NULL && this->mUnk_28[i]->func_0203de14(param_2) != 0) { + this->mUnk_28[i]->vfunc_28(); } } } @@ -366,8 +367,8 @@ ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) { ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { s32 i; - for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { - MsgProc_Main* pSVar1 = this->unk_28[i]; + for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + UnkStruct_02038aa0* pSVar1 = this->mUnk_28[i]; if (pSVar1 != NULL) { pSVar1->vfunc_3C(param_2); @@ -393,17 +394,17 @@ ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_020386d8* param_2, unk32 pa } ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_02037750* param_2) { - if (this->unk_20[0] != NULL && this->unk_20[0] != param_2) { + if (this->mUnk_20[0] != NULL && this->mUnk_20[0] != param_2) { return false; } - this->unk_20[0] = param_2; + this->mUnk_20[0] = param_2; return true; } ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_02037750* param_2) { - if (this->unk_20[0] == param_2) { - this->unk_20[0] = NULL; + if (this->mUnk_20[0] == param_2) { + this->mUnk_20[0] = NULL; return true; } @@ -413,18 +414,18 @@ ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_02037750* param_2) { ARM void UnkStruct_027E0C68::func_02036d6c(void) { s32 i; - for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { if (func_0202ab48() == 0 || i != 5) { - this->unk_28[i]->func_02038b40(); + this->mUnk_28[i]->func_02038b40(); } } } // non-matching -ARM MsgProc_Main* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { +ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; - MsgProc_Main *pSVar4; + UnkStruct_02038aa0 *pSVar4; BMGGroups *pBVar5; bool bVar6; s16 iStack_38; @@ -438,7 +439,7 @@ ARM MsgProc_Main* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { } if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { - pSVar4 = this->unk_28[4]; + pSVar4 = this->mUnk_28[4]; func_02037628((u8*)&iStack_38); // ??? @@ -470,7 +471,7 @@ ARM MsgProc_Main* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { // non-matching ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { - MsgProc_Type1 *pSVar1; + UnkStruct_020397f8 *pSVar1; u8 auStack_28[24]; u8 local_13; @@ -486,19 +487,19 @@ ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { pSVar1 = this->func_02036f68(param_2, auStack_28); if (pSVar1 != NULL) { - if (this->unk_04 == 0) { - this->unk_08 = pSVar1; + if (this->mUnk_04 == 0) { + this->mUnk_08 = pSVar1; } } } // non-matching -ARM MsgProc_Type1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { +ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { EntryINF1 *pEVar1; - MsgProc_Main *pSVar2; + UnkStruct_02038aa0 *pSVar2; EntryINF1 *pEVar3; int iVar4; - MsgProc_Type1 *pSVar5; + UnkStruct_020397f8 *pSVar5; pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xffff); @@ -507,18 +508,18 @@ ARM MsgProc_Type1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { } if (param_3[21] != 0) { - pSVar5 = (MsgProc_Type1*)this->unk_28[2]; - pSVar2 = this->unk_28[3]; + pSVar5 = (UnkStruct_020397f8*)this->mUnk_28[2]; + pSVar2 = this->mUnk_28[3]; } else { - pSVar5 = (MsgProc_Type1*)this->unk_28[0]; - pSVar2 = this->unk_28[1]; + pSVar5 = (UnkStruct_020397f8*)this->mUnk_28[0]; + pSVar2 = this->mUnk_28[1]; } //! TODO: fake? - pSVar5->unk_164 = (MsgProc_Type1*)pSVar2; - pSVar5->unk_418 = this->unk_28[5]; + pSVar5->mUnk_164 = (UnkStruct_020397f8*)pSVar2; + pSVar5->mUnk_418 = this->mUnk_28[5]; - pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0); + pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s32)param_3, 0); if (data_ov000_020eec9c.func_ov000_020d7f18(0x19) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x18) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x34) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x35) == 0 && @@ -538,18 +539,18 @@ ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 p UnkStruct_020386d8* puVar2; if (this->func_02036824()) { - puVar2 = this->unk_18[0]; + puVar2 = this->mUnk_18[0]; } else { if (this->func_02036850()) { - puVar2 = this->unk_18[1]; + puVar2 = this->mUnk_18[1]; } else { return NULL; } } - puVar2->unk_30 = param_5; - puVar2->unk_34 = param_3; - puVar2->unk_36 = param_4; + puVar2->mUnk_30 = param_5; + puVar2->mUnk_34 = param_3; + puVar2->mUnk_36 = param_4; if (this->func_02036ce4(puVar2, param_2)) { return puVar2; @@ -559,7 +560,7 @@ ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 p } ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { - MsgProc_Main* pSVar1; + UnkStruct_02038aa0* pSVar1; pSVar1 = this->func_02037178(param_2); @@ -568,12 +569,12 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { } } -ARM MsgProc_Main* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { +ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { s32 i; - for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { - if (this->unk_28[i] != NULL && this->unk_28[i]->unk_08 == param_2) { - return this->unk_28[i]; + for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + if (this->mUnk_28[i] != NULL && this->mUnk_28[i]->mUnk_08 == param_2) { + return this->mUnk_28[i]; } } -- cgit v1.2.3 From 4928bc4660791fa40233c5a37256fa7b3d8e8a01 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Wed, 5 Feb 2025 12:28:21 +0100 Subject: post-update cleanup: step 3 (2/2) --- src/Main/Message/MessageManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index e78a9e64..c43aa5d1 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -519,7 +519,7 @@ ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param pSVar5->mUnk_164 = (UnkStruct_020397f8*)pSVar2; pSVar5->mUnk_418 = this->mUnk_28[5]; - pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s32)param_3, 0); + pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s32*)param_3, 0); if (data_ov000_020eec9c.func_ov000_020d7f18(0x19) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x18) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x34) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x35) == 0 && -- cgit v1.2.3 From d29bbff21fe81aac1fa6dc382ab3c6b1d085708f Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Wed, 5 Feb 2025 20:53:32 +0100 Subject: more progress --- src/Main/Message/MessageManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index c43aa5d1..923c21b3 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -173,7 +173,7 @@ ARM unk32 UnkStruct_027E0C68::func_02036798(void) { if (this->mUnk_04 == 0) { bool bVar1 = false; - if (this->mUnk_18[1] != NULL && (this->mUnk_18[1]->mUnk_18 & 0xFFFF0000) != 0x1000000) { + if (this->mUnk_18[1] != NULL && (this->mUnk_18[1]->mUnk_18 & 0xFFFF0000) != (1 << 24)) { bVar1 = true; } -- cgit v1.2.3 From 308b9c2340f52fe99b18b42a2f9c324331ff4ba9 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Thu, 6 Feb 2025 15:12:09 +0100 Subject: bmg improvements --- src/Main/Message/MessageManager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 923c21b3..7a1e0726 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -432,7 +432,7 @@ ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* para int iStack_34; int iStack_30; - pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xFFFF); + pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xFFFF); if (pEVar1 == NULL) { return NULL; @@ -458,7 +458,7 @@ ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* para // pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); BMGFileInfo* entry = &(pBVar5)->entries[(param_2) >> 0x10]; // pSVar4->vfunc_50(pEVar1, - // ((u32)entry->pDAT1 + (((func_02037258(entry, (((param_2))) & 0xFFFF))->offset) & ~1)), + // ((u32)entry->pDAT1 + (((entry.func_02037258((((param_2))) & 0xFFFF))->offset) & ~1)), // // BMG_GET_MSG_ADDR(pBVar5, param_2), // (s16*)&iStack_38, 1); @@ -501,7 +501,7 @@ ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param int iVar4; UnkStruct_020397f8 *pSVar5; - pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xffff); + pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xffff); if (pEVar1 == NULL) { return NULL; -- cgit v1.2.3 From e109eeadba44994bee4749c40c2d85cb5288ac0e Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Thu, 6 Feb 2025 22:45:45 +0100 Subject: more progress --- src/Main/Message/MessageManager.cpp | 58 ++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 30 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 7a1e0726..f663ad59 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -5,27 +5,30 @@ extern ARM unk32 func_ov000_020d7f18(u32*, unk32); extern ARM unk32 func_02037628(u8*); -extern ARM void func_0203dc74(UnkStruct_02038aa0*, unk32, unk32); -extern u32** data_027e0ce0[]; +extern u32* data_027e0ce0[]; extern u32 data_02056924[]; extern UnkStruct_MsgProc_Base_unk_2C* data_02068e6c; extern UnkStruct_MsgProc_Base_unk_2C* data_02068e8c; extern u16 data_02056918[]; extern ActorTypeId data_0205691c[]; -// this should be `data_027e0ffc->func_ov000_020cec60(u16, Vec3p*, s32);` -extern u32* data_027e0ffc; -extern void func_ov000_020cec60(u32*, u16, Vec3p*, Actor*, unk32); +struct UnkStruct_027e0ffc { + void func_ov000_020cec60(u16, Vec3p*, Actor*, unk32); +}; +extern UnkStruct_027e0ffc* data_027e0ffc; -ARM void UnkStruct_027E0C68::func_0203643c(int *param_1, UnkStruct_027E0C68* param_2, u32 param_3) { +extern u32 data_027e0618[]; + +// non-matching +ARM void UnkStruct_027E0C68::func_0203643c(u32 *param_1, UnkStruct_027E0C68* param_2, u32 param_3) { BMGGroups *pBVar2 = param_2->pGroups; - *param_1 = BMG_GET_MSG_ADDR(pBVar2, param_3); + + *param_1 = ((u32)pBVar2->entries[param_3 >> 0x10].pDAT1 + (pBVar2->entries[param_3 >> 0x10].func_02037258(param_3 & 0xFFFF)->offset & ~1)); } +// non-matching THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 param_4) { - s32 i; - this->mUnk_03 = 0; this->mUnk_0c = 0; @@ -51,40 +54,35 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 break; } - for (i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { - if (this->mUnk_18[i] != NULL) { - this->mUnk_18[i] = NULL; - } + for (s32 i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { + this->mUnk_18[i] = NULL; } - for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { - if (this->mUnk_28[i] != NULL) { - this->mUnk_28[i] = NULL; - } + for (s32 i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + this->mUnk_28[i] = NULL; } - for (i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { - this->mUnk_18[i] = new(*data_027e0ce0[0], 4) UnkStruct_020386d8(); + for (s32 i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { + this->mUnk_18[i] = new(data_027e0ce0[1], 4) UnkStruct_020386d8(); } this->mUnk_18[0]->mUnk_39 = 0; this->mUnk_18[1]->mUnk_39 = 1; - // switch? if (*data_027e0618 == 2 || *data_027e0618 == 3 || *data_027e0618 == 6) { - for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { + for (s32 i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { switch (data_02056924[i + 1]) { case 0: if (*data_027e0618 != 2) { - this->mUnk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_020397f8(); - func_0203dc74(this->mUnk_28[i], 0xE0, 0x40); + this->mUnk_28[i] = new(data_027e0ce0[1], 4) UnkStruct_020397f8(); + this->mUnk_28[i]->func_0203dc74(0xE0, 0x40); this->mUnk_28[i]->mUnk_2c = &data_02068e6c; this->mUnk_28[i]->mUnk_50 = i != 0; } break; case 1: - this->mUnk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type3(); - func_0203dc74(this->mUnk_28[i], 0x50, 0x60); + this->mUnk_28[i] = new(data_027e0ce0[1], 4) MsgProc_Type3(); + this->mUnk_28[i]->func_0203dc74(0x50, 0x60); this->mUnk_28[i]->mUnk_2c = &data_02068e6c; break; case 2: @@ -92,8 +90,8 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 break; case 3: if (func_0202ab48() == 0) { - this->mUnk_28[i] = new(*data_027e0ce0[0], 4) MsgProc_Type2(); - func_0203dc74(this->mUnk_28[i], 0xC0, 0x20); + this->mUnk_28[i] = new(data_027e0ce0[1], 4) MsgProc_Type2(); + this->mUnk_28[i]->func_0203dc74(0xC0, 0x20); this->mUnk_28[i]->mUnk_2c = &data_02068e8c; } else { this->mUnk_28[i] = NULL; @@ -327,7 +325,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p pActor = gActorManager->GetActor(&actorRef); if (pActor != NULL) { - func_ov000_020cec60(data_027e0ffc, data_02056918[this->mUnk_10], &pActor->mPos, pActor, 0); + data_027e0ffc->func_ov000_020cec60(data_02056918[this->mUnk_10], &pActor->mPos, pActor, 0); } } } @@ -349,7 +347,7 @@ ARM void UnkStruct_027E0C68::func_02036bbc(void) { pSVar3 = this->mUnk_28[i]; if (pSVar3 != NULL && ((bVar2 && pSVar3->mUnk_50 == 0) || (bVar4 && pSVar3->mUnk_50 != 0))) { - pSVar3->vfunc_44(data_027e0d78.mTouchLastX, data_027e0d78.mTouchLastY); + pSVar3->vfunc_44(gTouchControl.mTouchLastX, gTouchControl.mTouchLastY); } } } @@ -416,7 +414,7 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { if (func_0202ab48() == 0 || i != 5) { - this->mUnk_28[i]->func_02038b40(); + this->mUnk_28[i]->UnkStruct_02038aa0::vfunc_10(); } } } -- cgit v1.2.3 From 30bd3562ab974bc479d75d7dcf6f9cb9845ba724 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Wed, 12 Feb 2025 20:20:34 +0100 Subject: format --- src/Main/Message/MessageManager.cpp | 133 +++++++++++++++++------------------- 1 file changed, 63 insertions(+), 70 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index f663ad59..a1a5da09 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -3,28 +3,29 @@ #include "Player/TouchControl.hpp" #include "System/SysNew.hpp" -extern ARM unk32 func_ov000_020d7f18(u32*, unk32); -extern ARM unk32 func_02037628(u8*); +extern ARM unk32 func_ov000_020d7f18(u32 *, unk32); +extern ARM unk32 func_02037628(u8 *); -extern u32* data_027e0ce0[]; +extern u32 *data_027e0ce0[]; extern u32 data_02056924[]; -extern UnkStruct_MsgProc_Base_unk_2C* data_02068e6c; -extern UnkStruct_MsgProc_Base_unk_2C* data_02068e8c; +extern UnkStruct_MsgProc_Base_unk_2C *data_02068e6c; +extern UnkStruct_MsgProc_Base_unk_2C *data_02068e8c; extern u16 data_02056918[]; extern ActorTypeId data_0205691c[]; struct UnkStruct_027e0ffc { - void func_ov000_020cec60(u16, Vec3p*, Actor*, unk32); + void func_ov000_020cec60(u16, Vec3p *, Actor *, unk32); }; -extern UnkStruct_027e0ffc* data_027e0ffc; +extern UnkStruct_027e0ffc *data_027e0ffc; extern u32 data_027e0618[]; // non-matching -ARM void UnkStruct_027E0C68::func_0203643c(u32 *param_1, UnkStruct_027E0C68* param_2, u32 param_3) { +ARM void UnkStruct_027E0C68::func_0203643c(u32 *param_1, UnkStruct_027E0C68 *param_2, u32 param_3) { BMGGroups *pBVar2 = param_2->pGroups; - *param_1 = ((u32)pBVar2->entries[param_3 >> 0x10].pDAT1 + (pBVar2->entries[param_3 >> 0x10].func_02037258(param_3 & 0xFFFF)->offset & ~1)); + *param_1 = ((u32) pBVar2->entries[param_3 >> 0x10].pDAT1 + + (pBVar2->entries[param_3 >> 0x10].func_02037258(param_3 & 0xFFFF)->offset & ~1)); } // non-matching @@ -47,11 +48,8 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 this->pGroups->func_020372f0(BMG_FILE_INDEX_BATTLE, 2); this->pGroups->func_020372f0(BMG_FILE_INDEX_BATTLECOMMON, 2); break; - case 7: - this->pGroups->func_020372f0(BMG_FILE_INDEX_MAINSELECT, 2); - break; - default: - break; + case 7: this->pGroups->func_020372f0(BMG_FILE_INDEX_MAINSELECT, 2); break; + default: break; } for (s32 i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { @@ -85,9 +83,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 this->mUnk_28[i]->func_0203dc74(0x50, 0x60); this->mUnk_28[i]->mUnk_2c = &data_02068e6c; break; - case 2: - this->mUnk_28[i] = NULL; - break; + case 2: this->mUnk_28[i] = NULL; break; case 3: if (func_0202ab48() == 0) { this->mUnk_28[i] = new(data_027e0ce0[1], 4) MsgProc_Type2(); @@ -97,8 +93,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 this->mUnk_28[i] = NULL; } break; - default: - break; + default: break; } if (this->mUnk_28[i] != NULL) { @@ -129,30 +124,30 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) { } // non-matching -ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_020366c4(void) { +ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_020366c4(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return (UnkStruct_020397f8*)this->mUnk_28[2]; + return (UnkStruct_020397f8 *) this->mUnk_28[2]; } - return (UnkStruct_020397f8*)this->mUnk_28[0]; + return (UnkStruct_020397f8 *) this->mUnk_28[0]; } // non-matching -ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_02036700(void) { +ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_02036700(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return (UnkStruct_020397f8*)this->mUnk_28[0]; + return (UnkStruct_020397f8 *) this->mUnk_28[0]; } - return (UnkStruct_020397f8*)this->mUnk_28[2]; + return (UnkStruct_020397f8 *) this->mUnk_28[2]; } -ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_0203673c(void) { +ARM UnkStruct_020386d8 *UnkStruct_027E0C68::func_0203673c(void) { bool iVar1 = this->func_02036824(); bool iVar2 = this->func_02036850(); if (iVar1) { return this->mUnk_18[0]; - } + } if (iVar2) { return this->mUnk_18[1]; @@ -188,21 +183,19 @@ ARM bool UnkStruct_027E0C68::func_020367dc(int param_2) { } ARM bool UnkStruct_027E0C68::func_020367ec(void) { - return ((UnkStruct_020397f8*)this->mUnk_28[0])->mUnk_15c > 0; + return ((UnkStruct_020397f8 *) this->mUnk_28[0])->mUnk_15c > 0; } ARM bool UnkStruct_027E0C68::func_02036808(void) { - return ((UnkStruct_020397f8*)this->mUnk_28[2])->mUnk_15c > 0; + return ((UnkStruct_020397f8 *) this->mUnk_28[2])->mUnk_15c > 0; } ARM bool UnkStruct_027E0C68::func_02036824(void) { switch (data_027e077c.mUnk_0) { case 0x01: case 0x37: - case 0x3B: - return true; - default: - break; + case 0x3B: return true; + default: break; } return false; @@ -213,9 +206,9 @@ ARM bool UnkStruct_027E0C68::func_02036850(void) { return !(data_02056be4[data_027e077c.mUnk_0] & 2) && (data_02056be4[data_027e077c.mUnk_0] & 1); } -ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_020386d8* param_2) { +ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_020386d8 *param_2) { if ((param_2->mUnk_18 & ~0xFFFF) != (0x100 << 0x10)) { - UnkStruct_020397f8* iVar1 = this->func_020366c4(); + UnkStruct_020397f8 *iVar1 = this->func_020366c4(); if (iVar1->mUnk_15c <= 0) { param_2->vfunc_10(); @@ -225,7 +218,7 @@ ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_020386d8* param_2) { } } -ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_02037750* param_2) { +ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_02037750 *param_2) { if (this->mUnk_20[1] != NULL) { return false; } @@ -236,11 +229,11 @@ ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_02037750* param_2) { // non-matching ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { - UnkStruct_020397f8* unk_28_0; - UnkStruct_020397f8* unk_28_2; + UnkStruct_020397f8 *unk_28_0; + UnkStruct_020397f8 *unk_28_2; UnkStruct_02038aa0 *pSVar4; ActorRef actorRef; - Actor* pActor; + Actor *pActor; bool iVar1; bool iVar2; s32 i; @@ -251,10 +244,10 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->mUnk_40[1] = this->mUnk_40[0]; - unk_28_0 = (UnkStruct_020397f8*)this->mUnk_28[0]; + unk_28_0 = (UnkStruct_020397f8 *) this->mUnk_28[0]; if (unk_28_0 != NULL && unk_28_0->mUnk_15c > 0) { - unk_28_2 = (UnkStruct_020397f8*)this->mUnk_28[2]; + unk_28_2 = (UnkStruct_020397f8 *) this->mUnk_28[2]; if (unk_28_2 != NULL && unk_28_2->mUnk_15c > 0) { this->mUnk_40[0] = this->func_020366c4(); @@ -262,7 +255,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->mUnk_40[0] = unk_28_2; } } else { - unk_28_2 = (UnkStruct_020397f8*)this->mUnk_28[2]; + unk_28_2 = (UnkStruct_020397f8 *) this->mUnk_28[2]; if (unk_28_2 != NULL && unk_28_2->mUnk_15c > 0) { this->mUnk_40[0] = unk_28_0; @@ -305,7 +298,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->mUnk_04 = 1; //! TODO: fake? - pSVar4 = this->func_02037178((UnkSubClass1_02256FF8*)this->mUnk_18[0]); + pSVar4 = this->func_02037178((UnkSubClass1_02256FF8 *) this->mUnk_18[0]); if (data_027e0c54 != 0 && pSVar4 != NULL && pSVar4->mUnk_50 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { this->mUnk_04 = 0; @@ -331,7 +324,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p } ARM void UnkStruct_027E0C68::func_02036bbc(void) { - UnkStruct_02038aa0* pSVar3; + UnkStruct_02038aa0 *pSVar3; bool bVar2; bool bVar4; s32 i; @@ -366,7 +359,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { - UnkStruct_02038aa0* pSVar1 = this->mUnk_28[i]; + UnkStruct_02038aa0 *pSVar1 = this->mUnk_28[i]; if (pSVar1 != NULL) { pSVar1->vfunc_3C(param_2); @@ -374,7 +367,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { } } -ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_020386d8* param_2, unk32 param_3) { +ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_020386d8 *param_2, unk32 param_3) { u32 uVar1; if (param_3 == 0) { @@ -391,7 +384,7 @@ ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_020386d8* param_2, unk32 pa return false; } -ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_02037750* param_2) { +ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_02037750 *param_2) { if (this->mUnk_20[0] != NULL && this->mUnk_20[0] != param_2) { return false; } @@ -400,7 +393,7 @@ ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_02037750* param_2) { return true; } -ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_02037750* param_2) { +ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_02037750 *param_2) { if (this->mUnk_20[0] == param_2) { this->mUnk_20[0] = NULL; return true; @@ -420,7 +413,7 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { } // non-matching -ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { +ARM UnkStruct_02038aa0 *UnkStruct_027E0C68::func_02036da8(u32 param_2, s16 *param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; UnkStruct_02038aa0 *pSVar4; @@ -429,7 +422,7 @@ ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* para s16 iStack_38; int iStack_34; int iStack_30; - + pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xFFFF); if (pEVar1 == NULL) { @@ -438,7 +431,7 @@ ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* para if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { pSVar4 = this->mUnk_28[4]; - func_02037628((u8*)&iStack_38); + func_02037628((u8 *) &iStack_38); // ??? bVar6 = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0; @@ -454,10 +447,10 @@ ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* para // iStack_30 = param_3[2]; pBVar5 = this->pGroups; // pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); - BMGFileInfo* entry = &(pBVar5)->entries[(param_2) >> 0x10]; - // pSVar4->vfunc_50(pEVar1, + BMGFileInfo *entry = &(pBVar5)->entries[(param_2) >> 0x10]; + // pSVar4->vfunc_50(pEVar1, // ((u32)entry->pDAT1 + (((entry.func_02037258((((param_2))) & 0xFFFF))->offset) & ~1)), - // // BMG_GET_MSG_ADDR(pBVar5, param_2), + // // BMG_GET_MSG_ADDR(pBVar5, param_2), // (s16*)&iStack_38, 1); data_ov000_020eec9c.func_ov000_020d77e4(0x1C); @@ -482,7 +475,7 @@ ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { auStack_28[21] = local_13; auStack_28[20] = param_3; - pSVar1 = this->func_02036f68(param_2, auStack_28); + pSVar1 = this->func_02036f68(param_2, auStack_28); if (pSVar1 != NULL) { if (this->mUnk_04 == 0) { @@ -492,13 +485,13 @@ ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { } // non-matching -ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { +ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_02036f68(u32 param_2, u8 *param_3) { EntryINF1 *pEVar1; UnkStruct_02038aa0 *pSVar2; EntryINF1 *pEVar3; int iVar4; UnkStruct_020397f8 *pSVar5; - + pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xffff); if (pEVar1 == NULL) { @@ -506,35 +499,36 @@ ARM UnkStruct_020397f8* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param } if (param_3[21] != 0) { - pSVar5 = (UnkStruct_020397f8*)this->mUnk_28[2]; + pSVar5 = (UnkStruct_020397f8 *) this->mUnk_28[2]; pSVar2 = this->mUnk_28[3]; } else { - pSVar5 = (UnkStruct_020397f8*)this->mUnk_28[0]; + pSVar5 = (UnkStruct_020397f8 *) this->mUnk_28[0]; pSVar2 = this->mUnk_28[1]; } //! TODO: fake? - pSVar5->mUnk_164 = (UnkStruct_020397f8*)pSVar2; + pSVar5->mUnk_164 = (UnkStruct_020397f8 *) pSVar2; pSVar5->mUnk_418 = this->mUnk_28[5]; - pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s32*)param_3, 0); + pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s32 *) param_3, 0); if (data_ov000_020eec9c.func_ov000_020d7f18(0x19) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x18) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x34) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x35) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x1A) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x1B) == 0 && - (param_3[12]) != 7) { + (param_3[12]) != 7) + { data_ov000_020eec9c.func_ov000_020d77e4(0x1C); } return pSVar5; } -ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_020370d0(unk32 param_2, unk32 param_3) { +ARM UnkStruct_020386d8 *UnkStruct_027E0C68::func_020370d0(unk32 param_2, unk32 param_3) { return this->func_020370e8(param_2, -1, -1, param_3); } -ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { - UnkStruct_020386d8* puVar2; +ARM UnkStruct_020386d8 *UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { + UnkStruct_020386d8 *puVar2; if (this->func_02036824()) { puVar2 = this->mUnk_18[0]; @@ -557,8 +551,8 @@ ARM UnkStruct_020386d8* UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 p return NULL; } -ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { - UnkStruct_02038aa0* pSVar1; +ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8 *param_2) { + UnkStruct_02038aa0 *pSVar1; pSVar1 = this->func_02037178(param_2); @@ -567,7 +561,7 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { } } -ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { +ARM UnkStruct_02038aa0 *UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8 *param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { @@ -579,5 +573,4 @@ ARM UnkStruct_02038aa0* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* return NULL; } -ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() { -} +ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {} -- cgit v1.2.3 From f8e7f9a17dd50694fbf7f318c99116bad76ae7b4 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:01:41 +0100 Subject: rename UnkStruct_027E0C68 --- src/Main/Message/MessageManager.cpp | 62 ++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 31 deletions(-) (limited to 'src/Main/Message/MessageManager.cpp') diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index a1a5da09..812a9b2a 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -21,7 +21,7 @@ extern UnkStruct_027e0ffc *data_027e0ffc; extern u32 data_027e0618[]; // non-matching -ARM void UnkStruct_027E0C68::func_0203643c(u32 *param_1, UnkStruct_027E0C68 *param_2, u32 param_3) { +ARM void MessageManager::func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3) { BMGGroups *pBVar2 = param_2->pGroups; *param_1 = ((u32) pBVar2->entries[param_3 >> 0x10].pDAT1 + @@ -29,7 +29,7 @@ ARM void UnkStruct_027E0C68::func_0203643c(u32 *param_1, UnkStruct_027E0C68 *par } // non-matching -THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 param_4) { +THUMB void MessageManager::func_02036490(unk32 param_2, unk32 param_3, unk32 param_4) { this->mUnk_03 = 0; this->mUnk_0c = 0; @@ -103,7 +103,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 } } -THUMB void UnkStruct_027E0C68::func_0203665c(void) { +THUMB void MessageManager::func_0203665c(void) { for (s32 i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { if (this->mUnk_28[i] != NULL) { delete this->mUnk_28[i]; @@ -124,7 +124,7 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) { } // non-matching -ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_020366c4(void) { +ARM UnkStruct_020397f8 *MessageManager::func_020366c4(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { return (UnkStruct_020397f8 *) this->mUnk_28[2]; } @@ -133,7 +133,7 @@ ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_020366c4(void) { } // non-matching -ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_02036700(void) { +ARM UnkStruct_020397f8 *MessageManager::func_02036700(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { return (UnkStruct_020397f8 *) this->mUnk_28[0]; } @@ -141,7 +141,7 @@ ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_02036700(void) { return (UnkStruct_020397f8 *) this->mUnk_28[2]; } -ARM UnkStruct_020386d8 *UnkStruct_027E0C68::func_0203673c(void) { +ARM UnkStruct_020386d8 *MessageManager::func_0203673c(void) { bool iVar1 = this->func_02036824(); bool iVar2 = this->func_02036850(); @@ -156,11 +156,11 @@ ARM UnkStruct_020386d8 *UnkStruct_027E0C68::func_0203673c(void) { return NULL; } -ARM bool UnkStruct_027E0C68::func_02036770(u32 param_2) { +ARM bool MessageManager::func_02036770(u32 param_2) { return (this->mUnk_18[param_2]->mUnk_18 & ~0xFFFF) == (0x100 << 0x10); } -ARM unk32 UnkStruct_027E0C68::func_02036798(void) { +ARM unk32 MessageManager::func_02036798(void) { unk32 uVar2 = 1; if (this->mUnk_04 == 0) { @@ -178,19 +178,19 @@ ARM unk32 UnkStruct_027E0C68::func_02036798(void) { return uVar2; } -ARM bool UnkStruct_027E0C68::func_020367dc(int param_2) { +ARM bool MessageManager::func_020367dc(int param_2) { return param_2 == 0; } -ARM bool UnkStruct_027E0C68::func_020367ec(void) { +ARM bool MessageManager::func_020367ec(void) { return ((UnkStruct_020397f8 *) this->mUnk_28[0])->mUnk_15c > 0; } -ARM bool UnkStruct_027E0C68::func_02036808(void) { +ARM bool MessageManager::func_02036808(void) { return ((UnkStruct_020397f8 *) this->mUnk_28[2])->mUnk_15c > 0; } -ARM bool UnkStruct_027E0C68::func_02036824(void) { +ARM bool MessageManager::func_02036824(void) { switch (data_027e077c.mUnk_0) { case 0x01: case 0x37: @@ -202,11 +202,11 @@ ARM bool UnkStruct_027E0C68::func_02036824(void) { } // non-matching -ARM bool UnkStruct_027E0C68::func_02036850(void) { +ARM bool MessageManager::func_02036850(void) { return !(data_02056be4[data_027e077c.mUnk_0] & 2) && (data_02056be4[data_027e077c.mUnk_0] & 1); } -ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_020386d8 *param_2) { +ARM void MessageManager::func_02036888(UnkStruct_020386d8 *param_2) { if ((param_2->mUnk_18 & ~0xFFFF) != (0x100 << 0x10)) { UnkStruct_020397f8 *iVar1 = this->func_020366c4(); @@ -218,7 +218,7 @@ ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_020386d8 *param_2) { } } -ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_02037750 *param_2) { +ARM bool MessageManager::func_020368f4(UnkStruct_02037750 *param_2) { if (this->mUnk_20[1] != NULL) { return false; } @@ -228,7 +228,7 @@ ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_02037750 *param_2) { } // non-matching -ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { +ARM void MessageManager::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { UnkStruct_020397f8 *unk_28_0; UnkStruct_020397f8 *unk_28_2; UnkStruct_02038aa0 *pSVar4; @@ -323,7 +323,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p } } -ARM void UnkStruct_027E0C68::func_02036bbc(void) { +ARM void MessageManager::func_02036bbc(void) { UnkStruct_02038aa0 *pSVar3; bool bVar2; bool bVar4; @@ -345,7 +345,7 @@ ARM void UnkStruct_027E0C68::func_02036bbc(void) { } } -ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) { +ARM void MessageManager::func_02036c50(unk32 param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { @@ -355,7 +355,7 @@ ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) { } } -ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { +ARM void MessageManager::func_02036ca4(unk32 param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { @@ -367,7 +367,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { } } -ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_020386d8 *param_2, unk32 param_3) { +ARM bool MessageManager::func_02036ce4(UnkStruct_020386d8 *param_2, unk32 param_3) { u32 uVar1; if (param_3 == 0) { @@ -384,7 +384,7 @@ ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_020386d8 *param_2, unk32 pa return false; } -ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_02037750 *param_2) { +ARM bool MessageManager::func_02036d30(UnkStruct_02037750 *param_2) { if (this->mUnk_20[0] != NULL && this->mUnk_20[0] != param_2) { return false; } @@ -393,7 +393,7 @@ ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_02037750 *param_2) { return true; } -ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_02037750 *param_2) { +ARM bool MessageManager::func_02036d4c(UnkStruct_02037750 *param_2) { if (this->mUnk_20[0] == param_2) { this->mUnk_20[0] = NULL; return true; @@ -402,7 +402,7 @@ ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_02037750 *param_2) { return false; } -ARM void UnkStruct_027E0C68::func_02036d6c(void) { +ARM void MessageManager::func_02036d6c(void) { s32 i; for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { @@ -413,7 +413,7 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { } // non-matching -ARM UnkStruct_02038aa0 *UnkStruct_027E0C68::func_02036da8(u32 param_2, s16 *param_3) { +ARM UnkStruct_02038aa0 *MessageManager::func_02036da8(u32 param_2, s16 *param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; UnkStruct_02038aa0 *pSVar4; @@ -461,7 +461,7 @@ ARM UnkStruct_02038aa0 *UnkStruct_027E0C68::func_02036da8(u32 param_2, s16 *para } // non-matching -ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { +ARM void MessageManager::func_02036edc(u32 param_2, u8 param_3) { UnkStruct_020397f8 *pSVar1; u8 auStack_28[24]; u8 local_13; @@ -485,7 +485,7 @@ ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { } // non-matching -ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_02036f68(u32 param_2, u8 *param_3) { +ARM UnkStruct_020397f8 *MessageManager::func_02036f68(u32 param_2, u8 *param_3) { EntryINF1 *pEVar1; UnkStruct_02038aa0 *pSVar2; EntryINF1 *pEVar3; @@ -523,11 +523,11 @@ ARM UnkStruct_020397f8 *UnkStruct_027E0C68::func_02036f68(u32 param_2, u8 *param return pSVar5; } -ARM UnkStruct_020386d8 *UnkStruct_027E0C68::func_020370d0(unk32 param_2, unk32 param_3) { +ARM UnkStruct_020386d8 *MessageManager::func_020370d0(unk32 param_2, unk32 param_3) { return this->func_020370e8(param_2, -1, -1, param_3); } -ARM UnkStruct_020386d8 *UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { +ARM UnkStruct_020386d8 *MessageManager::func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5) { UnkStruct_020386d8 *puVar2; if (this->func_02036824()) { @@ -551,7 +551,7 @@ ARM UnkStruct_020386d8 *UnkStruct_027E0C68::func_020370e8(unk32 param_2, unk16 p return NULL; } -ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8 *param_2) { +ARM void MessageManager::func_02037158(UnkSubClass1_02256FF8 *param_2) { UnkStruct_02038aa0 *pSVar1; pSVar1 = this->func_02037178(param_2); @@ -561,7 +561,7 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8 *param_2) { } } -ARM UnkStruct_02038aa0 *UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8 *param_2) { +ARM UnkStruct_02038aa0 *MessageManager::func_02037178(UnkSubClass1_02256FF8 *param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { @@ -573,4 +573,4 @@ ARM UnkStruct_02038aa0 *UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8 return NULL; } -ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {} +ARM MessageManager::~MessageManager() {} -- cgit v1.2.3