chiark / gitweb /
Refactor: Move prep_piecestate to be a method on PieceRenderInstructions
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Mar 2021 19:05:19 +0000 (19:05 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Mar 2021 19:05:19 +0000 (19:05 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/pcrender.rs
src/updates.rs

index 860e8813209bd441a601e01dca4403a35fe09472..e1f8301d6016ef2cec39bf3b852f27b2a9066810 100644 (file)
@@ -34,27 +34,26 @@ impl VisiblePieceAngle {
   }
 }
 
-impl GPiece {
+impl PieceRenderInstructions {
   #[throws(IE)]
   pub fn prep_piecestate(&self, ioccults: &IOccults,
-                         ipc: &IPiece, pri: &PieceRenderInstructions)
+                         gpc: &GPiece, ipc: &IPiece)
                          -> PreparedPieceState {
-    let (pos, zlevel) = pri.pos_zlevel(self);
-    dbgc!(pos, pri, self, ioccults, ipc);
+    let pri = self;
+    let (pos, zlevel) = pri.pos_zlevel(gpc);
+    dbgc!(pos, pri, gpc, ioccults, ipc);
     PreparedPieceState {
       pos        : pos,
-      held       : self.held,
-      svg        : pri.make_defs(ioccults, self, ipc)?,
+      held       : gpc.held,
+      svg        : pri.make_defs(ioccults, gpc, ipc)?,
       z          : zlevel.z,
       zg         : zlevel.zg,
-      angle      : pri.angle(self).to_compass(),
-      pinned     : self.pinned,
-      uos        : pri.ui_operations(self, ipc.p.borrow())?,
+      angle      : pri.angle(gpc).to_compass(),
+      pinned     : gpc.pinned,
+      uos        : pri.ui_operations(gpc, ipc.p.borrow())?,
     }
   }
-}
 
-impl PieceRenderInstructions {
   pub fn new_visible(vpid: VisiblePieceId) -> PieceRenderInstructions {
     PieceRenderInstructions { vpid, occulted: PriOcculted::Visible }
   }
index 511c95016d7329b5210f4f866bc6df53d645fbaf..16233ce9b26b2d23f435ac47a3e9c41d9c69c72b 100644 (file)
@@ -496,7 +496,7 @@ impl<'r> PrepareUpdatesBuffer<'r> {
   #[throws(InternalError)]
   fn piece_update_player(ioccults: &IOccults,
                          max_z: &mut ZCoord,
-                         pc: &mut GPiece,
+                         gpc: &mut GPiece,
                          ipc: &IPiece,
                          op: PieceUpdateOp<(),()>,
                          pri: &Option<PieceRenderInstructions>)
@@ -504,15 +504,15 @@ impl<'r> PrepareUpdatesBuffer<'r> {
   {
     let pri = match pri { Some(pri) => pri, None => return None };
 
-    max_z.update_max(&pc.zlevel.z);
+    max_z.update_max(&gpc.zlevel.z);
 
     let op = op.try_map(
       |()|{
-        let ns = pc.prep_piecestate(ioccults, ipc, pri)?;
+        let ns = pri.prep_piecestate(ioccults, gpc, ipc)?;
         <Result<_,InternalError>>::Ok(ns)
       },
       |()|{
-        Ok(pc.zlevel.clone())
+        Ok(gpc.zlevel.clone())
       }
     )?;