hedgewars/uFLGameConfig.pas
branchqmlfrontend
changeset 11446 321d0ce43568
parent 11444 91f8c6ff5bab
child 11447 2572afe532af
equal deleted inserted replaced
11445:465b4db35232 11446:321d0ce43568
   237     end
   237     end
   238 end;
   238 end;
   239 
   239 
   240 
   240 
   241 procedure tryRemoveTeam(teamName: PChar); cdecl;
   241 procedure tryRemoveTeam(teamName: PChar); cdecl;
   242 var msg: shortstring;
   242 var i: Longword;
   243     i: Longword;
       
   244     tn: shortstring;
   243     tn: shortstring;
       
   244     isLocal: boolean;
   245 begin
   245 begin
   246     with currentConfig do
   246     with currentConfig do
   247     begin
   247     begin
   248         i:= 0;
   248         i:= 0;
   249         tn:= teamName;
   249         tn:= teamName;
   250         while (i < 8) and (teams[i].teamName <> tn) do
   250         while (i < 8) and (teams[i].teamName <> tn) do
   251             inc(i);
   251             inc(i);
   252 
   252 
   253         // team not found???
   253         // team not found???
   254         if (i > 7) then exit;
   254         if (i > 7) then exit;
       
   255 
       
   256         isLocal:= not teams[i].extDriven;
       
   257 
       
   258         if isConnected and not isLocal then
       
   259             exit; // we cannot remove this team
   255 
   260 
   256         while (i < 7) and (teams[i + 1].hogsNumber > 0) do
   261         while (i < 7) and (teams[i + 1].hogsNumber > 0) do
   257         begin
   262         begin
   258             teams[i]:= teams[i + 1];
   263             teams[i]:= teams[i + 1];
   259             inc(i)
   264             inc(i)
   260         end;
   265         end;
   261 
   266 
   262         teams[i].hogsNumber:= 0
   267         teams[i].hogsNumber:= 0
   263     end;
   268     end;
   264 
   269 
   265     msg:= teamName;
   270     sendUI(mtRemovePlayingTeam, @tn[1], length(tn));
   266 
   271     if isConnected then
   267     sendUI(mtRemovePlayingTeam, @msg[1], length(msg));
   272         removeTeam(tn);
   268     sendUI(mtAddTeam, @msg[1], length(msg))
   273     if isLocal then
       
   274         sendUI(mtAddTeam, @tn[1], length(tn))
   269 end;
   275 end;
   270 
   276 
   271 
   277 
   272 procedure changeTeamColor(teamName: PChar; dir: LongInt); cdecl;
   278 procedure changeTeamColor(teamName: PChar; dir: LongInt); cdecl;
   273 var i, dc: Longword;
   279 var i, dc: Longword;