LinkStateInteract (#135)

* Map symbol in Game

* LinkStateInteract 19%

* DebugHierarchy -> Bhio

* LinkStateInteract 89%

* LinkStateInteract 93%

* Japanese strings

* Fix build

* Fix regression

* Fix regressions

* Rename BhioBase.cpp
This commit is contained in:
Aetias
2025-11-16 17:14:48 +01:00
committed by GitHub
parent 5b15874c4d
commit fc691f4c8f
54 changed files with 1050 additions and 470 deletions
+70
View File
@@ -0,0 +1,70 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
#define BHIO_GROUP_MAGIC 'HFND'
struct BhioField {
/* 00 */ char mName[0xc];
/* 0c */ s32 mValue;
/* 10 */
};
struct BhioGroup {
/* 00 */ u32 mMagic;
/* 04 */ u32 mUnk_04;
/* 08 */ u32 mUnk_08;
/* 0c */ u32 mUnk_0c;
/* 10 */ u32 mGroupId;
/* 14 */ u32 mNumFields;
/* 18 */ unk8 mUnk_18[0x8];
/* 20 */ BhioField mFields[];
};
class BhioBase : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ void *mNodes;
/* 08 */
/* 00 */ virtual ~BhioBase();
/* 08 */ virtual void vfunc_08();
/* 0c */ virtual void vfunc_0c();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20(unk32 param1, const char *param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2c */ virtual void vfunc_2c();
/* 30 */ virtual void vfunc_30();
/* 34 */ virtual bool GetField(bool param1, const char *fieldName, u32 groupId, s32 *pValue, unk32 param5, unk32 param6,
unk32 param7, unk32 param8);
/* 38 */ virtual void vfunc_38();
/* 3c */ virtual void vfunc_3c(u32 groupId, s32 *pValue);
/* 40 */
BhioBase();
BhioGroup *FindGroup(u32 id);
inline bool GetField2(bool param1, u32 groupId, const char *fieldName, s32 *pValue, unk32 param5, unk32 param6,
unk32 param7) {
if (param1) {
this->vfunc_3c(groupId, pValue);
}
return this->GetField(param1, fieldName, groupId, pValue, param5, param6, param7, 0);
}
};
class Bhio : public BhioBase {
public:
/* 00 (base) */
/* 08 */
/* 00 */ virtual ~Bhio() override;
/* 40 */
};
+7 -7
View File
@@ -7,7 +7,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorManager.hpp"
#include "DTCM/UnkStruct_027e0fd4.hpp"
#include "Debug/DebugHierarchy.hpp"
#include "Player/Bhio.hpp"
#include "Player/EquipItem.hpp"
#include "Player/PlayerControlData.hpp"
#include "Player/PlayerLinkBase.hpp"
@@ -43,7 +43,7 @@ public:
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual ~LinkStateBase();
/* 0c */ virtual LinkStateId GetId() = 0;
/* 10 */ virtual void CreateDebugHierarchy();
/* 10 */ virtual void LoadBhio();
/* 14 */ virtual void OnStateEnter();
/* 18 */ virtual void OnStateLeave(s32 param1);
/* 1c */ virtual void vfunc_1c();
@@ -64,7 +64,7 @@ public:
void ChangeLinkSubState(LinkStateId id, s32 subState);
void EquipItem_vfunc_28();
void UpdateSwordShieldInUse();
void func_ov00_020a81b8(unk32 param1, unk32 param2);
void func_ov00_020a81b8(unk32 param1, Vec3p *param2);
LinkStateItem *GetLinkItemState();
void LookAt(Vec3p *target);
void func_ov00_020a81fc(Vec3p *param1, unk32 param2);
@@ -116,13 +116,13 @@ public:
Vec3p *GetPlayerPos();
Vec3p *GetPlayerVel();
unk8 *func_ov00_020a8c64();
s16 *GetPlayerAngle();
u16 *GetPlayerAngle();
void *GetPlayer_Unk18();
s32 Get_PlayerControlData_Unk32();
Actor *GetGrabActor();
ActorRef *GetGrabActorRef();
unk32 Grab();
s32 Get_PlayerLinkBase_Unk44();
s32 *Get_PlayerLinkBase_Unk44();
bool IsEquipBeingUsed(ItemFlag id);
EquipItem *GetEquipItem(ItemFlag id);
UnkStruct_027e0fd4 *func_ov00_020a8d40();
@@ -132,8 +132,8 @@ public:
unk32 Get_PlayerControlData_Unk100();
unk32 Get_PlayerControlData_Unk120();
s32 Get_PlayerLinkBase_Unk38();
DebugHierarchy *GetDebugHierarchy0();
DebugHierarchy *GetDebugHierarchy1();
Bhio *GetBhio0();
Bhio *GetBhio1();
LinkStateBase(PlayerLinkBase *link);
+1 -1
View File
@@ -62,7 +62,7 @@ public:
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~LinkStateCutscene() override;
/* 0c */ virtual LinkStateId GetId() override;
/* 10 */ virtual void CreateDebugHierarchy() override;
/* 10 */ virtual void LoadBhio() override;
/* 14 */ virtual void OnStateEnter() override;
/* 18 */ virtual void OnStateLeave(s32 param1) override;
/* 1c */ virtual void vfunc_1c() override;
+1 -1
View File
@@ -43,7 +43,7 @@ public:
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~LinkStateDamage() override;
/* 0c */ virtual LinkStateId GetId() override;
/* 10 */ virtual void CreateDebugHierarchy() override;
/* 10 */ virtual void LoadBhio() override;
/* 14 */ virtual void OnStateEnter() override;
/* 18 */ virtual void OnStateLeave(s32 param1) override;
/* 1c */ virtual void vfunc_1c() override;
+11 -7
View File
@@ -8,22 +8,26 @@
#include "Actor/ActorManager.hpp"
#include "Player/LinkStateBase.hpp"
#include "Player/LinkStateRoll.hpp"
#include "Unknown/UnkStruct_02035064.hpp"
class LinkStateInteract : public LinkStateBase {
public:
/* 00 (base) */
/* 0c */ void *mUnk_0c;
/* 0c */ unk32 mUnk_0c;
/* 10 */ ActorRef mGrabRef;
/* 18 */ Vec3p mThrowOffset;
/* 24 */ unk8 mUnk_24[0x88]; // non-documented struct
/* 24 */ UnkStruct_02035064 mUnk_24;
/* ac */ unk32 mUnk_ac;
/* b0 */ unk8 mUnk_b0[4];
/* b0 */ bool mUnk_b0;
/* b1 */ bool mUnk_b1;
/* b2 */ bool mUnk_b2;
/* b3 */ unk8 mUnk_b3;
/* b4 */
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~LinkStateInteract() override;
/* 0c */ virtual LinkStateId GetId() override;
/* 10 */ virtual void CreateDebugHierarchy() override;
/* 10 */ virtual void LoadBhio() override;
/* 14 */ virtual void OnStateEnter() override;
/* 18 */ virtual void OnStateLeave(s32 param1) override;
/* 1c */ virtual void vfunc_1c() override;
@@ -36,7 +40,7 @@ public:
s32 GetGrabActorId();
bool func_ov00_020aa818();
void func_ov00_020aa844(Actor *param1);
LinkStateRoll *GetLinkStateRoll();
static LinkStateRoll *GetLinkStateRoll();
void SetGrabActorVelocity(Vec3p *velocity);
void SetBombVelocity(Vec3p *velocity);
void func_ov00_020ab6c8();
@@ -46,8 +50,8 @@ public:
void SetThrowOffset(Vec3p *target);
void func_ov00_020ab934(Vec3p *target);
void func_ov00_020ab97c(Vec3p *target);
void func_ov00_020ab9b8(u32 param1, bool param2);
void Grab(ActorRef *ref);
void func_ov00_020ab9b8(s32 param1, bool param2);
bool Grab(ActorRef *ref);
void func_ov00_020abba0(ActorRef *ref);
void func_ov00_020abbdc(ActorRef *ref); // duplicate of func_ov00_020abba0
void func_ov00_020abc18(ActorRef *ref);
+1 -1
View File
@@ -22,7 +22,7 @@ public:
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~LinkStateMove() override;
/* 0c */ virtual LinkStateId GetId() override;
/* 10 */ virtual void CreateDebugHierarchy() override;
/* 10 */ virtual void LoadBhio() override;
/* 14 */ virtual void OnStateEnter() override;
/* 18 */ virtual void OnStateLeave(s32 param1) override;
/* 1c */ virtual void vfunc_1c() override;
+1 -1
View File
@@ -32,7 +32,7 @@ public:
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~LinkStateRoll() override;
/* 0c */ virtual LinkStateId GetId() override;
/* 10 */ virtual void CreateDebugHierarchy() override;
/* 10 */ virtual void LoadBhio() override;
/* 14 */ virtual void OnStateEnter() override;
/* 18 */ virtual void OnStateLeave(s32 param1) override;
/* 1c */ virtual void vfunc_1c() override;
+2 -2
View File
@@ -7,9 +7,9 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorManager.hpp"
#include "Debug/DebugHierarchy.hpp"
#include "Item/Item.hpp"
#include "Map/TilePos.hpp"
#include "Player/Bhio.hpp"
#include "Player/TouchControl.hpp"
#include "Player/TouchGesture.hpp"
@@ -72,7 +72,7 @@ public:
/* c8 */ s32 mUnk_c8;
/* cc */ s32 mUnk_cc;
/* d0 */ TouchGesture **mTouchGesture;
/* d4 */ DebugHierarchy *mDebug;
/* d4 */ Bhio *mBhio;
/* d8 */
static bool func_ov00_020aeeac();
+4 -4
View File
@@ -5,8 +5,8 @@
#include "types.h"
#include "Actor/ActorManager.hpp"
#include "Debug/DebugHierarchy.hpp"
#include "Item/ItemManager.hpp"
#include "Player/Bhio.hpp"
#include "Player/MotionParams.hpp"
#include "Player/PlayerBase.hpp"
#include "Player/PlayerControlData.hpp"
@@ -40,9 +40,9 @@ public:
/* 5c */ unk8 mUnk_5c[3];
/* 5f */ bool mUnk_5f;
/* 60 */ MotionParams *mMotionParams;
/* 64 */ DebugHierarchy *mDebugHierarchy_0;
/* 68 */ DebugHierarchy *mDebugHierarchy_1;
/* 6c */ DebugHierarchy *mDebugHierarchy_2;
/* 64 */ Bhio *mBhio_0;
/* 68 */ Bhio *mBhio_1;
/* 6c */ Bhio *mBhio_2;
/* 70 */
/* 00 */ virtual s32 GetMaxHealth() override;