From b4d0402040ee9e851968dcf678a2a24f122238b5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 28 Feb 2021 21:42:08 +0000 Subject: [PATCH] Implement piece_at_all_occulted and provide .._involved_in_.. Signed-off-by: Ian Jackson --- daemon/cmdlistener.rs | 2 +- src/hidden.rs | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/daemon/cmdlistener.rs b/daemon/cmdlistener.rs index 309641cd..e7dac3dd 100644 --- a/daemon/cmdlistener.rs +++ b/daemon/cmdlistener.rs @@ -379,7 +379,7 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( |(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 diff --git a/src/hidden.rs b/src/hidden.rs index 69c5826e..7eb368c8 100644 --- a/src/hidden.rs +++ b/src/hidden.rs @@ -200,11 +200,12 @@ fn inner( 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( -- 2.30.2