修复宕机问题

This commit is contained in:
aozhiwei 2019-07-20 11:08:04 +08:00
parent d3c0203c59
commit d9836f86a3
3 changed files with 14 additions and 0 deletions

View File

@ -6,6 +6,7 @@
#include "building.h"
#include "human.h"
#include "app.h"
#include "mapservice.h"
Entity::Entity()
{
@ -191,3 +192,12 @@ void Entity::NotifyDelObject()
}
}
}
void Entity::RemoveFromMapService()
{
if (room) {
for (ColliderComponent* collider : colliders) {
room->map_service.RemoveCollider(collider);
}
}
}

View File

@ -48,6 +48,7 @@ class Entity
void BroadcastDeleteState();
void AddCollider(ColliderComponent* collider);
void NotifyDelObject();
void RemoveFromMapService();
private:
std::list<ColliderComponent*> colliders;

View File

@ -598,6 +598,9 @@ void Room::RemoveObjectLater(Entity* entity)
break;
case ET_Obstacle:
{
entity->BroadcastDeleteState();
entity->room->grid_service.DelEntity(entity);
entity->RemoveFromMapService();
}
break;
default: