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
View File
@@ -219,6 +219,7 @@ public:
unk32 func_ov000_020984c8();
void func_ov000_020984d0();
void func_ov000_020984f0();
unk32 func_ov000_0209867c(unk32 param1);
u32 func_ov000_02098800(bool param1);
bool func_ov000_02098838();
unk32 func_ov000_02098910(UnkStruct_ov031_Items_00 *param1, unk32 param2);
+64
View File
@@ -0,0 +1,64 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "types.h"
class ActorBlast;
class ActorBlast_E8 : public UnkStruct_ov031_Items_00_Base {
public:
/* 00 (base) */
/* 04 */ ActorBlast *mUnk_04;
/* 08 */
ActorBlast_E8(ActorBlast *param1) :
mUnk_04(param1) {}
// data_ov031_02112d4c
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) override;
};
class ActorBlast : public Actor {
public:
/* 00 (base) */
/* 94 */ fx32 mUnk_94;
/* 98 */ volatile u16 mUnk_98;
/* 9A */ u16 mUnk_9A;
/* 9C */ UnkStruct_ov031_Items_01 mUnk_9C;
/* C8 */ Cylinder mUnk_C8;
/* D8 */ Cylinder mUnk_D8;
/* E8 */ ActorBlast_E8 mUnk_E8;
/* F0 */ fx32 mUnk_F0;
/* F4 */ fx32 mUnk_F4;
/* F8 */
ActorBlast();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
bool IsInternalTimerOut() {
if (this->mUnk_98 < this->mUnk_9A) {
++this->mUnk_98;
return false;
}
return true;
}
fx32 func_ov031_020e3b94();
void func_ov031_020e3b9c(unk16 param1, unk16 param2);
};
class ActorProfileBlast : public ActorProfile {
public:
/* 00 (base) */
ActorProfileBlast();
/* 0C */ virtual Actor *Create();
static ActorProfileBlast *GetProfile();
};
+4 -4
View File
@@ -11,7 +11,7 @@ DEFINE_ACTOR_TYPE('AJNP', AJNP)
DEFINE_ACTOR_TYPE('AJSP', AJSP)
DEFINE_ACTOR_TYPE('AJTM', AJTM)
DEFINE_ACTOR_TYPE('ALEV', ALEV)
DEFINE_ACTOR_TYPE('AROW', AROW)
DEFINE_ACTOR_TYPE('AROW', ShotArrow)
DEFINE_ACTOR_TYPE('ASBA', ASBA)
DEFINE_ACTOR_TYPE('ASYU', ASYU)
DEFINE_ACTOR_TYPE('ATTG', ATTG)
@@ -34,7 +34,7 @@ DEFINE_ACTOR_TYPE('BLBL', BLBL)
DEFINE_ACTOR_TYPE('BLBR', BLBR)
DEFINE_ACTOR_TYPE('BLJF', BLJF)
DEFINE_ACTOR_TYPE('BLON', BLON)
DEFINE_ACTOR_TYPE('BLST', BLST)
DEFINE_ACTOR_TYPE('BLST', Blast)
DEFINE_ACTOR_TYPE('BMHN', BMHN)
DEFINE_ACTOR_TYPE('BMOC', BMOC)
DEFINE_ACTOR_TYPE('BOMB', BOMB)
@@ -184,7 +184,7 @@ DEFINE_ACTOR_TYPE('ICBB', ICBB)
DEFINE_ACTOR_TYPE('ICBS', ICBS)
DEFINE_ACTOR_TYPE('ITBM', ITBM)
DEFINE_ACTOR_TYPE('ITSC', ITSC)
DEFINE_ACTOR_TYPE('ITTD', ITTD)
DEFINE_ACTOR_TYPE('ITTD', ItemTornado)
DEFINE_ACTOR_TYPE('ITWP', ITWP)
DEFINE_ACTOR_TYPE('IWTS', IWTS)
DEFINE_ACTOR_TYPE('JOLN', JOLN)
@@ -318,7 +318,7 @@ DEFINE_ACTOR_TYPE('RCFO', RCFO)
DEFINE_ACTOR_TYPE('RCHU', RCHU)
DEFINE_ACTOR_TYPE('RCMS', RCMS)
DEFINE_ACTOR_TYPE('RCSG', RCSG)
DEFINE_ACTOR_TYPE('RLST', RLST)
DEFINE_ACTOR_TYPE('RLST', RollingStone)
DEFINE_ACTOR_TYPE('RMA0', RMA0)
DEFINE_ACTOR_TYPE('RMA1', RMA1)
DEFINE_ACTOR_TYPE('RMA2', RMA2)
-49
View File
@@ -1,49 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "types.h"
class ActorUnkBLST_C4 : public Actor_C4 {
public:
ActorUnkBLST_C4(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkBLST : public Actor {
public:
/* 00 (base) */
/* 94 */
ActorUnkBLST();
/* 4C */ virtual ~ActorUnkBLST() override;
void func_ov031_020e351c(void);
void func_ov031_020e373c(void);
void func_ov031_020e3750(void);
void func_ov031_020e39c4(void);
void func_ov031_020e3b44(void);
void func_ov031_020e3b94(void);
void func_ov031_020e3b9c(void);
void func_ov031_020e3c60(void);
};
class ActorProfileUnkBLST : public ActorProfile {
public:
/* 00 (base) */
ActorProfileUnkBLST();
~ActorProfileUnkBLST();
/* 0C */ virtual Actor *Create();
static ActorProfileUnkBLST *GetProfile();
};
+12
View File
@@ -7,6 +7,18 @@
#include "global.h"
#include "types.h"
class ActorUnkBOMB_unk : public UnkStruct_PlayerGet_ec {
public:
/* 00 (base) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */
ActorUnkBOMB_unk(); // ActorUnkBOMB::func_ov031_020e33ac()
// ActorUnkBOMB::func_ov031_020e17f4() dtor ?
};
class ActorUnkBOMB_C4 : public Actor_C4 {
public:
ActorUnkBOMB_C4(Actor *param1);
+5 -19
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
@@ -7,28 +5,17 @@
#include "global.h"
#include "types.h"
class ActorUnkRMTG_C4 : public Actor_C4 {
public:
ActorUnkRMTG_C4(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkRMTG : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ ModelRender mUnk_94;
/* F4 */
ActorUnkRMTG();
/* 4C */ virtual ~ActorUnkRMTG() override;
void func_ov031_020ef8a0(void);
void func_ov031_020ef958(void);
void func_ov031_020ef990(void);
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
};
class ActorProfileUnkRMTG : public ActorProfile_Derived1 {
@@ -36,7 +23,6 @@ public:
/* 00 (base) */
ActorProfileUnkRMTG();
~ActorProfileUnkRMTG();
/* 0C */ virtual Actor *Create();
+16 -13
View File
@@ -1,32 +1,36 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "MapObject/MapObject.hpp"
#include "global.h"
#include "types.h"
class ActorUnkSCCN_C4 : public Actor_C4 {
class ActorUnkSCCN_B8 {
public:
ActorUnkSCCN_C4(Actor *param1);
/* 00 (vtable) */
/* 04 */ ActorRef mUnk_04;
/* 08 */ VecFx32 *mUnk_08;
/* 0C */ MapObject_10 *mUnk_0C;
/* 10 */
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
ActorUnkSCCN_B8(); // func_ov000_0207ec88 set all fields to 0
// data_ov000_020b287c
/* 00 */ virtual ~ActorUnkSCCN_B8(); // func_ov000_0207eca8 & func_ov000_0207ecd8
/* 08 */ virtual void vfunc_08(); // func_ov000_0207ed84
};
class ActorUnkSCCN : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ MapObject_10 mUnk_94;
/* B8 */ ActorUnkSCCN_B8 mUnk_B8;
/* C8 */
ActorUnkSCCN();
/* 4C */ virtual ~ActorUnkSCCN() override;
void func_ov031_020efaa0(void);
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
};
class ActorProfileUnkSCCN : public ActorProfile {
@@ -34,7 +38,6 @@ public:
/* 00 (base) */
ActorProfileUnkSCCN();
~ActorProfileUnkSCCN();
/* 0C */ virtual Actor *Create();
+18 -17
View File
@@ -1,36 +1,38 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Map/MapObjectId.hpp"
#include "MapObject/MapObjectUnkSKDI.hpp"
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
#include "global.h"
#include "types.h"
class ActorUnkSKDO_C4 : public Actor_C4 {
class ActorUnkSKDO_ov031_02115ce8 : public UnkStruct_ov000_020b34c4 {
public:
ActorUnkSKDO_C4(Actor *param1);
/* 00 (base) */
/* 18 */
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
ActorUnkSKDO_ov031_02115ce8(MapObjectId mapObjId) :
UnkStruct_ov000_020b34c4(mapObjId) {}
// data_ov031_02115ce8
virtual bool vfunc_00(MapObject *param1);
};
class ActorUnkSKDO : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ unk32 mUnk_94;
/* 98 */ MapObjectUnkSKDI *mUnk_98;
/* 9C */
ActorUnkSKDO();
/* 4C */ virtual ~ActorUnkSKDO() override;
void func_ov031_02106de0(void);
void func_ov031_02106de8(void);
void func_ov031_02106e58(void);
void func_ov031_02106e90(void);
void func_ov031_02106e98(void);
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
/* 54 */ virtual void vfunc_54(unk32 param1);
};
class ActorProfileUnkSKDO : public ActorProfile {
@@ -38,7 +40,6 @@ public:
/* 00 (base) */
ActorProfileUnkSKDO();
~ActorProfileUnkSKDO();
/* 0C */ virtual Actor *Create();
+6 -19
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
@@ -7,28 +5,18 @@
#include "global.h"
#include "types.h"
class ActorUnkSWCH_C4 : public Actor_C4 {
public:
ActorUnkSWCH_C4(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkSWCH : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ unk32 mUnk_94;
/* 98 */ Actor_9C mUnk_98;
/* B0 */
ActorUnkSWCH();
/* 4C */ virtual ~ActorUnkSWCH() override;
void func_ov031_020f7b0c(void);
void func_ov031_020f7b20(void);
void func_ov031_020f7b88(void);
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
};
class ActorProfileUnkSWCH : public ActorProfile {
@@ -36,7 +24,6 @@ public:
/* 00 (base) */
ActorProfileUnkSWCH();
~ActorProfileUnkSWCH();
/* 0C */ virtual Actor *Create();
+51 -19
View File
@@ -1,38 +1,71 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "MapObject/MapObjectDoorBase.hpp"
#include "global.h"
#include "types.h"
class ActorUnkTLKT_C4 : public Actor_C4 {
public:
ActorUnkTLKT_C4(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
enum ActorUnkTLKTState_ {
ActorUnkTLKTState_0 = 0,
ActorUnkTLKTState_1 = 1,
ActorUnkTLKTState_2 = 2,
ActorUnkTLKTState_3 = 3,
ActorUnkTLKTState_4 = 4,
ActorUnkTLKTState_MAX
};
class ActorUnkTLKT : public Actor {
class ActorUnkTLKT_Base : public Actor {
public:
/* 00 (base) */
/* 94 */
ActorUnkTLKT_Base(); // func_ov031_020e3da0
/* 18 */ virtual bool vfunc_18(unk32 param1) override; // func_ov031_020e3e18
/* 1C */ virtual void vfunc_1C() override; // func_ov031_020e3e44
/* 20 */ virtual void vfunc_20() override; // func_ov031_020e3e84
/* 24 */ virtual void vfunc_24() override; // func_ov031_020e3ed8
// /* 4C */ virtual ~ActorUnkTLKT_Base() override; // func_ov031_020e40a8 & func_ov031_020e40bc
/* 54 */ virtual void vfunc_54(); // func_ov031_020e3f50
/* 58 */ virtual void vfunc_58(); // func_ov031_020e4074
/* 5C */ virtual void vfunc_5C(); // func_ov031_020e4078
/* 60 */ virtual void vfunc_60(ActorState state); // func_ov031_020e407c
void func_ov031_020e3e6c();
};
class ActorUnkTLKT_9C : public MapObject_UnkStruct1 {
public:
/* 00 (base) */
/* 08 */
ActorUnkTLKT_9C() {
this->mUnk_04 = 0xFFFFFFFF;
}
// data_ov031_02112eec
/* 00 */ virtual void vfunc2_00() override;
};
class ActorUnkTLKT : public ActorUnkTLKT_Base {
public:
/* 00 (base) */
/* 94 */ STRUCT_PAD(0x94, 0x9C);
/* 9C */ ActorUnkTLKT_9C mUnk_9C;
/* A4 */
ActorUnkTLKT();
/* 24 */ virtual void vfunc_24() override; // func_ov031_020e41ec
/* 4C */ virtual ~ActorUnkTLKT() override;
/* 58 */ virtual void vfunc_58() override; // func_ov031_020e4238
/* 60 */ virtual void vfunc_60(ActorState state) override; // func_ov031_020e4320
/* 64 */ virtual void vfunc_64(); // func_ov031_020e42ac
/* 68 */ virtual void vfunc_68(); // func_ov031_020e42f0
void func_ov031_020e41ec(void);
void func_ov031_020e4238(void);
void func_ov031_020e4274(void);
void func_ov031_020e42ac(void);
void func_ov031_020e42f0(void);
void func_ov031_020e4320(void);
void func_ov031_020e4514(void);
void func_ov031_020e4274();
void func_ov031_020e4514();
};
class ActorProfileUnkTLKT : public ActorProfile {
@@ -40,7 +73,6 @@ public:
/* 00 (base) */
ActorProfileUnkTLKT();
~ActorProfileUnkTLKT();
/* 0C */ virtual Actor *Create();