From: Ian Jackson Date: Sat, 3 Apr 2021 17:23:18 +0000 (+0100) Subject: organise: Use new *Quiet for moving the pieces into place X-Git-Tag: otter-0.5.0~232 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=cdd133542d29dc134b2b4b9ea2b382801006bac4;p=otter.git 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 --- 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)=>{