Daniele Bartolini 10 лет назад
Родитель
Сommit
865ec8d998
3 измененных файлов с 6 добавлено и 6 удалено
  1. 1 3
      src/world/unit_manager.cpp
  2. 3 1
      src/world/world.cpp
  3. 2 2
      src/world/world.h

+ 1 - 3
src/world/unit_manager.cpp

@@ -46,9 +46,7 @@ UnitId UnitManager::create()
 
 UnitId UnitManager::create(World& world)
 {
-	UnitId id = create();
-	world.spawn_empty_unit(id);
-	return id;
+	return world.spawn_empty_unit();
 }
 
 bool UnitManager::alive(UnitId id) const

+ 3 - 1
src/world/world.cpp

@@ -188,10 +188,12 @@ UnitId World::spawn_unit(StringId64 name, const Vector3& pos, const Quaternion&
 	return spawn_unit(*ur, pos, rot);
 }
 
-void World::spawn_empty_unit(UnitId id)
+UnitId World::spawn_empty_unit()
 {
+	UnitId id = _unit_manager->create();
 	array::push_back(_units, id);
 	post_unit_spawned_event(id);
+	return id;
 }
 
 void World::destroy_unit(UnitId id)

+ 2 - 2
src/world/world.h

@@ -30,8 +30,8 @@ public:
 	/// Spawns a new instance of the unit @a name at the given @a position and @a rotation.
 	UnitId spawn_unit(StringId64 name, const Vector3& pos, const Quaternion& rot);
 
-	/// Spawns a new empty unit with the given @a id.
-	void spawn_empty_unit(UnitId id);
+	/// Spawns a new empty unit and returns its id.
+	UnitId spawn_empty_unit();
 
 	/// Destroys the unit with the given @a id.
 	void destroy_unit(UnitId id);