mirror of
https://github.com/encounter/ph.git
synced 2026-03-30 11:34:37 -07:00
163 lines
6.0 KiB
C++
163 lines
6.0 KiB
C++
#pragma once
|
|
|
|
#include "global.h"
|
|
#include "nds/math.h"
|
|
#include "types.h"
|
|
|
|
#include "Actor/ActorManager.hpp"
|
|
#include "Debug/DebugHierarchy.hpp"
|
|
#include "Item/ItemManager.hpp"
|
|
#include "Player/MotionParams.hpp"
|
|
#include "Player/PlayerBase.hpp"
|
|
#include "Player/PlayerControlData.hpp"
|
|
|
|
typedef s32 PlayerCharacter;
|
|
enum PlayerCharacter_ {
|
|
PlayerCharacter_Link = 0,
|
|
PlayerCharacter_Gongoron = 1,
|
|
PlayerCharacter_COUNT = 2,
|
|
};
|
|
|
|
class PlayerLinkBase : public PlayerBase {
|
|
public:
|
|
/* 00 (base) */
|
|
/* 14 */ Vec3p mPos;
|
|
/* 20 */ Vec3p mVel;
|
|
/* 2c */ unk8 mTilePos[2][PlayerCharacter_COUNT];
|
|
/* 30 */ unk32 mAltitude;
|
|
/* 34 */ unk8 mUnk_34[4];
|
|
/* 38 */ s32 mUnk_38;
|
|
/* 3c */ ActorRef mGrabActor;
|
|
/* 44 */ s32 mUnk_44;
|
|
/* 48 */ unk16 mUnk_48;
|
|
/* 4a */ unk16 mUnk_4a;
|
|
/* 4c */ unk32 mUnk_4c;
|
|
/* 50 */ unk32 mUnk_50;
|
|
/* 54 */ s16 mUnk_54;
|
|
/* 56 */ unk16 mUnk_56;
|
|
/* 58 */ unk16 mUnk_58;
|
|
/* 5a */ s16 mUnk_5a;
|
|
/* 5c */ unk8 mUnk_5c[3];
|
|
/* 5f */ bool mUnk_5f;
|
|
/* 60 */ MotionParams *mMotionParams;
|
|
/* 64 */ DebugHierarchy *mDebugHierarchy_0;
|
|
/* 68 */ DebugHierarchy *mDebugHierarchy_1;
|
|
/* 6c */ DebugHierarchy *mDebugHierarchy_2;
|
|
/* 70 */
|
|
|
|
/* 00 */ virtual s32 GetMaxHealth() override;
|
|
/* 08 */ virtual ItemFlag GetEquipId() override;
|
|
/* 0c */ virtual bool CanMove() override;
|
|
/* 10 */ virtual void vfunc_10(Cylinder *param1) override;
|
|
/* 14 */ virtual void vfunc_14(Cylinder *param1) override;
|
|
/* 18 */ virtual bool vfunc_18(s32 param1) override;
|
|
/* 1c */ virtual void Init() override;
|
|
/* 20 */ virtual void vfunc_20() override;
|
|
/* 24 */ virtual void UpdatePos() override;
|
|
/* 28 */ virtual void vfunc_28(s32 param1) override;
|
|
/* 2c */ virtual void vfunc_2c(s32 param1, unk8 param2) override;
|
|
/* 30 */ virtual bool vfunc_30(s32 param1, Vec3p *param2, s32 param3) override;
|
|
/* 34 */ virtual bool Teleport(Vec3p *pos, s16 angle, unk32 param3, bool param4, bool param5) override;
|
|
/* 38 */ virtual bool TeleportToEntrance(unk32 entranceId, bool param2) override;
|
|
/* 3c */ virtual bool TeleportToLastEntrance(bool param1) override;
|
|
/* 50 */ virtual ~PlayerLinkBase() override;
|
|
/* 58 */ virtual bool vfunc_58();
|
|
/* 5c */ virtual bool vfunc_5c();
|
|
/* 60 */ virtual bool vfunc_60();
|
|
/* 64 */ virtual void vfunc_64();
|
|
/* 68 */ virtual void vfunc_68();
|
|
/* 6c */ virtual void vfunc_6c();
|
|
/* 70 */ virtual void vfunc_70(s32 param1, Vec3p *param2, unk32 param3);
|
|
/* 74 */ virtual void vfunc_74();
|
|
/* 78 */ virtual unk32 vfunc_78();
|
|
/* 7c */ virtual void vfunc_7c();
|
|
/* 80 */ virtual void SetUnk_5e();
|
|
/* 84 */ virtual void ResetUnk_5e();
|
|
/* 88 */
|
|
|
|
void UnequipPotion();
|
|
void ChangeLinkState(s32 index);
|
|
void SetLinkSubState(s32 index, unk32 substate);
|
|
PlayerControlData *GetPlayerControlData(s32 index);
|
|
void GetDistanceTo(Vec3p *vec, q20 *yDist, q20 *xzDist);
|
|
bool func_ov000_020bb68c(Vec3p *target);
|
|
bool func_ov000_020bb6d4();
|
|
void func_ov000_020bb810(Vec3p *target, unk32 param2);
|
|
void func_ov000_020bb8c4(Vec3p *param1);
|
|
void TurnTo(Vec3p *target);
|
|
void func_ov000_020bb9b0();
|
|
void func_ov000_020bb9c8();
|
|
void func_ov000_020bb9e4();
|
|
bool func_ov000_020bba00();
|
|
bool func_ov000_020bba14();
|
|
bool func_ov000_020bba28();
|
|
void func_ov000_020bba48();
|
|
bool func_ov000_020bbabc();
|
|
bool func_ov000_020bbb18();
|
|
bool func_ov000_020bbb64();
|
|
bool func_ov000_020bbb78();
|
|
void func_ov000_020bbbb8();
|
|
bool func_ov000_020bbbd0(s32 param1, s32 param2);
|
|
bool func_ov000_020bbc68(s32 param1);
|
|
bool func_ov000_020bbd40();
|
|
bool func_ov000_020bbd60();
|
|
bool func_ov000_020bbd80(s32 param1);
|
|
unk32 func_ov000_020bbe94();
|
|
void func_ov000_020bc088();
|
|
ItemManager *GetItemManager();
|
|
void func_ov000_020bc1c8(unk32 param1, unk32 param2, unk32 param3);
|
|
bool func_ov000_020bc210();
|
|
void SetVelocity(Vec3p *velocity, bool setAngle);
|
|
void func_ov000_020bc280(unk16 param1);
|
|
unk32 func_ov000_020bc2d4(unk32 param1);
|
|
unk32 func_ov000_020bc320(unk32 param1, unk32 param2, unk32 param3);
|
|
void func_ov000_020bc398(unk32 param1, s32 param2);
|
|
PlayerCharacter GetCurrentCharacter();
|
|
s32 GetHealth(PlayerCharacter character);
|
|
void AddHealth(s16 amount, PlayerCharacter character);
|
|
void func_ov000_020bc4ac();
|
|
s32 GetStateId();
|
|
s32 func_ov000_020bc520(Vec3p *param1);
|
|
unk32 Grab();
|
|
void func_ov000_020bc7e0(unk32 param1);
|
|
s32 GetGrabActorId();
|
|
s32 func_ov000_020bc808();
|
|
unk32 func_ov000_020bc84c();
|
|
void func_ov000_020bc854(Vec3p *param1);
|
|
void UpdateTilePos(Vec3p *param1, PlayerCharacter character);
|
|
void func_ov000_020bc90c(unk32 *param1, s32 param2);
|
|
bool func_ov000_020bc960(unk32 param1, unk32 param2, unk32 param3);
|
|
bool GongoronCollidesWith(Cylinder *hitbox);
|
|
bool func_ov000_020bcc78();
|
|
void func_ov000_020bccc8();
|
|
void func_ov000_020bcdb8();
|
|
void func_ov000_020bcdec(Vec3p *param1, unk16 param2);
|
|
bool PlayItemCutscene(ItemId cutsceneItemId);
|
|
bool func_ov000_020bcec8();
|
|
bool func_ov000_020bcefc();
|
|
bool func_ov000_020bcf2c();
|
|
bool func_ov000_020bcf50(Vec3p *param1, unk32 param2);
|
|
bool func_ov000_020bcf84(Vec3p *param1, Vec3p *param2);
|
|
bool func_ov000_020bcfb8(s32 param1);
|
|
bool func_ov000_020bd030(unk32 param1);
|
|
bool func_ov000_020bd070(unk32 param1);
|
|
bool func_ov000_020bd0a8();
|
|
bool func_ov000_020bd0bc(Vec3p *param1, s32 param2);
|
|
bool func_ov000_020bd268();
|
|
bool func_ov000_020bd2bc();
|
|
bool func_ov000_020bd304();
|
|
bool func_ov000_020bd318();
|
|
void SetPlayerCharacter(PlayerCharacter character);
|
|
bool func_ov000_020bd3b0(unk32 param1, unk32 param2, unk32 param3, unk16 param4);
|
|
void SetPosition(Vec3p *position);
|
|
void SetAngle(s16 *angle);
|
|
bool func_ov000_020bd510(s32 param1, unk32 *param2);
|
|
|
|
PlayerLinkBase();
|
|
|
|
void UpdatePos(unk32 param1);
|
|
bool func_ov005_0210eba4();
|
|
};
|
|
|
|
extern PlayerLinkBase *gPlayerLink;
|