mirror of
https://github.com/zeldaret/ph
synced 2026-05-28 16:31:13 -04:00
Add all other Link states
This commit is contained in:
@@ -1,28 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "Player/LinkStateHandler.hpp"
|
||||
#include "Render/ModelRender.hpp"
|
||||
|
||||
class LinkDamage : public LinkStateHandler {
|
||||
/* 00 (base) */
|
||||
/* 0c */ void *mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1c */ unk32 mUnk_1c;
|
||||
/* 20 */ unk8 mUnk_20[2];
|
||||
/* 22 */ unk16 mUnk_22;
|
||||
/* 24 */ unk8 mUnk_24[0xe];
|
||||
/* 32 */ unk16 mUnk_32;
|
||||
/* 34 */ unk32 mUnk_34[2];
|
||||
/* 3c */ ModelRender mUnk_3c;
|
||||
/* 98 */ void *mUnk_98;
|
||||
/* 9c */ void *mUnk_9c;
|
||||
/* a0 */ unk32 mUnk_a0[3];
|
||||
/* ac */ unk32 mUnk_ac;
|
||||
/* b0 */ unk8 mUnk_b0[4];
|
||||
/* b4 */
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "lib/math.h"
|
||||
|
||||
#include "Player/LinkStateBase.hpp"
|
||||
|
||||
class LinkState3 : public LinkStateBase {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0c */ void *mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk8 mUnk_14[0x10];
|
||||
/* 24 */ Vec3p mUnk_24;
|
||||
/* 30 */ unk8 mUnk_30[0x88]; // non-documented struct
|
||||
/* b8 */ unk8 mUnk_b8[0x2a]; // non-documented struct
|
||||
/* e2 */ unk8 mUnk_e2[2];
|
||||
/* e4 */
|
||||
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual ~LinkState3() override;
|
||||
/* 0c */ virtual LinkStateId GetId() override;
|
||||
/* 14 */ virtual void OnStateEnter() override;
|
||||
/* 18 */ virtual void OnStateLeave(s32 param1) override;
|
||||
/* 1c */ virtual void vfunc_1c() override;
|
||||
/* 20 */ virtual bool vfunc_20(s32 param1) override;
|
||||
/* 24 */ virtual bool vfunc_24(s32 param1) override;
|
||||
/* 28 */ virtual bool vfunc_28() override;
|
||||
/* 2c */ virtual void vfunc_2c(u16 *param1) override;
|
||||
/* 34 */ virtual bool vfunc_34(Vec3p *param1) override;
|
||||
/* 44 */
|
||||
};
|
||||
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "Player/LinkStateBase.hpp"
|
||||
|
||||
class LinkState4 : public LinkStateBase {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0c */ unk16 mUnk_0c;
|
||||
/* 0e */ unk8 mUnk_0a[2];
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 12 */ s16 mUnk_12;
|
||||
/* 14 */ s16 mUnk_14;
|
||||
/* 16 */ u16 mUnk_16;
|
||||
/* 18 */ unk8 mUnk_18[2];
|
||||
/* 1a */ unk16 mUnk_1a;
|
||||
/* 1c */ unk8 mUnk_1c[4];
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk8 mUnk_24[2];
|
||||
/* 26 */ unk16 mUnk_26;
|
||||
/* 28 */ unk8 mUnk_24[4];
|
||||
/* 2c */ unk32 mUnk_2c[5];
|
||||
/* 40 */ unk32 mUnk_40;
|
||||
/* 44 */ unk32 mUnk_2c[0x10];
|
||||
/* 84 */ void *mUnk_84;
|
||||
/* 88 */ unk32 mUnk_88;
|
||||
/* 8c */ unk8 mUnk_8c[0xc];
|
||||
/* 98 */
|
||||
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual ~LinkStateBase() override;
|
||||
/* 0c */ virtual LinkStateId GetId() override;
|
||||
/* 10 */ virtual void CreateDebugHierarchy() override;
|
||||
/* 14 */ virtual void OnStateEnter() override;
|
||||
/* 18 */ virtual void OnStateLeave(s32 param1) override;
|
||||
/* 1c */ virtual void vfunc_1c() override;
|
||||
/* 20 */ virtual bool vfunc_20(s32 param1) override;
|
||||
/* 24 */ virtual bool vfunc_24(s32 param1) override;
|
||||
/* 44 */
|
||||
};
|
||||
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "lib/math.h"
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Player/PlayerLink.hpp"
|
||||
|
||||
typedef unk32 LinkStateId;
|
||||
enum LinkStateId_ {
|
||||
LinkStateId_Move = 0,
|
||||
LinkStateId_Item = 1,
|
||||
LinkStateId_Grab = 2,
|
||||
LinkStateId_Unk3 = 3,
|
||||
LinkStateId_Unk4 = 4,
|
||||
LinkStateId_Damage = 5,
|
||||
LinkStateId_ItemGet = 6,
|
||||
LinkStateId_COUNT
|
||||
}
|
||||
|
||||
class LinkStateBase : public SysObject {
|
||||
public:
|
||||
/* 0 (vtable) */
|
||||
/* 4 */ unk32 mSubState;
|
||||
/* 8 */ PlayerLink *mLink;
|
||||
/* c */
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual ~LinkStateBase();
|
||||
/* 0c */ virtual LinkStateId GetId() = 0;
|
||||
/* 10 */ virtual void CreateDebugHierarchy();
|
||||
/* 14 */ virtual void OnStateEnter();
|
||||
/* 18 */ virtual void OnStateLeave(s32 param1);
|
||||
/* 1c */ virtual void vfunc_1c();
|
||||
/* 20 */ virtual bool vfunc_20(s32 param1);
|
||||
/* 24 */ virtual bool vfunc_24(s32 param1);
|
||||
/* 28 */ virtual bool vfunc_28();
|
||||
/* 2c */ virtual void vfunc_2c(u16 *param1);
|
||||
/* 30 */ virtual void vfunc_30(unk32 param1);
|
||||
/* 34 */ virtual bool vfunc_34(Vec3p *param1);
|
||||
/* 38 */ virtual bool vfunc_38();
|
||||
/* 3c */ virtual bool vfunc_3c();
|
||||
/* 40 */ virtual bool vfunc_40();
|
||||
/* 44 */
|
||||
};
|
||||
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "Player/LinkStateBase.hpp"
|
||||
#include "Render/ModelRender.hpp"
|
||||
|
||||
class LinkStateDamage : public LinkStateBase {
|
||||
/* 00 (base) */
|
||||
/* 0c */ void *mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1c */ unk32 mUnk_1c;
|
||||
/* 20 */ unk8 mUnk_20[2];
|
||||
/* 22 */ unk16 mUnk_22;
|
||||
/* 24 */ unk8 mUnk_24[0xe];
|
||||
/* 32 */ unk16 mUnk_32;
|
||||
/* 34 */ unk32 mUnk_34[2];
|
||||
/* 3c */ ModelRender mUnk_3c;
|
||||
/* 98 */ void *mUnk_98;
|
||||
/* 9c */ void *mUnk_9c;
|
||||
/* a0 */ unk32 mUnk_a0[3];
|
||||
/* ac */ unk32 mUnk_ac;
|
||||
/* b0 */ unk8 mUnk_b0[4];
|
||||
/* b4 */
|
||||
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual ~LinkStateBase() override;
|
||||
/* 0c */ virtual LinkStateId GetId() override;
|
||||
/* 10 */ virtual void CreateDebugHierarchy() override;
|
||||
/* 14 */ virtual void OnStateEnter() override;
|
||||
/* 18 */ virtual void OnStateLeave(s32 param1) override;
|
||||
/* 1c */ virtual void vfunc_1c() override;
|
||||
/* 20 */ virtual bool vfunc_20(s32 param1) override;
|
||||
/* 24 */ virtual bool vfunc_24(s32 param1) override;
|
||||
/* 30 */ virtual void vfunc_30(unk32 param1) override;
|
||||
/* 40 */ virtual bool vfunc_40() override;
|
||||
/* 44 */
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "lib/math.h"
|
||||
|
||||
#include "Player/LinkStateBase.hpp"
|
||||
#include "Actor/ActorManager.hpp"
|
||||
|
||||
class LinkStateGrab : public LinkStateBase {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0c */ void *mUnk_0c;
|
||||
/* 10 */ ActorRef mGrabRef;
|
||||
/* 18 */ Vec3p mThrowOffset;
|
||||
/* 24 */ unk8 mUnk_24[0x88]; // non-documented struct
|
||||
/* ac */ unk32 mUnk_ac;
|
||||
/* b0 */ unk8 mUnk_b0[4];
|
||||
/* b4 */
|
||||
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual ~LinkStateGrab() override;
|
||||
/* 0c */ virtual LinkStateId GetId() override;
|
||||
/* 10 */ virtual void CreateDebugHierarchy() override;
|
||||
/* 14 */ virtual void OnStateEnter() override;
|
||||
/* 18 */ virtual void OnStateLeave(s32 param1) override;
|
||||
/* 1c */ virtual void vfunc_1c() override;
|
||||
/* 20 */ virtual bool vfunc_20(s32 param1) override;
|
||||
/* 24 */ virtual bool vfunc_24(s32 param1) override;
|
||||
/* 2c */ virtual void vfunc_2c(u16 *param1) override;
|
||||
/* 34 */ virtual bool vfunc_34(Vec3p *param1) override;
|
||||
/* 44 */
|
||||
};
|
||||
@@ -1,14 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Player/PlayerLink.hpp"
|
||||
|
||||
class LinkStateHandler : public SysObject {
|
||||
/* 0 (vtable) */
|
||||
/* 4 */ unk32 mSubState;
|
||||
/* 8 */ PlayerLink *mLink;
|
||||
/* c */
|
||||
};
|
||||
@@ -0,0 +1,46 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "Player/LinkStateBase.hpp"
|
||||
#include "Item/Item.hpp"
|
||||
|
||||
class LinkStateItem : public LinkStateBase {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0c */ void *mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ ItemId mEquipId;
|
||||
/* 18 */ ItemId mNextEquip;
|
||||
/* 1c */ unk32 mUnk_1c;
|
||||
/* 20 */ unk16 mUnk_20;
|
||||
/* 22 */ unk8 mUnk_22[2];
|
||||
/* 24 */ s8 mUnk_24;
|
||||
/* 25 */ unk8 mUnk_25[7];
|
||||
/* 2c */ unk16 mUnk_2c;
|
||||
/* 2e */ unk8 mUnk_2e[2];
|
||||
/* 30 */ void *mUnk_30;
|
||||
/* 34 */ unk32 mUnk_34;
|
||||
/* 38 */ unk32 mUnk_38;
|
||||
/* 3c */ void *mUnk_3c;
|
||||
/* 40 */ unk32 mUnk_40;
|
||||
/* 44 */ unk32 mUnk_44;
|
||||
/* 48 */ void *mUnk_48;
|
||||
/* 4c */ unk32 mUnk_4c;
|
||||
/* 50 */ unk32 mUnk_50[2];
|
||||
/* 58 */ unk32 mUnk_58;
|
||||
/* 5c */ s32 mUnk_5c;
|
||||
/* 60 */
|
||||
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual ~LinkStateItem() override;
|
||||
/* 0c */ virtual LinkStateId GetId() = 0 override;
|
||||
/* 14 */ virtual void OnStateEnter() override;
|
||||
/* 18 */ virtual void OnStateLeave(s32 param1) override;
|
||||
/* 1c */ virtual void vfunc_1c() override;
|
||||
/* 20 */ virtual bool vfunc_20(s32 param1) override;
|
||||
/* 24 */ virtual bool vfunc_24(s32 param1) override;
|
||||
/* 28 */ virtual bool vfunc_28() override;
|
||||
/* 44 */
|
||||
};
|
||||
@@ -0,0 +1,62 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "lib/math.h"
|
||||
|
||||
#include "Player/LinkStateBase.hpp"
|
||||
#include "Item/Item.hpp"
|
||||
|
||||
class LinkStateItemGet : public LinkStateBase {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0c */ unk8 mUnk_08[0x24]; // non-documented struct
|
||||
/* 30 */ void *mUnk_30;
|
||||
/* 34 */ s16 mUnk_34;
|
||||
/* 36 */ unk8 mUnk_36[2];
|
||||
/* 38 */ s32 mUnk_38;
|
||||
/* 3c */ s16 mUnk_3c;
|
||||
/* 3e */ unk16 mUnk_3e;
|
||||
/* 40 */ Vec3p mUnk_40;
|
||||
/* 4c */ Vec3p mUnk_4c;
|
||||
/* 58 */ unk32 mUnk_58;
|
||||
/* 5c */ unk32 mUnk_5c;
|
||||
/* 60 */ unk32 mUnk_60;
|
||||
/* 64 */ unk32 mUnk_64;
|
||||
/* 68 */ unk32 mUnk_68;
|
||||
/* 6c */ unk16 mUnk_6c;
|
||||
/* 6e */ unk8 mUnk_6e[2];
|
||||
/* 70 */ unk32 mUnk_70;
|
||||
/* 74 */ ItemId mLastItemId;
|
||||
/* 78 */ s16 mAngle;
|
||||
/* 7a */ unk16 mUnk_7a;
|
||||
/* 7c */ unk16 mUnk_7c;
|
||||
/* 7e */ unk16 mUnk_7e;
|
||||
/* 80 */ unk16 mUnk_80;
|
||||
/* 82 */ unk8 mUnk_82[2];
|
||||
/* 84 */ void *mUnk_84;
|
||||
/* 88 */ unk32 mUnk_88[4];
|
||||
/* 98 */ unk32 mUnk_98;
|
||||
/* 9c */ void *mUnk_9c;
|
||||
/* a0 */ unk32 mUnk_a0;
|
||||
/* a4 */ bool mUnk_a4;
|
||||
/* a5 */ s8 mUnk_a5;
|
||||
/* a6 */ bool mUnk_a6;
|
||||
/* a7 */ unk8 mUnk_a7[5];
|
||||
/* ac */
|
||||
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual ~LinkStateItemGet() override;
|
||||
/* 0c */ virtual LinkStateId GetId() override;
|
||||
/* 10 */ virtual void CreateDebugHierarchy() override;
|
||||
/* 14 */ virtual void OnStateEnter() override;
|
||||
/* 18 */ virtual void OnStateLeave(s32 param1) override;
|
||||
/* 1c */ virtual void vfunc_1c() override;
|
||||
/* 24 */ virtual bool vfunc_24(s32 param1) override;
|
||||
/* 28 */ virtual bool vfunc_28() override;
|
||||
/* 30 */ virtual void vfunc_30(unk32 param1) override;
|
||||
/* 38 */ virtual bool vfunc_38() override;
|
||||
/* 40 */ virtual bool vfunc_40() override;
|
||||
/* 44 */
|
||||
};
|
||||
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "Player/LinkStateBase.hpp"
|
||||
|
||||
class LinkStateMove : public LinkStateBase {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0c */ s32 mUnk_0c;
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 12 */ unk16 mUnk_12;
|
||||
/* 14 */ bool mUnk_14;
|
||||
/* 14 */ bool mUnk_15;
|
||||
/* 16 */ unk8 mUnk_16[2];
|
||||
/* 18 */
|
||||
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual ~LinkStateBase() override;
|
||||
/* 0c */ virtual LinkStateId GetId() override;
|
||||
/* 10 */ virtual void CreateDebugHierarchy() override;
|
||||
/* 14 */ virtual void OnStateEnter() override;
|
||||
/* 18 */ virtual void OnStateLeave(s32 param1) override;
|
||||
/* 1c */ virtual void vfunc_1c() override;
|
||||
/* 24 */ virtual bool vfunc_24(s32 param1) override;
|
||||
/* 3c */ virtual bool vfunc_3c() override;
|
||||
/* 44 */
|
||||
};
|
||||
@@ -0,0 +1,58 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "Player/TouchControl.hpp"
|
||||
|
||||
typedef TouchEdge u16;
|
||||
enum TouchEdge_ {
|
||||
TouchEdge_Right = 0,
|
||||
TouchEdge_Left = 1,
|
||||
TouchEdge_Bottom = 2,
|
||||
TouchEdge_Top = 3,
|
||||
TouchEdge_Middle = 4
|
||||
};
|
||||
|
||||
class PlayerControl : public TouchControl {
|
||||
/* 00 (base) */
|
||||
/* 38 */ Vec3p mTouchWorld; // tile position
|
||||
/* 44 */ Vec3p mUnk_44;
|
||||
/* 50 */ q20 mTouchSpeedX; // how fast the stylus moves
|
||||
/* 54 */ q20 mTouchSpeedY;
|
||||
/* 58 */ q20 mTouchDist; // pixel distance from touch to link, deadzone is 20 pixels
|
||||
/* 5c */ unk32 mUnk_5c;
|
||||
/* 60 */ s16 mTouchDuration;
|
||||
/* 62 */ s16 mTouchSlowDuration; // resets to 0 if stylus is fast enough
|
||||
/* 64 */ s16 mTouchFastTime; // gets set to mTouchDuration if stylus is fast enough
|
||||
/* 66 */ s16 mTouchFastX; // gets set to mTouchX if stylus is fast enough
|
||||
/* 68 */ s16 mTouchFastY; // gets set to mTouchY if stylus is fast enough
|
||||
/* 6a */ s16 mTouchAngle; // angle from touch to link, 0 = down, 0x4000 = right, 0x8000 = up, 0xc000 = left
|
||||
/* 6c */ s16 mTouchFastAngle; // gets set to mTouchAngle if stylus is fast enough
|
||||
/* 6e */ TouchEdge mTouchEdge; // changes value when touching close to the edge of the screen
|
||||
/* 70 */ TouchEdge mTouchLastEdge;
|
||||
/* 72 */ s16 mTouchDiffX;
|
||||
/* 74 */ s16 mTouchDiffY;
|
||||
/* 76 */ bool mTouchFast;
|
||||
/* 78 */ unk32 mUnk_78;
|
||||
/* 7c */ unk32 mUnk_7c;
|
||||
/* 80 */ unk32 mUnk_80;
|
||||
/* 84 */ s32 mUnk_84;
|
||||
/* 88 */ s32 mUnk_88;
|
||||
/* 8c */ s32 mUnk_8c;
|
||||
/* 90 */ s32 mUnk_90;
|
||||
/* 94 */ s32 mUnk_94;
|
||||
/* 98 */ s32 mUnk_98;
|
||||
/* 9c */ q20 mUnk_9c;
|
||||
/* a0 */ void *mFollowActor;
|
||||
/* a4 */ q20 mFollowDist;
|
||||
/* a8 */ u16 mFollowStuckTimer;
|
||||
/* aa */ u16 mCutsceneEndTimer;
|
||||
/* ac */ unk32 mUnk_ac;
|
||||
/* b0 */ Vec3p mAim; // used by boomerang, bow and rope
|
||||
/* bc */ Vec3p mAimWorld; // used by hammer
|
||||
/* c8 */ s32 mUnk_c8;
|
||||
/* cc */ s32 mUnk_cc;
|
||||
/* d0 */ void *mTouchGesture;
|
||||
/* d4 */ void *mDebug;
|
||||
};
|
||||
+1
-1
@@ -27,7 +27,7 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[
|
||||
'src/00_Core/Player/TouchControl.cpp',
|
||||
'asm/ov00/Player/TouchControl.s',
|
||||
'asm/ov00/ov00_0207af9c.s',
|
||||
'asm/ov00/Player/LinkDamage.s',
|
||||
'asm/ov00/Player/LinkStateDamage.s',
|
||||
'src/00_Core/Item/Item.cpp',
|
||||
'asm/ov00/Item/Item.s',
|
||||
'src/00_Core/Item/ItemManager.cpp',
|
||||
|
||||
Reference in New Issue
Block a user