summaryrefslogtreecommitdiffhomepage
path: root/src/object.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2024-04-13 17:42:30 +0200
committerStanislaw Halik <sthalik@misaki.pl>2024-04-13 17:42:30 +0200
commit2260ab972100f1d6679690b730b6f0aa7409b014 (patch)
tree18386a59968c1e7933db702281fc13fe62ff9b1e /src/object.cpp
parentcb13eb86db3593e723ce06c48a5cb2c94505d6ae (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.cpp9
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);