prime/include/MetroidPrime/BodyState/CBSTurn.hpp

36 lines
934 B
C++

#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