summaryrefslogtreecommitdiff
path: root/internal_rewrite/c_base_player.cpp
diff options
context:
space:
mode:
authornavewindre <boneyaard@gmail.com>2018-09-17 20:09:00 +0200
committernavewindre <boneyaard@gmail.com>2018-09-17 20:09:00 +0200
commitd1cab43b8ffd1fd37633e4751818d14c840ecef9 (patch)
tree1f6932efba0142fe964ba9d9ba4beb837958ed5f /internal_rewrite/c_base_player.cpp
parentfb2b56fd3c26d37ef198fe6dbf651104656f8a34 (diff)
d
Diffstat (limited to 'internal_rewrite/c_base_player.cpp')
-rw-r--r--internal_rewrite/c_base_player.cpp26
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;