Decompile Door Map Objects 1 (DRDS, DRCK, DRKY, DRSW, DRTC) (#56)

* random docs

* "match" ctor

* match ctor and link miniblocks

* DRDS 98%

* jp differences

* improve MapObjectUnkDRDS::vfunc_04

* MapObjectDoorBase 78%

* fix regressions

* MapObjectDoorBase 98%

* MapObjectUnkDRKY 98%

* MapObjectUnkDRSW 100%

* fix build issues

* MapObjectUnkDRTC 100%

* DRCK delinks

* MapObjectUnkDRCK 98%
This commit is contained in:
Yanis
2026-04-23 18:42:59 +02:00
committed by GitHub
parent 4a07ec0baa
commit c3c34ebe5a
68 changed files with 3685 additions and 986 deletions
+10 -36
View File
@@ -6,6 +6,7 @@
#include "MapObject/MapObjectManager.hpp"
#include "Player/PlayerGet.hpp"
#include "System/OverlayManager.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_020d8698.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
@@ -42,18 +43,8 @@ extern "C" void func_02015664(char *, unk32);
extern "C" void func_020156c8(char *, char *, unk32);
extern "C" void func_020156f4(char *);
extern "C" void func_02015644(char *);
struct func_ov000_0205abcc_ret {
unk32 mUnk_00;
unk32 mUnk_04;
unk8 mUnk_08;
unk8 mUnk_09;
unk8 mUnk_0A;
unk8 mUnk_0B;
unk8 mUnk_0C;
unk8 mUnk_0D;
unk8 mUnk_0E;
};
extern "C" func_ov000_0205abcc_ret *func_ov000_0205abcc(char *, char *, unk32, unk32, unk32);
extern "C" UnkResourceStruct *func_ov000_0205abcc(char *, char *, unk32, unk32, unk32);
extern "C" unk32 func_ov000_02077590(unk32);
static const unk32 data_ov110_02185dc4[1] = {8};
@@ -387,36 +378,20 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
auStack_64[1] = 0;
strncpy((char *) acStack_a6, (char *) acStack_e0, 0x3f);
len = strlen((char *) acStack_a6);
// strncpy((char *) acStack_a6 + len, ".nsbmd", 0x3f - len);
strncpy((char *) acStack_a6 + len, ".nsbmd", 0x3f - len);
func_02015628((char *) auStack_64, (char *) acStack_a6, 0, &data_ov110_02186240,
sizeof(UnkStruct_02186240));
func_02015664((char *) auStack_64, 0x10);
strncpy((char *) acStack_a6, (char *) acStack_e0, 0x3f);
len = strlen((char *) acStack_a6);
// strncpy((char *) acStack_a6 + len, ".nsbtx", 0x3f - len);
strncpy((char *) acStack_a6 + len, ".nsbtx", 0x3f - len);
func_020156c8((char *) auStack_48, (char *) acStack_a6, 0);
void *var_r1_3;
unk32 var_r1_2;
func_ov000_0205abcc_ret *ret =
UnkResourceStruct *ret =
func_ov000_0205abcc((char *) auStack_64, (char *) auStack_48, 0, 1, this->mUnk_30->mUnk_24);
if (ret != NULL) {
if (ret->mUnk_08 != 0 && ret->mUnk_09 > 0) {
var_r1_2 = ret->mUnk_08 + ret->mUnk_0E + 4;
} else {
var_r1_2 = 0;
}
if (var_r1_2 != 0) {
var_r1_3 = ret + var_r1_2;
} else {
var_r1_3 = NULL;
}
} else {
var_r1_3 = NULL;
}
this->mUnk_8C.vfunc_08((unk32) var_r1_3);
this->mUnk_8C.vfunc_08(GetUnkPointer1_Impl(ret));
func_020156f4((char *) auStack_48);
func_02015644((char *) auStack_64);
}
@@ -494,7 +469,7 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
}
}
const UnkStruct_ov110_021861ec data_ov110_021861ec = UnkStruct_ov110_021861ec(0x5E3, 0x152D, 0xCD);
const UnkStruct_ov110_021861ec data_ov110_021861ec(0x5E3, 0x152D, 0xCD);
ARM void PlayerGet::vfunc_10(unk32 param1, unk32 param2) {
unk32 var_r1;
@@ -790,9 +765,8 @@ ARM void PlayerGet::vfunc_18(unk32 param1, unk32 param2, unk32 param3) {
}
}
ARM UnkStruct_PlayerGet_ec::UnkStruct_PlayerGet_ec() {
this->mUnk_00 = 0;
}
ARM UnkStruct_PlayerGet_ec::UnkStruct_PlayerGet_ec() :
UnkSystem7(NULL) {}
// non-matching
THUMB void UnkStruct_027e0ce0_34::func_ov110_02185d3c(ItemId itemId) {