diff -r 42b710b0f883 -r 66c987015f2d rust/hwphysics/src/time.rs --- a/rust/hwphysics/src/time.rs Thu Jul 25 22:31:24 2019 +0300 +++ b/rust/hwphysics/src/time.rs Thu Jul 25 23:02:02 2019 +0300 @@ -1,5 +1,4 @@ -use crate::common::{GearDataProcessor, GearId}; -use fpnum::{fp, FPNum}; +use crate::common::{GearDataProcessor, GearId, Millis}; use std::{ cmp::{Eq, Ord, Ordering, PartialEq, PartialOrd}, collections::BinaryHeap, @@ -8,7 +7,7 @@ pub type EventId = u16; struct TimeEvent { - time: FPNum, + time: Millis, gear_id: GearId, event_id: EventId, } @@ -52,7 +51,7 @@ pub struct TimeProcessor { current_event_id: EventId, - current_time: FPNum, + current_time: Millis, events: BinaryHeap, timeouts: OccurredEvents, } @@ -61,13 +60,13 @@ pub fn new() -> Self { Self { current_event_id: 0, - current_time: fp!(0), + current_time: Millis::new(0), events: BinaryHeap::with_capacity(1024), timeouts: OccurredEvents::new(), } } - pub fn register(&mut self, gear_id: GearId, timeout: FPNum) -> EventId { + pub fn register(&mut self, gear_id: GearId, timeout: Millis) -> EventId { let event_id = self.current_event_id; self.current_event_id.wrapping_add(1); let event = TimeEvent { @@ -81,9 +80,9 @@ pub fn cancel(&mut self, gear_id: GearId) {} - pub fn process(&mut self, time_step: FPNum) -> &OccurredEvents { + pub fn process(&mut self, time_step: Millis) -> &OccurredEvents { self.timeouts.clear(); - self.current_time += time_step; + self.current_time = self.current_time + time_step; while self .events .peek()