summaryrefslogtreecommitdiff
path: root/src/Main/MessageManager.cpp
diff options
context:
space:
mode:
authorYanis002 <35189056+Yanis002@users.noreply.github.com>2025-01-21 00:17:29 +0100
committerYanis002 <35189056+Yanis002@users.noreply.github.com>2025-01-21 00:17:29 +0100
commit2d57d12209e26ad09107f52e9e94e01939d6d91c (patch)
tree43db6818926b44991bf45c68e210e423408d093c /src/Main/MessageManager.cpp
parent48bbd8bb7f008ac913cabb6f7faf4a47ad86878b (diff)
work
Diffstat (limited to 'src/Main/MessageManager.cpp')
-rw-r--r--src/Main/MessageManager.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/Main/MessageManager.cpp b/src/Main/MessageManager.cpp
new file mode 100644
index 00000000..5ce577b1
--- /dev/null
+++ b/src/Main/MessageManager.cpp
@@ -0,0 +1,102 @@
+extern "C" {
+#include <string.h>
+}
+#include "Message/MessageManager.hpp"
+
+char* func_0202ab38(int lang);
+u32* func_0202d550(int, u32*, char* path, int, int, int);
+
+extern u32 *data_027e0ce0[];
+extern u32 data_027e05f4; // language
+extern u32* data_ov002_0210016c;
+
+THUMB void func_020371b4(UnknownData* pData) {
+ pData->unk_00 = 0;
+ pData->unk_04 = 0;
+ pData->unk_08 = 0;
+ pData->unk_0C = 0;
+ pData->unk_10 = 0;
+ pData->unk_14 = 0;
+ pData->unk_18 = 0;
+}
+
+THUMB int func_020371c8(UnknownData* pData, u32* param_2, int param_3) {
+ /* TODO */
+}
+
+THUMB int func_02037258(UnknownData* pData, unk32 param_2) {
+ /* TODO */
+}
+
+THUMB unk16 func_0203728c(UnknownData* pData, unk32 param_2) {
+ /* TODO */
+}
+
+static char* sBMGFiles[] = {
+ "system",
+ "regular",
+ "battle",
+ "test",
+ "default",
+ "sea",
+ "kaitei",
+ "main_isl",
+ "brave",
+ "flame",
+ "wind",
+ "frost",
+ "power",
+ "wisdom",
+ "ghost",
+ "hidari",
+ "sennin",
+ "ship",
+ "collect",
+ "mainselect",
+ "field",
+ "wisdom_dngn",
+ "demo",
+ "battleCommon",
+ "bossLast1",
+ "bossLast3",
+ "torii",
+ "myou",
+ "kojima1",
+ "kojima2",
+ "kojima5",
+ "kojima3",
+ "staff",
+ "kaitei_F",
+};
+
+THUMB void MessageManager::func_020372f0(int index, int param_3, int param_4) {
+ char bmgPath[64];
+ UnknownData local_70;
+ u32* uVar2;
+ int iVar1;
+
+ // path to the bmg file for the current language (i.e.: "English/Message/battle.bmg")
+ strcpy(bmgPath, func_0202ab38(data_027e05f4));
+ strcat(bmgPath, "/Message/");
+ strcat(bmgPath, sBMGFiles[index]);
+ strcat(bmgPath, ".bmg");
+
+ uVar2 = data_027e0ce0[1];
+
+ if (param_3 != 1) {
+ if (param_3 != 4) {
+ uVar2 = data_027e0ce0[0];
+ } else {
+ uVar2 = data_ov002_0210016c;
+ }
+ }
+
+ uVar2 = func_0202d550(0xC4, uVar2, bmgPath, 0, 0x10, 0);
+
+ local_70.unk_1A = 0;
+ func_020371b4(&local_70);
+
+ iVar1 = func_020371c8(&local_70, uVar2, param_3);
+ this->aUnknownData[iVar1] = local_70;
+ this->aUnknownData[iVar1].unk_1A = iVar1;
+}