From 8003089294daef5ccb9b3a73eac8a4496457f178 Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 1 Jul 2025 00:01:30 +0200 Subject: [PATCH] Fix match --- config/eur/arm9/delinks.txt | 2 +- include/Item/ItemManager.hpp | 1 - include/Message/BMG.hpp | 13 +++++----- include/Unknown/UnkStruct_02037750.hpp | 2 +- src/Main/Unknown/UnkStruct_02037750.cpp | 34 ++++++++++++------------- 5 files changed, 24 insertions(+), 28 deletions(-) diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index c71693b4..99db48e3 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -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 diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 3d32bbbe..3de57def 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -207,4 +207,3 @@ public: }; extern ItemManager *gItemManager; -extern UnkStruct_027e0d38 *data_027e0d38; diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index b438a0da..c3d4479d 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -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 { diff --git a/include/Unknown/UnkStruct_02037750.hpp b/include/Unknown/UnkStruct_02037750.hpp index 359d5fd2..a480c1a3 100644 --- a/include/Unknown/UnkStruct_02037750.hpp +++ b/include/Unknown/UnkStruct_02037750.hpp @@ -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 { diff --git a/src/Main/Unknown/UnkStruct_02037750.cpp b/src/Main/Unknown/UnkStruct_02037750.cpp index 489c4534..0fa56bfb 100644 --- a/src/Main/Unknown/UnkStruct_02037750.cpp +++ b/src/Main/Unknown/UnkStruct_02037750.cpp @@ -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);