From a59e6bee554a42ccb9a0c7d968bdb59f5e394287 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 4 Oct 2020 19:52:30 +0100 Subject: [PATCH] make ZCoord member private Signed-off-by: Ian Jackson --- src/cmdlistener.rs | 4 ++-- src/gamestate.rs | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/cmdlistener.rs b/src/cmdlistener.rs index f26e3352..075a3054 100644 --- a/src/cmdlistener.rs +++ b/src/cmdlistener.rs @@ -66,7 +66,7 @@ fn execute(cs: &mut CommandStream, cmd: MgmtCommand) -> MgmtResponse { players : Default::default(), log : Default::default(), gen : Generation(0), - max_z: ZCoord(0.), + max_z: default(), }; let name = InstanceName { @@ -269,7 +269,7 @@ fn execute_game_insn(cs: &CommandStream, if p.nfaces() <= face.into() { throw!(SpecError::FaceNotFound); } - let z = ZCoord(gs.max_z.0 + (i + 1) as f64); + let z = gs.max_z.add(i + 1); let pc = PieceState { held: None, zlevel: ZLevel { z, zg: gs.gen }, diff --git a/src/gamestate.rs b/src/gamestate.rs index 51225dca..06ef7162 100644 --- a/src/gamestate.rs +++ b/src/gamestate.rs @@ -20,10 +20,10 @@ pub struct Generation (pub u64); visible_slotmap_key!{ VisiblePieceId('.') } #[derive(Debug,Copy,Clone,PartialEq,PartialOrd)] -#[derive(Serialize,Deserialize)] +#[derive(Serialize,Deserialize,Default)] #[serde(into="f64")] #[serde(try_from="f64")] -pub struct ZCoord(pub f64); +pub struct ZCoord(f64); #[derive(Clone,Serialize,Deserialize,Eq,Ord,PartialEq,PartialOrd)] #[serde(transparent)] @@ -178,6 +178,12 @@ impl Display for ZCoord { } } +impl ZCoord { + pub fn add(&self, v: u32) -> ZCoord { + ZCoord(self.0 + (v as f64)) + } +} + pub trait ClampTable : Sized { fn clamped(self, range: Self) -> (Self, bool); } -- 2.30.2