From 7d8f9472d89cd275789ba28831d24f95d38e96c8 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 14 Mar 2021 19:51:10 +0000 Subject: [PATCH] hidden: Do not report moves to players seeing a Displaced occultation Signed-off-by: Ian Jackson --- src/pcrender.rs | 13 +++++++++++++ src/prelude.rs | 1 + 2 files changed, 14 insertions(+) diff --git a/src/pcrender.rs b/src/pcrender.rs index 02e96ed0..08928c56 100644 --- a/src/pcrender.rs +++ b/src/pcrender.rs @@ -41,6 +41,19 @@ impl PieceRenderInstructions { op: PieceUpdateOp<(),()> ) -> Option> { + use PieceUpdateOp::*; + use PriOcculted::*; + if matches_doesnot!( + op, + = Move(_) | SetZLevel(_), + ! Delete() | Insert(_) | Modify(_) | ModifyQuiet(_), + ) { + match self.occulted { + Visible | Occulted => (), + Displaced(..) => return None, + } + } + let op = op.try_map( |()|{ let ns = self.prep_piecestate(ioccults, gpc, ipc)?; diff --git a/src/prelude.rs b/src/prelude.rs index bc6c8d5a..71722f7d 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -103,6 +103,7 @@ pub use crate::dbgc; pub use crate::{deref_to_field, deref_to_field_mut}; pub use crate::ensure_eq; pub use crate::from_instance_lock_error; +pub use crate::matches_doesnot; pub use crate::trace_dbg; pub use crate::accounts::loaded_acl::{self, EffectiveACL, LoadedAcl, PermSet}; -- 2.30.2