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