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
+1 -1
View File
@@ -8,7 +8,7 @@ public:
// overlay 0
void func_ov000_020713bc();
void func_ov000_020716dc(unk32 param1);
void func_ov000_02071b30(unk32 param1, VecFx32 *pPos, unk32 param3);
u16 func_ov000_02071b30(unk32 param1, VecFx32 *pPos, unk32 param3);
void func_ov000_02071d34(void *param1, unk32 param2, VecFx32 *pPos, unk32 param4);
void func_ov000_02071eac(VecFx32 *pPos);
+1
View File
@@ -33,6 +33,7 @@ public:
bool func_ov000_02078764(VecFx32 *param1, void *param2, unk32 param3);
void func_ov000_02078ba4();
void func_ov000_02078cec();
void func_ov000_0207a1e0(unk32 param1);
};
class UnkStruct_027e09bc_24 : public UnkStruct_0204a060_Base {
+2
View File
@@ -2,6 +2,7 @@
#include "Actor/ActorRef.hpp"
#include "Actor/ActorShotArrow.hpp"
#include "Actor/ActorUnkSCCN.hpp"
#include "Unknown/UnkFileSystem.hpp"
#include "global.h"
#include "types.h"
@@ -68,6 +69,7 @@ public:
// overlay 0
void func_ov000_0207da40();
void func_ov000_0207de98(ActorRef param1, UnkStruct_ov000_0207de98 *param2, Actor_38 *param3);
void func_ov000_0207e240(ActorUnkSCCN_B8 *param1);
void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, UnkStruct_ov031_Items_01 *param4);
bool func_ov000_0207e458(unk32 param1, unk32 param2, VecFx32 *param3, unk32 param4, VecFx32 *param5, ActorRef param6);
+16 -2
View File
@@ -181,6 +181,18 @@ enum UnkFlags2_ {
UnkFlags2_Max = 12,
};
class UnkStruct_func_ov000_02080620 {
public:
/* 00 (vtable) */
/* 04 */ STRUCT_PAD(0x04, 0x14);
/* 14 */ VecFx32 mUnk_14;
/* 20 */ VecFx32 mUnk_20;
/* 2C */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual bool vfunc_04();
};
class UnkStruct_027e0cd8_0C_Base {
public:
/* 000 (vtable) */
@@ -258,13 +270,15 @@ public:
fx32 func_01ffedf4(Vec2bCpp *pPos);
// overlay 0
unk32 func_ov000_02080180(void *param1);
unk32 func_ov000_02080180(Vec2bCpp *param1);
void func_ov000_020801b0(Vec2bCpp *param1, unk32 param2, unk32 param3);
bool func_ov000_0208217c(VecFx32 *param1, unk32 param2);
bool func_ov000_020802ec(u16 param1, VecFx32 *param2);
void func_ov000_020803ec(u16 param1);
void func_ov000_0208053c(u16 param1);
UnkStruct_func_ov000_02080620 *func_ov000_02080620();
bool func_ov000_02080658(unk32 param1, EntranceInfo *param2);
void func_ov000_020808f4(void *param1, void *param2, u8 param3);
void func_ov000_020808f4(void *param1, Vec2bCpp *param2, u8 param3);
unk32 func_ov000_02080a44();
void func_ov000_02080a5c(VecFx32 *param1);
void func_ov000_02080a78(VecFx32 *param1);
+1
View File
@@ -79,6 +79,7 @@ public:
void func_ov000_020a00d4(UnkStruct_PlayerGet_ec *param1, unk32 param2, unk32 param3, unk32 param4, VecFx32 *param5,
unk32 param6);
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
void func_ov000_020a0140(UnkSystem7 *param1, VecFx32 *param2);
void func_ov000_020a0220(void *param1, void *param2);
// overlay 1
+1
View File
@@ -20,6 +20,7 @@ public:
static void Destroy();
// overlay 31
bool func_ov031_020d9758();
bool func_ov031_020d97e4();
bool func_ov031_020d97f4();
void func_ov031_020d9844();
+11 -8
View File
@@ -2,16 +2,19 @@
#include "types.h"
//! TODO: this is probably all fake to match func_01fff520
typedef bool (**UnkStruct_ov000_020b34c4_Callback)(void *, void *);
class UnkStruct_ov000_020b34c4 {
public:
/* 08 */ unk32 mUnk_08;
/* 08 */ unk32 mUnk_0C;
/* 00 */ UnkStruct_ov000_020b34c4_Callback *mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 00 (vtable) */
/* 04 */ MapObjectId mUnk_04;
/* 08 */ VecFx32 mUnk_08;
/* 14 */ fx32 mUnk_14;
/* 18 */
UnkStruct_ov000_020b34c4();
UnkStruct_ov000_020b34c4(MapObjectId mapObjId) :
mUnk_04(mapObjId) {}
virtual bool vfunc_00(MapObject *param1);
};
extern UnkStruct_ov000_020b34c4 data_ov000_020b34c4;
+26 -5
View File
@@ -1,7 +1,19 @@
#pragma once
#include "UnkStruct_027e0ce0.hpp"
class UnkStruct_ov031_Items_00 : public UnkStruct_027e0ce0_38_Base {
class Actor;
class UnkStruct_ov031_Items_00_Base : public UnkStruct_027e0ce0_38_Base {
public:
/* 00 (vtable) */
/* 04 */
UnkStruct_ov031_Items_00_Base() {}
/* 00 */ virtual ~UnkStruct_ov031_Items_00_Base();
};
class UnkStruct_ov031_Items_00 : public UnkStruct_ov031_Items_00_Base {
public:
/* 00 (vtable) */
/* 04 */
@@ -9,15 +21,26 @@ public:
UnkStruct_ov031_Items_00();
// data_ov000_020b30d0
/* 00 */ virtual ~UnkStruct_ov031_Items_00();
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; // func_ov000_020982d8
};
class UnkStruct_ov031_Items_01 {
class UnkStruct_ov031_Items_01_Base {
public:
/* 00 (vtable) */
/* 04 */ ActorRef mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 0C */
UnkStruct_ov031_Items_01_Base() :
mUnk_04(0x0),
mUnk_08(0x0) {}
/* 00 */ virtual ~UnkStruct_ov031_Items_01_Base();
};
class UnkStruct_ov031_Items_01 : public UnkStruct_ov031_Items_01_Base {
public:
/* 00 (vtable) */
/* 08 */ unk16 mUnk_0A;
/* 0C */ Cylinder mUnk_0C;
/* 1C */ unk32 mUnk_1C;
@@ -27,8 +50,6 @@ public:
/* 2C */
UnkStruct_ov031_Items_01() {
this->mUnk_04 = 0;
this->mUnk_08 = 0;
this->mUnk_0C.Init(FLOAT_TO_FX32(0.0f));
this->mUnk_1C = 0;
this->mUnk_20 = 0;