chiark / gitweb /
Plumb ShowUnocculted through to ui_operation trait methods
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 7 Apr 2021 17:41:59 +0000 (18:41 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 7 Apr 2021 18:38:48 +0000 (19:38 +0100)
We're going to want this.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/api.rs
src/bin/otterlib.rs
src/clock.rs
src/deck.rs
src/gamestate.rs
src/hand.rs
src/pcrender.rs

index 962ca70de1a6f11bf664f799ea3bafc5092199d7..f79fe27aadcfedc916407a74fdcba594e5ac1e62 100644 (file)
@@ -605,7 +605,7 @@ api_route!{
         };
       }
 
-      ipc.show(y).ui_operation(a, &self.opname, self.wrc)?
+      ipc.show(y).ui_operation(y, a, &self.opname, self.wrc)?
     }
   }
 }
index d9dd022e1dbf7ba34ff630d55023fcd1014a6125..474b2019041dabca5a9a393c95ae421050b4cd44 100644 (file)
@@ -64,6 +64,8 @@ pub enum OutputKind {
 
 pub type ItemForOutput = (String, ItemEnquiryData);
 
+pub const VIS: ShowUnocculted = ShowUnocculted::new_visible();
+
 #[throws(AE)]
 fn preview(items: Vec<ItemForOutput>) {
   const BORDER: f64 = 1.;
@@ -98,7 +100,7 @@ fn preview(items: Vec<ItemForOutput>) {
         .context("load")?;
       // todo show occulted version too
       let mut uos = vec![];
-      p.add_ui_operations(&mut uos, &GameState::dummy(), &GPiece::dummy())
+      p.add_ui_operations(VIS, &mut uos, &GameState::dummy(), &GPiece::dummy())
         .context("add uos")?;
       let uos = uos.into_iter().map(|uo| uo.opname).collect::<Vec<_>>();
       let spec = spec.clone();
index 1c84dc2ca6ff8adbfffcb04c96bc1ac0a318d91d..706182dcd87628b14d9bff91653dbb04429f40e1 100644 (file)
@@ -541,7 +541,7 @@ impl PieceTrait for Clock {
   }
 
   #[throws(InternalError)]
-  fn add_ui_operations(&self, upd: &mut Vec<UoDescription>,
+  fn add_ui_operations(&self, _: ShowUnocculted, upd: &mut Vec<UoDescription>,
                        gs: &GameState, gpc: &GPiece) {
     let state: &State = gpc.xdata_exp()?;
 
@@ -610,7 +610,7 @@ impl PieceTrait for Clock {
   }
 
   #[throws(ApiPieceOpError)]
-  fn ui_operation(&self, args: ApiPieceOpArgs<'_>,
+  fn ui_operation(&self, _: ShowUnocculted, args: ApiPieceOpArgs<'_>,
                   opname: &str, _wrc: WhatResponseToClientOp)
                   -> UpdateFromOpComplex {
     let ApiPieceOpArgs { gs,piece,player,ioccults,ipc,ig,.. } = args;
index 80b233f0dcfa12512e0357d7e8ed74d995b05e03..260207972a6b79b7d1d86e271a102a4831c66869 100644 (file)
@@ -128,7 +128,7 @@ impl PieceTrait for Deck {
   }
 
   #[throws(InternalError)]
-  fn add_ui_operations(&self, upd: &mut Vec<UoDescription>,
+  fn add_ui_operations(&self, _: ShowUnocculted, upd: &mut Vec<UoDescription>,
                        gs: &GameState, gpc: &GPiece) {
     let state = self.state(gpc, &gs.occults)?;
     if state != Enabled {
@@ -161,7 +161,8 @@ impl PieceTrait for Deck {
   }
 
   #[throws(ApiPieceOpError)]
-  fn ui_operation(&self, a: ApiPieceOpArgs<'_>,
+  fn ui_operation(&self, _: ShowUnocculted,
+                  a: ApiPieceOpArgs<'_>,
                   opname: &str, wrc: WhatResponseToClientOp)
                   -> UpdateFromOpComplex {
     let ApiPieceOpArgs { gs,player,piece,ipieces,ioccults,to_recalculate,.. } = a;
index f5aed30dc51fb5bbd78d57861d7e22d3e6d7967c..08b926b71c19d7bc1d42881b4ab924e58153cd87 100644 (file)
@@ -172,10 +172,11 @@ pub trait PieceTrait: OutlineTrait + Send + Debug + 'static {
   fn nfaces(&self) -> RawFaceId;
 
   #[throws(InternalError)]
-  fn add_ui_operations(&self, _upd: &mut Vec<UoDescription>,
+  fn add_ui_operations(&self, _: ShowUnocculted,
+                       _upd: &mut Vec<UoDescription>,
                        _gs: &GameState, _gpc: &GPiece) { }
 
-  fn ui_operation(&self, _a: ApiPieceOpArgs<'_>,
+  fn ui_operation(&self, _: ShowUnocculted, _a: ApiPieceOpArgs<'_>,
                   _opname: &str, _wrc: WhatResponseToClientOp)
                   -> Result<UpdateFromOpComplex, ApiPieceOpError> {
     throw!(OE::BadOperation)
index b94cf138866179e3cb372aebfa6654d2cc6c2a54..e09b1173b3a084e24c612f95ffb14b2b3d94d57b 100644 (file)
@@ -192,7 +192,7 @@ impl PieceTrait for Hand {
   }
 
   #[throws(InternalError)]
-  fn add_ui_operations(&self, upd: &mut Vec<UoDescription>,
+  fn add_ui_operations(&self, _: ShowUnocculted, upd: &mut Vec<UoDescription>,
                        _gs: &GameState, gpc: &GPiece) {
     upd.push(if_chain! {
       if let Some(xdata) = gpc.xdata.get::<HandState>()?;
@@ -217,7 +217,7 @@ impl PieceTrait for Hand {
   }
 
   #[throws(ApiPieceOpError)]
-  fn ui_operation(&self, mut a: ApiPieceOpArgs<'_>,
+  fn ui_operation(&self, _: ShowUnocculted, mut a: ApiPieceOpArgs<'_>,
                   opname: &str, wrc: WhatResponseToClientOp)
                   -> UpdateFromOpComplex {
     if let Some(r) = {
index 0e74b7828d6779917596fd1dd41fc8663fcccb1c..37a37283bd9c4524722996ad832e237e50a34e5b 100644 (file)
@@ -241,7 +241,7 @@ impl PieceRenderInstructions {
         desc: Html::lit("flip").into(),
       })
     }
-    ipc.show(y).add_ui_operations(&mut out, gs, gpc)?;
+    ipc.show(y).add_ui_operations(y, &mut out, gs, gpc)?;
     out
   }
 }