Decompile overlay 101 (#118)

* delink the overlay

* ItemManager_101 OK

* UnkStruct_027e0ce0_40_101 OK

* PlayerLinkActor_A0_1C_101 OK

* UnkStruct_027e09a4_54_101 OK

* UnkStruct_027e0cd8_0C_101 OK and MapObjectProfile_Derived6_101 OK
This commit is contained in:
Yanis
2026-07-20 01:30:08 +02:00
committed by GitHub
parent 68a8721665
commit 04d20febb1
46 changed files with 1170 additions and 315 deletions
@@ -38,7 +38,8 @@ ModelRender_Derived4::ModelRender_Derived4(PlayerCharacter character, unk32 para
this->func_ov000_0208c058(this->mUnk_7C[1]);
}
PlayerActorBase::PlayerActorBase(PlayerCharacter character, unk32 param2, unk32 param3, UnkStruct_027e0ce0_40 *param4) :
PlayerActorBase::PlayerActorBase(PlayerCharacter character, unk32 param2, ItemManager *pItemMgr,
UnkStruct_027e0ce0_40 *param4) :
mPos(0, 0, 0),
mPrevPos(0, 0, 0),
mVel(0, 0, 0),
@@ -52,7 +53,7 @@ PlayerActorBase::PlayerActorBase(PlayerCharacter character, unk32 param2, unk32
mCharacter(character),
mUnk_4C(param2),
mUnk_50(param2, this->mUnk_44),
mUnk_54(param3),
mUnk_54(pItemMgr),
mUnk_58(param4) {
this->mUnk_5C.mUnk_04 = 0;
this->mUnk_5C.mUnk_10 = &this->mUnk_5C.mUnk_08;
@@ -5,12 +5,13 @@
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
PlayerLinkActor::PlayerLinkActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4) :
PlayerActorBase(PlayerCharacter_Link, param1, param2, param3),
PlayerLinkActor::PlayerLinkActor(unk32 param1, ItemManager *pItemMgr, UnkStruct_027e0ce0_40 *param3,
UnkStruct_027e0ce0_40_150 *param4) :
PlayerActorBase(PlayerCharacter_Link, param1, pItemMgr, param3),
mUnk_094(param4),
mUnk_098(0),
mUnk_09C(new(HeapIndex_1) PlayerLinkActor_9C(param3, *(u32 *) &this->mUnk_50, this->mCharacter)),
mUnk_0A0(new(HeapIndex_1) PlayerLinkActor_A0(param2, param3, this, this->mUnk_09C)),
mUnk_0A0(new(HeapIndex_1) PlayerLinkActor_A0(pItemMgr, param3, this, this->mUnk_09C)),
mUnk_0A4(this, this->mUnk_0A0),
mUnk_0B0(-1),
mUnk_0B4(false),
@@ -45,7 +46,7 @@ PlayerLinkActor::~PlayerLinkActor() {
delete this->mUnk_09C;
}
void PlayerLinkActor::func_ov001_020bcb60(unk32 param1) {
void PlayerLinkActor::func_ov001_020bcb60(UnkStruct_027e0ce0_40_328 *param1) {
this->mUnk_098 = param1;
this->mUnk_09C->mUnk_0F4 = param1;
}
@@ -79,8 +80,8 @@ void PlayerLinkActor::func_ov001_020bcbd0(VecFx32 *pVec) {
this->mUnk_0A0->func_ov000_0209378c());
bool uVar1 = false;
if (this->mUnk_094 != 0) {
uVar1 = *this->mUnk_094;
if (this->mUnk_094 != NULL) {
uVar1 = this->mUnk_094->mUnk_00;
}
this->mUnk_0A0->func_ov001_020bd388(uVar1, this->mUnk_0B6);
@@ -24,39 +24,11 @@ extern int data_ov089_02171540;
static UnkStruct_ov001_020c40f4 data_ov001_020c40f4[0x40];
struct UnkStruct_ov001_020c2a40 {
/* 00 */ unk32 unk_00;
/* 04 */ unk32 unk_04;
/* 08 */ unk16 unk_08;
/* 0A */ u8 unk_0A;
/* 0B */ u8 unk_0B;
/* 0C */ u8 unk_0C;
/* 0D */ u8 unk_0D;
/* 0E */ u8 unk_0E;
/* 0F */ u8 unk_0F;
/* 10 */ u8 unk_10;
/* 11 */ STRUCT_PAD(0x11, 0x14); // pad?
/* 14 */
UnkStruct_ov001_020c2a40(unk32 param1, unk32 param2, unk16 param3, unk8 param4, unk8 param5, unk8 param6, unk8 param7) {
this->unk_00 = param1;
this->unk_04 = param2;
this->unk_08 = param3;
this->unk_0A = param4;
this->unk_0B = param5;
this->unk_0C = param6;
this->unk_0D = param7;
this->unk_0E = 0x2B;
this->unk_0F = 0;
this->unk_10 = 0;
}
};
static const UnkStruct_ov001_020c2a40 data_ov001_020c2a40[] = {
UnkStruct_ov001_020c2a40(0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C),
UnkStruct_ov001_020c2a40(0x29, 0x00, 0x00, 0x0B, 0x01, 0x00, 0x3D),
UnkStruct_ov001_020c2a40(0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E),
UnkStruct_ov001_020c2a40(0x04, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x3F),
static const EntranceInfo data_ov001_020c2a40[] = {
EntranceInfo(SceneIndex_f_bridge, 0x00, 0x00, 0, 0, false, 0x3C),
EntranceInfo(SceneIndex_f_htown, 0x00, 0x00, 11, 1, false, 0x3D),
EntranceInfo(SceneIndex_f_tetsuo, 0x00, 0x00, 0, 0, false, 0x3E),
EntranceInfo(SceneIndex_t_area0, 0x00, 0x00, 0, 0xFA, false, 0x3F),
};
// https://decomp.me/scratch/JcRNn
@@ -356,8 +328,8 @@ void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c30(const EntranceInfo &param1)
this->mUnk_154.push_back(param1);
}
void *UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c80(unk32 param1) {
return (void *) &data_ov001_020c2a40[param1 - 0x3C];
const EntranceInfo *UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c80(unk32 param1) {
return &data_ov001_020c2a40[param1 - 0x3C];
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c90(ZMBSectionCMPT *pCMPT) {
+6 -6
View File
@@ -37,7 +37,7 @@ UnkStruct_027e0ce0 *UnkStruct_027e0ce0::Create() {
UnkStruct_027e0ce0::UnkStruct_027e0ce0() :
mUnk_02(false),
mUnk_03(false),
mUnk_04(NULL),
mEquippedItem(ItemFlag_Nothing),
mUnk_08(false),
mUnk_0C(this),
mUnk_1C(new(HeapIndex_1) UnkStruct_027e0ce0_1C()),
@@ -100,9 +100,9 @@ void UnkStruct_027e0ce0::func_ov001_020bc524(bool param1) {
this->mUnk_24->func_ov021_020eaa08(this->mUnk_20);
} else {
if (data_027e09a4->IsTrain()) {
this->mUnk_03 = false;
this->mUnk_04 = NULL;
this->mUnk_38 = &data_027e0478.train;
this->mUnk_03 = false;
this->mEquippedItem = ItemFlag_Nothing;
this->mUnk_38 = &data_027e0478.train;
new(this->mUnk_38) UnkStruct_027e0ce0_38(0);
this->mUnk_38->func_ov026_020dc8f0();
} else {
@@ -111,7 +111,7 @@ void UnkStruct_027e0ce0::func_ov001_020bc524(bool param1) {
this->func_ov000_0208a2c4(0x0C, 0);
}
this->mUnk_04 = NULL;
this->mEquippedItem = ItemFlag_Nothing;
} else if (this->mHealth == 0) {
this->func_ov000_0208a2c4(0x01, 0);
}
@@ -120,7 +120,7 @@ void UnkStruct_027e0ce0::func_ov001_020bc524(bool param1) {
this->mUnk_3C = new(HeapIndex_1) UnkStruct_027e0ce0_3C();
} else {
this->mUnk_40 = &data_027e0478.land;
new(this->mUnk_40) UnkStruct_027e0ce0_40(param1, this->mUnk_20, &this->mUnk_04, this->mUnk_28);
new(this->mUnk_40) UnkStruct_027e0ce0_40(param1, this->mUnk_20, &this->mEquippedItem, this->mUnk_28);
uVar3 = this->mUnk_40;
}
}