diff options
Diffstat (limited to 'serialize')
-rw-r--r-- | serialize/world-impl.hpp | 3 | ||||
-rw-r--r-- | serialize/world-reader.cpp | 2 | ||||
-rw-r--r-- | serialize/world-writer.cpp | 2 |
3 files changed, 5 insertions, 2 deletions
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<typename T> constexpr inline T int_max = std::numeric_limits<T>::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) |