diff --git a/source/src/client.cpp b/source/src/client.cpp index b08d7196..350d2018 100644 --- a/source/src/client.cpp +++ b/source/src/client.cpp @@ -62,7 +62,7 @@ int smallerteam() int teamsize[2] = {0, 0}; loopv(players) if(players[i]) teamsize[team_int(players[i]->team)]++; teamsize[team_int(player1->team)]++; - if(teamsize[0] == teamsize[0]) return -1; + if(teamsize[0] == teamsize[1]) return -1; return teamsize[0] < teamsize[1] ? 0 : 1; }; @@ -89,10 +89,10 @@ void newteam(char *name) // save team changing if(strcmp(name, player1->team)) { int team = team_int(name); - if(team != freeteam) + if(checkteamsize && team != freeteam) { conoutf("\f3the %s team is already full", name); - return; + return; }; changeteam(team); } @@ -100,7 +100,8 @@ void newteam(char *name) // save team changing } else changeteam(checkteamsize ? (uint)freeteam : rnd(2)); // random assignement } - else { c2sinit = false; s_strncpy(player1->team, name, MAXTEAMLEN+1); }; + else return; + //else { c2sinit = false; s_strncpy(player1->team, name, MAXTEAMLEN+1); }; } else conoutf("your team is: %s", player1->team); }; diff --git a/source/src/clientgame.cpp b/source/src/clientgame.cpp index 57ebedf1..fb39910a 100644 --- a/source/src/clientgame.cpp +++ b/source/src/clientgame.cpp @@ -566,7 +566,6 @@ void preparectf(bool cleanonly=false) f.originalpos.z = (float) e.z; }; }; - newteam(player1->team); // ensure valid team }; }; @@ -589,6 +588,7 @@ void startmap(char *name) // called just after a map load spawnplayer(player1); player1->frags = 0; player1->flagscore = 0; + if(m_teammode) newteam(player1->team); // ensure valid team loopv(players) if(players[i]) players[i]->frags = players[i]->flagscore = 0; s_strcpy(clientmap, name); if(editmode) toggleedit(); diff --git a/source/src/weapon.cpp b/source/src/weapon.cpp index e2af91b9..a34f6819 100644 --- a/source/src/weapon.cpp +++ b/source/src/weapon.cpp @@ -240,11 +240,6 @@ void newprojectile(vec &from, vec &to, float speed, bool local, playerent *owner void hit(int target, int damage, playerent *d, playerent *at, bool gib=false) { - if(m_ctf && isteam(d->team, at->team)) - { - flaginfo &enemyflag = flaginfos[team_opposite(team_int(d->team))]; - if(enemyflag.state == CTFF_STOLEN && enemyflag.actor == d) return; // protect flag stealer from friendly-fire - }; d->lastpain = lastmillis; if(d==player1 || d->type==ENT_BOT) selfdamage(damage, -1, at, gib, d); else