Improvements in SWBM (#133)

* feat: improvements in SWBM

* feat: improvements

* feat: increase matching for jp version

* feat: add vfuncs from fields' classes

* feat: improve matching

* feat: rename parameters to reflect staticness of the function

* refactor: change mangled name

* feat: remove unused variable from bss

* style: explicite parenthesis

* feat: better matching

* feat: replace if/else by a switch statement
This commit is contained in:
Alessevan
2026-08-14 10:37:50 -04:00
committed by GitHub
parent 93fd0610a0
commit ce24ddfc4e
26 changed files with 462 additions and 129 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ public:
/* 00 */ virtual ~ActorItemBoomerang_11C() 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;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override;
};
class ActorItemBoomerang_A0 : public UnkStruct_ov031_Items_01 {
+1 -1
View File
@@ -33,7 +33,7 @@ public:
/* 04 */
// data_ov031_02114a5c
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2,
/* 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
/* 14 */
+1 -1
View File
@@ -50,7 +50,7 @@ public:
// data_ov031_02114288
/* 00 */ virtual ~ActorShotArrow_178() 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;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override;
void func_ov031_020f3304();
};
+1 -1
View File
@@ -42,7 +42,7 @@ public:
/* 00 (base) */ virtual ~UnkStruct_ov063_02162ea8();
/* 08 */ virtual bool vfunc_08(UnkStruct_ov031_020f3310 *param1) override;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) override;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override;
};
class UnkStruct_ov063_02162ee8 : public UnkStruct_ov000_020b3268 {
+62 -25
View File
@@ -1,43 +1,81 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Player/PlayerGet.hpp"
#include "global.h"
#include "types.h"
class ActorUnkSWBM_C4 : public Actor_C4 {
public:
ActorUnkSWBM_C4(Actor *param1);
class ActorUnkSWBM;
enum ActorUnkSWBMState_ {
ActorUnkSWBMState_0 = 0,
ActorUnkSWBMState_1 = 1,
ActorUnkSWBMState_2 = 2,
ActorUnkSWBMState_Max
};
/* 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 ActorUnkSWBM_94 : public UnkStruct_ov031_Items_00_Base {
public:
/* 00 (base) */
/* 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
};
class ActorUnkSWBM_98 : public UnkStruct_ov031_Items_01 {
public:
/* 00 (base) */
/* 2C */ ActorUnkSWBM *mUnk_2C;
/* 30 */
ActorUnkSWBM_98(ActorUnkSWBM *param1) :
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
};
class ActorUnkSWBM_C8 : public UnkStruct_PlayerGet_74_base {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x14);
/* 14 */ ActorUnkSWBM *mUnk_14;
/* 18 */
ActorUnkSWBM_C8(ActorUnkSWBM *param1) :
mUnk_14(param1) {}
// data_ov031_02113110
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override; // func_ov031_020e69cc
};
class ActorUnkSWBM : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 000 (base) */
/* 094 */ ActorUnkSWBM_94 mUnk_094;
/* 098 */ ActorUnkSWBM_98 mUnk_098;
/* 0C8 */ ActorUnkSWBM_C8 mUnk_0C8;
/* 0E0 */ unk16 mUnk_0E0;
/* 0E4 */ VecFx32 mUnk_0E4[0x3];
/* 108 */ unk16 mUnk_108;
/* 10A */ unk16 mUnk_10A;
/* 10C */
ActorUnkSWBM();
/* 4C */ virtual ~ActorUnkSWBM() 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;
void func_ov031_020e6c60(void);
void func_ov031_020e6c74(void);
void func_ov031_020e6c88(void);
void func_ov031_020e6d48(void);
void func_ov031_020e6d80(void);
void func_ov031_020e6e84(void);
void func_ov031_020e6ef8(void);
void func_ov031_020e7160(void);
void func_ov031_020e718c(void);
void func_ov031_020e7294(void);
void func_ov031_020e72f0(void);
void func_ov031_020e7334(void);
void func_ov031_020e6d48();
void func_ov031_020e6d80(unk32 param1);
void func_ov031_020e6e84(ActorState state);
static void func_ov031_020e718c(VecFx32 *param0, Mat3p *param1, s32 param2, s16 param3, u16 param4, s16 param5);
};
class ActorProfileUnkSWBM : public ActorProfile {
@@ -45,7 +83,6 @@ public:
/* 00 (base) */
ActorProfileUnkSWBM();
~ActorProfileUnkSWBM();
/* 0C */ virtual Actor *Create();
+3
View File
@@ -13,6 +13,9 @@ struct Cylinder {
Cylinder(fx32 size) {
this->Init(size);
}
Cylinder(fx32 x, fx32 y, fx32 z, fx32 size) {
this->Init(x, y, z, size);
}
void Init(fx32 size) {
pos.x = 0;
+1
View File
@@ -1303,6 +1303,7 @@ public:
class UnkStruct_PlayerGet_74_base {
public:
/* 00 (vtable) */
/* 04 */
/* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3);
+1 -1
View File
@@ -14,7 +14,7 @@ public:
static UnkStruct_027e0958 *Create();
static void Destroy();
void func_ov000_02058fc4(UnkStruct_PlayerGet_74 *param1, VecFx32 *param2);
void func_ov000_02058fc4(UnkStruct_PlayerGet_74_base *param1, VecFx32 *param2);
};
extern UnkStruct_027e0958 *data_027e0958;
+1 -1
View File
@@ -302,7 +302,7 @@ public:
// data_ov000_020b2838
/* 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);
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3);
/* 10 */ virtual void vfunc_10();
/* 14 */
};
+1
View File
@@ -21,6 +21,7 @@ public:
static void Destroy();
// overlay 31
bool func_ov031_020d9714();
bool func_ov031_020d9758();
bool func_ov031_020d97e4();
bool func_ov031_020d97f4();