bool CResolver::DoesHaveJitter(IBasePlayer* player, int *new_side) { static float LastAngle[64]; static int LastBrute[64]; static bool Switch[64]; static float LastUpdateTime[64]; int i = player->GetIndex(); float CurrentAngle = player->GetEyeAngles().y; if (!Math::IsNearEqual(CurrentAngle, LastAngle[i], 50.f)) { Switch[i] = !Switch[i]; LastAngle[i] = CurrentAngle; *new_side = Switch[i] ? 1 : -1; LastBrute[i] = *new_side; LastUpdateTime[i] = interfaces.global_vars->curtime; return true; } else { if (fabsf(LastUpdateTime[i] - interfaces.global_vars->curtime >= TICKS_TO_TIME(17)) || player->GetSimulationTime() != player->GetOldSimulationTime()) { LastAngle[i] = CurrentAngle; } *new_side = LastBrute[i]; } return false; }