mirror of https://github.com/PrimeDecomp/prime.git
36 lines
934 B
C++
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
|