Merge branch 'terencehill/connection_msg_fix' into 'master'
authorTimePath <andrew.hardaker1995@gmail.com>
Thu, 24 Dec 2015 00:56:28 +0000 (00:56 +0000)
committerTimePath <andrew.hardaker1995@gmail.com>
Thu, 24 Dec 2015 00:56:28 +0000 (00:56 +0000)
connection msg fix

See merge request !269

1  2 
qcsrc/server/teamplay.qc

diff --combined qcsrc/server/teamplay.qc
@@@ -308,24 -308,26 +308,24 @@@ float PlayerValue(entity p
  // teams that are allowed will now have their player counts stored in c1...c4
  void GetTeamCounts(entity ignore)
  {
 -      entity head;
        float value, bvalue;
        // now count how many players are on each team already
  
        // FIXME: also find and memorize the lowest-scoring bot on each team (in case players must be shuffled around)
        // also remember the lowest-scoring player
  
 -      FOR_EACH_CLIENT(head)
 -      {
 +      FOREACH_CLIENT(true, LAMBDA(
                float t;
 -              if(IS_PLAYER(head) || head.caplayer)
 -                      t = head.team;
 -              else if(head.team_forced > 0)
 -                      t = head.team_forced; // reserve the spot
 +              if(IS_PLAYER(it) || it.caplayer)
 +                      t = it.team;
 +              else if(it.team_forced > 0)
 +                      t = it.team_forced; // reserve the spot
                else
                        continue;
 -              if(head != ignore)// && head.netname != "")
 +              if(it != ignore)// && it.netname != "")
                {
 -                      value = PlayerValue(head);
 -                      if(IS_BOT_CLIENT(head))
 +                      value = PlayerValue(it);
 +                      if(IS_BOT_CLIENT(it))
                                bvalue = value;
                        else
                                bvalue = 0;
                                }
                        }
                }
 -      }
 +      ));
  
        // if the player who has a forced team has not joined yet, reserve the spot
        if(autocvar_g_campaign)
@@@ -581,11 -583,19 +581,19 @@@ void SV_ChangeTeam(float _color
        float scolor, dcolor, steam, dteam; //, dbotcount, scount, dcount;
  
        // in normal deathmatch we can just apply the color and we're done
-       if(!teamplay) {
+       if(!teamplay)
                SetPlayerColors(self, _color);
+       if(!IS_CLIENT(self))
+       {
+               // since this is an engine function, and gamecode doesn't have any calls earlier than this, do the connecting message here
+               Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_CONNECTING, self.netname);
                return;
        }
  
+       if(!teamplay)
+               return;
        scolor = self.clientcolors & 0x0F;
        dcolor = _color & 0x0F;
  
                TeamchangeFrags(self);
        }
  
-       // since this is an engine function, and gamecode doesn't have any calls earlier than this, do the connecting message here
-       if(!IS_CLIENT(self))
-               Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_CONNECTING, self.netname);
        MUTATOR_CALLHOOK(Player_ChangeTeam, self, steam, dteam);
  
        SetPlayerTeam(self, dteam, steam, !IS_CLIENT(self));