summaryrefslogtreecommitdiff
path: root/src/Main/Unknown/UnkStruct_0203dae0.cpp
diff options
context:
space:
mode:
authorYanis002 <35189056+Yanis002@users.noreply.github.com>2025-02-05 18:19:34 +0100
committerYanis002 <35189056+Yanis002@users.noreply.github.com>2025-02-05 18:19:34 +0100
commit795cd8a2f9e0ae79e2c6e34042a7c2423c2286eb (patch)
treea4e1c54fd93c7fe098fdafd73ad85f8400446c51 /src/Main/Unknown/UnkStruct_0203dae0.cpp
parent978a7532c4c0b4c756b619c2d5fcfc7cc2215fb0 (diff)
more progress
Diffstat (limited to 'src/Main/Unknown/UnkStruct_0203dae0.cpp')
-rw-r--r--src/Main/Unknown/UnkStruct_0203dae0.cpp48
1 files changed, 34 insertions, 14 deletions
diff --git a/src/Main/Unknown/UnkStruct_0203dae0.cpp b/src/Main/Unknown/UnkStruct_0203dae0.cpp
index 59221042..34549800 100644
--- a/src/Main/Unknown/UnkStruct_0203dae0.cpp
+++ b/src/Main/Unknown/UnkStruct_0203dae0.cpp
@@ -4,6 +4,11 @@
extern u32 *data_027e0ce0[];
extern "C" void Fill256(unk32, unk16*, unk32, unk32);
extern "C" void func_0203fc78(u8, unk32*, unk32*);
+extern "C" u16 func_0203d318(unk32, unk32);
+extern "C" void func_020298b8(unk32*, unk32, unk32, unk32, unk32);
+extern "C" void func_02029830(unk32*, unk32, unk32, unk32, unk32);
+extern "C" unk32 func_0203d400(u8);
+extern "C" void func_02035440(u8);
// non-matching
THUMB UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) {
@@ -69,13 +74,9 @@ ARM bool UnkStruct_0203dae0::vfunc_14(s32 param1, s32 param2) {
return true;
}
-extern "C" u16 func_0203d318(unk32, unk32);
-extern "C" void func_020298b8(unk32*, unk32, unk32, unk32, unk32);
-extern "C" void func_02029830(unk32*, unk32, unk32, unk32, unk32);
-extern "C" unk32 func_0203d400(u8);
-
+// non-matching
ARM void UnkStruct_0203dae0::func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4) {
- unk32 uVar5;
+ unk32* uVar5;
this->mUnk_50 = param1;
this->vfunc_14(this->mUnk_4a, this->mUnk_4c);
@@ -84,25 +85,44 @@ ARM void UnkStruct_0203dae0::func_0203dcfc(u8 param1, unk32 param2, unk32 param3
if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) != 0x0) {
uVar5 = this->func_0203ddec();
- func_020298b8(this->mUnk_10, uVar5, this->mUnk_10[0x1], this->mUnk_10[0x2], 0x4);
+ func_020298b8(this->mUnk_10, *uVar5, this->mUnk_10[0x1], this->mUnk_10[0x2], 0x4);
} else {
uVar5 = this->func_0203ddec();
- func_02029830(this->mUnk_10, uVar5, this->mUnk_10[0x1], this->mUnk_10[0x2], 0x4);
+ func_02029830(this->mUnk_10, *uVar5, this->mUnk_10[0x1], this->mUnk_10[0x2], 0x4);
}
this->mUnk_28 = this->mUnk_10;
- this->mUnk_2c = this->mUnk_2c;
+ this->mUnk_2c = this->mUnk_2c; // this->mUnk_2c = &(UnkStruct_MsgProc_Base_unk_2C*)this->mUnk_10;
this->mUnk_30 = param4;
this->mUnk_34 = 3;
- this->vfunc_10(param3, 0);
+ this->vfunc_10(param3, 3);
this->func_0203de58(param2);
}
-ARM unk32 UnkStruct_0203dae0::func_0203ddec() {}
-ARM void UnkStruct_0203dae0::func_0203ddfc() {}
-ARM void UnkStruct_0203dae0::func_0203de14() {}
-ARM s32 UnkStruct_0203dae0::func_0203de24() {}
+ARM unk32* UnkStruct_0203dae0::func_0203ddec() {
+ return this->mUnk_114->func_0203d1b4();
+}
+
+ARM void UnkStruct_0203dae0::func_0203ddfc() {
+ this->mUnk_114->mUnk_04 = 0;
+ this->mUnk_11c = 0;
+}
+
+ARM void UnkStruct_0203dae0::func_0203de14() {
+ //! TODO: class?
+ func_02035440(this->mUnk_50);
+}
+
+// non-matching
+ARM s32 UnkStruct_0203dae0::func_0203de24() {
+ if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) == 0x0) {
+ return this->mUnk_10[5] * this->mUnk_10[6] * 0x20;
+ }
+
+ return this->mUnk_10[6] << 0xa;
+}
+
ARM bool UnkStruct_0203dae0::func_0203de58(s32 param1) {}
ARM void UnkStruct_0203dae0::vfunc_10(u32 param1, unk32 param2) {