about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/game/server/entities/character.cpp1
-rw-r--r--src/game/server/gamemodes/ctf.cpp7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp
index 18db9e3b..88fa3ffa 100644
--- a/src/game/server/entities/character.cpp
+++ b/src/game/server/entities/character.cpp
@@ -601,6 +601,7 @@ void CHARACTER::tick()
 	core.input = input;
 	core.tick(true);
 	
+	// handle death-tiles
 	if(col_get((int)pos.x, (int)pos.y)&COLFLAG_DEATH)
 		die(player->client_id, -1);
 
diff --git a/src/game/server/gamemodes/ctf.cpp b/src/game/server/gamemodes/ctf.cpp
index 6e5d1e45..0ef82df8 100644
--- a/src/game/server/gamemodes/ctf.cpp
+++ b/src/game/server/gamemodes/ctf.cpp
@@ -73,6 +73,13 @@ void GAMECONTROLLER_CTF::tick()
 		if(!f)
 			continue;
 		
+		// flag hits death-tile, reset it
+		if(col_get((int)f->pos.x, (int)f->pos.y)&COLFLAG_DEATH)
+		{
+			f->reset();
+			continue;
+		}
+		
 		//
 		if(f->carrying_character)
 		{