hedgewars/uGears.pas
changeset 2758 033aa644578f
parent 2745 11fce231f24a
child 2759 03988f64e146
equal deleted inserted replaced
2757:8dbfe782218c 2758:033aa644578f
   425 end;
   425 end;
   426 
   426 
   427 procedure DeleteGear(Gear: PGear);
   427 procedure DeleteGear(Gear: PGear);
   428 var team: PTeam;
   428 var team: PTeam;
   429 	t,i: Longword;
   429 	t,i: Longword;
       
   430     k: boolean;
   430 begin
   431 begin
   431 DeleteCI(Gear);
   432 DeleteCI(Gear);
   432 
   433 
   433 if Gear^.Tex <> nil then
   434 if Gear^.Tex <> nil then
   434 	begin
   435 	begin
   456 		team:= PHedgehog(Gear^.Hedgehog)^.Team;
   457 		team:= PHedgehog(Gear^.Hedgehog)^.Team;
   457 		if CurrentHedgehog^.Gear = Gear then
   458 		if CurrentHedgehog^.Gear = Gear then
   458 			FreeActionsList; // to avoid ThinkThread on drawned gear
   459 			FreeActionsList; // to avoid ThinkThread on drawned gear
   459 
   460 
   460         if PHedgehog(Gear^.Hedgehog)^.King then
   461         if PHedgehog(Gear^.Hedgehog)^.King then
       
   462             begin
       
   463             // are there any other kings left? Just doing nil check.  Presumably a mortally wounded king will get reaped soon enough
       
   464             k:= false;
   461             for i:= 0 to Pred(team^.Clan^.TeamsNumber) do
   465             for i:= 0 to Pred(team^.Clan^.TeamsNumber) do
   462                 TeamGoneEffect(team^.Clan^.Teams[i]^);
   466                 if (team^.Clan^.Teams[i]^.Hedgehogs[0].Gear <> nil) then k:= true;
       
   467             if not k then
       
   468                 for i:= 0 to Pred(team^.Clan^.TeamsNumber) do
       
   469                     TeamGoneEffect(team^.Clan^.Teams[i]^)
       
   470             end;
   463 
   471 
   464 		PHedgehog(Gear^.Hedgehog)^.Gear:= nil;
   472 		PHedgehog(Gear^.Hedgehog)^.Gear:= nil;
   465 		inc(KilledHHs);
   473 		inc(KilledHHs);
   466 		RecountTeamHealth(team)
   474 		RecountTeamHealth(team)
   467 		end;
   475 		end;