about summary refs log tree commit diff
path: root/src/game
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-08-05 15:42:48 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-08-05 15:42:48 +0000
commit9abbb0899b3770d29937c5b761a09d0ce42ed76b (patch)
treee17d37ab77b1572a0168d97eadc11503941983b3 /src/game
parent6ec3e70babf3d54191b989dee9cd2496788cab60 (diff)
downloadzcatch-9abbb0899b3770d29937c5b761a09d0ce42ed76b.tar.gz
zcatch-9abbb0899b3770d29937c5b761a09d0ce42ed76b.zip
added safty checks to the server
Diffstat (limited to 'src/game')
-rw-r--r--src/game/server/game_server.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/game/server/game_server.cpp b/src/game/server/game_server.cpp
index b05b7d75..1d6b101f 100644
--- a/src/game/server/game_server.cpp
+++ b/src/game/server/game_server.cpp
@@ -316,6 +316,10 @@ void game_world::destroy_entity(entity *ent)
 
 void game_world::remove_entity(entity *ent)
 {
+	// not in the list
+	if(!ent->next_entity && !ent->prev_entity && first_entity != ent)
+		return;
+	
 	// remove
 	if(ent->prev_entity)
 		ent->prev_entity->next_entity = ent->next_entity;
@@ -330,6 +334,11 @@ void game_world::remove_entity(entity *ent)
 		first_entity_types[ent->objtype] = ent->next_type_entity;
 	if(ent->next_type_entity)
 		ent->next_type_entity->prev_type_entity = ent->prev_type_entity;
+		
+	ent->next_entity = 0;
+	ent->prev_entity = 0;
+	ent->next_type_entity = 0;
+	ent->prev_type_entity = 0;
 }
 
 //