From: Ian Jackson Date: Wed, 24 Mar 2021 16:51:37 +0000 (+0000) Subject: hidden: Provide active_nondefault_views X-Git-Tag: otter-0.5.0~456 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=fb6f10f5b30749c38a85359ba75423b88b78d98e;p=otter.git hidden: Provide active_nondefault_views Signed-off-by: Ian Jackson --- diff --git a/src/hidden.rs b/src/hidden.rs index ae65d16c..d73485aa 100644 --- a/src/hidden.rs +++ b/src/hidden.rs @@ -81,6 +81,17 @@ pub enum OccDisplacement { impl PieceOccult { pub fn is_active(&self) -> bool { self.active.is_some() } + #[throws(IE)] + pub fn active_nondefault_views(&self, goccults: &GameOccults) + -> Option { + if let Some(occid) = self.active { + let occ = goccults.occults.get(occid).ok_or_else( + || internal_error_bydebug(&self))?; + Some(occ.views.views.len()) + } else { + None + } + } pub fn passive_occid(&self) -> Option { Some(self.passive?.occid) } pub fn passive_delete_hook(&self, goccults: &mut GameOccults, piece: PieceId) {