# HG changeset patch # User nemo # Date 1265376777 0 # Node ID 420fe0344e5f803f697053d1f33ab45783783426 # Parent 03988f64e146dc49c0d2ec881fb8401f9d5e76bb ... or. just move the king check to after the gear nil diff -r 03988f64e146 -r 420fe0344e5f hedgewars/uGears.pas --- a/hedgewars/uGears.pas Fri Feb 05 13:30:47 2010 +0000 +++ b/hedgewars/uGears.pas Fri Feb 05 13:32:57 2010 +0000 @@ -426,7 +426,8 @@ procedure DeleteGear(Gear: PGear); var team: PTeam; - t,i,k: Longword; + t,i: Longword; + k: boolean; begin DeleteCI(Gear); @@ -457,18 +458,17 @@ if CurrentHedgehog^.Gear = Gear then FreeActionsList; // to avoid ThinkThread on drawned gear + PHedgehog(Gear^.Hedgehog)^.Gear:= nil; if PHedgehog(Gear^.Hedgehog)^.King then begin // are there any other kings left? Just doing nil check. Presumably a mortally wounded king will get reaped soon enough - k:= 0; + k:= false; for i:= 0 to Pred(team^.Clan^.TeamsNumber) do - if (team^.Clan^.Teams[i]^.Hedgehogs[0].Gear <> nil) then inc(k); - if k < 2 then // current dying king is count of 1 + if (team^.Clan^.Teams[i]^.Hedgehogs[0].Gear <> nil) then k:= true; + if not k then for i:= 0 to Pred(team^.Clan^.TeamsNumber) do TeamGoneEffect(team^.Clan^.Teams[i]^) end; - - PHedgehog(Gear^.Hedgehog)^.Gear:= nil; inc(KilledHHs); RecountTeamHealth(team) end;