diff options
| author | navewindre <boneyaard@gmail.com> | 2018-09-17 20:09:00 +0200 |
|---|---|---|
| committer | navewindre <boneyaard@gmail.com> | 2018-09-17 20:09:00 +0200 |
| commit | d1cab43b8ffd1fd37633e4751818d14c840ecef9 (patch) | |
| tree | 1f6932efba0142fe964ba9d9ba4beb837958ed5f /internal_rewrite/c_base_player.cpp | |
| parent | fb2b56fd3c26d37ef198fe6dbf651104656f8a34 (diff) | |
d
Diffstat (limited to 'internal_rewrite/c_base_player.cpp')
| -rw-r--r-- | internal_rewrite/c_base_player.cpp | 26 |
1 files changed, 21 insertions, 5 deletions
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;
|
