summaryrefslogtreecommitdiffhomepage
path: root/src/world.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/world.hpp')
-rw-r--r--src/world.hpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/world.hpp b/src/world.hpp
index 88927166..6bb85a18 100644
--- a/src/world.hpp
+++ b/src/world.hpp
@@ -43,7 +43,6 @@ private:
explicit world(size_t capacity);
- void do_make_object(const std::shared_ptr<object>& e, global_coords pos, bool sorted);
void do_kill_object(object_id id);
std::shared_ptr<object> find_object_(object_id id);
[[noreturn]] static void throw_on_wrong_object_type(object_id id, object_type actual, object_type expected);
@@ -86,6 +85,12 @@ public:
do_make_object(static_pointer_cast<object>(ret), pos, sorted);
return ret;
}
+ void do_make_object(const std::shared_ptr<object>& e, global_coords pos, bool sorted);
+
+ template<typename T, typename... Xs> std::shared_ptr<object> make_unconnected_object(Xs&&... xs)
+ {
+ return std::shared_ptr<T>(new T{0, operator[](chunk_coords_{}), {}, Utility::forward<Xs>(xs)...});
+ }
template<typename T = object> std::shared_ptr<T> find_object(object_id id);