From ffc7880fb6ca7985d5ab0d89c13c76fca67904ba Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 20 Mar 2021 16:56:36 +0000 Subject: [PATCH] clock: Reset it on loading Signed-off-by: Ian Jackson --- src/clock.rs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/clock.rs b/src/clock.rs index a924e536..8f87a6c4 100644 --- a/src/clock.rs +++ b/src/clock.rs @@ -103,11 +103,10 @@ struct State { } impl State { - fn new() -> Self { - State { - users: [UState { player: default(), remaining: TVL::zero() }; N], - current: None, - } + fn new(spec: &ChessClock) -> Self { + let mut state = State::dummy(); + state.reset(spec); + state } fn reset(&mut self, spec: &ChessClock) { @@ -119,7 +118,12 @@ impl State { #[typetag::serde(name="ChessClock")] impl PieceXData for State { - fn dummy() -> Self { State::new() } + fn dummy() -> Self { + State { + users: [UState { player: default(), remaining: TVL::zero() }; N], + current: None, + } + } } @@ -229,7 +233,7 @@ impl PieceSpec for ChessClock { spec: self.clone(), }; - gpc.xdata_mut(|| State::new())?; + gpc.xdata_mut(|| State::new(&self) )?; PieceSpecLoaded { p: Box::new(clock), -- 2.30.2