struct ApiPieceOpArgs<'a> {
gs: &'a mut GameState,
+ ipieces: &'a PiecesLoaded,
player: PlayerId,
piece: PieceId,
p: &'a dyn Piece,
- ipieces: &'a PiecesLoaded,
}
trait ApiPieceOp: Debug {
}
#[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)?;
};
}
- p.ui_operation(gs, player, piece, &self.opname, self.wrc)?
+ p.ui_operation(gs, ipieces, player, piece, &self.opname, self.wrc)?
}
}
_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)
})
}
- 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)?;