chiark / gitweb /
Provide desc even in piece updates, and note in script.ts
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 1 May 2022 18:17:38 +0000 (19:17 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 1 May 2022 18:39:26 +0000 (19:39 +0100)
This has always been provided, properly occulted, during session load,
but not provided in updates.  And all this time I have been writing
JS-generated log messages under the assumption that the JS can't
describe pieces.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/pcrender.rs
src/updates.rs
templates/script.ts

index 44bcbb7b51b404f98d112e6dd00cc533ed76b4ae..4c55c1e2a020d0ff5b20762701b172735c57f616 100644 (file)
@@ -128,8 +128,9 @@ impl PieceRenderInstructions {
     let occregion = gpc.occult.active_region(&gs.occults)?
       .map(|r| JsonString(r.clone()));
     let (svg, bbox) = pri.make_svg_defs(ioccults, gs, gpc, ipc)?;
+    let desc = pri.describe(ioccults,&gs.occults, gpc, ipc);
     let r = PreparedPieceState {
-      pos, svg, occregion, bbox,
+      pos, svg, desc, occregion, bbox,
       held       : gpc.held,
       z          : zlevel.z.clone(),
       zg         : zlevel.zg,
@@ -151,8 +152,9 @@ impl PieceRenderInstructions {
                          -> PreparedPieceImage {
     let pri = self;
     let (svg, bbox) = pri.make_svg_defs(ioccults, gs, gpc, ipc)?;
+    let desc = pri.describe(ioccults, &gs.occults, gpc, ipc);
     let r = PreparedPieceImage {
-      svg, bbox,
+      svg, desc, bbox,
       uos: pri.ui_operations(gs, gpc, ipc)?,
     };
     trace_dbg!("prep_pieceimage", pri, ipc, gpc, r);
index 20d8cd94ba0d8227e94760d13c968cf97a5ed30f..f6eba394f8cfa7ce72717825c68522e5a2ff5075 100644 (file)
@@ -113,6 +113,7 @@ pub struct PreparedPieceUpdateGeneral<U> {
 pub struct PreparedPieceState {
   pub pos: Pos,
   pub svg: Html,
+  pub desc: Html,
   pub facehint: Option<FaceId>,
   pub held: Option<PlayerId>,
   pub z: ZCoord,
@@ -139,6 +140,7 @@ impl Default for PieceMoveable { fn default() -> Self { PieceMoveable::Yes } }
 #[derive(Debug,Clone,Serialize)]
 pub struct PreparedPieceImage {
   pub svg: Html,
+  pub desc: Html,
   pub bbox: Rect,
   pub uos: Vec<UoDescription>,
 }
index e95f994d28057eb09f4f0443b8124da046fd29d0..982870db7e4e448cee9af7c19674c582b509b5ab 100644 (file)
@@ -81,6 +81,7 @@ type PieceInfo = {
   moveable: PieceMoveable,
   rotateable: boolean,
   multigrab: boolean,
+  desc: string,
   uos : UoDescription[],
   uelem : SVGGraphicsElement,
   delem : SVGGraphicsElement,
@@ -1778,6 +1779,7 @@ messages.Piece = <MessageHandler>handle_piece_update;
 type PreparedPieceState = {
   pos: Pos,
   svg: string,
+  desc: string,
   held: PlayerId | null,
   z: ZCoord,
   zg: Generation,
@@ -1860,6 +1862,7 @@ function piece_modify_image(piece: PieceId, p: PieceInfo,
   p.pelem= piece_element('piece',piece)!;
   p.uos = info.uos;
   p.bbox = info.bbox;
+  p.desc = info.desc;
   piece_resolve_special(piece, p);
 }
 
@@ -1939,6 +1942,7 @@ function redisplay_held_ancillaries() {
 
 type PreparedPieceImage = {
   svg: string,
+  desc: string,
   uos: UoDescription[],
   bbox: Rect,
 }