From: Ian Jackson Date: Sun, 28 Feb 2021 21:42:08 +0000 (+0000) Subject: Implement piece_at_all_occulted and provide .._involved_in_.. X-Git-Tag: otter-0.4.0~260 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=b4d0402040ee9e851968dcf678a2a24f122238b5;p=otter.git Implement piece_at_all_occulted and provide .._involved_in_.. Signed-off-by: Ian Jackson --- 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(