From 889d2c0c0933cf2fd9e068b1d2b79eb936b29b58 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 2 Dec 2022 14:44:32 +0100 Subject: src, serialize: work on pass mode 1. add one more value to the enum 2. serialize it properly in binary 3. serialize it as string in json --- serialize/world-reader.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'serialize/world-reader.cpp') diff --git a/serialize/world-reader.cpp b/serialize/world-reader.cpp index b6cf8839..b0e14254 100644 --- a/serialize/world-reader.cpp +++ b/serialize/world-reader.cpp @@ -53,8 +53,7 @@ template bool read_scenery_flags(binary_reader& s, scenery& sc) { std::uint8_t flags; flags << s; - sc.passable = !!(flags & 1 << 0); - sc.blocks_view = !!(flags & 1 << 1); + sc.passability = pass_mode(flags & pass_mask); sc.active = !!(flags & 1 << 2); sc.closing = !!(flags & 1 << 3); sc.interactive = !!(flags & 1 << 4); @@ -148,7 +147,7 @@ void reader_state::read_chunks(reader_t& s) return { atlas, v }; }; - t.pass_mode() = pass_mode(flags & pass_mask); + t.passability() = pass_mode(flags & pass_mask); if (flags & meta_ground) t.ground() = make_atlas(); if (flags & meta_wall_n) @@ -179,13 +178,13 @@ void reader_state::read_chunks(reader_t& s) switch (auto x = pass_mode(flags & pass_mask)) { - case pass_shoot_through: - case pass_blocked: - case pass_ok: - t.pass_mode() = x; + case pass_mode::shoot_through: + case pass_mode::blocked: + case pass_mode::pass: + t.passability() = x; break; default: [[unlikely]] - fm_throw("bad pass mode '{}' for tile {}"_cf, i, x); + fm_throw("bad pass mode '{}' for tile {}"_cf, i, pass_mode_(x)); } } } -- cgit v1.2.3