chiark / gitweb /
shapelib: Fix a backward incompatible itemname field
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 25 May 2022 23:46:30 +0000 (00:46 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 25 May 2022 23:46:30 +0000 (00:46 +0100)
This is a bit of a bodge, but it will work right for existing games.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/shapelib.rs

index 669b393d460098fc5261f7de27ccbde51c0b7fc4..10661a46c414c29d2b0361d86ed95828472f8ce0 100644 (file)
@@ -217,7 +217,7 @@ pub struct Item {
 
 #[derive(Debug,Serialize,Deserialize)]
 struct ItemInertForOcculted {
-  itemname: GoodItemName,
+  #[serde(default="dummy_item_name")] itemname: GoodItemName,
   desc: Html,
   svgd: Html,
   xform: FaceTransform,
@@ -283,6 +283,15 @@ impl InertPieceTrait for ItemInertForOcculted {
   fn describe_html(&self, _: FaceId) -> Html { self.desc.clone() }
 }
 
+fn dummy_item_name() -> GoodItemName {
+  "".to_string().try_into().unwrap()
+}
+
+#[test]
+fn test_dummy_item_name() {
+  let _ = dummy_item_name();
+}
+
 //---------- ItemEnquiryData, LibraryEnquiryData ----------
 
 #[derive(Debug,Clone,Serialize,Deserialize,Eq,PartialEq,Ord,PartialOrd)]