gait.cpp 748 B

1234567891011121314151617181920212223242526272829
  1. #include "gait.h"
  2. #include "../humanoid_constants.h"
  3. namespace Render::GL {
  4. auto classify_motion_state(const AnimationInputs &anim,
  5. float move_speed) -> HumanoidMotionState {
  6. if (anim.is_in_hold_mode) {
  7. return HumanoidMotionState::Hold;
  8. }
  9. if (anim.is_exiting_hold) {
  10. return HumanoidMotionState::ExitingHold;
  11. }
  12. if (anim.is_attacking) {
  13. return HumanoidMotionState::Attacking;
  14. }
  15. if (anim.is_moving) {
  16. if (anim.is_running) {
  17. return HumanoidMotionState::Run;
  18. }
  19. return (move_speed > k_run_speed_threshold) ? HumanoidMotionState::Run
  20. : HumanoidMotionState::Walk;
  21. }
  22. return HumanoidMotionState::Idle;
  23. }
  24. } // namespace Render::GL