diff --git a/src/game/server/gamemodes/ctf.cpp b/src/game/server/gamemodes/ctf.cpp index 0ef82df85..90c77515e 100644 --- a/src/game/server/gamemodes/ctf.cpp +++ b/src/game/server/gamemodes/ctf.cpp @@ -115,7 +115,8 @@ void GAMECONTROLLER_CTF::tick() int num = game.world.find_entities(f->pos, 32.0f, (ENTITY**)close_characters, MAX_CLIENTS, NETOBJTYPE_CHARACTER); for(int i = 0; i < num; i++) { - if(close_characters[i]->team == f->team) + int collision = col_intersect_line(f->pos, close_characters[i]->pos, NULL); + if(!collision && close_characters[i]->team == f->team) { // return the flag if(!f->at_stand) @@ -131,7 +132,7 @@ void GAMECONTROLLER_CTF::tick() f->reset(); } } - else + else if(!collision) { // take the flag if(f->at_stand)