mirror of
https://github.com/PrimeDecomp/prime.git
synced 2026-03-31 14:22:54 -07:00
44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#ifndef _CBSJUMP
|
|
#define _CBSJUMP
|
|
|
|
#include "MetroidPrime/BodyState/CBodyState.hpp"
|
|
|
|
#include "Kyoto/Math/CVector3f.hpp"
|
|
|
|
class CBSJump : public CBodyState {
|
|
public:
|
|
CBSJump();
|
|
~CBSJump() {}
|
|
|
|
// CBodyState
|
|
bool IsInAir(const CBodyController& bc) const override;
|
|
bool IsMoving() const override;
|
|
bool ApplyHeadTracking() const override;
|
|
bool ApplyAnimationDeltas() const override;
|
|
bool CanShoot() const override;
|
|
void Start(CBodyController& bc, CStateManager& mgr) override;
|
|
pas::EAnimationState UpdateBody(float dt, CBodyController& bc, CStateManager& mgr) override;
|
|
void Shutdown(CBodyController& bc) override;
|
|
|
|
private:
|
|
pas::EAnimationState GetBodyStateTransition(float dt, CBodyController& bc);
|
|
uchar CheckForWallJump(CBodyController& bc, CStateManager& mgr);
|
|
void CheckForLand(CBodyController& bc, CStateManager& mgr);
|
|
void PlayJumpLoop(CStateManager& mgr, CBodyController& bc);
|
|
|
|
pas::EJumpState x4_state;
|
|
pas::EJumpType x8_jumpType;
|
|
CVector3f xc_waypoint1;
|
|
CVector3f x18_velocity;
|
|
CVector3f x24_waypoint2;
|
|
bool x30_24_applyLaunchVel : 1;
|
|
bool x30_25_wallJump : 1;
|
|
bool x30_26_wallBounceRight : 1;
|
|
bool x30_27_hasWallBounced : 1;
|
|
bool x30_28_startInJumpLoop : 1;
|
|
};
|
|
|
|
CHECK_SIZEOF(CBSJump, 0x34)
|
|
|
|
#endif // _CBSJUMP
|