Исходник Calc sim ticks via 11-th layer from onetap.pasta v4

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
22 Сен 2025
Сообщения
19
Реакции
1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
auto sim_ticks = TIME_TO_TICKS( record->m_sim_time - previous->m_sim_time );
if ( ( sim_ticks - 1 ) > 31
   || previous->m_sim_time == 0.f ) {
    record->m_time_delta = valve::g_global_vars->m_interval;
    record->m_sim_ticks = 1;
}

auto loop_cycle = record->m_anim_layers.at( 11u ).m_cycle;
auto prev_playback_rate = previous->m_anim_layers.at( 11u ).m_playback_rate;

if ( prev_playback_rate > 0.f
    && record->m_anim_layers.at( 11u ).m_playback_rate > 0.f ) {
    auto prev_loop_cycle = previous->m_anim_layers.at( 11u ).m_cycle;
    sim_ticks = 0;
    
    if ( prev_loop_cycle > loop_cycle )
        loop_cycle += 1.f;
    
    while ( loop_cycle > prev_loop_cycle ) {
        const auto sim_ticks_backup = sim_ticks;
        const auto playback_multiplier = valve::g_global_vars->m_interval * prev_playback_rate;
        
        prev_loop_cycle += ( valve::g_global_vars->m_interval * prev_playback_rate );
        if ( prev_loop_cycle >= 1.f )
            prev_playback_rate = record->m_anim_layers.at( 11u ).m_playback_rate;
        
        ++sim_ticks;
        
        if ( prev_loop_cycle > loop_cycle
           && ( prev_loop_cycle - loop_cycle ) > playback_multiplier * 0.5f )
            sim_ticks = sim_ticks_backup;
    }
}

record->m_sim_ticks = sim_ticks;
record->m_time_delta = TICKS_TO_TIME( sim_ticks );
 
Назад
Сверху Снизу