Decompiling MLCK actor (#99)

* feat: begin decompiling mlck actor

* feat: improvements

* feat: save changes as a commit not as a stash eheh

* feat: improvements

* feat: better match for constructor

* style: remove dead code

* refactor: switch to fields to bool and use != 0 for unk32
This commit is contained in:
Alessevan
2026-07-05 13:32:06 +02:00
committed by GitHub
parent 13be84845a
commit 33299ac188
11 changed files with 412 additions and 88 deletions
+107 -28
View File
@@ -1,49 +1,128 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "FileSelect/FileSelectUnkDraw.hpp"
#include "global.h"
#include "types.h"
class ActorUnkMLCK_C4 : public Actor_C4 {
public:
ActorUnkMLCK_C4(Actor *param1);
class ActorUnkMLCK;
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
class ActorUnkMLCK_94 : FileSelectManager_UnkDrawBase {
public:
/* 00 (base) */
/* 0C */
// /* 00 */ virtual ~ActorUnkMLCK_94() override; // func_ov031_020fb2fc & func_ov031_020fb2ac
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2) override; // func_ov031_020fb2ec
/* 1C */ virtual void vfunc_1C(unk32 param1) override; // func_ov031_020fb2dc
/* 20 */ virtual void vfunc_20(unk32 param1, unk32 param2) override; // func_ov031_020fb2cc
/* 24 */ virtual void vfunc_24() override; // func_ov031_020fb2bc
};
class ActorUnkMLCK : public Actor {
class ActorUnkMLCK_D8 {
public:
/* 00 (vtable) */
/* 04 */ bool mUnk_04;
/* 05 */ bool mUnk_05;
/* 08 */ ActorUnkMLCK *mUnk_08;
/* 0C */
ActorUnkMLCK_D8(ActorUnkMLCK *actor) :
mUnk_04(true),
mUnk_05(true),
mUnk_08(actor) {}
/* 00 */ virtual void vfunc2_00() override; // func_ov031_020fb1b0
/* 04 */ virtual void vfunc2_04() override; // func_ov031_020fb1cc
};
class ActorUnkMLCK_B4_00 {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ u16 mUnk_0C;
/* 0E */ u16 mUnk_0E;
/* 10 */ u16 mUnk_10;
/* 12 */ u16 mUnk_12;
/* 14 */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual bool vfunc_04();
/* 08 */ virtual void vfunc_08();
void func_ov031_020fb184();
};
class ActorUnkMLCK_B4 {
public:
/* 00 */ ActorUnkMLCK_B4_00 *mUnk_00;
/* 04 */
};
class Actor_ov102_02184950 : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 20 */ virtual void vfunc_20() override; // func_ov102_02184644
/* 24 */ virtual void vfunc_24() override; // func_ov102_021847d4
/* 54 */ virtual void vfunc_54(unk32 param1, unk32 param2) override;
/* 58 */ virtual void vfunc_58() override;
/* 5C */ virtual void vfunc_5C() override;
/* 60 */ virtual void vfunc_60() override;
/* 64 */ virtual void vfunc_64(unk32 param1) override;
/* 68 */ virtual void vfunc_68() override;
/* 6C */ virtual void vfunc_6C() override;
/* 70 */ virtual void vfunc_70() override;
};
class ActorUnkMLCK : public Actor_ov102_02184950 {
public:
/* 00 (base) */
/* 94 */ ActorUnkMLCK_94 mUnk_94;
/* A0 */ ActorUnkMLCK_B4 mUnk_A0[0x5];
/* B4 */ ActorUnkMLCK_B4 *mUnk_B4;
/* B8 */ unk32 mUnk_B8;
/* BC */ unk32 mUnk_BC;
/* C0 */ u16 mUnk_C0;
/* C2 */ u16 mUnk_C2;
/* C4 */ ActorUnkMLCK_B4_00 *mUnk_C4;
/* C8 */ unk32 mUnk_C8;
/* CC */ unk32 mUnk_CC;
/* D0 */ unk16 mUnk_D0;
/* D0 */ unk16 mUnk_D2;
/* D0 */ unk16 mUnk_D4;
/* D0 */ unk16 mUnk_D6;
/* D8 */ ActorUnkMLCK_D8 mUnk_D8;
/* E4 */ ActorUnkMLCK_D8 mUnk_E4;
/* F0 */ bool mUnk_F0;
/* F1 */ bool mUnk_F1;
/* F2 */ bool mUnk_F2;
/* F2 */ bool mUnk_F3;
/* F4 */ unk32 mUnk_F4;
ActorUnkMLCK();
/* 18 */ virtual bool vfunc_18(unk32 param1) override; // func_ov031_020fac64
/* 4C */ virtual ~ActorUnkMLCK() override;
/* 54 */ virtual void vfunc_54(unk32 param1, unk32 param2) override; // func_ov031_020fad88
/* 58 */ virtual void vfunc_58() override; // func_ov031_020fada8
/* 5C */ virtual void vfunc_5C() override; // func_ov031_020fadb4
/* 60 */ virtual void vfunc_60() override; // func_ov031_020fae08
/* 64 */ virtual void vfunc_64(unk32 param1) override; // func_ov031_020fad3c
/* 68 */ virtual void vfunc_68() override; // func_ov031_020fae20
/* 6C */ virtual void vfunc_6C() override; // func_ov031_020faeb4
/* 70 */ virtual void vfunc_70() override; // func_ov031_020faf04
void func_ov031_020fac64(void);
void func_ov031_020fad3c(void);
void func_ov031_020fad88(void);
void func_ov031_020fada8(void);
void func_ov031_020fadb4(void);
void func_ov031_020fae08(void);
void func_ov031_020fae20(void);
void func_ov031_020faeb0(void);
void func_ov031_020faeb4(void);
void func_ov031_020faf04(void);
void func_ov031_020faf24(void);
void func_ov031_020fb104(void);
void func_ov031_020fb11c(void);
void func_ov031_020fb184(void);
void func_ov031_020fb1b0(void);
void func_ov031_020fb1cc(void);
void func_ov031_020fb1e8(void);
void func_ov031_020fb204(void);
void func_ov031_020faeb0();
void func_ov031_020faf24();
void func_ov031_020fb104();
void func_ov031_020fb11c();
void func_ov031_020fb1e8(ActorUnkMLCK_B4_00 *param1);
bool func_ov031_020fb204(unk32 param1);
};
class ActorProfileUnkMLCK : public ActorProfile {
+9 -2
View File
@@ -636,10 +636,17 @@ public:
bool func_ov024_020ca280();
};
class AdventureModeManager_194_0C {
public:
/* 00 (base) */ STRUCT_PAD(0x00, 0xC4);
/* C4 */ u8 mUnk_C4;
/* C8 */
};
class AdventureModeManager_194 : public FileSelectManager_UnkDrawBase {
public:
/* 00 (base) */
/* 0C */ unk32 mUnk_0C;
/* 0C */ AdventureModeManager_194_0C *mUnk_0C;
/* 10 */ STRUCT_PAD(0x10, 0x48);
/* 48 */
@@ -991,7 +998,7 @@ public:
void func_ov024_020c6c60();
void func_ov024_020c6cd4();
bool func_ov024_020c6ce4();
unk32 func_ov024_020c6d04();
AdventureModeManager_194_0C *func_ov024_020c6d04();
void func_ov024_020c6d10();
void func_ov024_020c6d20(unk32 param1);
void func_ov024_020c6d2c(unk32 param1);
+3
View File
@@ -17,9 +17,12 @@ public:
UnkStruct_027e0d34();
~UnkStruct_027e0d34();
// overlay 31
bool func_ov031_020d97e4();
bool func_ov031_020d97f4();
void func_ov031_020d9844();
void func_ov031_020d994c();
void func_ov031_020d996c();
bool TryItemGive(ItemId itemId);
};
@@ -1,5 +1,6 @@
#pragma once
#include "Actor/ActorUnkMLCK.hpp"
#include "global.h"
#include "types.h"
@@ -15,6 +16,9 @@ public:
UnkStruct_ov000_020b52e8();
~UnkStruct_ov000_020b52e8();
// overlay 0
ActorUnkMLCK_B4_00 *func_ov000_0206f980(unk32 param1);
};
extern UnkStruct_ov000_020b52e8 data_ov000_020b52e8;