chiark / gitweb /
organise: Use new *Quiet for moving the pieces into place
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 3 Apr 2021 17:23:18 +0000 (18:23 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 4 Apr 2021 19:07:53 +0000 (20:07 +0100)
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 <ijackson@chiark.greenend.org.uk>
src/organise.rs
src/pcrender.rs
src/updates.rs
templates/script.ts

index 9914f5a34bb8219d80e89dd6e55a991a230ed0ea..f7979546f060627cc182f8e8434a0411b964f7a8 100644 (file)
@@ -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
index 2e1fa00d5ee02bc0c7bf589c2aa5fa2a232a88bc..44fdec36bc1feff97c09b2f8a9387baa32bba6ec 100644 (file)
@@ -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 {
index f36d942be62e3dc16eb7ed0974794f4f5da2742a..bbefa6c21348336dbd683fcd8c16be4d59aef7be 100644 (file)
@@ -163,7 +163,9 @@ pub enum PieceUpdateOp<NS,ZL> {
   Modify(NS),
   ModifyQuiet(NS),
   Move(Pos),
+  MoveQuiet(Pos),
   SetZLevel(ZL),
+  SetZLevelQuiet(ZL),
 }
 
 pub type UpdateFromOpComplex = (
@@ -475,7 +477,9 @@ impl<NS,ZC> PieceUpdateOp<NS,ZC> {
       Modify(ns) => Some(ns),
       ModifyQuiet(ns) => Some(ns),
       Move(_) => None,
+      MoveQuiet(_) => None,
       SetZLevel(_) => None,
+      SetZLevelQuiet(_) => None,
     }
   }
   pub fn try_map<NS2, ZC2, E:Error,
@@ -490,7 +494,9 @@ impl<NS,ZC> PieceUpdateOp<NS,ZC> {
       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<NS,ZC> PieceUpdateOp<NS,ZC> {
       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<NS2,ZC2,
@@ -524,7 +532,9 @@ impl<NS,ZC> PieceUpdateOp<NS,ZC> {
       Modify(_) => None,
       ModifyQuiet(_) => None,
       Move(_) => None,
+      MoveQuiet(_) => None,
       SetZLevel(l) => Some(l.borrow().zg),
+      SetZLevelQuiet(l) => Some(l.borrow().zg),
     }
   }
 }
index 81779308c1f1ec000eea4a8e968b247fa3326e12..c92f13cfae975025236a1e56caf56b2cb9a15a64 100644 (file)
@@ -1408,12 +1408,23 @@ pieceops.Move = <PieceHandler>function
   piece_set_pos_core(p, info[0], info[1]);
 }
 
+pieceops.MoveQuiet = <PieceHandler>function
+(piece,p, info: Pos ) {
+  piece_checkconflict_nrda(piece,p,false);
+  piece_set_pos_core(p, info[0], info[1]);
+}
+
 pieceops.SetZLevel = <PieceHandler>function
 (piece,p, info: { z: ZCoord, zg: Generation }) {
   piece_note_moved(piece,p);
   piece_set_zlevel_from(piece,p,info);
 }
 
+pieceops.SetZLevelQuiet = <PieceHandler>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)=>{