Line data Source code
1 : #ifndef __LEGS_GET_UP_ANIMATION_STATE_HPP__
2 : #define __LEGS_GET_UP_ANIMATION_STATE_HPP__
3 :
4 : #include "core/animations/AnimationState.hpp"
5 :
6 : #include "core/animations/AnimationData.hpp"
7 :
8 : namespace Soldank
9 : {
10 : struct Soldier;
11 :
12 : class LegsGetUpAnimationState final : public Soldank::AnimationState
13 : {
14 : public:
15 : LegsGetUpAnimationState(const AnimationDataManager& animation_data_manager);
16 0 : ~LegsGetUpAnimationState() override = default;
17 :
18 : std::optional<std::shared_ptr<AnimationState>> HandleInput(Soldier& soldier) final;
19 : void Update(Soldier& soldier, const PhysicsEvents& physics_events) final;
20 :
21 : private:
22 : /*
23 : This method is used for the so called "prone cancelling".
24 : It's a trick in Soldank++ to skip GetUp animation.
25 : The main benefit is not to break momentum when running around
26 : */
27 : static bool ShouldCancelAnimation(const Soldier& soldier);
28 :
29 : const AnimationDataManager& animation_data_manager_;
30 : };
31 : } // namespace Soldank
32 :
33 : #endif
|