chiark / gitweb /
hidden, pos: break out PieceRenderInstructions::pos_zlevel()
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 12 Mar 2021 01:06:04 +0000 (01:06 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 12 Mar 2021 01:21:13 +0000 (01:21 +0000)
nfc

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

index 75f5576209f47a0737522dd43f15ab3da4168e2c..fb690c83f45cb35bc446aeafdf887d92a4d26f33 100644 (file)
@@ -304,11 +304,8 @@ impl GPiece {
   pub fn prep_piecestate(&self, ioccults: &IOccults,
                          ipc: &IPiece, pri: &PieceRenderInstructions)
                          -> PreparedPieceState {
-    use PriOcculted as PO;
-    let (pos, zlevel) = match &pri.occulted {
-      PO::Visible | PO::Occulted => (self.pos, self.zlevel.clone()),
-      PO::Displaced(pos, zlevel) => (*pos, zlevel.clone()),
-    };
+    let (pos, zlevel) = pri.pos_zlevel(self);
+    dbgc!(pos, pri, self, ioccults, ipc);
     PreparedPieceState {
       pos        : pos,
       held       : self.held,
@@ -428,6 +425,13 @@ impl PieceRenderInstructions {
     }
   }
 
+  pub fn pos_zlevel(&self, gpc: &GPiece) -> (Pos, ZLevel) {
+    use PriOcculted as PO;
+    match &self.occulted {
+      PO::Visible | PO::Occulted => (gpc.pos, gpc.zlevel.clone()),
+      PO::Displaced(pos, zlevel) => (*pos, zlevel.clone()),
+    }
+  }
 
   #[throws(IE)]
   pub fn make_defs<'p>(&self, ioccults: &IOccults,