修复宕机问题
This commit is contained in:
parent
d3c0203c59
commit
d9836f86a3
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ class Entity
|
||||
void BroadcastDeleteState();
|
||||
void AddCollider(ColliderComponent* collider);
|
||||
void NotifyDelObject();
|
||||
void RemoveFromMapService();
|
||||
|
||||
private:
|
||||
std::list<ColliderComponent*> colliders;
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user