From 2204f113710319ae6d735e3d511dd1d75d42a07d Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 10 Jun 2023 13:20:04 +0200 Subject: wip --- serialize/world-impl.hpp | 3 ++- serialize/world-reader.cpp | 2 ++ serialize/world-writer.cpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'serialize') diff --git a/serialize/world-impl.hpp b/serialize/world-impl.hpp index fc7fe79c..f6e856f5 100644 --- a/serialize/world-impl.hpp +++ b/serialize/world-impl.hpp @@ -27,6 +27,7 @@ * 12) Don't write entity name twice. * 13) Entity counter initialized to 1024. * 14) Always store entity offset, rework how sc_exact works. + * 15) Add light alpha. */ namespace floormat { @@ -47,7 +48,7 @@ template constexpr inline T int_max = std::numeric_limits::max(); #define file_magic ".floormat.save" -constexpr inline proto_t proto_version = 14; +constexpr inline proto_t proto_version = 15; constexpr inline size_t atlas_name_max = 128; constexpr inline auto null_atlas = (atlasid)-1LL; diff --git a/serialize/world-reader.cpp b/serialize/world-reader.cpp index 170f9c97..c6b23999 100644 --- a/serialize/world-reader.cpp +++ b/serialize/world-reader.cpp @@ -344,6 +344,8 @@ void reader_state::read_chunks(reader_t& s) s >> proto.max_distance; for (auto i = 0uz; i < 3; i++) s >> proto.color[i]; + if (PROTO >= 15) [[likely]] + s >> proto.color[3]; if (!exact) { uint16_t frame; frame << s; diff --git a/serialize/world-writer.cpp b/serialize/world-writer.cpp index 5620c782..86f05b91 100644 --- a/serialize/world-writer.cpp +++ b/serialize/world-writer.cpp @@ -419,7 +419,7 @@ void writer_state::serialize_scenery(const chunk& c, writer_t& s) } { s << L.max_distance; - for (auto i = 0uz; i < 3; i++) + for (auto i = 0uz; i < 4; i++) s << L.color[i]; } if (!exact) -- cgit v1.2.3