diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 24db99a4..738d2d1a 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1806,7 +1806,7 @@ _ZN18UnkStruct_027E0C6813func_02036850Ev kind:function(arm,size=0x38) addr:0x203 _ZN18UnkStruct_027E0C6813func_02036888EP31UnkStruct_027E0C68_UnkSubClass2 kind:function(arm,size=0x6c) addr:0x2036888 _ZN18UnkStruct_027E0C6813func_020368f4EP31UnkStruct_027E0C68_UnkSubClass3 kind:function(arm,size=0x18) addr:0x20368f4 _ZN18UnkStruct_027E0C6813func_0203690cEiii kind:function(arm,size=0x2b0) addr:0x203690c -func_02036bbc kind:function(arm,size=0x94) addr:0x2036bbc +_ZN18UnkStruct_027E0C6813func_02036bbcEv kind:function(arm,size=0x94) addr:0x2036bbc _ZN18UnkStruct_027E0C6813func_02036c50Ei kind:function(arm,size=0x54) addr:0x2036c50 _ZN18UnkStruct_027E0C6813func_02036ca4Ei kind:function(arm,size=0x40) addr:0x2036ca4 _ZN18UnkStruct_027E0C6813func_02036ce4EP31UnkStruct_027E0C68_UnkSubClass2i kind:function(arm,size=0x4c) addr:0x2036ce4 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index d54c59f4..39e9cffe 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1806,7 +1806,7 @@ _ZN18UnkStruct_027E0C6813func_02036850Ev kind:function(arm,size=0x38) addr:0x203 _ZN18UnkStruct_027E0C6813func_02036888EP31UnkStruct_027E0C68_UnkSubClass2 kind:function(arm,size=0x6c) addr:0x2036844 _ZN18UnkStruct_027E0C6813func_020368f4EP31UnkStruct_027E0C68_UnkSubClass3 kind:function(arm,size=0x18) addr:0x20368b0 _ZN18UnkStruct_027E0C6813func_0203690cEiii kind:function(arm,size=0x2b0) addr:0x20368c8 -func_02036bbc kind:function(arm,size=0x94) addr:0x2036b78 +_ZN18UnkStruct_027E0C6813func_02036bbcEv kind:function(arm,size=0x94) addr:0x2036b78 _ZN18UnkStruct_027E0C6813func_02036c50Ei kind:function(arm,size=0x54) addr:0x2036c0c _ZN18UnkStruct_027E0C6813func_02036ca4Ei kind:function(arm,size=0x40) addr:0x2036c60 _ZN18UnkStruct_027E0C6813func_02036ce4EP31UnkStruct_027E0C68_UnkSubClass2i kind:function(arm,size=0x4c) addr:0x2036ca0 diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp index 596124ce..3bf87777 100644 --- a/include/Message/MessageManager.hpp +++ b/include/Message/MessageManager.hpp @@ -59,7 +59,7 @@ public: /* 0x38 */ virtual UNK_TYPE vfunc_38(void) override; /* 0x3C */ virtual void vfunc_3C(unk32 param_2) override; /* 0x40 */ virtual UNK_TYPE vfunc_40(void) override; - /* 0x44 */ virtual UNK_TYPE vfunc_44(void) override; + /* 0x44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; /* 0x48 */ virtual UNK_TYPE vfunc_48(void) override; /* 0x4C */ virtual void vfunc_4C(void) override; /* 0x50 */ virtual void vfunc_50(EntryINF1* param_2, int param_3, u8* param_4) override; @@ -172,7 +172,7 @@ public: void func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2); bool func_020368f4(UnkStruct_027E0C68_UnkSubClass3* param_2); void func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4); - void func_02036bbc(UNK_TYPE); + void func_02036bbc(void); void func_02036c50(unk32 param_2); void func_02036ca4(unk32 param_2); s32 func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* param_2, unk32 param_3); diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index b84af893..45b6dec0 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -1,5 +1,6 @@ #include "Message/MessageManager.hpp" #include "Actor/ActorManager.hpp" +#include "Player/TouchControl.hpp" extern unk32 func_ov000_020d7f18(u32*, unk32); extern unk32 func_ov000_020d77e4(u32*, unk32); @@ -26,6 +27,8 @@ extern u32* data_02068e8c; extern u16 data_02056918[]; extern ActorTypeId data_0205691c[]; extern u8 data_027e0c54; +extern TouchControl data_027e0d78; +extern s16 data_027e0d04; // this should be `data_027e0ffc->func_ov000_020cec60(u16, Vec3p*, s32);` extern u32* data_027e0ffc; @@ -363,6 +366,28 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p } } +ARM void UnkStruct_027E0C68::func_02036bbc(void) { + UnkStruct_027E0C68_UnkSubClass1* pSVar3; + bool bVar2; + bool bVar4; + s32 i; + + if (data_027e0d04 > 0) { + return; + } + + bVar2 = this->func_02036824(); + bVar4 = this->func_02036850(); + + for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { + pSVar3 = this->unk_28[i]; + + if (pSVar3 != NULL && ((bVar2 && pSVar3->unk_48 == 0) || (bVar4 && pSVar3->unk_48 != 0))) { + pSVar3->vfunc_44(data_027e0d78.mTouchLastX, data_027e0d78.mTouchLastY); + } + } +} + ARM void UnkStruct_027E0C68::func_02036c50(unk32 param_2) { s32 i;