prime/include/MetroidPrime/BodyState/CBSTurn.hpp

36 lines
934 B
C++
Raw Normal View History

2022-11-23 21:25:35 +00:00
#ifndef _CBSTURN
#define _CBSTURN
#include "MetroidPrime/BodyState/CBodyState.hpp"
#include "Kyoto/Math/CVector2f.hpp"
class CBSTurn : public CBodyState {
public:
CBSTurn();
~CBSTurn() override {}
bool CanShoot() const override { return true; }
void Start(CBodyController& bc, CStateManager& mgr) override;
pas::EAnimationState UpdateBody(float dt, CBodyController& bc, CStateManager& mgr) override;
void Shutdown(CBodyController&) override;
protected:
float x4_rotateSpeed;
CVector2f x8_dest;
pas::ETurnDirection x10_turnDir;
virtual pas::EAnimationState GetBodyStateTransition(float dt, CBodyController& bc);
bool FacingDest(CBodyController& bc) const;
};
class CBSFlyerTurn : public CBSTurn {
public:
CBSFlyerTurn();
void Start(CBodyController& bc, CStateManager& mgr) override;
pas::EAnimationState UpdateBody(float dt, CBodyController& bc, CStateManager& mgr) override;
};
#endif // _CBSTURN