chiark / gitweb /
refactor: drop angle member from PieceRenderInstructions
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 28 Feb 2021 13:16:41 +0000 (13:16 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 28 Feb 2021 13:16:41 +0000 (13:16 +0000)
Now is a method used in only one place...

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/cmdlistener.rs
daemon/session.rs
src/gamestate.rs
src/hidden.rs

index 586b78b2de8ca003bcd8da3ec9158653d6120e79..55009d03263ca2356f99e88b4ecff1b34570aeb6 100644 (file)
@@ -383,7 +383,6 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>(
             // todo: something more sophisticated would be nice
             let pri = PieceRenderInstructions {
               id: VisiblePieceId(piece.data()),
-              angle: VisiblePieceAngle(p.angle), // xxx
               occluded: PriOccluded::Visible,
             };
             let bbox = pinfo.bbox_approx()?;
@@ -567,7 +566,6 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>(
       let desc_html = if let Some(pc) = &pc {
         let pri = PieceRenderInstructions {
           id: default(),
-          angle: VisiblePieceAngle(pc.angle), // xxx
           occluded: PriOccluded::Visible,
         };
         pri.describe(pc, &p)
index c6359e9213e8803b163044bceb832e69779f9d0a..eb6be01c6867fa6a20c1842a9bd174053d3a2f78 100644 (file)
@@ -118,8 +118,8 @@ fn session_inner(form: Json<SessionForm>,
       alldefs.push((pri.id, defs));
       let desc = pri.describe(&pr, p);
 
-      let vangle = match pri.angle {
-        VisiblePieceAngle(PieceAngle::Compass(vangle)) => vangle,
+      let vangle = match pri.angle(pr) {
+        PieceAngle::Compass(vangle) => vangle,
       };
 
       let for_info = SessionPieceLoadJson {
index 1a75c7f3c81407394778b36ab61381452edb53ce..ddadcf9f021dd04a6a64c2352b22e3a9785826a4 100644 (file)
@@ -19,10 +19,7 @@ pub struct Generation(pub u64);
 
 visible_slotmap_key!{ VisiblePieceId(b'.') }
 
-#[derive(Clone,Copy,Debug)]
-#[derive(Serialize,Deserialize)]
-#[serde(transparent)]
-pub struct VisiblePieceAngle(pub PieceAngle);
+type VisiblePieceAngle = PieceAngle;
 
 #[derive(Clone,Debug)]
 #[derive(Serialize,Deserialize)]
@@ -257,7 +254,7 @@ impl Debug for Html {
 
 impl VisiblePieceAngle {
   pub fn to_transform(self) -> VisibleAngleTransform {
-    match self.0 {
+    match self {
       PieceAngle::Compass(angle) => VisibleAngleTransform(
         base_misc::raw_angle_transform(
           angle.into()
@@ -356,7 +353,6 @@ impl PieceXDataExt for PieceXDataState {
 #[derive(Debug,Clone)]
 pub struct PieceRenderInstructions {
   pub id: VisiblePieceId,
-  pub angle: VisiblePieceAngle,
   pub occluded: PriOccluded,
 }
 
@@ -380,7 +376,7 @@ impl PieceRenderInstructions {
       Some(n) => n,
       None => -1,
     };
-    let transform = pri.angle.to_transform();
+    let transform = gpc.angle.to_transform();
     write!(&mut defs.0,
            r##"<g id="piece{}" transform="{}" data-dragraise="{}">"##,
            pri.id, &transform.0, dragraise)?;
@@ -416,6 +412,12 @@ impl PieceRenderInstructions {
     p.describe_html(gpc)?
   }
 
+  pub fn angle(&self, gpc: &GPiece) -> VisiblePieceAngle {
+    let PriOccluded::Visible = self.occluded;
+
+    gpc.angle
+  }
+
   #[throws(InternalError)]
   pub fn ui_operations(&self, gpc: &GPiece, p: &dyn PieceTrait)
                    -> Vec<UoDescription>
index 9c44008ec70c09a34d4ebbfa48e5ff11e9124162..0930c60c5a42122167672cf49874dd17446aa7da 100644 (file)
@@ -181,11 +181,11 @@ pub fn piece_pri(
   pc: &GPiece,
 ) -> PieceRenderInstructions {
   let vpiece = gpl.idmap.fwd_or_insert(piece);
-  let angle = VisiblePieceAngle(pc.angle);
+  let angle = pc.angle;
   let occluded = PriOccluded::Visible; // xxx
   trace!("{} {:?} => {} angle={:?}",
          player, piece, vpiece, angle);
-  PieceRenderInstructions { id: vpiece, angle, occluded }
+  PieceRenderInstructions { id: vpiece, occluded }
 }
 
 pub fn piece_at_all_occluded(