mirror of
https://github.com/encounter/ph.git
synced 2026-03-30 11:34:37 -07:00
165 lines
5.8 KiB
C++
165 lines
5.8 KiB
C++
#pragma once
|
|
|
|
#include "global.h"
|
|
#include "nds/math.h"
|
|
#include "types.h"
|
|
|
|
#include "Actor/Actor.hpp"
|
|
#include "Actor/ActorManager.hpp"
|
|
#include "Debug/DebugHierarchy.hpp"
|
|
#include "Player/EquipItem.hpp"
|
|
#include "Player/PlayerControlData.hpp"
|
|
#include "Player/PlayerLinkBase.hpp"
|
|
#include "System/SysNew.hpp"
|
|
|
|
typedef unk32 LinkStateId;
|
|
enum LinkStateId_ {
|
|
LinkStateId_Move = 0,
|
|
LinkStateId_Item = 1,
|
|
LinkStateId_Interact = 2,
|
|
LinkStateId_Follow = 3,
|
|
LinkStateId_Roll = 4,
|
|
LinkStateId_Damage = 5,
|
|
LinkStateId_Cutscene = 6,
|
|
LinkStateId_COUNT
|
|
};
|
|
|
|
struct LinkStateBase_UnkStruct1 {
|
|
/* 00 */ unk32 mUnk_00;
|
|
/* 04 */ Vec3p mUnk_04;
|
|
/* 10 */
|
|
};
|
|
|
|
class LinkStateItem;
|
|
|
|
class LinkStateBase : public SysObject {
|
|
public:
|
|
/* 0 (vtable) */
|
|
/* 4 */ unk32 mSubState;
|
|
/* 8 */ PlayerLinkBase *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 */
|
|
|
|
void GiveControlToLink();
|
|
void SetPlayerCharacter(PlayerCharacter character);
|
|
void ChangeLinkState(LinkStateId id);
|
|
void ChangeLinkSubState(LinkStateId id, s32 subState);
|
|
void EquipItem_vfunc_28();
|
|
void UpdateSwordShieldInUse();
|
|
void func_ov00_020a81b8(unk32 param1, unk32 param2);
|
|
LinkStateItem *GetLinkItemState();
|
|
void LookAt(Vec3p *target);
|
|
void func_ov00_020a81fc(Vec3p *param1, unk32 param2);
|
|
void AddHealth(s16 amount);
|
|
void func_ov00_020a8224(unk32 param1);
|
|
void TurnTo(s16 angle, unk32 param2, unk32 speed);
|
|
void func_ov00_020a827c(s32 param1, u32 param2);
|
|
void func_ov00_020a8294(s32 param1, u32 param2);
|
|
void func_ov00_020a82ac();
|
|
void ApplyImpulse(s32 angle, s32 power);
|
|
void func_ov00_020a8360(unk32 param1);
|
|
void func_ov00_020a8390(unk32 param1, void *param2);
|
|
void func_ov00_020a84bc(s32 param1);
|
|
void func_ov00_020a8508();
|
|
void func_ov00_020a853c(Vec3p *param1);
|
|
void Teleport(Vec3p *pos, s16 angle, unk32 param3, bool param4, bool param5);
|
|
void PlayerBase_vfunc_38(Vec3p *pos);
|
|
void PlayerLinkBase_vfunc_74();
|
|
void PlayerLinkBase_vfunc_88();
|
|
unk16 Get_PlayerLinkBase_Unk48();
|
|
bool func_ov00_020a8638(unk32 param1);
|
|
void Clear_PlayerLinkBase_Unk48(u16 flags);
|
|
void func_ov00_020a8680(unk32 param1, unk16 param2, bool param3);
|
|
void PlayerLinkBase_func_ov00_020bccc8();
|
|
bool PlayerLinkBase_vfunc_58(unk32 param1, ActorRef *param2);
|
|
bool func_ov00_020a8704(s16 *pAngle);
|
|
bool func_ov00_020a8774(Vec3p *param1, s32 angle);
|
|
void func_ov00_020a8844(Vec3p *param1, bool param2, bool param3);
|
|
void func_ov00_020a8954(bool param1, unk32 *param2);
|
|
void func_ov00_020a8994();
|
|
void func_ov00_020a89bc(LinkStateBase_UnkStruct1 *param1, unk32 param2);
|
|
void func_ov00_020a8a08(unk32 param1);
|
|
void func_ov00_020a8a4c(const void *param1, unk32 param2);
|
|
void func_ov00_020a8a90(unk32 param1);
|
|
void func_ov00_020a8ab0(unk32 param1);
|
|
void func_ov00_020a8ad0(unk32 param1);
|
|
void func_ov00_020a8b04(s32 param1, bool param2);
|
|
unk32 func_ov00_020a8b3c(s32 param1);
|
|
bool func_ov00_020a8b80();
|
|
bool HasFlags_PlayerLinkBase_Unk48(u16 flags);
|
|
unk8 Get_PlayerLinkBase_Unk5e();
|
|
unk32 Get_PlayerControlData_Unk004();
|
|
PlayerCharacter GetCurrentCharacter();
|
|
PlayerControlData *GetPlayerControlData();
|
|
LinkStateId GetStateId();
|
|
s32 GetHealth();
|
|
s32 GetCurrentCharacterHealth();
|
|
bool func_ov00_020a8c34();
|
|
Vec3p *GetPlayerPos();
|
|
Vec3p *GetPlayerVel();
|
|
unk8 *func_ov00_020a8c64();
|
|
s16 *GetPlayerAngle();
|
|
void *GetPlayer_Unk18();
|
|
s32 Get_PlayerControlData_Unk32();
|
|
Actor *GetGrabActor();
|
|
ActorRef *GetGrabActorRef();
|
|
unk32 Grab();
|
|
s32 Get_PlayerLinkBase_Unk44();
|
|
bool IsEquipBeingUsed(ItemFlag id);
|
|
EquipItem *GetEquipItem(ItemFlag id);
|
|
void *func_ov00_020a8d40();
|
|
unk32 func_ov00_020a8d50();
|
|
unk32 func_ov00_020a8d6c();
|
|
s32 PlayerControlData_vfunc_14(s32 param1);
|
|
unk32 Get_PlayerControlData_Unk100();
|
|
unk32 Get_PlayerControlData_Unk120();
|
|
s32 Get_PlayerLinkBase_Unk38();
|
|
DebugHierarchy *GetDebugHierarchy0();
|
|
DebugHierarchy *GetDebugHierarchy1();
|
|
|
|
LinkStateBase(PlayerLinkBase *link);
|
|
|
|
void func_ov005_0210f768();
|
|
void func_ov005_0210f7b8();
|
|
u32 func_ov005_0210f808(u32 param1, Vec3p *param2, s32 param3);
|
|
void func_ov005_02110228(s32 param1, s32 param2, s32 param3, char param4, char param5);
|
|
bool func_ov005_0211058c(s32 param1);
|
|
void func_ov005_021107fc();
|
|
void func_ov005_0211086c(s32 param1);
|
|
void func_ov005_0211097c(unk32 param1, unk8 param2, unk8 param3);
|
|
unk32 func_ov005_021109c0();
|
|
void func_ov005_02110b40(s32 param1);
|
|
void func_ov005_02110bb4();
|
|
void func_ov005_02110be8();
|
|
void func_ov005_02110e0c(u16 param1, s32 param2);
|
|
void func_ov005_02110e28(u16 param1, s32 param2, s32 param3, char param4);
|
|
bool func_ov005_02110f50(s32 param1, s32 param2, s32 param3, u32 *param4);
|
|
void func_ov005_021112ec();
|
|
bool func_ov005_02111358();
|
|
bool func_ov005_0211139c();
|
|
bool func_ov005_021113b4();
|
|
void func_ov005_021113c4(bool param1);
|
|
};
|
|
|
|
LinkStateBase *GetLinkState(LinkStateId index);
|
|
|
|
extern LinkStateBase *gLinkState;
|
|
extern LinkStateBase **gLinkStates;
|