mirror of
https://github.com/zeldaret/st
synced 2026-08-23 07:09:33 -04:00
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:
@@ -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);
|
||||
|
||||
@@ -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) */
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) */
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user