Decompiling BOMB (#140)

* feat: begin decompiling

* feat: some progress

* fix: forgot to change symbol

* feat: increase matching

* fix: function params not updated

* feat: more matching

* fix: noo more errors oon local help

* fix: match back UnkStruct_PlayerGet_74.data

* feat: little progress

* fix: SWBM.data regression

* feat: up jp version

* feat: update matching

* refactor: rename UnkBOMB to Bomb

* feat: decompiling part of MapObjectUnkBMFL

* feat: destroy MapObjectPot's vfunc_24 for the good of all

* fix: revert wrong symbol

* feat: updating jp symbols

* feat: eur advancements

* feat: weird stuff

* feat: fix build issue

* feat: rename BMFL to BombFlower

* feat: catchup jp .data

* feat: improve BombFlower

* feat: improve bomb matching

* style: cleanup

* style: cleanup v2

* fix: mapobjectpot_base .data

* feat: better match for mapobjectpot_base

* style: use deg_to_rad macro

* style: cleaner variable definition

* doc: better comment

* fix: build
This commit is contained in:
Alessevan
2026-08-23 15:06:08 -04:00
committed by GitHub
parent fd3a2340e3
commit 473e1e102b
69 changed files with 2105 additions and 811 deletions
+2 -2
View File
@@ -17,7 +17,7 @@ public:
mUnk_04(param1) {}
// data_ov031_02112d4c
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) override;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override;
};
class ActorBlast : public Actor {
@@ -49,7 +49,7 @@ public:
}
fx32 func_ov031_020e3b94();
void func_ov031_020e3b9c(unk16 param1, unk16 param2);
static void func_ov031_020e3b9c(Actor *spawner, unk16 param1, unk16 param2);
};
class ActorProfileBlast : public ActorProfile {
+173
View File
@@ -0,0 +1,173 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor_Derived1.hpp"
#include "global.h"
#include "types.h"
enum ActorBombState_ {
ActorBombState_0 = 0,
ActorBombState_1 = 1,
ActorBombState_2 = 2,
ActorBombState_3 = 3,
ActorBombState_4 = 4,
ActorBombState_5 = 5,
ActorBombState_6 = 6,
ActorBombState_Max
};
class ActorBomb_unk : public UnkSystem7 {
public:
/* 00 (base) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */
ActorBomb_unk();
};
class ActorBomb_19C : public UnkStruct_ov031_Items_01 {
public:
/* 00 (base) */
/* 2C */ Actor *mUnk_2C;
/* 30 */
ActorBomb_19C(Actor *param1);
// data_ov031_02112c94
/* 10 */ virtual void vfunc_10(Actor *actor) override;
};
class ActorBomb_180 : public UnkStruct_ov031_Items_00 {
public:
/* 00 (base) */
/* 04 */ u16 mUnk_04;
/* 08 */ Actor *mUnk_08;
/* 0C */ VecFx32 mUnk_0C; // cylinder ?
/* 18 */ unk32 mUnk_18;
/* 1C */
ActorBomb_180(Actor *param1);
// data_ov031_02112c78
/* 00 */ virtual ~ActorBomb_180() override;
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override;
/* 10 */ virtual bool vfunc_10(ActorRef param1, unk32 param2) override;
};
class ActorBomb_ov031_020e2134 : public UnkStruct_ov031_Items_00 {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x4, 0x8);
/* 08 */
// data_ov031_02112cb0
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
};
class ActorBomb : public Actor {
public:
/* 000 (base) */
/* 094 */ ModelRender mUnk_094;
/* 0F4 */ UnkSystem5 mUnk_0F4;
/* 114 */ unk32 mUnk_114;
/* 118 */ STRUCT_PAD(0x118, 0x134);
/* 134 */ Actor_9C mUnk_134;
/* 154 */ Cylinder mUnk_154;
/* 164 */ ActorBomb_unk mUnk_164[0x2];
/* 17C */ VecFx32 *mUnk_17C;
/* 180 */ ActorBomb_180 mUnk_180;
/* 19C */ ActorBomb_19C mUnk_19C;
/* 1CC */ VecFx32 mUnk_1CC;
/* 1D8 */ unk32 mUnk_1D8;
/* 1D8 */ unk32 mUnk_1DC;
/* 1E0 */ ActorRef mUnk_1E0;
/* 1E4 */ ActorRef mUnk_1E4;
/* 1E8 */ u8 mUnk_1E8;
/* 1E8 */ u8 mUnk_1E9;
/* 1EA */ volatile u16 mUnk_1EA;
/* 1EC */ u16 mUnk_1EC;
/* 1EE */ bool mUnk_1EE;
/* 1EF */ bool mUnk_1EF;
/* 1F0 */ bool mUnk_1F0;
#if IS_JP
/* 1F1 */ bool mUnk_1F1;
#else
/* 1F1 */ STRUCT_PAD(0x1F1, 0x1F2);
#endif
/* 1F2 */ STRUCT_PAD(0x1F2, 0x1F4);
/* 1F4 */ Actor_Derived1_94 mUnk_1F4;
/* 200 */
ActorBomb();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 38 */ virtual bool Grab(ActorGrabParams grabParams) override;
/* 3C */ virtual bool Drop(ActorGrabParams grabParams, const VecFx32 *pVel) override;
bool IsInternalTimerOut() {
if (this->mUnk_1EA < this->mUnk_1EC) {
++this->mUnk_1EA;
return false;
}
return true;
}
// check if really in ActorUnkBomb
G3d_Model *func_ov031_020e1540(u16 param1);
UnkStruct_ov000_02058a84 *func_ov031_020e15d0(u16 param1);
static void func_ov031_020e1634();
void func_ov031_020e17f4();
//
void func_ov031_020e18a0();
void SetState(ActorState state);
void func_ov031_020e1908();
void func_ov031_020e1920(VecFx32 *param1);
void func_ov031_020e193c();
void func_ov031_020e1b1c();
void func_ov031_020e1b7c();
void func_ov031_020e1d18();
void func_ov031_020e1d48();
bool func_ov031_020e1d58();
bool func_ov031_020e1d74();
void func_ov031_020e1da0();
void func_ov031_020e1ebc();
void func_ov031_020e1ed8();
void func_ov031_020e1f18();
void func_ov031_020e1f88();
void func_ov031_020e1fe0();
void func_ov031_020e1fe4();
void func_ov031_020e2034();
void func_ov031_020e2064();
void func_ov031_020e20d8();
void func_ov031_020e20fc();
void func_ov031_020e2100();
void func_ov031_020e2134();
void func_ov031_020e238c();
bool func_ov031_020e25bc();
bool func_ov031_020e262c();
void func_ov031_020e2680(VecFx32 *param1);
void func_ov031_020e2780(VecFx32 *param1);
fx32 func_ov031_020e2820(UnkStruct_ov031_Items_00 *param1);
fx32 func_ov031_020e295c(UnkStruct_ov031_Items_00 *param1);
void func_ov031_020e2a9c();
bool func_ov031_020e2b40();
void func_ov031_020e2c2c();
};
class ActorProfileBomb : public ActorProfile {
public:
/* 00 (base) */
ActorProfileBomb();
/* 0C */ virtual Actor *Create();
static ActorProfileBomb *GetProfile();
};
+2
View File
@@ -15,6 +15,8 @@ public:
// data_ov031_0211578c
/* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override;
void func_ov031_02102c00();
};
enum ActorItemFlowerState_ {
+2 -2
View File
@@ -34,8 +34,8 @@ public:
// data_ov031_02114a5c
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2,
unk32 param3) override; // func_ov031_020f8354
/* 10 */ virtual void vfunc_10() override; // func_ov031_020f83e4
unk32 param3) override; // func_ov031_020f8354
/* 10 */ virtual bool vfunc_10(ActorRef param1, unk32 param2) override; // func_ov031_020f83e4
/* 14 */
};
+1 -1
View File
@@ -37,7 +37,7 @@ DEFINE_ACTOR_TYPE('BLON', BLON)
DEFINE_ACTOR_TYPE('BLST', Blast)
DEFINE_ACTOR_TYPE('BMHN', BMHN)
DEFINE_ACTOR_TYPE('BMOC', BMOC)
DEFINE_ACTOR_TYPE('BOMB', BOMB)
DEFINE_ACTOR_TYPE('BOMB', Bomb)
DEFINE_ACTOR_TYPE('BPAP', BPAP)
DEFINE_ACTOR_TYPE('BPBS', BPBS)
DEFINE_ACTOR_TYPE('BROW', BROW)
-111
View File
@@ -1,111 +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 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);
/* 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 ActorUnkBOMB : public Actor {
public:
/* 00 (base) */
/* 94 */
ActorUnkBOMB();
/* 4C */ virtual ~ActorUnkBOMB() override;
void func_ov031_020e1540(void);
void func_ov031_020e15d0(void);
void func_ov031_020e1634(void);
void func_ov031_020e17f4(void);
void func_ov031_020e1808(void);
void func_ov031_020e181c(void);
void func_ov031_020e18a0(void);
void func_ov031_020e18c4(void);
void func_ov031_020e1908(void);
void func_ov031_020e1920(void);
void func_ov031_020e193c(void);
void func_ov031_020e1a28(void);
void func_ov031_020e1af8(void);
void func_ov031_020e1b1c(void);
void func_ov031_020e1b7c(void);
void func_ov031_020e1d18(void);
void func_ov031_020e1d48(void);
void func_ov031_020e1d58(void);
void func_ov031_020e1d74(void);
void func_ov031_020e1da0(void);
void func_ov031_020e1ebc(void);
void func_ov031_020e1ed8(void);
void func_ov031_020e1f18(void);
void func_ov031_020e1f88(void);
void func_ov031_020e1fe0(void);
void func_ov031_020e1fe4(void);
void func_ov031_020e2034(void);
void func_ov031_020e2064(void);
void func_ov031_020e20d8(void);
void func_ov031_020e20fc(void);
void func_ov031_020e2100(void);
void func_ov031_020e2134(void);
void func_ov031_020e2220(void);
void func_ov031_020e2234(void);
void func_ov031_020e238c(void);
void func_ov031_020e246c(void);
void func_ov031_020e24ac(void);
void func_ov031_020e25bc(void);
void func_ov031_020e262c(void);
void func_ov031_020e2680(void);
void func_ov031_020e2780(void);
void func_ov031_020e2820(void);
void func_ov031_020e295c(void);
void func_ov031_020e2a9c(void);
void func_ov031_020e2b40(void);
void func_ov031_020e2c2c(void);
void func_ov031_020e2d78(void);
void func_ov031_020e2df4(void);
void func_ov031_020e2e3c(void);
void func_ov031_020e328c(void);
void func_ov031_020e3310(void);
void func_ov031_020e3340(void);
void func_ov031_020e337c(void);
void func_ov031_020e33ac(void);
void func_ov031_020e33c0(void);
void func_ov031_020e33dc(void);
void func_ov031_020e33f8(void);
void func_ov031_020e3448(void);
};
class ActorProfileUnkBOMB : public ActorProfile {
public:
/* 00 (base) */
ActorProfileUnkBOMB();
~ActorProfileUnkBOMB();
/* 0C */ virtual Actor *Create();
static ActorProfileUnkBOMB *GetProfile();
};
+2 -1
View File
@@ -3,7 +3,8 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "ActorUnkSCCN.hpp"
#include "MapObject/MapObject_ov031.hpp"
#include "MapObject/MapObjectPot_Base.hpp"
#include "MapObject/MapObject_10_Pot.hpp"
#include "global.h"
#include "types.h"
+13 -5
View File
@@ -11,20 +11,28 @@ public:
/* 00 (vtable) */
/* 04 */ ActorRef mUnk_04;
/* 08 */ VecFx32 *mUnk_08;
/* 0C */ MapObject_10 *mUnk_0C;
/* 0C */ MapObject_10_Base *mUnk_0C;
/* 10 */
ActorUnkSCCN_B8(); // func_ov000_0207ec88 set all fields to 0
ActorUnkSCCN_B8();
// data_ov000_020b287c
/* 00 */ virtual ~ActorUnkSCCN_B8(); // func_ov000_0207eca8 & func_ov000_0207ecd8
/* 08 */ virtual void vfunc_08(); // func_ov000_0207ed84
/* 00 */ virtual ~ActorUnkSCCN_B8();
/* 08 */ virtual void vfunc_08();
};
class MapObject_10_SCCN : public MapObject_10 {
public:
/* 00 (base) */
/* 24 */
MapObject_10_SCCN() {}
};
class ActorUnkSCCN : public Actor {
public:
/* 00 (base) */
/* 94 */ MapObject_10 mUnk_94;
/* 94 */ MapObject_10_SCCN mUnk_94;
/* B8 */ ActorUnkSCCN_B8 mUnk_B8;
/* C8 */
+5 -6
View File
@@ -20,9 +20,8 @@ public:
/* 04 */
// data_ov031_02113148
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override; // func_ov031_020e68d8
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2,
unk32 param3) override; // func_ov031_020e6900
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override;
};
class ActorUnkSWBM_98 : public UnkStruct_ov031_Items_01 {
@@ -35,8 +34,8 @@ public:
mUnk_2C(param1) {}
// data_ov031_0211312c
/* 0C */ virtual bool vfunc_0C(Actor *param1, VecFx32 *vector) override; // func_ov031_020e691c
/* 10 */ virtual void vfunc_10(Actor *actor) override; // func_ov031_020e6974
/* 0C */ virtual bool vfunc_0C(Actor *param1, VecFx32 *vector) override;
/* 10 */ virtual void vfunc_10(Actor *actor) override;
};
class ActorUnkSWBM_C8 : public UnkStruct_PlayerGet_74_base {
@@ -50,7 +49,7 @@ public:
mUnk_14(param1) {}
// data_ov031_02113110
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override; // func_ov031_020e69cc
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2) override;
};
class ActorUnkSWBM : public Actor {
+1 -6
View File
@@ -1,6 +1,6 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_027e0960.hpp"
@@ -42,11 +42,6 @@ public:
/* 10 */
};
struct ActorUnkZLSL_AnimationTag {
unk32 index;
char name[0x14];
};
class Actor_Derived1_94_0C {
public:
/* 00 (vtable) */
+1 -1
View File
@@ -15,7 +15,7 @@ DEFINE_MAP_OBJECT_TYPE('BLCT', BLCT)
DEFINE_MAP_OBJECT_TYPE('BLHL', BLHL)
DEFINE_MAP_OBJECT_TYPE('BLRB', BLRB)
DEFINE_MAP_OBJECT_TYPE('BLSR', BLSR)
DEFINE_MAP_OBJECT_TYPE('BMFL', BMFL)
DEFINE_MAP_OBJECT_TYPE('BMFL', BombFlower)
DEFINE_MAP_OBJECT_TYPE('BOGN', BOGN)
DEFINE_MAP_OBJECT_TYPE('BREX', BREX)
DEFINE_MAP_OBJECT_TYPE('BRGL', BRGL)
+8 -8
View File
@@ -56,8 +56,9 @@ public:
/* 05 */ unk8 mUnk_05;
/* 06 */ unk8 mUnk_06;
/* 07 */ unk8 mUnk_07;
/* 08 */ u32 mUnk_08;
/* 0C */
/* 08 */ unk32 mUnk_08;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */
MapObject_10_Base(); // func_ov000_0207c018
@@ -76,13 +77,12 @@ public:
class MapObject_10 : public MapObject_10_Base {
public:
/* 00 (vtable) */
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ VecFx32 mUnk_18;
/* 24 */
MapObject_10() {}
// data_ov031_02113f18
// data_ov000_020b36b8
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
@@ -119,10 +119,10 @@ class MapObject {
public:
/* 00 (vtable) */
/* 04 */ VecFx32 mPos;
/* 10 */ MapObject_10 *mUnk_10;
/* 10 */ MapObject_10_Base *mUnk_10;
/* 14 */ union {
s16 mUnk_14;
UnkAngleStruct mUnk_14_AngleStruct;
s16 mAngle;
UnkAngleStruct mAngleStruct;
};
/* 16 */ MapObjState mState;
/* 18 */ unk8 mUnk_18[2]; // related to Link walking to the map object when touched
@@ -154,7 +154,7 @@ public:
/* 38 */
u16 GetDirection() {
return (u16) (this->mUnk_14 + DEG_TO_ANG(45)) / DEG_TO_ANG(90);
return (u16) (this->mAngle + DEG_TO_ANG(45)) / DEG_TO_ANG(90);
}
bool IsOrientedVertically() {
+68
View File
@@ -0,0 +1,68 @@
#pragma once
#include "Actor/ActorItemFlower.hpp"
#include "Actor/ActorUnkSCCN.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "MapObjectPot_Base.hpp"
#include "MapObject_10_Pot.hpp"
#include "global.h"
#include "types.h"
enum MapObjBombFlowerState_ {
MapObjBombFlowerState_0 = 0,
MapObjBombFlowerState_1 = 1,
MapObjBombFlowerState_2 = 2,
MapObjBombFlowerState_3 = 3,
MapObjBombFlowerState_4 = 4,
MapObjBombFlowerState_5 = 5,
MapObjBombFlowerState_6 = 6,
MapObjBombFlowerState_Max
};
class MapObjectBombFlower : public MapObjectPot_Base {
public:
/* 00 (base) */
/* 48 */ ModelRender_ov031_0211578c mUnk_48;
/* A8 */ STRUCT_PAD(0xA8, 0xB0);
/* BC */ fx32 mUnk_B0;
/* BC */ fx32 mUnk_B4;
/* B8 */ volatile u16 mUnk_B8;
/* BA */ u16 mUnk_BA;
/* BC */ bool mUnk_BC;
/* C0 */ MapObject_10_Pot mUnk_C0;
MapObjectBombFlower();
/* 08 */ virtual void vfunc_08() override;
/* 14 */ virtual void vfunc_14() override;
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) override;
/* 28 */ virtual unk32 vfunc_28() override;
/* 38 */ virtual void vfunc_38() override;
/* 44 */ virtual bool SetState(MapObjState state, unk32) override;
/* 48 */ virtual void vfunc_48() override;
/* 50 */ virtual void vfunc_50(ActorRef *param1, MapObjectPot_Base *thisx) override;
/* 58 */ virtual void vfunc_58();
bool IsInternalTimerOut() {
if (this->mUnk_B8 < this->mUnk_BA) {
++this->mUnk_B8;
return false;
}
return true;
}
void func_ov031_02102728(unk32 param1);
};
class MapObjectProfileBombFlower : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
MapObjectProfileBombFlower();
/* 0C */ virtual MapObject *Create();
static MapObjectProfileBombFlower *GetProfile();
};
+12 -2
View File
@@ -1,7 +1,9 @@
#pragma once
#include "Actor/ActorUnkSCCN.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "MapObject_10_Pot.hpp"
#include "global.h"
#include "types.h"
@@ -13,6 +15,15 @@ enum MapObjGrassState_ {
MapObjGrassState_MAX
};
class MapObjectProfilePot_Base : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
/* D4 */ MapObject_10_Pot mUnk_D4;
MapObjectProfilePot_Base(MapObjectId param1, MapObjectId param2) :
MapObjectProfile_Derived2(param1, param2) {}
};
class MapObjectGrass : public MapObject {
public:
/* 00 (base) */
@@ -41,10 +52,9 @@ public:
void func_ov031_02101978(unk32 param1, VecFx32 *param2);
};
class MapObjectProfileGrass : public MapObjectProfile_Derived2 {
class MapObjectProfileGrass : public MapObjectProfilePot_Base {
public:
/* 00 (base) */
/* D4 */ MapObject_10 mUnk_D4;
MapObjectProfileGrass();
+6 -11
View File
@@ -1,17 +1,14 @@
#pragma once
#include "Actor/ActorId.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "MapObject_ov031.hpp"
#include "MapObjectGrass.hpp"
#include "MapObjectPot_Base.hpp"
#include "global.h"
#include "types.h"
class MapObjectPot : public MapObjectPot_Base {
public:
/* 00 (base) */
/* 40 */ ActorId mUnk_40;
/* 44 */ STRUCT_PAD(0x44, 0x48);
/* 48 */ ModelRender_ov000_020b198c mUnk_48;
MapObjectPot();
@@ -20,11 +17,10 @@ public:
/* 14 */ virtual void vfunc_14() override; // func_ov031_021052cc
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3); // func_ov031_021050b4
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override; // func_ov031_02105348
/* 30 */ virtual ~MapObjectPot() override;
/* 3C */ virtual bool vfunc_3C() override; // func_ov031_021053b4
/* 40 */ virtual bool vfunc_40() override; // func_ov031_021053fc
/* 48 */ virtual void vfunc_48() override; // func_ov031_021051d4
/* 54 */ virtual unk32 vfunc_54() override; // func_ov031_02105310
/* 3C */ virtual bool vfunc_3C() override; // func_ov031_021053b4
/* 40 */ virtual bool vfunc_40() override; // func_ov031_021053fc
/* 48 */ virtual void vfunc_48() override; // func_ov031_021051d4
/* 54 */ virtual unk32 vfunc_54() override; // func_ov031_02105310
};
class MapObjectProfilePot : public MapObjectProfilePot_Base {
@@ -32,7 +28,6 @@ public:
/* 00 (base) */
MapObjectProfilePot();
~MapObjectProfilePot();
/* 0C */ virtual MapObject *Create();
+37
View File
@@ -0,0 +1,37 @@
#pragma once
#include "Actor/ActorId.hpp"
#include "MapObject.hpp"
enum MapObjPot_Base_State_ {
MapObjPot_BaseState_0 = 0,
MapObjPot_BaseState_1 = 1,
MapObjPot_BaseState_2 = 2,
MapObjPot_BaseState_3 = 3,
MapObjPotBase_State_Max
};
class MapObjectPot_Base : public MapObject {
public:
/* 00 (base) */
/* 40 */ ActorId mUnk_40;
/* 44 */ unk16 mUnk_44;
/* 48 */
MapObjectPot_Base();
// data_ov000_020b35d0
/* 00 */ virtual bool vfunc_00();
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override;
/* 28 */ virtual unk32 vfunc_28() override;
/* 30 */ virtual ~MapObjectPot_Base() = 0 override;
/* 38 */ virtual void vfunc_38() override;
/* 3C */ virtual bool vfunc_3C() override;
/* 40 */ virtual bool vfunc_40() override;
/* 44 */ virtual bool SetState(MapObjState state, unk32 param2) override;
/* 48 */ virtual void vfunc_48() override;
/* 4C */ virtual bool vfunc_4C() override;
/* 50 */ virtual void vfunc_50(ActorRef *param1, MapObjectPot_Base *thisx) override;
/* 54 */ virtual unk32 vfunc_54() override;
void func_ov000_0209da78(unk32 param1, unk32 param2);
};
-41
View File
@@ -1,41 +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 MapObjectUnkBMFL : public MapObject {
public:
/* 00 (base) */
/* 40 */
MapObjectUnkBMFL();
/* 30 */ virtual ~MapObjectUnkBMFL() override;
void func_ov031_021025c4(void);
void func_ov031_02102708(void);
void func_ov031_02102718(void);
void func_ov031_02102728(void);
void func_ov031_021027a4(void);
void func_ov031_02102894(void);
void func_ov031_021029f0(void);
void func_ov031_02102a40(void);
void func_ov031_02102ad8(void);
void func_ov031_02102af4(void);
};
class MapObjectProfileUnkBMFL : public MapObjectProfile {
public:
/* 00 (base) */
MapObjectProfileUnkBMFL();
~MapObjectProfileUnkBMFL();
/* 0C */ virtual MapObject *Create();
static MapObjectProfileUnkBMFL *GetProfile();
};
+2 -2
View File
@@ -1,6 +1,6 @@
#pragma once
#include "Actor/ActorUnkBOMB.hpp"
#include "Actor/ActorBomb.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "Unknown/UnkStruct_ov031_Items.hpp"
@@ -21,7 +21,7 @@ public:
/* 040 */ UnkSystem6_Derived2 mUnk_040;
/* 048 */ unk8 mUnk_048;
/* 049 */ STRUCT_PAD(0x049, 0x04C);
/* 04C */ ActorUnkBOMB_unk mUnk_04C[0x4];
/* 04C */ ActorBomb_unk mUnk_04C[0x4];
/* 07C */ unk32 mUnk_07C;
/* 080 */ unk32 mUnk_080;
/* 084 */ u16 mUnk_084;
+1 -1
View File
@@ -1,8 +1,8 @@
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectGrass.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "MapObject_ov031.hpp"
#include "global.h"
#include "types.h"
+30
View File
@@ -0,0 +1,30 @@
#pragma once
#include "MapObject.hpp"
class MapObject_10_Pot_Base : public MapObject_10_Base {
public:
/* 00 (base) */
/* 0C */
MapObject_10_Pot_Base() {}
// should definitely be in ov000
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10(Cylinder *param1);
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18(VecFx32 *param1);
/* 1C */ virtual void vfunc_1C(VecFx32 *param1);
};
class MapObject_10_Pot : public MapObject_10_Pot_Base {
public:
/* 00 (base) */
/* 18 */ fx32 mUnk_18;
/* 1C */ fx32 mUnk_1C;
/* 20 */
MapObject_10_Pot() {}
};
-45
View File
@@ -1,45 +0,0 @@
#pragma once
class MapObjectPot_Base : public MapObject {
public:
/* 00 (base) */
/* 40 */
MapObjectPot_Base();
// data_ov000_020b35d0
/* 00 */ virtual bool vfunc_00(); // func_ov000_0209d780
/* 24 */ virtual void vfunc_24(MapObject *param1, VecFx32 param2) override; // func_ov000_0209d8e8
/* 28 */ virtual unk32 vfunc_28() override; // func_ov000_0209d9f8
/* 30 */ virtual ~MapObjectPot_Base() = 0 override;
/* 38 */ virtual void vfunc_38() override; // func_ov000_0209d9ac
/* 3C */ virtual bool vfunc_3C() override; // func_ov000_0209db74
/* 40 */ virtual bool vfunc_40() override; // func_ov000_0209db7c
/* 44 */ virtual void vfunc_44(unk32, unk32) override; // func_ov000_0209d7a4
/* 48 */ virtual void vfunc_48() override; // func_ov000_0209da60
/* 4C */ virtual void vfunc_4C() override; // func_ov000_0209da70
/* 50 */ virtual void vfunc_50() override; // func_ov000_0209dac0
/* 54 */ virtual unk32 vfunc_54() override; // func_ov000_0209da64
// overlay 0
void func_ov000_0209d8e8(MapObjectPot_Base *param1, fx32 param2);
unk32 func_ov000_0209da64();
};
class MapObject_10_Pot : public MapObject_10 {
public:
/* 00 (base) */
/* 24 */
MapObject_10_Pot() {}
};
class MapObjectProfilePot_Base : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
/* D4 */ MapObject_10_Pot mUnk_D4;
MapObjectProfilePot_Base(MapObjectId param1, MapObjectId param2) :
MapObjectProfile_Derived2(param1, param2) {}
};
+1 -2
View File
@@ -18,8 +18,7 @@ extern "C" void func_ov000_0205d500(ActorGrabParams *, unk32, unk32);
bool PlayerCharacter_IsNotLink(s32 character);
struct ActorGrabParams {
/* 00 */ u16 unk_00;
/* 02 */ u16 unk_02;
/* 00 */ ActorRef mUnk_00;
/* 04 */
ActorGrabParams() {}
+7 -4
View File
@@ -109,7 +109,7 @@ public:
/* 10 */ unk32 mUnk_10;
/* 14 */ UnkStruct_ov000_0208f820 *mUnk_14;
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override;
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2) override;
UnkStruct_PlayerGet_74(UnkStruct_ov000_0208f820 *param1) {
this->mUnk_14 = param1;
@@ -155,9 +155,12 @@ public:
/* 064 */ UnkStruct_PlayerGet_64_2 mUnk_64;
/* 068 */ unk32 mUnk_68;
/* 06C */ unk32 mUnk_6C; // scale
/* 070 */ unk16 mUnk_70; // angle/rotation
/* 070 */ u8 mUnk_72; // probably bools
/* 070 */ u8 mUnk_73; // probably bools
/* 070 */ union {
unk16 mAngle;
UnkAngleStruct mUnkAngleStruct;
}; // angle/rotation
/* 070 */ u8 mUnk_72; // probably bools
/* 070 */ u8 mUnk_73; // probably bools
/* 074 */ UnkStruct_PlayerGet_74 mUnk_74;
/* 08C */ ModelRender mUnk_8C;
/* 0EC */ UnkStruct_PlayerGet_ec mUnk_EC[4];
+10 -3
View File
@@ -11,6 +11,12 @@
class UnkSystem5;
extern "C" void *func_ov000_02057750(size_t allocSize);
struct ActorUnkZLSL_AnimationTag {
unk32 index;
char name[0x10];
u32 unknown;
};
typedef void (*UnkSystem4_UnkCallback)(void *, unk32);
class UnkSystem4_vfunc_1C_B4 {
@@ -79,6 +85,7 @@ public:
void func_ov000_02057d9c();
void func_ov000_0209a7b8(void *param1, UnkSystem4_UnkCallback param2);
void func_ov000_02057c98(UnkSystem5 *param1);
void func_ov000_02057cf4();
};
class UnkSystem6_Derived1 : public ModelRenderBase {
@@ -140,7 +147,7 @@ public:
class UnkSystem5 {
public:
/* 00 */ G3d_Model *mpModel;
/* 04 */ unk32 mUnk_04;
/* 04 */ unk16 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
@@ -153,14 +160,14 @@ public:
void func_01ffc3b4();
void func_ov000_020577a4(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_020577a4(UnkStruct_ov000_02058a84 *param1, unk32 param2, unk32 param3);
void func_ov000_020577f8(unk32 param1);
void func_ov000_020578a4(unk32 param1, unk32 param2);
};
class UnkSystem5_Derived1 : public UnkSystem5 {
public:
UnkSystem5_Derived1(void *param1, G3d_Model *param2, unk32 param3) :
UnkSystem5_Derived1(void *param1, G3d_Model *param2, UnkStruct_ov000_02058a84 *param3) :
UnkSystem5(param1, param2) {
unk32 value = 0;
+1 -1
View File
@@ -1305,7 +1305,7 @@ public:
/* 00 (vtable) */
/* 04 */
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3);
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2);
UnkStruct_PlayerGet_74_base();
};
+5 -2
View File
@@ -89,6 +89,10 @@ public:
UnkStruct_027e0ce0_1C();
~UnkStruct_027e0ce0_1C();
// overlay 0
G3d_Model *func_ov000_0208ed30(unk32 param1, unk32 param2, char *param3);
UnkStruct_ov000_02058a84 *func_ov000_0208ee94(unk32 param1, unk32 param2, char *param3, unk32 param4);
// overlay 1
void func_ov001_020bccec();
void func_ov001_020bcfec();
@@ -303,7 +307,7 @@ public:
/* 00 */ virtual ~UnkStruct_027e0ce0_38_Base();
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1);
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3);
/* 10 */ virtual void vfunc_10();
/* 10 */ virtual bool vfunc_10(ActorRef param1, unk32 param2);
/* 14 */
};
@@ -777,7 +781,6 @@ public:
void func_ov000_0208bc9c(unk32 param1, unk32 param2);
void func_ov000_0208bd30(bool param1, unk32 param2, unk32 param3, unk32 param4);
bool func_ov000_0208be70(VecFx32 param1);
G3d_Model *func_ov000_0208ed30(unk32 param1, unk32 param2, char *param3);
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
+1
View File
@@ -19,6 +19,7 @@ public:
void func_ov093_021660a8(ActorRef param1);
void func_ov093_021660f8();
void func_ov093_02166108();
void func_ov093_021661c0(ActorRef param1);
void func_ov093_02166220();
};
+8 -1
View File
@@ -48,6 +48,13 @@ public:
/* 0C */ virtual void vfunc_0C();
};
class UnkStruct_ov000_02058a84 {
public:
/* 0 */ STRUCT_PAD(0x0, 0x6);
/* 6 */ u16 mUnk_6;
/* 8 */
};
class MapObjectProfile_Derived2_20_Base {
public:
/* 00 (vtable) */
@@ -82,7 +89,7 @@ public:
void func_ov000_020589e4(void);
unk32 func_ov000_02058a24();
void unc_ov000_02058a58(void);
unk32 func_ov000_02058a84(unk32 param1, const char *param2);
UnkStruct_ov000_02058a84 *func_ov000_02058a84(unk32 param1, const char *param2);
void func_ov000_02058ab0(void);
};