chiark / gitweb /
make ZCoord member private
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 4 Oct 2020 18:52:30 +0000 (19:52 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 4 Oct 2020 18:52:30 +0000 (19:52 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/cmdlistener.rs
src/gamestate.rs

index f26e335245ab1fc50bede5e204d69009aad40ff5..075a30549f24eb0432092326cb949df7cf677664 100644 (file)
@@ -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 },
index 51225dca3e8540a6127b96dbdc4ef1d5b2a2843e..06ef716240573e52988e455291c970c0ded700a2 100644 (file)
@@ -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);
 }