diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/world.cpp | 2 | ||||
-rw-r--r-- | src/world.hpp | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/world.cpp b/src/world.cpp index 7e9ec86a..2c8db38b 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -155,6 +155,8 @@ void world::collect(bool force) void world::do_make_object(const std::shared_ptr<object>& e, global_coords pos, bool sorted) { fm_assert(e->id > 0); + fm_debug_assert(e->c); + fm_debug_assert(pos.chunk3() == e->c->coord()); fm_debug_assert(_unique_id && e->c->world()._unique_id == _unique_id); fm_assert(e->type() != object_type::none); const_cast<global_coords&>(e->coord) = pos; diff --git a/src/world.hpp b/src/world.hpp index 7f2eab48..0a15cb03 100644 --- a/src/world.hpp +++ b/src/world.hpp @@ -80,13 +80,13 @@ public: T{object_id(), c, std::declval<Xs&&>()...}; std::is_base_of_v<object, T>; } - std::shared_ptr<T> make_object(object_id id, global_coords pos, Xs&&... xs) + std::shared_ptr<T> make_object(object_id id, global_coords pos, Xs&&... xs) // todo! replace 2nd arg with chunk& { auto ret = std::shared_ptr<T>(new T{id, operator[](pos.chunk3()), forward<Xs>(xs)...}); do_make_object(std::static_pointer_cast<object>(ret), pos, sorted); return ret; } - void do_make_object(const std::shared_ptr<object>& e, global_coords pos, bool sorted); + void do_make_object(const std::shared_ptr<object>& e, global_coords pos, bool sorted); // todo! replace 2nd arg with chunk& #if 0 template<typename T, typename... Xs> std::shared_ptr<object> make_unconnected_object(Xs&&... xs) |