chiark / gitweb /
hidden: Provide active_nondefault_views
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 24 Mar 2021 16:51:37 +0000 (16:51 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 24 Mar 2021 17:00:52 +0000 (17:00 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/hidden.rs

index ae65d16c4447d816316f5646e70e5ea736d3ee09..d73485aa37b6863080a248aa5371ce179af1b03a 100644 (file)
@@ -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<usize> {
+    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<OccId> { Some(self.passive?.occid) }
   pub fn passive_delete_hook(&self, goccults: &mut GameOccults,
                              piece: PieceId) {