summaryrefslogtreecommitdiffhomepage
path: root/serialize/world-writer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'serialize/world-writer.cpp')
-rw-r--r--serialize/world-writer.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/serialize/world-writer.cpp b/serialize/world-writer.cpp
index 2860a118..6d1a0e94 100644
--- a/serialize/world-writer.cpp
+++ b/serialize/world-writer.cpp
@@ -352,7 +352,11 @@ void writer_state::serialize_chunk(const chunk& c, chunk_coords coord)
id |= meta_long_scenery_bit * sc_exact;
id |= atlasid(scenery.r) << sizeof(atlasid)*8-1-rotation_BITS;
s << id;
- if (!sc_exact || !scenery.offset.isZero())
+ if (constexpr struct scenery default_scenery;
+ !sc_exact ||
+ scenery.offset != default_scenery.offset ||
+ scenery.bbox_size != default_scenery.bbox_size ||
+ scenery.bbox_offset != default_scenery.bbox_offset)
{
fm_assert(scenery.active || scenery.delta == 0);
write_scenery_flags(s, scenery);
@@ -363,6 +367,12 @@ void writer_state::serialize_chunk(const chunk& c, chunk_coords coord)
s << scenery.offset[0];
s << scenery.offset[1];
+ s << scenery.bbox_size[0];
+ s << scenery.bbox_size[1];
+
+ s << scenery.bbox_offset[0];
+ s << scenery.bbox_offset[1];
+
if (scenery.active)
s << scenery.delta;
}