clean up some cases where pooled objects weren't being freed

This commit is contained in:
Gered 2013-09-14 13:59:13 -04:00
parent 14e58aad5e
commit 79b027b024

View file

@ -118,8 +118,10 @@ public class EntityManager implements Disposable {
} }
public void removeAll() { public void removeAll() {
for (Entity i : entities) for (Entity i : entities) {
removeAllComponentsFrom(i); removeAllComponentsFrom(i);
entityPool.free(i);
}
entities.clear(); entities.clear();
} }
@ -257,6 +259,9 @@ public class EntityManager implements Disposable {
for (ObjectMap.Entry<Class<? extends Component>, ObjectMap<Entity, Component>> i : componentStore.entries()) { for (ObjectMap.Entry<Class<? extends Component>, ObjectMap<Entity, Component>> i : componentStore.entries()) {
ObjectMap<Entity, Component> entitiesWithComponent = i.value; ObjectMap<Entity, Component> entitiesWithComponent = i.value;
Component component = entitiesWithComponent.get(entity);
if (component != null)
Pools.free(component);
entitiesWithComponent.remove(entity); entitiesWithComponent.remove(entity);
} }
} }