LCOV - code coverage report
Current view: top level - core/animations/states - CommonAnimationStateTransitions.cpp (source / functions) Coverage Total Hit
Test: coverage-src.info Lines: 0.0 % 36 0
Test Date: 2025-05-27 23:26:07 Functions: 0.0 % 4 0

            Line data    Source code
       1              : #include "core/animations/states/CommonAnimationStateTransitions.hpp"
       2              : 
       3              : #include "core/animations/states/BodyThrowAnimationState.hpp"
       4              : #include "core/animations/states/LegsCrouchRunAnimationState.hpp"
       5              : #include "core/animations/states/LegsCrouchRunBackAnimationState.hpp"
       6              : #include "core/animations/states/LegsRollBackAnimationState.hpp"
       7              : #include "core/animations/states/LegsRunBackAnimationState.hpp"
       8              : #include "core/animations/states/LegsRunAnimationState.hpp"
       9              : #include "core/animations/states/LegsRollAnimationState.hpp"
      10              : 
      11              : #include "core/entities/Soldier.hpp"
      12              : #include <optional>
      13              : 
      14              : namespace Soldank::CommonAnimationStateTransitions
      15              : {
      16            0 : std::optional<std::shared_ptr<AnimationState>> TryTransitionToRunning(
      17              :   const Soldier& soldier,
      18              :   const AnimationDataManager& animation_data_manager)
      19              : {
      20            0 :     if (soldier.control.left) {
      21            0 :         if (soldier.direction == 1) {
      22            0 :             return std::make_shared<LegsRunBackAnimationState>(animation_data_manager);
      23              :         }
      24              : 
      25            0 :         return std::make_shared<LegsRunAnimationState>(animation_data_manager);
      26              :     }
      27              : 
      28            0 :     if (soldier.control.right) {
      29            0 :         if (soldier.direction == -1) {
      30            0 :             return std::make_shared<LegsRunBackAnimationState>(animation_data_manager);
      31              :         }
      32              : 
      33            0 :         return std::make_shared<LegsRunAnimationState>(animation_data_manager);
      34              :     }
      35              : 
      36            0 :     return std::nullopt;
      37              : }
      38              : 
      39            0 : std::optional<std::shared_ptr<AnimationState>> TryTransitionToCrouchRunning(
      40              :   const Soldier& soldier,
      41              :   const AnimationDataManager& animation_data_manager)
      42              : {
      43            0 :     if (soldier.control.right) {
      44            0 :         if (soldier.direction == 1) {
      45            0 :             return std::make_shared<LegsCrouchRunAnimationState>(animation_data_manager);
      46              :         }
      47              : 
      48            0 :         return std::make_shared<LegsCrouchRunBackAnimationState>(animation_data_manager);
      49              :     }
      50              : 
      51            0 :     if (soldier.control.left) {
      52            0 :         if (soldier.direction == -1) {
      53            0 :             return std::make_shared<LegsCrouchRunAnimationState>(animation_data_manager);
      54              :         }
      55              : 
      56            0 :         return std::make_shared<LegsCrouchRunBackAnimationState>(animation_data_manager);
      57              :     }
      58              : 
      59            0 :     return std::nullopt;
      60              : }
      61              : 
      62            0 : std::optional<std::shared_ptr<AnimationState>> TryTransitionToRolling(
      63              :   const Soldier& soldier,
      64              :   const AnimationDataManager& animation_data_manager)
      65              : {
      66            0 :     if (soldier.control.down && soldier.control.left && soldier.direction == -1) {
      67            0 :         return std::make_shared<LegsRollAnimationState>(animation_data_manager);
      68              :     }
      69              : 
      70            0 :     if (soldier.control.down && soldier.control.right && soldier.direction == 1) {
      71            0 :         return std::make_shared<LegsRollAnimationState>(animation_data_manager);
      72              :     }
      73              : 
      74            0 :     if (soldier.control.down && soldier.control.left && soldier.direction == 1) {
      75            0 :         return std::make_shared<LegsRollBackAnimationState>(animation_data_manager);
      76              :     }
      77              : 
      78            0 :     if (soldier.control.down && soldier.control.right && soldier.direction == -1) {
      79            0 :         return std::make_shared<LegsRollBackAnimationState>(animation_data_manager);
      80              :     }
      81              : 
      82            0 :     return std::nullopt;
      83              : }
      84              : 
      85            0 : std::optional<std::shared_ptr<AnimationState>> TryTransitionToThrowingGrenade(
      86              :   Soldier& soldier,
      87              :   const AnimationDataManager& animation_data_manager)
      88              : {
      89            0 :     if (!soldier.control.throw_grenade) {
      90            0 :         soldier.grenade_can_throw = true;
      91              :     }
      92              : 
      93            0 :     if (soldier.grenade_can_throw && soldier.control.throw_grenade) {
      94            0 :         return std::make_shared<BodyThrowAnimationState>(animation_data_manager);
      95              :     }
      96              : 
      97            0 :     return std::nullopt;
      98              : }
      99              : } // namespace Soldank::CommonAnimationStateTransitions
        

Generated by: LCOV version 2.0-1