From cdd133542d29dc134b2b4b9ea2b382801006bac4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 3 Apr 2021 18:23:18 +0100 Subject: [PATCH] organise: Use new *Quiet for moving the pieces into place This means that when you organise your own hand you don't see lots of yellow stuff. Others still see that and may need to clear it somehow. Signed-off-by: Ian Jackson --- src/organise.rs | 4 ++-- src/pcrender.rs | 2 +- src/updates.rs | 10 ++++++++++ templates/script.ts | 11 +++++++++++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/organise.rs b/src/organise.rs index 9914f5a3..f7979546 100644 --- a/src/organise.rs +++ b/src/organise.rs @@ -288,8 +288,8 @@ pub fn ui_operation(a: &mut ApiPieceOpArgs<'_>, opname: &str, want_let!{ Some(gpc) = gs.pieces.get_mut(piece); else continue; } gpc.pos = pos; gpc.zlevel = zlevel; - updates.push((piece, PUOs::Simple(PUO::Move(pos)))); - updates.push((piece, PUOs::Simple(PUO::SetZLevel(())))); + updates.push((piece, PUOs::Simple(PUO::MoveQuiet(pos)))); + updates.push((piece, PUOs::Simple(PUO::SetZLevelQuiet(())))); } updates diff --git a/src/pcrender.rs b/src/pcrender.rs index 2e1fa00d..44fdec36 100644 --- a/src/pcrender.rs +++ b/src/pcrender.rs @@ -90,7 +90,7 @@ impl PieceRenderInstructions { use PriOG::*; if matches_doesnot!( op, - = Move(_) | SetZLevel(_), + = Move(_) | MoveQuiet(_) | SetZLevel(_) | SetZLevelQuiet(_), ! Delete() | Insert(_) | Modify(_) | ModifyQuiet(_), ) { match self.occulted { diff --git a/src/updates.rs b/src/updates.rs index f36d942b..bbefa6c2 100644 --- a/src/updates.rs +++ b/src/updates.rs @@ -163,7 +163,9 @@ pub enum PieceUpdateOp { Modify(NS), ModifyQuiet(NS), Move(Pos), + MoveQuiet(Pos), SetZLevel(ZL), + SetZLevelQuiet(ZL), } pub type UpdateFromOpComplex = ( @@ -475,7 +477,9 @@ impl PieceUpdateOp { Modify(ns) => Some(ns), ModifyQuiet(ns) => Some(ns), Move(_) => None, + MoveQuiet(_) => None, SetZLevel(_) => None, + SetZLevelQuiet(_) => None, } } pub fn try_map PieceUpdateOp { Modify(ns) => Modify(f(ns)?), ModifyQuiet(ns) => ModifyQuiet(f(ns)?), Move(pos) => Move(pos), + MoveQuiet(pos) => MoveQuiet(pos), SetZLevel(zl) => SetZLevel(g(zl)?), + SetZLevelQuiet(zl) => SetZLevelQuiet(g(zl)?), }) } pub fn map_ref(&self) -> PieceUpdateOp<&NS,&ZC> { @@ -501,7 +507,9 @@ impl PieceUpdateOp { Modify(ns) => Modify(ns), ModifyQuiet(ns) => ModifyQuiet(ns), Move(pos) => Move(*pos), + MoveQuiet(pos) => MoveQuiet(*pos), SetZLevel(zl) => SetZLevel(zl), + SetZLevelQuiet(zl) => SetZLevelQuiet(zl), } } pub fn map PieceUpdateOp { Modify(_) => None, ModifyQuiet(_) => None, Move(_) => None, + MoveQuiet(_) => None, SetZLevel(l) => Some(l.borrow().zg), + SetZLevelQuiet(l) => Some(l.borrow().zg), } } } diff --git a/templates/script.ts b/templates/script.ts index 81779308..c92f13cf 100644 --- a/templates/script.ts +++ b/templates/script.ts @@ -1408,12 +1408,23 @@ pieceops.Move = function piece_set_pos_core(p, info[0], info[1]); } +pieceops.MoveQuiet = function +(piece,p, info: Pos ) { + piece_checkconflict_nrda(piece,p,false); + piece_set_pos_core(p, info[0], info[1]); +} + pieceops.SetZLevel = function (piece,p, info: { z: ZCoord, zg: Generation }) { piece_note_moved(piece,p); piece_set_zlevel_from(piece,p,info); } +pieceops.SetZLevelQuiet = function +(piece,p, info: { z: ZCoord, zg: Generation }) { + piece_set_zlevel_from(piece,p,info); +} + function piece_set_zlevel_from(piece: PieceId, p: PieceInfo, info: { z: ZCoord, zg: Generation }) { piece_set_zlevel(piece,p, (oldtop_piece)=>{ -- 2.30.2