mirror of
https://github.com/zeldaret/st
synced 2026-08-25 23:53:59 -04:00
Start decompiling ActorUnkCASE (#124)
* feat: Start decompiling ActorUnkCASE's ctor * fix: Fix broken member names * feat: Finish decompiling ActorUnkCASE's ctor (orr mismatch) * feat: Match ActorUnkCASE_174::vfunc_10 * fix: Update flags arithmetic * feat: Match ActorUnkCASE_150 ctor * feat: Match ActorProfileUnkCASE ctor * feat: Update symbols and vfunc of ActorUnkCASE * feat: Match ActorUnkCASE::vfunc_24 * feat: Decompile ActorUnkCASE::vfunc_10, update Actor::vfunc_10 to use Cylinder * fix: Fix broken Actor symbols * feat: Match ActorUnkCASE::vfunc_18 * feat: Match ActorUnkCASE::vfunc_2C * feat: Start decompiling ActorUnkCASE::vfunc_20 * feat: Match ActorUnkCASE's ctor * feat: Almost finish decompiling ActorUnkCASE::vfunc_20 * feat: Decompile func_ov063_0215b054 and func_ov063_0215afa4 * feat: Match func_ov063_0215af60 * feat: Decompile func_ov063_0215afb8 * feat: Match func_ov063_0215b090 * feat: Match func_ov063_0215b2b0 * feat: Match func_ov063_0215b244 * feat: Match func_ov063_0215b1bc * feat: Match ActorUnkCASE_150::vfunc_00 * feat: Match ActorUnkCASE_150::vfunc_04 * feat: Match ActorUnkCASE_150::vfunc_0C * feat: Match func_ov063_0215b814 * feat: Decompile func_ov063_0215b854 * feat: Match func_ov063_0215aefc * feat: Match func_ov063_0215acec * feat: Update jp symbols * feat: Some symbols and improved matching * feat: Match func_ov063_0215b99c * feat: Start decompiling func_ov063_0215b8e8 * feat: Decompile some funcs * feat: Rename symbols, improve matching, add some data * fix: Fix wrong code for JP only * fix: Fix broken symbols * feat: Update symbols and extend .data, match sinit The .data ordering is wrong * feat: Small changes * Apply suggestions from code review Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com> * fix: More code review * feat: Add small comment for the goto * feat: Update func_ov063_0215b8e8 and vfunc_0C to use VexFx32 * fix: Missing c/hpp changes for previous commit * feat: Update func_ov063_0215afb8 to use ActorUnkITWP --------- Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include "flags.h"
|
||||
#include "global.h"
|
||||
#include "math.hpp"
|
||||
#include "nitro/fx.h"
|
||||
#include "types.h"
|
||||
#include "versions.h"
|
||||
|
||||
@@ -164,7 +165,7 @@ public:
|
||||
/* 04 */ virtual bool vfunc_04();
|
||||
/* 08 */ virtual unk16 vfunc_08();
|
||||
/* 0C */ virtual unk8 vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10(VecFx32 *param1);
|
||||
/* 10 */ virtual void vfunc_10(Cylinder *param1);
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual bool vfunc_18(unk32 param1); // Init?
|
||||
/* 1C */ virtual void vfunc_1C(); // Setup
|
||||
@@ -281,7 +282,7 @@ public:
|
||||
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2);
|
||||
/* 04 */ virtual bool vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1);
|
||||
/* 0C */ virtual void vfunc_0C(VecFx32 *param1);
|
||||
/* 10 */
|
||||
|
||||
template <typename T> T *GetActorPtr() {
|
||||
@@ -290,6 +291,9 @@ public:
|
||||
|
||||
Actor_C4(Actor *param1) :
|
||||
Actor_C4_Base(¶m1->mRef, 0) {}
|
||||
|
||||
Actor_C4(Actor *param1, unk32 param2) :
|
||||
Actor_C4_Base(¶m1->mRef, param2) {}
|
||||
};
|
||||
|
||||
class Actor_Derived2 : public Actor {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "ActorRupee.hpp"
|
||||
#include "nitro/fx.h"
|
||||
#include "types.h"
|
||||
|
||||
enum ActorHeartState_ {
|
||||
@@ -22,7 +23,7 @@ public:
|
||||
/* 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;
|
||||
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
|
||||
};
|
||||
|
||||
class ActorHeart : public Actor {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/fx.h"
|
||||
#include "types.h"
|
||||
|
||||
typedef u32 ItemDropType;
|
||||
@@ -39,7 +40,7 @@ public:
|
||||
virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
|
||||
virtual bool vfunc_04() override;
|
||||
virtual void vfunc_08() override;
|
||||
virtual void vfunc_0C(unk32 param1) override;
|
||||
virtual void vfunc_0C(VecFx32 *param1) override;
|
||||
};
|
||||
|
||||
class ActorItemDrop : public Actor_Derived2 {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "Actor/Actor_Derived1.hpp"
|
||||
#include "Player/PlayerGet.hpp"
|
||||
#include "nitro/fx.h"
|
||||
#include "types.h"
|
||||
|
||||
typedef u32 RupeeId;
|
||||
@@ -43,7 +44,7 @@ public:
|
||||
/* 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;
|
||||
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
|
||||
};
|
||||
|
||||
class ActorRupee : public Actor {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "ActorUnkZLSL_ZSRS.hpp"
|
||||
#include "Item/Item.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/fx.h"
|
||||
#include "types.h"
|
||||
|
||||
class ActorTearLight;
|
||||
@@ -39,7 +40,7 @@ public:
|
||||
/* 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;
|
||||
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
|
||||
};
|
||||
|
||||
class ActorTearLight_104_Base : public UnkStruct_ov000_020b31a8 {
|
||||
|
||||
@@ -45,16 +45,6 @@ public:
|
||||
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) override;
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b19f0 : public ModelRender {
|
||||
public:
|
||||
UnkStruct_ov000_020b19f0(G3d_Model *pModel);
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b3268 : public UnkStruct_ov000_020b19f0 {
|
||||
public:
|
||||
UnkStruct_ov000_020b3268(G3d_Model *pModel);
|
||||
};
|
||||
|
||||
class UnkStruct_ov063_02162ee8 : public UnkStruct_ov000_020b3268 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
@@ -100,17 +90,6 @@ public:
|
||||
/* 04 */ virtual unk32 vfunc_04(ActorRef param1, unk32 param2, unk32 param3, unk32 *param4) override;
|
||||
};
|
||||
|
||||
class UnkStruct_func_ov063_0215a678 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x04);
|
||||
/* 04 */ ModelRender *mUnk_04; //! INFO: Placeholder that matches
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ STRUCT_PAD(0x0C, 0x92);
|
||||
/* 92 */ s8 mUnk_92;
|
||||
/* 93 */ STRUCT_PAD(0x93, 0xAE);
|
||||
/* AE */ u8 mUnk_AE;
|
||||
};
|
||||
|
||||
class UnkStruct_ActorUnkCANS_224 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
@@ -123,7 +102,7 @@ class ActorUnkCANS : public Actor_Derived2 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 0AE */ STRUCT_PAD(0xAE, 0xB0);
|
||||
/* 0B0 */ UnkStruct_ov063_02162ee8 mUnk_B0;
|
||||
/* 0B0 */ UnkStruct_ov063_02162ee8 mUnk_0B0;
|
||||
/* 128 */ UnkStruct_ov063_02162f14 mUnk_128;
|
||||
/* 1C8 */ STRUCT_PAD(0x1C8, 0x1F4);
|
||||
/* 1F4 */ Actor_Derived1_94 mUnk_1F4;
|
||||
|
||||
@@ -5,26 +5,94 @@
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "Actor/ActorRef.hpp"
|
||||
#include "Actor/ActorShotArrow.hpp"
|
||||
#include "Actor/Actor_Derived1.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b3268.hpp"
|
||||
#include "Unknown/UnkStruct_ov031_Items.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/fx.h"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
class ActorUnkCASE_C4 : public Actor_C4 {
|
||||
class UnkStruct_ov063_021631a0 : public UnkStruct_ov000_020b3268 {
|
||||
public:
|
||||
ActorUnkCASE_C4(Actor *param1);
|
||||
/* 00 (base) */
|
||||
/* 60 */ STRUCT_PAD(0x60, 0x6C);
|
||||
/* 6C */ unk32 mUnk_6C;
|
||||
/* 70 */
|
||||
|
||||
UnkStruct_ov063_021631a0(G3d_Model *pModel);
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_ov063_021631a0() override {};
|
||||
};
|
||||
|
||||
class UnkStruct_func_ov063_0215a678 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x04);
|
||||
/* 04 */ ModelRender *mUnk_04; //! INFO: Placeholder that matches
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ STRUCT_PAD(0x0C, 0x25);
|
||||
/* 25 */ u8 mUnk_25;
|
||||
/* 26 */ STRUCT_PAD(0x26, 0x92);
|
||||
/* 92 */ s8 mUnk_92;
|
||||
/* 93 */ STRUCT_PAD(0x93, 0xAE);
|
||||
/* AE */ u8 mUnk_AE;
|
||||
};
|
||||
|
||||
class ActorUnkCASE_150 : public Actor_C4 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 24 */
|
||||
|
||||
ActorUnkCASE_150(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;
|
||||
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
|
||||
};
|
||||
|
||||
class ActorUnkCASE : public Actor {
|
||||
class ActorUnkCASE_174 : public UnkStruct_ov031_Items_01 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 94 */
|
||||
/* 2C */ Actor *mUnk_2C;
|
||||
/* 30 */
|
||||
|
||||
ActorUnkCASE_174(Actor *param1);
|
||||
|
||||
/* 00 */ virtual ~ActorUnkCASE_174() override {};
|
||||
/* 10 */ virtual void vfunc_10(Actor *actor) override;
|
||||
};
|
||||
|
||||
class ActorUnkCASE : public Actor_Derived2 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 0AE */ unk16 mUnk_0AE;
|
||||
/* 0B0 */ UnkStruct_ov063_021631a0 mUnk_0B0;
|
||||
/* 120 */ unk16 mUnk_120;
|
||||
/* 122 */ STRUCT_PAD(0x122, 0x124);
|
||||
/* 124 */ ActorShotArrow_140 mUnk_124;
|
||||
/* 14C */ Actor *mUnk_14C;
|
||||
/* 150 */ ActorUnkCASE_150 mUnk_150;
|
||||
/* 174 */ ActorUnkCASE_174 mUnk_174;
|
||||
/* 1A4 */ Mat3p mUnk_1A4;
|
||||
/* 1C8 */ unk16 mUnk_1C8; // Angle related
|
||||
/* 1CA */ STRUCT_PAD(0x1CA, 0x1CC);
|
||||
/* 1CC */ VecFx32 mUnk_1CC;
|
||||
/* 1D8 */ unk32 mUnk_1D8;
|
||||
/* 1DC */ unk32 mUnk_1DC;
|
||||
/* 1E0 */ unk32 mUnk_1E0;
|
||||
/* 1E4 */ ActorRef mUnk_1E4;
|
||||
/* 1E8 */ Actor_Derived1_94 mUnk_1E8;
|
||||
/* 1F4 */ u8 mUnk_1F4;
|
||||
/* 1F5 */
|
||||
|
||||
ActorUnkCASE();
|
||||
|
||||
/* 10 */ virtual void vfunc_10(Cylinder *param1) override;
|
||||
/* 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;
|
||||
/* 4C */ virtual ~ActorUnkCASE() override;
|
||||
|
||||
void func_ov063_0215ab70(void);
|
||||
@@ -37,8 +105,7 @@ public:
|
||||
static void func_ov063_0215acec(ActorRef *ref1, ActorRef ref2); // copy ?
|
||||
void func_ov063_0215ae6c(void);
|
||||
void func_ov063_0215ae80(void);
|
||||
void func_ov063_0215ae94(void);
|
||||
void func_ov063_0215aefc(void);
|
||||
void func_ov063_0215aefc(ActorState param2);
|
||||
void func_ov063_0215af54(void);
|
||||
void func_ov063_0215af58(void);
|
||||
void func_ov063_0215af5c(void);
|
||||
@@ -51,18 +118,13 @@ public:
|
||||
void func_ov063_0215b244(void);
|
||||
void func_ov063_0215b2b0(void);
|
||||
void func_ov063_0215b2c4(void);
|
||||
void func_ov063_0215b2c8(void);
|
||||
void func_ov063_0215b2ec(void);
|
||||
void func_ov063_0215b624(void);
|
||||
void func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle);
|
||||
void func_ov063_0215b724(void);
|
||||
void func_ov063_0215b7cc(void);
|
||||
void func_ov063_0215b814(void);
|
||||
void func_ov063_0215b814(ActorRef ref);
|
||||
void func_ov063_0215b854(void);
|
||||
void func_ov063_0215b8e8(void);
|
||||
void func_ov063_0215b99c(void);
|
||||
void func_ov063_0215b8e8(VecFx32 *param1);
|
||||
static void func_ov063_0215b99c(ActorUnkCASE *param1, UnkStruct_func_ov063_0215a678 *param2);
|
||||
void func_ov063_0215ba64(void);
|
||||
void func_ov063_0215bab0(void);
|
||||
};
|
||||
|
||||
class ActorProfileUnkCASE : public ActorProfile_Derived1 {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
class ActorUnkITWP_C4 : public Actor_C4 {
|
||||
@@ -20,7 +21,10 @@ public:
|
||||
class ActorUnkITWP : public Actor {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 94 */
|
||||
/* 094 */ STRUCT_PAD(0x094, 0x0E8);
|
||||
/* 0E8 */ VecFx32 mUnk_0E8;
|
||||
/* 0F4 */ STRUCT_PAD(0x0F4, 0x154);
|
||||
/* 154 */ Mat3p mUnk_154;
|
||||
|
||||
ActorUnkITWP();
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "ActorManager.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/fx.h"
|
||||
#include "types.h"
|
||||
|
||||
class MapObjectUnkSWFS;
|
||||
@@ -16,7 +17,7 @@ public:
|
||||
/* 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;
|
||||
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
|
||||
};
|
||||
|
||||
class ActorUnkNFSP : public Actor {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#include "Actor/ActorUnkZLSL_ZSRS.hpp"
|
||||
|
||||
class UnkStruct_ov000_020b19f0 : public ModelRender_ov000_020b4d64 {
|
||||
public:
|
||||
UnkStruct_ov000_020b19f0(G3d_Model *pModel);
|
||||
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
};
|
||||
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "UnkStruct_ov000_020b19f0.hpp"
|
||||
|
||||
class UnkStruct_ov000_020b3268 : public UnkStruct_ov000_020b19f0 {
|
||||
public:
|
||||
UnkStruct_ov000_020b3268(G3d_Model *pModel);
|
||||
};
|
||||
Reference in New Issue
Block a user