summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYanis002 <35189056+Yanis002@users.noreply.github.com>2025-01-24 22:11:59 +0100
committerYanis002 <35189056+Yanis002@users.noreply.github.com>2025-01-24 22:11:59 +0100
commit660c5e96554153dda38e8d2185db07ae70432266 (patch)
tree7ee7d040779182aa4ad81b5758009b8c4b6cb822
parent3de7041c34072cca1942d46441e5811344db6150 (diff)
convert BMGGroups to a class
-rw-r--r--config/eur/arm9/symbols.txt6
-rw-r--r--config/usa/arm9/symbols.txt6
-rw-r--r--include/Message/BMG.hpp18
-rw-r--r--include/Message/MessageManager.hpp1
-rw-r--r--src/Main/Message/BMG.cpp22
-rw-r--r--src/Main/Message/MessageManager.cpp20
6 files changed, 40 insertions, 33 deletions
diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt
index 738d2d1a..140b8db1 100644
--- a/config/eur/arm9/symbols.txt
+++ b/config/eur/arm9/symbols.txt
@@ -1825,9 +1825,9 @@ _Z13func_020371b4P11BMGFileInfo kind:function(thumb,size=0x14) addr:0x20371b4
_Z13func_020371c8P11BMGFileInfoPjs kind:function(thumb,size=0x90) addr:0x20371c8
_Z13func_02037258P11BMGFileInfoi kind:function(arm,size=0x34) addr:0x2037258
_Z13func_0203728cP11BMGFileInfoi kind:function(arm,size=0x64) addr:0x203728c
-_Z13func_020372f0P9BMGGroups12BMGFileIndexs kind:function(thumb,size=0xc4) addr:0x20372f0
-_Z13func_020373b4P9BMGGroupss kind:function(thumb,size=0x38) addr:0x20373b4
-_Z13func_020373ecP9BMGGroupsi kind:function(arm,size=0x60) addr:0x20373ec
+_ZN9BMGGroups13func_020372f0E12BMGFileIndexs kind:function(thumb,size=0xc4) addr:0x20372f0
+_ZN9BMGGroups13func_020373b4Es kind:function(thumb,size=0x38) addr:0x20373b4
+_ZN9BMGGroups13func_020373ecEi kind:function(arm,size=0x60) addr:0x20373ec
func_0203744c kind:function(thumb,size=0xc) addr:0x203744c
func_02037458 kind:function(arm,size=0x28) addr:0x2037458
func_02037480 kind:function(arm,size=0x10) addr:0x2037480
diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt
index 39e9cffe..4ccd1090 100644
--- a/config/usa/arm9/symbols.txt
+++ b/config/usa/arm9/symbols.txt
@@ -1825,9 +1825,9 @@ _Z13func_020371b4P11BMGFileInfo kind:function(thumb,size=0x14) addr:0x2037170
_Z13func_020371c8P11BMGFileInfoPjs kind:function(thumb,size=0x90) addr:0x2037184
_Z13func_02037258P11BMGFileInfoi kind:function(arm,size=0x34) addr:0x2037214
_Z13func_0203728cP11BMGFileInfoi kind:function(arm,size=0x64) addr:0x2037248
-_Z13func_020372f0P9BMGGroups12BMGFileIndexs kind:function(thumb,size=0xc4) addr:0x20372ac
-_Z13func_020373b4P9BMGGroupss kind:function(thumb,size=0x38) addr:0x2037370
-_Z13func_020373ecP9BMGGroupsi kind:function(arm,size=0x60) addr:0x20373a8
+_ZN9BMGGroups13func_020372f0E12BMGFileIndexs kind:function(thumb,size=0xc4) addr:0x20372ac
+_ZN9BMGGroups13func_020373b4Es kind:function(thumb,size=0x38) addr:0x2037370
+_ZN9BMGGroups13func_020373ecEi kind:function(arm,size=0x60) addr:0x20373a8
func_0203744c kind:function(thumb,size=0xc) addr:0x2037408
func_02037458 kind:function(arm,size=0x28) addr:0x2037414
func_02037480 kind:function(arm,size=0x10) addr:0x203743c
diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp
index 844da446..997e41f3 100644
--- a/include/Message/BMG.hpp
+++ b/include/Message/BMG.hpp
@@ -2,6 +2,7 @@
#include "global.h"
#include "types.h"
+#include "System/SysNew.hpp"
#define BMG_MAGIC "MESGbmg1"
#define BMG_TAG(a, b, c, d) (((d) << 24) | ((c) << 16) | ((b) << 8) | (a))
@@ -170,13 +171,18 @@ typedef struct BMGFileInfo {
/* 0x1A */ s16 groupId; // stores the group id
} BMGFileInfo; // size = 0x1C
-// 0x027E0C68 + 0x14
-typedef struct BMGGroups {
+
+class BMGGroups : public SysObject {
+public:
/* 0x00 */ BMGFileInfo* entries; // accessed with `groupId`
/* 0x04 */ s32 numEntries;
-} BMGGroups; // size = 0x8
+ /* 0x08 */
+
+ BMGGroups();
+ ~BMGGroups();
+ void func_020372f0(BMGFileIndex eIndex, s16 unk_18);
+ void func_020373b4(s16 unk_18);
+ u32 func_020373ec(unk32 param_2);
+};
extern EntryINF1* func_02037258(BMGFileInfo* pFileInfo, unk32 param_2);
-extern void func_020372f0(BMGGroups* pGroups, BMGFileIndex eIndex, s16 unk_18);
-extern void func_020373b4(BMGGroups* pGroups, s16 unk_18);
-extern u32 func_020373ec(BMGGroups* pGroups, unk32 param_2);
diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp
index 06caff2b..d6547c2f 100644
--- a/include/Message/MessageManager.hpp
+++ b/include/Message/MessageManager.hpp
@@ -159,6 +159,7 @@ public:
/* 0x20 */ UnkStruct_027E0C68_UnkSubClass3* unk_20[2]; // is it actually UnkStruct_027E0C68_UnkSubClass2?
/* 0x28 */ UnkStruct_027E0C68_UnkSubClass1* unk_28[6];
/* 0x40 */ UnkStruct_027E0C68_UnkSubClass1* unk_40[2]; // is array size 6?
+ /* 0x48 */
static void func_0203643c(int *param_1, UnkStruct_027E0C68* param_2, u32 param_3);
void func_02036490(unk32 param_2, unk32 param_3, unk32 param_4);
diff --git a/src/Main/Message/BMG.cpp b/src/Main/Message/BMG.cpp
index db3623b8..69dae832 100644
--- a/src/Main/Message/BMG.cpp
+++ b/src/Main/Message/BMG.cpp
@@ -135,7 +135,7 @@ ARM u16 func_0203728c(BMGFileInfo* pFileInfo, unk32 param_2) {
return -1;
}
-THUMB void func_020372f0(BMGGroups* pGroups, BMGFileIndex eIndex, s16 unk_18) {
+THUMB void BMGGroups::func_020372f0(BMGFileIndex eIndex, s16 unk_18) {
char bmgPath[64];
BMGFileInfo bmgFile;
u32* pFile;
@@ -168,30 +168,30 @@ THUMB void func_020372f0(BMGGroups* pGroups, BMGFileIndex eIndex, s16 unk_18) {
// assign sections and set the file info in the groups entries
groupId = func_020371c8(&bmgFile, pFile, unk_18);
- pGroups->entries[groupId] = bmgFile;
- pGroups->entries[groupId].groupId = groupId;
+ this->entries[groupId] = bmgFile;
+ this->entries[groupId].groupId = groupId;
}
-THUMB void func_020373b4(BMGGroups* pGroups, s16 unk_18) {
+THUMB void BMGGroups::func_020373b4(s16 unk_18) {
s32 i;
- for (i = 0; i < pGroups->numEntries; i++) {
- if (pGroups->entries[i].unk_18 == unk_18) {
- func_0202d590(pGroups->entries[i].unk_14);
- func_020371b4(&pGroups->entries[i]);
+ for (i = 0; i < this->numEntries; i++) {
+ if (this->entries[i].unk_18 == unk_18) {
+ func_0202d590(this->entries[i].unk_14);
+ func_020371b4(&this->entries[i]);
}
}
}
-ARM u32 func_020373ec(BMGGroups* pGroups, unk32 param_2) {
+ARM u32 BMGGroups::func_020373ec(unk32 param_2) {
u16 dVar1;
u16 uVar2;
s32 i;
dVar1 = -1;
- for (i = 0; i < pGroups->numEntries; i++) {
- uVar2 = func_0203728c(&pGroups->entries[i], param_2);
+ for (i = 0; i < this->numEntries; i++) {
+ uVar2 = func_0203728c(&this->entries[i], param_2);
if (uVar2 != dVar1) {
return uVar2 | i << 0x10;
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);