Welcome to hackvshack.net Forum!
Download Free HvH CS2/CS:GO Cheats, CFG, LUA/JS Scripts, and More!
Register

C++ Function animation resolver from onetap.pasta v4

potroshitel

Master HvHer
User ID:
63477
Messages:
15
Reactions:
848
Badges:
8
REP:
−0/1+
Level:
87
[REACT=1, 2, 4]
C++:
Expand Collapse Copy
void c_anim_sync::solve_move( lag_record_t* const record, lag_record_t* const previous )
{
    record->m_updated_anim_resolver = false;
   
    if ( previous
       && record->m_flags & FL_ONGROUND
       && previous->m_flags & FL_ONGROUND
       && !record->m_shot )
    {
        bool update_solved_anim_side{};
        bool update_anim_resolver{};
       
        const auto speed_2d = record->m_velocity.length_2d( );
        if ( speed_2d <= 20.f )
            goto LABEL_29;
       
        if ( std::abs(
            math::to_deg(
                std::atan2(
                    record->m_velocity.y, record->m_velocity.x
                )
            )
        ) >= 1 )
             goto LABEL_29;
       
        record->m_can_solve_move = false;
        if ( !( record->m_layers.at( 12u ).m_weight * 1000.f ) )
            record->m_can_solve_move = static_cast< int >( record->m_layers.at( 6u ).m_weight * 1000.f ) == static_cast< int >( previous->m_layers.at( 6u ).m_weight * 1000.f );
       
        if ( record->m_velocity_in_processing >= 3
            || record->m_can_solve_move )
        {
            const auto server_playback_rate = record->m_layers.at( 6u ).m_playback_rate;
           
            const auto delta_left = std::abs( server_playback_rate - record->m_anim_sides.at( ANIM_SIDE_LEFT ).m_layers.at( 6u ).m_playback_rate );
            const auto delta_right = std::abs( server_playback_rate - record->m_anim_sides.at( ANIM_SIDE_RIGHT ).m_layers.at( 6u ).m_playback_rate );
            const auto delta_low_left = std::abs( server_playback_rate - record->m_anim_sides.at( ANIM_SIDE_LOW_LEFT ).m_layers.at( 6u ).m_playback_rate );
            const auto delta_center = std::abs( record->m_layers.at( 6u ).m_playback_rate - record->m_anim_sides.at( ANIM_SIDE_CENTER ).m_layers.at( 6u ).m_playback_rate );
           
            if ( !( delta_center * 1000.f ) )
                update_anim_resolver = true;
           
            update_solved_anim_side = 0;
           
            auto best_delta = std::abs( record->m_layers.at( 6u ).m_playback_rate - record->m_anim_sides.at( ANIM_SIDE_CENTER ).m_layers.at( 6u ).m_playback_rate );
           
            if ( !( delta_low_left * 1000.f )
               || delta_center < delta_low_left )
                record->m_updated_anim_resolver = update_anim_resolver;
            else
            {
                update_anim_resolver = true;
                update_solved_anim_side = 3;
               
                best_delta = delta_low_left;
            }
           
            if ( !( delta_left * 1000.f )
               && best_delta >= delta_left )
            {
                update_anim_resolver = true;
                update_solved_anim_side = 1;
               
                best_delta = delta_left;
            }
           
            if ( !( delta_right * 1000.f )
               && best_delta >= delta_right )
            {
                record->m_updated_anim_resolver = true;
                record->m_anim_side = 2;
               
                return;
            }
        }
        else
        {
LABEL_29:
            update_anim_resolver = false;
        }
       
        record->m_updated_anim_resolver = update_anim_resolver;
        record->m_anim_side = update_solved_anim_side;
    }
}
[/REACT]
 
Last edited by a moderator:

Who has read this thread (Total: 0) in last 1 hours View details