chiark / gitweb /
Pass ipieces to ui_operation
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Feb 2021 11:24:24 +0000 (11:24 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Feb 2021 11:24:24 +0000 (11:24 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/api.rs
src/gamestate.rs
src/hand.rs

index cc5550f67266c806ce4e6de97319ab3b12b5d38b..afa9a30d9514674f4dd35fa3bfa61f005801ca76 100644 (file)
@@ -37,10 +37,10 @@ struct ApiPiece<O:ApiPieceOp> {
 
 struct ApiPieceOpArgs<'a> {
   gs: &'a mut GameState,
+  ipieces: &'a PiecesLoaded,
   player: PlayerId,
   piece: PieceId,
   p: &'a dyn Piece,
-  ipieces: &'a PiecesLoaded,
 }
 
 trait ApiPieceOp: Debug {
@@ -409,7 +409,7 @@ api_route!{
   }
   #[throws(ApiPieceOpError)]
   fn op(&self, a: ApiPieceOpArgs) -> PieceUpdate {
-    let ApiPieceOpArgs { gs,player,piece,p, .. } = a;
+    let ApiPieceOpArgs { gs,player,piece,p,ipieces, .. } = a;
     '_normal_global_ops__not_loop: loop {
       let pc = gs.pieces.byid_mut(piece)?;
       let gpl = gs.players.byid_mut(player)?;
@@ -439,7 +439,7 @@ api_route!{
       };
     }
 
-    p.ui_operation(gs, player, piece, &self.opname, self.wrc)?
+    p.ui_operation(gs, ipieces, player, piece, &self.opname, self.wrc)?
   }
 }
 
index d1645fcbf69142aacfa1dfaf60f13ff968b3922a..4cf6340b787572009390912f46f21004b21eda41 100644 (file)
@@ -148,7 +148,8 @@ pub trait Piece: Outline + Send + Debug {
                        _gpc: &PieceState) { }
 
   fn ui_operation(&self,
-                  _gs: &mut GameState, _player: PlayerId, _piece: PieceId,
+                  _gs: &mut GameState, _ipieces: &PiecesLoaded,
+                  _player: PlayerId, _piece: PieceId,
                   _opname: &str, _wrc: WhatResponseToClientOp)
                   -> PieceUpdateResult {
     throw!(OE::BadOperation)
index bb75214c67f608cd7065399a7f478f65495a852b..a7e7e08d3d5bf4882a3210af309187326e19df33 100644 (file)
@@ -127,8 +127,9 @@ impl Piece for Hand {
     })
   }
 
-  fn ui_operation(&self, gs: &mut GameState, player: PlayerId,
-                  piece: PieceId, opname: &str, wrc: WhatResponseToClientOp)
+  fn ui_operation(&self, gs: &mut GameState, _ipieces: &PiecesLoaded,
+                  player: PlayerId, piece: PieceId,
+                  opname: &str, wrc: WhatResponseToClientOp)
                   -> PieceUpdateResult {
     let gplayers = &mut gs.players;
     let gpc = gs.pieces.byid_mut(piece)?;