From: Ian Jackson Date: Wed, 24 Mar 2021 17:40:36 +0000 (+0000) Subject: hidden: Provide total ppiece count X-Git-Tag: otter-0.5.0~452 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=43e5e8f40a1ba3fa066b22368803c46e9440d861;p=otter.git hidden: Provide total ppiece count Signed-off-by: Ian Jackson --- diff --git a/src/hidden.rs b/src/hidden.rs index d73485aa..f136d55b 100644 --- a/src/hidden.rs +++ b/src/hidden.rs @@ -81,6 +81,7 @@ 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 { @@ -92,6 +93,19 @@ impl PieceOccult { None } } + + #[throws(IE)] + pub fn active_total_ppieces(&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.notches.len()) + } else { + None + } + } + pub fn passive_occid(&self) -> Option { Some(self.passive?.occid) } pub fn passive_delete_hook(&self, goccults: &mut GameOccults, piece: PieceId) { diff --git a/src/vpid.rs b/src/vpid.rs index e4f9e971..e5f4a0bd 100644 --- a/src/vpid.rs +++ b/src/vpid.rs @@ -154,6 +154,7 @@ impl Notches { } } + pub fn len(&self) -> NotchNumber { self.used } pub fn is_empty(&self) -> bool { self.used == 0 } #[cfg(test)]