summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/world.cpp2
-rw-r--r--src/world.hpp4
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)