chiark / gitweb /
hand: Plumb through xupdates
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Feb 2021 17:40:37 +0000 (17:40 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Feb 2021 17:40:37 +0000 (17:40 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/hand.rs

index b958d066e713cde6c8c5f9168b8bb51614318a59..8359e3259144f182879ee230c6538e7f79a1de05 100644 (file)
@@ -152,7 +152,9 @@ impl PieceTrait for Hand {
     let gpl = gplayers.byid_mut(player)?;
     let nick = Html(htmlescape::encode_minimal(&gpl.nick));
 
-    let (new_owner, did) = match (opname, xdata.owner.is_some()) {
+    let (new_owner, xupdates, did) =
+      match (opname, xdata.owner.is_some())
+    {
       ("claim", false) => {
         let new_desc = Html(format!("{}'s hand", &nick.0));
         let new_owner = Some(MagicOwner {
@@ -181,15 +183,16 @@ impl PieceTrait for Hand {
         })().map_err(|ie| ApiPieceOpError::ReportViaResponse(ie.into()))?;
         
         // actually do things:
-        create_occultation(gplayers, gpieces, goccults, ipieces,
-                           region, piece, views)?;
+        let xupdates =
+          create_occultation(gplayers, gpieces, goccults, ipieces,
+                             region, piece, views)?;
         // xxx recalculate occultations
 
-        (new_owner, format!("claimed {}", &old_desc.0))
+        (new_owner, xupdates, format!("claimed {}", &old_desc.0))
       }
       ("deactivate", true) => {
         // xxx recalculate occultations
-        (None, format!("deactivated {}", &old_desc.0))
+        (None, vec![], format!("deactivated {}", &old_desc.0))
       }
       ("claim", true) |
       ("deactivate", false) => {
@@ -214,6 +217,6 @@ impl PieceTrait for Hand {
       wrc, log,
       ops: PUOs::Simple(PUO::Modify(())), // xxx
       // xxx want PUU::RecalculateOccultations
-    }, vec![])
+    }, xupdates)
   }
 }