|(piece,gpc)| (|| Ok::<_,MgmtError>(if_chain!{
let &GPiece { pos, face, .. } = gpc;
if let Some(p) = ig.ipieces.get(piece);
- let visible = if ! piece_at_all_occulted(&ig.gs.occults, piece) {
+ let visible = if ! piece_at_all_occulted(gpc) {
// todo: something more sophisticated would be nice
let pri = PieceRenderInstructions::new_visible(
// visible id is internal one here
inner(occults, player, gpl, piece, gpc, p.borrow())
}
-pub fn piece_at_all_occulted(
- _occults: &GameOccults, // xxx
- _piece: PieceId, // xxx
-) -> bool {
- false
+pub fn piece_at_all_occulted(gpc: &GPiece) -> bool {
+ gpc.occult.passive.is_some()
+}
+pub fn piece_involved_in_occultation(gpc: &GPiece) -> bool {
+ gpc.occult.passive.is_some() ||
+ gpc.occult.active.is_some()
}
pub fn vpiece_decode(