chiark / gitweb /
updates: Move max_z update out of piece_update_player
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 17 Mar 2021 18:12:16 +0000 (18:12 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 19 Mar 2021 20:05:30 +0000 (20:05 +0000)
We are going to want to pass &GameState to this so we can't pass any
&mut pieces of it.

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

index 3266a70f300cfde3eb7abf296601bdae85a3fb04..d93ee0ca7b9f7b943fd397c819273cd06637e7d6 100644 (file)
@@ -499,7 +499,6 @@ impl<'r> PrepareUpdatesBuffer<'r> {
 
   #[throws(InternalError)]
   fn piece_update_player(ioccults: &IOccults,
-                         max_z: &mut ZCoord,
                          gpc: &mut GPiece,
                          ipc: &IPiece,
                          op: PieceUpdateOp<(),()>,
@@ -508,7 +507,6 @@ impl<'r> PrepareUpdatesBuffer<'r> {
   {
     let pri = match pri { Some(pri) => pri, None => return None };
 
-    max_z.update_max(&gpc.zlevel.z);
 
     let op = pri.map_piece_update_op(ioccults, gpc, ipc, op)?;
     op.map(|op| PreparedPieceUpdate {
@@ -548,8 +546,9 @@ impl<'r> PrepareUpdatesBuffer<'r> {
         (Some(gpc), Some(ipc)) => {
           let pri = piece_pri(ioccults, &gs.occults, player,
                               gpl, piece, *gpc, ipc);
+          gs.max_z.update_max(&gpc.zlevel.z);
           Self::piece_update_player(
-            ioccults, &mut gs.max_z, gpc, ipc, ops, &pri
+            ioccults, gpc, ipc, ops, &pri
           )?
         }
         _ => gpl.idmap.fwd(piece).map(