Decompiling some actors and objects of overlay 031 (#123)

* feat: decompiling skdo

* feat: update

* fix: match back .data of doors

* feat: fully decompiled SWCH for eur missing bss for JP

* feat: increase matching code

* feat: decompile most part of SCCN

* feat: update

* feat: progress sccn jap data

* feat: progress decompiling

* fix: build issues

* feat: increase matching

* refactor: rename BLST to Blast

* feat: increase grss

* refactor: rename unkgrss to grass

* refactor: rename id

* refactor: change to fx32

* feat: complete RMTG actor

* refactor: use ARRAY_LENGTH macro
This commit is contained in:
Alessevan
2026-08-02 08:09:49 -04:00
committed by GitHub
parent f1c7b3cc72
commit f90c7cd531
107 changed files with 2023 additions and 924 deletions
+6 -3
View File
@@ -112,13 +112,16 @@ public:
static void func_ov000_0209c7ac(MapObjectId mapObjId);
};
typedef s16 MapObjState;
#define MapObjState_None -1
class MapObject {
public:
/* 00 (vtable) */
/* 04 */ VecFx32 mPos;
/* 10 */ MapObject_10 *mUnk_10;
/* 14 */ s16 mUnk_14;
/* 16 */ s16 mUnk_16;
/* 16 */ MapObjState mState;
/* 18 */ unk8 mUnk_18[2]; // related to Link walking to the map object when touched
/* 1A */ unk8 mUnk_1A;
/* 1B */ unk8 mUnk_1B;
@@ -165,7 +168,7 @@ public:
MapObject();
MapObjectId GetMapObjectId();
void func_01fff590(unk32 param2);
unk32 func_01fff590(unk32 param2);
bool func_ov000_0209d114();
bool func_ov000_0209d12c();
@@ -174,7 +177,7 @@ public:
bool func_ov000_0209d29c(unk32 param1);
void func_ov000_0209d2c4(unk32 param1, bool param2);
void func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2bCpp *param3);
void func_ov000_0209d3b4(unk32 param1, fx32 size);
unk32 func_ov000_0209d3b4(unk32 param1, fx32 size);
void func_ov000_0209d434(s8 *param1, UnkStruct_ov019_020d24c8_28_258_00 *param2, unk32 param3);
void func_ov000_0209d518(VecFx32 *param1, unk32 param2, unk32 param3, u8 param4);
void func_ov000_0209d5c8(ActorRef ref);
+13
View File
@@ -27,6 +27,19 @@ public:
void func_ov031_0210306c(void);
};
enum MapObjectChestBaseState {
MapObjChestBaseState_0 = 0,
MapObjChestBaseState_1 = 1,
MapObjChestBaseState_2 = 2,
MapObjChestBaseState_3 = 3,
MapObjChestBaseState_4 = 4,
MapObjChestBaseState_5 = 5,
MapObjChestBaseState_6 = 6,
MapObjChestBaseState_7 = 7,
MapObjChestBaseState_8 = 8,
MapObjChestBaseState_MAX
};
class MapObjectChestBase : public MapObject {
public:
/* 000 (base) */
+20 -7
View File
@@ -6,13 +6,10 @@
class MapObject_UnkStruct1 {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_44;
/* 08 */ unk16 mUnk_48;
/* 0A */ s16 mUnk_4A;
/* 0C */ VecFx32 mUnk_4C;
/* 18 */
/* 04 */ unk32 mUnk_04;
/* 08 */
MapObject_UnkStruct1(); // func_ov000_02073194 & func_ov000_020731c4
// MapObject_UnkStruct1(); // func_ov000_02073194 & func_ov000_020731c4
// data_ov000_020b2290
/* 00 */ virtual void vfunc2_00();
@@ -24,6 +21,9 @@ public:
class MapObject_UnkStruct1_Derived1 : public MapObject_UnkStruct1 {
public:
/* 00 (base) */
/* 08 */ unk16 mUnk_48;
/* 0A */ s16 mUnk_4A;
/* 0C */ VecFx32 mUnk_4C;
/* 18 */ bool mUnk_58;
/* 19 */ unk8 mUnk_59;
/* 1A */ s16 mUnk_5A;
@@ -46,6 +46,19 @@ public:
/* 08 */ virtual void vfunc2_08() override;
};
enum MapObjectDoorBaseState {
MapObjDoorBaseState_0 = 0,
MapObjDoorBaseState_1 = 1,
MapObjDoorBaseState_2 = 2,
MapObjDoorBaseState_3 = 3,
MapObjDoorBaseState_4 = 4,
MapObjDoorBaseState_5 = 5,
MapObjDoorBaseState_6 = 6,
MapObjDoorBaseState_7 = 7,
MapObjDoorBaseState_8 = 8,
MapObjDoorBaseState_MAX
};
class MapObjectDoorBase : public MapObject, public MapObject_UnkStruct1_Derived2 {
public:
/* 00 (base MapObject) */
@@ -102,7 +115,7 @@ public:
/* 50 */ virtual void vfunc_50();
/* 54 */ virtual void vfunc_54();
/* 58 */ virtual void vfunc_58();
/* 5C */ virtual void vfunc_5C(unk32 param1, unk32 param2);
/* 5C */ virtual void vfunc_5C(MapObjState state, unk32 param2);
/* 60 */ virtual void vfunc_60();
/* 64 */ virtual bool vfunc_64();
/* 68 */ virtual bool vfunc_68();
+14 -1
View File
@@ -17,6 +17,19 @@ public:
static MapObjectProfileDoorClick *GetProfile();
};
enum MapObjDoorClickState_ {
MapObjDoorClickState_0 = 0,
MapObjDoorClickState_1 = 1,
MapObjDoorClickState_2 = 2,
MapObjDoorClickState_3 = 3,
MapObjDoorClickState_4 = 4,
MapObjDoorClickState_5 = 5,
MapObjDoorClickState_6 = 6,
MapObjDoorClickState_7 = 7,
MapObjDoorClickState_8 = 8,
MapObjDoorClickState_MAX,
};
class MapObjectDoorClick : public MapObjectDoorBase {
public:
/* 00 (base) */
@@ -42,7 +55,7 @@ public:
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual void vfunc_4C() override;
/* 5C */ virtual void vfunc_5C(unk32 param1, unk32 param2) override;
/* 5C */ virtual void vfunc_5C(MapObjState state, unk32 param2) override;
/* 64 */ virtual bool vfunc_64() override;
/* 68 */ virtual bool vfunc_68() override;
/* 6C */ virtual bool vfunc_6C() override;
+23 -3
View File
@@ -1,13 +1,20 @@
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectDoorBase.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "Player/PlayerGet.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
#include "global.h"
#include "types.h"
class MapObjectDoorDangerSpawn_ov031_02116e24 : public UnkStruct_ov000_020b34c4 {
public:
MapObjectDoorDangerSpawn_ov031_02116e24(MapObjectId mapObjectId) :
UnkStruct_ov000_020b34c4(mapObjectId) {}
bool vfunc_00(MapObject *param1) override;
};
class MapObjectProfileDoorDangerSpawn : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
@@ -20,6 +27,19 @@ public:
static MapObjectProfileDoorDangerSpawn *GetProfile();
};
enum MapObjDoorDangerSpawnState_ {
MapObjDoorDangerSpawnState_0 = 0,
MapObjDoorDangerSpawnState_1 = 1,
MapObjDoorDangerSpawnState_2 = 2,
MapObjDoorDangerSpawnState_3 = 3,
MapObjDoorDangerSpawnState_4 = 4,
MapObjDoorDangerSpawnState_5 = 5,
MapObjDoorDangerSpawnState_6 = 6,
MapObjDoorDangerSpawnState_7 = 7,
MapObjDoorDangerSpawnState_8 = 8,
MapObjDoorDangerSpawnState_MAX
};
class MapObjectDoorDangerSpawn : public MapObjectDoorBase {
public:
/* 00 (base) */
@@ -57,7 +77,7 @@ public:
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual void vfunc_4C() override;
/* 5C */ virtual void vfunc_5C(unk32 param1, unk32 param2) override;
/* 5C */ virtual void vfunc_5C(MapObjState state, unk32 param2) override;
/* 64 */ virtual bool vfunc_64() override;
/* 68 */ virtual bool vfunc_68() override;
/* 6C */ virtual bool vfunc_6C() override;
+14 -1
View File
@@ -6,6 +6,19 @@
#include "global.h"
#include "types.h"
enum MapObjDoorKeyState_ {
MapObjDoorKeyState_0 = 0,
MapObjDoorKeyState_1 = 1,
MapObjDoorKeyState_2 = 2,
MapObjDoorKeyState_3 = 3,
MapObjDoorKeyState_4 = 4,
MapObjDoorKeyState_5 = 5,
MapObjDoorKeyState_6 = 6,
MapObjDoorKeyState_7 = 7,
MapObjDoorKeyState_8 = 8,
MapObjDoorKeyState_MAX
};
class MapObjectDoorKey : public MapObjectDoorBase {
public:
/* 00 (base) */
@@ -33,7 +46,7 @@ public:
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual void vfunc_4C() override;
/* 5C */ virtual void vfunc_5C(unk32 param1, unk32 param2) override;
/* 5C */ virtual void vfunc_5C(MapObjState state, unk32 param2) override;
/* 64 */ virtual bool vfunc_64() override;
/* 68 */ virtual bool vfunc_68() override;
/* 6C */ virtual bool vfunc_6C() override;
+10
View File
@@ -8,6 +8,16 @@
#include "types.h"
#include "versions.h"
enum MapObjDoorSwitchState_ {
MapObjDoorSwitchState_0 = 0,
MapObjDoorSwitchState_1 = 1,
MapObjDoorSwitchState_2 = 2,
MapObjDoorSwitchState_3 = 3,
MapObjDoorSwitchState_4 = 4,
MapObjDoorSwitchState_5 = 5,
MapObjDoorSwitchState_MAX,
};
class MapObjectDoorSwitch : public MapObjectDoorBase {
public:
/* 000 (base) */
+54
View File
@@ -0,0 +1,54 @@
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "types.h"
enum MapObjGrassState_ {
MapObjGrassState_0,
MapObjGrassState_1,
MapObjGrassState_2,
MapObjGrassState_3,
MapObjGrassState_MAX
};
class MapObjectGrass : public MapObject {
public:
/* 00 (base) */
/* 40 */ VecFx32 mUnk_40[2];
/* 58 */ u16 mUnk_58;
/* 5C */ fx32 mUnk_5C;
/* 60 */ unk16 mUnk_60;
/* 62 */ unk16 mUnk_62;
/* 64 */ unk32 mUnk_64;
/* 68 */
MapObjectGrass();
/* 00 */ virtual bool vfunc_00() override;
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 38 */ virtual bool vfunc_38(MapObjState state, unk32 param2);
/* 3C */ virtual void vfunc_3C(VecFx32 *param1);
bool func_ov031_021016b4();
bool func_ov031_02101778();
void func_ov031_021018a4(unk16 param1);
unk32 func_ov031_02101950();
void func_ov031_02101968(unk32 param1);
void func_ov031_02101978(unk32 param1, VecFx32 *param2);
};
class MapObjectProfileGrass : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
/* D4 */ MapObject_10 mUnk_D4;
MapObjectProfileGrass();
/* 0C */ virtual MapObject *Create();
static MapObjectProfileGrass *GetProfile();
};
+9 -1
View File
@@ -24,6 +24,14 @@ public:
void func_ov000_0209dde0(void);
};
enum MapObjSwitchStepState_ {
MapObjSwitchStepState_0 = 0,
MapObjSwitchStepState_1 = 1,
MapObjSwitchStepState_2 = 2,
MapObjSwitchStepState_3 = 3,
MapObjSwitchStepState_MAX
};
class MapObjectSwitchStep : public MapObject {
public:
/* 00 (base) */
@@ -49,7 +57,7 @@ public:
void func_ov000_0209dda4(void);
void func_ov000_0209e11c(unk32 param1, unk32 param2);
void func_ov000_0209e11c(MapObjState state, unk32 param2);
void func_ov000_0209e38c(void);
};
-44
View File
@@ -1,44 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "types.h"
class MapObjectUnkGRSS : public MapObject {
public:
/* 00 (base) */
/* 40 */
MapObjectUnkGRSS();
/* 30 */ virtual ~MapObjectUnkGRSS() override;
void func_ov031_021010e0(void);
void func_ov031_02101170(void);
void func_ov031_0210148c(void);
void func_ov031_02101504(void);
void func_ov031_02101578(void);
void func_ov031_021016b4(void);
void func_ov031_0210173c(void);
void func_ov031_02101778(void);
void func_ov031_021017ec(void);
void func_ov031_021018a4(void);
void func_ov031_02101950(void);
void func_ov031_02101968(void);
void func_ov031_02101978(void);
};
class MapObjectProfileUnkGRSS : public MapObjectProfile {
public:
/* 00 (base) */
MapObjectProfileUnkGRSS();
~MapObjectProfileUnkGRSS();
/* 0C */ virtual MapObject *Create();
static MapObjectProfileUnkGRSS *GetProfile();
};
+49 -22
View File
@@ -1,44 +1,71 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/ActorUnkBOMB.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "Unknown/UnkStruct_ov031_Items.hpp"
#include "global.h"
#include "types.h"
enum MapObjUnkSKDIState_ {
MapObjUnkSKDIState_0 = 0,
MapObjUnkSKDIState_1 = 1,
MapObjUnkSKDIState_2 = 2,
MapObjUnkSKDIState_3 = 3,
MapObjUnkSKDIState_MAX
};
class MapObjectUnkSKDI : public MapObject {
public:
/* 00 (base) */
/* 40 */
/* 000 (base) */
/* 040 */ UnkSystem6_Derived2 mUnk_040;
/* 048 */ unk8 mUnk_048;
/* 049 */ STRUCT_PAD(0x049, 0x04C);
/* 04C */ ActorUnkBOMB_unk mUnk_04C[0x4];
/* 07C */ unk32 mUnk_07C;
/* 080 */ unk32 mUnk_080;
/* 084 */ u16 mUnk_084;
/* 086 */ u8 mUnk_086;
/* 087 */ u8 mUnk_087;
/* 088 */ u8 mUnk_088;
/* 089 */ unk8 mUnk_089;
/* 080 */ STRUCT_PAD(0x08A, 0x08C);
/* 08C */ UnkStruct_ov031_Items_02 mUnk_08C;
/* 0A8 */ STRUCT_PAD(0x098, 0x0BC);
/* 0BC */ unk32 mUnk_0BC;
/* 0C0 */ STRUCT_PAD(0x0C0, 0x0D4);
/* 0D4 */ MapObject_10 mUnk_0D4;
/* 0F8 */ volatile u16 mUnk_0F8;
/* 0FA */ u16 mUnk_0FA;
/* 0FC */ unk32 mUnk_0FC;
/* 100 */
MapObjectUnkSKDI();
/* 30 */ virtual ~MapObjectUnkSKDI() override;
/* 00 */ virtual bool vfunc_00() override;
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 38 */ virtual unk32 vfunc_38();
/* 3C */ virtual unk32 vfunc_3C();
/* 40 */ virtual s16 vfunc_40();
void func_ov031_02106190(void);
void func_ov031_021061dc(void);
void func_ov031_02106224(void);
void func_ov031_021062ec(void);
void func_ov031_021063cc(void);
void func_ov031_021063dc(void);
void func_ov031_0210643c(void);
void func_ov031_02106678(void);
void func_ov031_02106a70(void);
void func_ov031_02106a84(void);
void func_ov031_02106c78(void);
void func_ov031_02106c98(void);
void func_ov031_02106ca0(void);
void func_ov031_02106ca8(void);
void func_ov031_02106cb0(void);
void func_ov031_02106190();
void func_ov031_021061dc();
void func_ov031_0210643c(unk32 param1);
void func_ov031_02106a70();
void func_ov031_02106678(MapObjState state, unk32 param2);
void func_ov031_02106cb0(unk32 param1);
};
class MapObjectProfileUnkSKDI : public MapObjectProfile {
class MapObjectProfileUnkSKDI : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
/* D4 */
MapObjectProfileUnkSKDI();
~MapObjectProfileUnkSKDI();
/* 0C */ virtual MapObject *Create();