Fix match

This commit is contained in:
Aetias
2025-07-01 00:01:30 +02:00
parent 1c4c64fc08
commit 8003089294
5 changed files with 24 additions and 28 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ src/Main/Message/BMG.cpp:
src/Main/Unknown/UnkStruct_02037750.cpp:
.text start:0x02037750 end:0x020387e0
.data start:0x02057d00 end:0x02057d70
.data start:0x02057cb8 end:0x02057d70
src/Main/Unknown/UnkStruct_02038aa0.cpp:
.text start:0x0203881c end:0x02039578
-1
View File
@@ -207,4 +207,3 @@ public:
};
extern ItemManager *gItemManager;
extern UnkStruct_027e0d38 *data_027e0d38;
+6 -7
View File
@@ -5,19 +5,18 @@
#include "types.h"
#define BMG_MAGIC "MESGbmg1"
#define BMG_TAG(a, b, c, d) (((d) << 24) | ((c) << 16) | ((b) << 8) | (a))
#define BMG_GET_INF1(pGroups, flags) ((pGroups)->entries[(flags) >> 0x10].func_02037258((flags) & 0xFFFF))
#define BMG_GET_MSG_OFFSET(pGroups, flags) (BMG_GET_INF1((pGroups), (flags))->offset)
#define BMG_GET_MSG_ADDR(pGroups, flags) \
((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1))
enum BMGTag {
/* "INF1" */ BMG_TAG_INF1 = BMG_TAG('I', 'N', 'F', '1'),
/* "FLW1" */ BMG_TAG_FLW1 = BMG_TAG('F', 'L', 'W', '1'),
/* "FLI1" */ BMG_TAG_FLI1 = BMG_TAG('F', 'L', 'I', '1'),
/* "DAT1" */ BMG_TAG_DAT1 = BMG_TAG('D', 'A', 'T', '1'),
/* "MID1" */ BMG_TAG_MID1 = BMG_TAG('M', 'I', 'D', '1'),
/* "MID1" */ BMG_TAG_STR1 = BMG_TAG('S', 'T', 'R', '1'),
/* "INF1" */ BMG_TAG_INF1 = '1FNI',
/* "FLW1" */ BMG_TAG_FLW1 = '1WLF',
/* "FLI1" */ BMG_TAG_FLI1 = '1ILF',
/* "DAT1" */ BMG_TAG_DAT1 = '1TAD',
/* "MID1" */ BMG_TAG_MID1 = '1DIM',
/* "STR1" */ BMG_TAG_STR1 = '1RTS',
};
enum BMGEncoding {
+1 -1
View File
@@ -37,7 +37,7 @@ public:
UnkStruct_02037750(unk32 param1, unk32 param2);
static LinkStateInteract *GetLinkStateInteract();
void func_020385d0(s32 param1, u8 *param2);
unk32 func_020385d0(s32 param1, u8 *param2);
};
class UnkStruct_020386d8_24 {
+16 -18
View File
@@ -48,7 +48,6 @@ ARM bool UnkStruct_02037750::vfunc_24(unk32 param1) {
ARM unk32 UnkStruct_02037750::vfunc_28(s32 param1) {
u16 uVar1;
s64 lVar2;
Random *pRVar3;
char cVar4;
u16 uVar5;
int iVar6;
@@ -59,8 +58,7 @@ ARM unk32 UnkStruct_02037750::vfunc_28(s32 param1) {
u32 uVar11;
bool bVar12;
pRVar3 = gRandom;
uVar7 = (u32) * (u16 *) (param1 + 0x2);
uVar7 = (u32) * (u16 *) (param1 + 0x2);
if (uVar7 >= 0xF && uVar7 <= 0x2E) {
pcVar8 = this->mUnk_04[((uVar7 - 0xF) << 0x1E) >> 0x1C];
@@ -101,17 +99,17 @@ ARM unk32 UnkStruct_02037750::vfunc_28(s32 param1) {
if (uVar7 == 0x0) {
uVar10 = 0x0;
} else {
lVar2 = gRandom->mRandomValue * gRandom->mFactor;
uVar10 = gRandom->Next(lVar2);
// uVar10 = *(int *)((int)&gRandom->mAddend + 0x4) +
// *(int *)((int)&gRandom->mFactor + 0x4) *
// *(uint *)&gRandom->mRandomValue + *(uint *)&gRandom->mFactor *
// *(int *)((int)&gRandom->mRandomValue + 0x4) +
// (lVar2 >> 0x20) + (gRandom->mAddend << uVar11); // CARRY4
lVar2 = gRandom.mRandomValue * gRandom.mFactor;
uVar10 = gRandom.Next(lVar2);
// uVar10 = *(int *)((int)&gRandom.mAddend + 0x4) +
// *(int *)((int)&gRandom.mFactor + 0x4) *
// *(uint *)&gRandom.mRandomValue + *(uint *)&gRandom.mFactor *
// *(int *)((int)&gRandom.mRandomValue + 0x4) +
// (lVar2 >> 0x20) + (gRandom.mAddend << uVar11); // CARRY4
// part of the inline?
// *(uint *)&gRandom->mRandomValue = *(uint *)&gRandom->mAddend + uVar11;
// *(uint *)((int)&gRandom->mRandomValue + 0x4) = uVar10;
// *(uint *)&gRandom.mRandomValue = *(uint *)&gRandom.mAddend + uVar11;
// *(uint *)((int)&gRandom.mRandomValue + 0x4) = uVar10;
if (uVar7 != 0x0) {
uVar10 = (uVar7 * uVar10 >> 0x20);
@@ -126,9 +124,9 @@ ARM unk32 UnkStruct_02037750::vfunc_28(s32 param1) {
case 0x9: break;
case 0xa: break;
case 0xb:
lVar2 = gRandom->mRandomValue * gRandom->mFactor;
lVar2 = gRandom.mRandomValue * gRandom.mFactor;
uVar7 = lVar2;
uVar10 = gRandom->Next(uVar7);
uVar10 = gRandom.Next(uVar7);
return (int) (uVar10 * 0x64 >> 0x20) < (param1 + 0x4);
case 0xc:
@@ -136,9 +134,9 @@ ARM unk32 UnkStruct_02037750::vfunc_28(s32 param1) {
if (uVar7 == 0x0) {
uVar10 = 0x0;
} else {
lVar2 = gRandom->mRandomValue * gRandom->mFactor;
lVar2 = gRandom.mRandomValue * gRandom.mFactor;
uVar11 = lVar2;
uVar10 = gRandom->Next(uVar11);
uVar10 = gRandom.Next(uVar11);
if (uVar7 != 0x0) {
uVar10 = (uVar7 * uVar10 >> 0x20);
@@ -159,9 +157,9 @@ ARM unk32 UnkStruct_02037750::vfunc_28(s32 param1) {
if (uVar7 == 0x0) {
uVar10 = 0x0;
} else {
lVar2 = gRandom->mRandomValue * gRandom->mFactor;
lVar2 = gRandom.mRandomValue * gRandom.mFactor;
uVar11 = lVar2;
uVar10 = gRandom->Next(uVar11);
uVar10 = gRandom.Next(uVar11);
if (uVar7 != 0x0) {
uVar10 = (uVar7 * uVar10 >> 0x20);