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();
|
2023-02-06 07:21:28 +00:00
|
|
|
~CBSTurn() {}
|
2022-11-23 21:25:35 +00:00
|
|
|
|
2023-02-06 07:21:28 +00:00
|
|
|
bool CanShoot() const { return true; }
|
|
|
|
void Start(CBodyController& bc, CStateManager& mgr);
|
|
|
|
pas::EAnimationState UpdateBody(float dt, CBodyController& bc, CStateManager& mgr);
|
|
|
|
void Shutdown(CBodyController&);
|
2022-11-23 21:25:35 +00:00
|
|
|
|
|
|
|
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();
|
2023-02-06 07:21:28 +00:00
|
|
|
void Start(CBodyController& bc, CStateManager& mgr);
|
|
|
|
pas::EAnimationState UpdateBody(float dt, CBodyController& bc, CStateManager& mgr);
|
2022-11-23 21:25:35 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _CBSTURN
|