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; |