chiark / gitweb /
hidden: recalculate: Break out recalculate_occultation_ofmany
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 17 Feb 2021 21:57:31 +0000 (21:57 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 17 Feb 2021 22:53:39 +0000 (22:53 +0000)
NFC

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

index 2336f522e48c944ea1504d8493203c0034b647e2..92e8af03647027d63a37af90d7d38aa3f1a9a488 100644 (file)
@@ -415,6 +415,23 @@ pub fn recalculate_occultation_piece(
   )?
 }
 
+#[throws(IE)]
+fn recalculate_occultation_ofmany(
+  gs: &mut GameState,
+  ipieces: &PiecesLoaded,
+  ppiece: PieceId,
+  updates: &mut Vec<(PieceId, PieceUpdateOps)>,
+){
+  recalculate_occultation_general(
+    gs, ipieces, ppiece,
+    (), |_|(),
+    |_,_,_|(), |puo_pp, ()|{
+      updates.push((ppiece, PUOs::PerPlayer(puo_pp)));
+    },
+  )?;
+}
+
+
 #[must_use]
 pub struct NascentOccultation(Occultation);
 
@@ -496,13 +513,7 @@ pub fn create_occultation<V: OccultationViewDef>(
     ogpc.occult.active = Some(occid);
 
     for &ppiece in &recalc {
-      recalculate_occultation_general(
-        gs, ipieces, ppiece,
-        (), |_|(),
-        |_,_,_|(), |puo_pp, ()|{
-          updates.push((ppiece, PUOs::PerPlayer(puo_pp)));
-        },
-      )?;
+      recalculate_occultation_ofmany(gs, ipieces, ppiece, &mut updates)?;
     }
 
     Ok::<_,IE>(())