- Статус
- Оффлайн
- Регистрация
- 22 Сен 2025
- Сообщения
- 19
- Реакции
- 1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
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 );