diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2024-04-13 17:42:30 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-04-13 17:42:30 +0200 |
commit | 2260ab972100f1d6679690b730b6f0aa7409b014 (patch) | |
tree | 18386a59968c1e7933db702281fc13fe62ff9b1e /src/object.cpp | |
parent | cb13eb86db3593e723ce06c48a5cb2c94505d6ae (diff) |
instantiate scenery in a uniform manner
Now using world::make_scenery().
Add `std::monostate` to the `scenery_proto` variant to catch potential
bugs.
Diffstat (limited to 'src/object.cpp')
-rw-r--r-- | src/object.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/object.cpp b/src/object.cpp index 03491de3..cd883795 100644 --- a/src/object.cpp +++ b/src/object.cpp @@ -43,10 +43,12 @@ constexpr inline Pair<int, int8_t> normalize_coord(const int8_t cur, const int n } // namespace bool object_proto::operator==(const object_proto&) const = default; -object_proto& object_proto::operator=(const object_proto&) = default; +object_proto::object_proto(const object_proto&) noexcept = default; +object_proto& object_proto::operator=(const object_proto&) noexcept = default; +object_proto::object_proto(object_proto&&) noexcept = default; +object_proto& object_proto::operator=(object_proto&&) noexcept = default; object_proto::~object_proto() noexcept = default; -object_proto::object_proto() = default; -object_proto::object_proto(const object_proto&) = default; +object_proto::object_proto() noexcept = default; object_type object_proto::type_of() const noexcept { return type; } object::object(object_id id, class chunk& c, const object_proto& proto) : @@ -90,6 +92,7 @@ float object::ordinal(local_coords xy, Vector2b offset, Vector2s z_offset) const size_t object::index() const { auto& c = chunk(); + fm_assert(c._objects_sorted); const auto fn = [id = id](const auto& a, const auto&) { return a->id < id; }; auto& es = c._objects; auto it = std::lower_bound(es.cbegin(), es.cend(), nullptr, fn); |