From 8b67a492f459a47a1d2eeebc852c9741a77708d5 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 17 Jan 2024 10:59:44 +0100 Subject: a --- serialize/packbits-read.cpp | 9 --------- serialize/packbits-write.cpp | 2 +- serialize/scenery.hpp | 1 - serialize/wall-atlas.cpp | 13 +++++++------ serialize/wall-atlas.hpp | 3 ++- serialize/world-reader.cpp | 2 +- serialize/world-writer.cpp | 12 +++++------- 7 files changed, 16 insertions(+), 26 deletions(-) (limited to 'serialize') diff --git a/serialize/packbits-read.cpp b/serialize/packbits-read.cpp index 9980ca63..cc3fc3bd 100644 --- a/serialize/packbits-read.cpp +++ b/serialize/packbits-read.cpp @@ -2,15 +2,6 @@ #include "compat/assert.hpp" #include "compat/exception.hpp" -namespace floormat::Pack_impl { - -void throw_on_read_nonzero() noexcept(false) -{ - throw std::runtime_error{"extra bits in pack_read()"}; -} - -} // namespace floormat::Pack_impl - namespace floormat { using namespace floormat::Pack_impl; diff --git a/serialize/packbits-write.cpp b/serialize/packbits-write.cpp index f485a72e..f261abe5 100644 --- a/serialize/packbits-write.cpp +++ b/serialize/packbits-write.cpp @@ -33,7 +33,7 @@ static_assert(pack_write(std::tuple{f8<2>{0b10}, f8<3>{0b011}, f8<3>{0b01}}) == //static_assert(pack_write(std::tuple{}) == 0); static_assert(pack_write(std::tuple{f8<1>{0b1}, f8<3>{0b101}, f8<2>{0b10}}) == 0b101011); -#if 0 // check disasembly +#if 0 // check disassembly u32 foo1(u32 a, u32 b, u32 c); u32 foo1(u32 a, u32 b, u32 c) { diff --git a/serialize/scenery.hpp b/serialize/scenery.hpp index f3ceb586..93ceeb57 100644 --- a/serialize/scenery.hpp +++ b/serialize/scenery.hpp @@ -1,6 +1,5 @@ #pragma once #include "src/scenery.hpp" -#include #include #include diff --git a/serialize/wall-atlas.cpp b/serialize/wall-atlas.cpp index 0ba1c297..b2e7c2f5 100644 --- a/serialize/wall-atlas.cpp +++ b/serialize/wall-atlas.cpp @@ -5,6 +5,7 @@ #include "loader/loader.hpp" #include "pass-mode.hpp" #include "json-helper.hpp" +#include "corrade-array.hpp" #include #include #include @@ -42,7 +43,7 @@ namespace { struct direction_triple { - std::vector array; + Array array; std::array map; std::bitset mask; }; @@ -53,7 +54,7 @@ direction_triple read_all_directions(const json& jroot) for (auto [str, _] : wall_atlas::directions) if (jroot.contains(str)) count++; - direction_triple ret = { std::vector{count}, + direction_triple ret = { Array{count}, std::array{}, std::bitset{0}, }; auto& [array, map, mask] = ret; @@ -108,7 +109,7 @@ wall_atlas_def wall_atlas_def::deserialize(StringView filename) fm_soft_assert(loader.check_atlas_name(atlas.header.name)); atlas.frames = read_all_frames(jroot); auto [dirs, dir_indexes, mask] = read_all_directions(jroot); - fm_soft_assert(!dirs.empty()); + fm_soft_assert(!dirs.isEmpty()); fm_soft_assert(dir_indexes != std::array{}); atlas.direction_array = std::move(dirs); atlas.direction_map = dir_indexes; @@ -155,17 +156,17 @@ void wall_atlas::serialize(StringView filename) const namespace floormat::Wall::detail { -std::vector read_all_frames(const json& jroot) +Array read_all_frames(const json& jroot) { if (!jroot.contains("frames")) return {}; - std::vector frames; + Array frames; const auto& jframes = jroot["frames"]; fm_assert(jframes.is_array()); const auto sz = jframes.size(); - frames = std::vector{sz}; + frames = Array{sz}; for (auto i = 0uz; i < sz; i++) { diff --git a/serialize/wall-atlas.hpp b/serialize/wall-atlas.hpp index e7e553ce..1381591d 100644 --- a/serialize/wall-atlas.hpp +++ b/serialize/wall-atlas.hpp @@ -2,13 +2,14 @@ #include "src/wall-atlas.hpp" #include #include +#include #include namespace floormat::Wall::detail { using nlohmann::json; -[[nodiscard]] std::vector read_all_frames(const json& jroot); +[[nodiscard]] Array read_all_frames(const json& jroot); [[nodiscard]] Group read_group_metadata(const json& jgroup); [[nodiscard]] Direction read_direction_metadata(const json& jroot, Direction_ dir); Info read_info_header(const json& jroot); diff --git a/serialize/world-reader.cpp b/serialize/world-reader.cpp index 366648d5..ac247553 100644 --- a/serialize/world-reader.cpp +++ b/serialize/world-reader.cpp @@ -24,7 +24,7 @@ using namespace floormat::Serialize; constexpr inline atlasid meta_short_scenery_bit_ = highbits; constexpr inline atlasid meta_rotation_bits_ = highbits; constexpr inline atlasid scenery_id_flag_mask_ = meta_short_scenery_bit_ | meta_rotation_bits_; -constexpr inline atlasid scenery_id_max_ = int_max & ~scenery_id_flag_mask_; +constexpr inline atlasid scenery_id_max_ = int_traits::max & ~scenery_id_flag_mask_; struct reader_state final { explicit reader_state(world& world) noexcept; diff --git a/serialize/world-writer.cpp b/serialize/world-writer.cpp index fd533cee..649c1e9f 100644 --- a/serialize/world-writer.cpp +++ b/serialize/world-writer.cpp @@ -6,7 +6,6 @@ #include "src/global-coords.hpp" #include "src/chunk.hpp" #include "src/world.hpp" -#include "src/emplacer.hpp" #include "loader/loader.hpp" #include "src/scenery.hpp" #include "src/critter.hpp" @@ -15,7 +14,6 @@ #include "src/light.hpp" #include "compat/strerror.hpp" #include -#include #include #include #include @@ -210,12 +208,12 @@ void write_object_flags(binary_writer& s, const U& e) void writer_state::serialize_atlases() { - fm_assert(tile_images.size() < int_max); + fm_assert(tile_images.size() < int_traits::max); const auto sz = (atlasid)tile_images.size(); const auto atlasbuf_size = sizeof(sz) + atlas_name_max*sz; atlas_buf.resize(atlasbuf_size); auto s = binary_writer{atlas_buf.begin()}; - fm_assert(sz <= int_max); + fm_assert(sz <= int_traits::max); s << sz; @@ -241,7 +239,7 @@ void writer_state::serialize_atlases() } constexpr auto atlasbuf_size0 = sizeof(atlasid) + sizeof(scenery); -constexpr auto atlasbuf_size1 = sizeof(uint8_t) + atlasbuf_size0*int_max + atlas_name_max; +constexpr auto atlasbuf_size1 = sizeof(uint8_t) + atlasbuf_size0*int_traits::max + atlas_name_max; void writer_state::serialize_scenery_names() { @@ -284,7 +282,7 @@ void writer_state::serialize_scenery_names() auto num = 1uz; for (auto j = i+1; j < sz && vec[j].s->name == sc->name; j++) num++; - fm_assert(num < int_max); + fm_assert(num < int_traits::max); s << (uint8_t)num; fm_assert(sc->name.size() < atlas_name_max); s.write_asciiz_string(sc->name); @@ -564,7 +562,7 @@ ArrayView writer_state::serialize_world() serialize_strings(); using proto_t = std::decay_t; - fm_assert(_world->size() <= int_max); + fm_assert(_world->size() <= int_traits::max); const auto len = fm_begin( auto len = 0uz; -- cgit v1.2.3