From ea28f93dc00fca4ff3ac2706fd8cee81187ee1b4 Mon Sep 17 00:00:00 2001 From: Owen McCormick Date: Mon, 14 Dec 2020 16:05:42 -0800 Subject: [PATCH] Fixed slow motion effect after lag --- common/src/clock.rs | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/common/src/clock.rs b/common/src/clock.rs index a8cb509fd2..26446b51f8 100644 --- a/common/src/clock.rs +++ b/common/src/clock.rs @@ -77,20 +77,18 @@ impl Clock { pub fn dt(&self) -> Duration { self.last_dt } pub fn get_stable_dt(&self) -> Duration { - if self.last_dts.len() < NUMBER_OF_DELTAS_COMPARED { - self.last_dt - } else { - let stable_dt = Duration::from_secs_f32( - self.last_dts - .iter() - .skip(self.last_dts.len() - NUMBER_OF_DELTAS_COMPARED) - .min() - .map_or(self.last_dt.as_secs_f32(), |t| t.into_inner()), - ); - if self.last_dt > 2 * stable_dt { - tracing::debug!(?self.last_dt, ?self.total_tick_time, "lag spike detected, unusually slow tick"); - } + let stable_dt = Duration::from_secs_f32( + self.last_dts + .iter() + .skip(self.last_dts.len() - NUMBER_OF_DELTAS_COMPARED) + .min() + .map_or(self.last_dt.as_secs_f32(), |t| t.into_inner()), + ); + if self.last_dts.len() >= NUMBER_OF_DELTAS_COMPARED && self.last_dt > 2 * stable_dt { + tracing::debug!(?self.last_dt, ?self.total_tick_time, "lag spike detected, unusually slow tick"); stable_dt + } else { + self.last_dt } }