From d1cab43b8ffd1fd37633e4751818d14c840ecef9 Mon Sep 17 00:00:00 2001 From: navewindre Date: Mon, 17 Sep 2018 20:09:00 +0200 Subject: d --- internal_rewrite/c_base_player.cpp | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'internal_rewrite/c_base_player.cpp') diff --git a/internal_rewrite/c_base_player.cpp b/internal_rewrite/c_base_player.cpp index 47f9e36..ee478a7 100644 --- a/internal_rewrite/c_base_player.cpp +++ b/internal_rewrite/c_base_player.cpp @@ -351,8 +351,8 @@ bool c_base_player::is_fakewalking( ) { auto velocity = m_vecVelocity( ).length2d( ); bool on_ground = m_fFlags( ) & FL_ONGROUND; - if( walk_layer.m_flWeight < 0.3f - && some_layer.m_flWeight < 0.2f + if( walk_layer.m_flWeight < 0.1f + && some_layer.m_flWeight < 0.1f && velocity > 0.1f && on_ground ) { return true; } @@ -736,7 +736,7 @@ void c_base_player::calc_anim_velocity( bool reset ) { int ticks = TIME_TO_TICKS( delta * 0.5f ); vec3_t est_tick_vel = math::lerp( last_velocity, velocity, .5f ); for( int i{ }; i < ticks + 1; i++ ) { - if( est_tick_vel.length2d( ) < 1.f ) + if( est_tick_vel.length2d( ) < 5.f ) break; est_tick_vel = friction( est_tick_vel ); @@ -883,6 +883,18 @@ void c_base_player::fix_animations( bool reset, bool resolver_change ) { float prev_cycle = m_AnimOverlay( ).GetElements( )[ 6 ].m_flPrevCycle; float prev_rate = m_AnimOverlay( ).GetElements( )[ 6 ].m_flPlaybackRate; + /*needs testing but seems to work*/ + if( !reset ) { + auto& layer = m_AnimOverlay( ).GetElements( )[ 3 ]; + + int sequence = get_seq_activity( layer.m_nSequence ); + + if( sequence == 979 ) { + //if( sm_animdata[ idx ].m_adjust_cycle + sm_animdata[ idx ].m_adjust_rate >= 1.f ) + // eye_angles.y = m_flLowerBodyYawTarget( ); + } + } + get_animstate( )->update( eye_angles.y, eye_angles.x ); m_AnimOverlay( ).GetElements( )[ 6 ].m_flPrevCycle = m_AnimOverlay( ).GetElements( )[ 6 ].m_flCycle; @@ -914,10 +926,14 @@ void c_base_player::fix_animations( bool reset, bool resolver_change ) { //check for any possible mistakes validate_animation_layers( ); + sm_animdata[ idx ].m_adjust_rate = m_AnimOverlay( ).GetElements( )[ 3 ].m_flPlaybackRate; + sm_animdata[ idx ].m_adjust_cycle = m_AnimOverlay( ).GetElements( )[ 3 ].m_flCycle; + if( m_flSimulationTime( ) - m_flOldSimulationTime( ) > TICK_INTERVAL( ) ) { auto activity = get_seq_activity( m_AnimOverlay( ).GetElements( )[ 3 ].m_nSequence ); if( activity == 979 ) { + m_AnimOverlay( ).GetElements( )[ 3 ].m_flWeight = 0.f; m_AnimOverlay( ).GetElements( )[ 3 ].m_flCycle = 0.f; } } @@ -925,13 +941,13 @@ void c_base_player::fix_animations( bool reset, bool resolver_change ) { bool moving = sm_animdata[ idx ].m_anim_velocity.length( ) > 0.1f; //compute_move_cycle( reset, moving ); - - if( is_fakewalking( ) && !reset ) { //sm_animdata[ idx ].m_last_velocity = vec3_t( ); //sm_animdata[ idx ].m_anim_velocity = vec3_t( ); } + get_animdata( ).m_anim_flags = m_fFlags( ); + if( !moving ) m_AnimOverlay( ).GetElements( )[ 6 ].m_flWeight = 0.f; -- cgit v1.2.3