fn op_complex(&self, mut a: ApiPieceOpArgs) -> UpdateFromOpComplex {
let ApiPieceOpArgs { ioccults,player,piece,ipc, .. } = a;
let gs = &mut a.gs;
+ let pri = piece_pri(ioccults, &gs.occults,
+ player, gs.players.byid_mut(player)?,
+ piece, gs.pieces.byid(piece)?,
+ ipc)
+ .ok_or(OE::PieceGone)?;
+ let y = {
+ use PriOcculted::*;
+ match pri.occulted {
+ Visible(y) => y,
+ Occulted | Displaced(..) => throw!(OE::BadOperation),
+ }
+ };
+
'_normal_global_ops__not_loop: loop {
let gpc = gs.pieces.byid_mut(piece)?;
let gpl = gs.players.byid_mut(player)?;
};
}
- ipc.p.ui_operation(a, &self.opname, self.wrc)?
+ ipc.p.ui_operation(a, &self.opname, self.wrc, y)?
}
}
}
_gpc: &GPiece, _y: ShowUnocculted) { }
fn ui_operation(&self, _a: ApiPieceOpArgs<'_>,
- _opname: &str, _wrc: WhatResponseToClientOp)
+ _opname: &str, _wrc: WhatResponseToClientOp,
+ _y: ShowUnocculted)
-> Result<UpdateFromOpComplex, ApiPieceOpError> {
throw!(OE::BadOperation)
}
#[throws(ApiPieceOpError)]
fn ui_operation(&self, a: ApiPieceOpArgs<'_>,
- opname: &str, wrc: WhatResponseToClientOp)
+ opname: &str, wrc: WhatResponseToClientOp,
+ _: ShowUnocculted)
-> UpdateFromOpComplex {
let ApiPieceOpArgs { gs,player,piece,ipieces,to_permute,.. } = a;
let gen = &mut gs.gen;