convert BMGGroups to a class

This commit is contained in:
Yanis002
2025-01-24 22:11:59 +01:00
parent 3de7041c34
commit 660c5e9655
6 changed files with 40 additions and 33 deletions
+3 -3
View File
@@ -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
+3 -3
View File
@@ -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
+12 -6
View File
@@ -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);
+1
View File
@@ -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);
+11 -11
View File
@@ -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;
+10 -10
View File
@@ -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);