prime/include/MetroidPrime/BodyState/CBodyController.hpp

45 lines
1.2 KiB
C++
Raw Normal View History

2022-10-14 08:46:50 +00:00
#ifndef _CBODYCONTROLLER
#define _CBODYCONTROLLER
#include "MetroidPrime/BodyState/CBodyStateCmdMgr.hpp"
2022-10-25 15:43:42 +00:00
#include "MetroidPrime/BodyState/CBodyStateInfo.hpp"
#include "Kyoto/Math/CQuaternion.hpp"
2022-10-14 08:46:50 +00:00
class CActor;
class CPASDatabase;
2022-10-24 23:29:11 +00:00
class CQuaternion;
class CAnimPlaybackParms;
2022-10-14 08:46:50 +00:00
class CBodyController {
public:
const CPASDatabase& GetPASDatabase() const;
CActor& GetOwner() const { return x0_actor; }
2022-10-14 08:46:50 +00:00
CBodyStateCmdMgr& CommandMgr() { return x4_cmdMgr; }
2022-10-24 23:29:11 +00:00
const CBodyStateCmdMgr& GetCommandMgr() const { return x4_cmdMgr; }
float GetAnimTimeRemaining() const;
void SetDeltaRotation(const CQuaternion& q);
void SetCurrentAnimation(const CAnimPlaybackParms& parms, bool loop, bool noTrans);
2022-10-25 19:35:44 +00:00
void FaceDirection(const CVector3f& v0, float dt);
2022-10-24 23:29:11 +00:00
bool IsAnimationOver() const { return x300_24_animationOver; }
2022-10-25 15:43:42 +00:00
pas::ELocomotionType GetLocomotionType() const { return x2ec_locomotionType; }
2022-10-24 23:29:11 +00:00
private:
CActor& x0_actor;
CBodyStateCmdMgr x4_cmdMgr;
2022-10-25 15:43:42 +00:00
CBodyStateInfo x2a4_bodyStateInfo;
CQuaternion x2dc_rot;
pas::ELocomotionType x2ec_locomotionType ;
pas::EFallState x2f0_fallState ;
EBodyType x2f4_bodyType;
2022-10-24 23:29:11 +00:00
int x2f8_curAnim ;
float x2fc_turnSpeed;
bool x300_24_animationOver : 1;
2022-10-14 08:46:50 +00:00
};
#endif // _CBODYCONTROLLER