# HG changeset patch # User nemo # Date 1265375551 0 # Node ID 033aa644578ff3417817915adbb8f88955dc830a # Parent 8dbfe782218c81771243acfe2c8a8c3c22876dd8 Add one king per team instead of clan, kill off clan if all kings are dead. untested. diff -r 8dbfe782218c -r 033aa644578f hedgewars/uGears.pas --- a/hedgewars/uGears.pas Fri Feb 05 11:47:57 2010 +0000 +++ b/hedgewars/uGears.pas Fri Feb 05 13:12:31 2010 +0000 @@ -427,6 +427,7 @@ procedure DeleteGear(Gear: PGear); var team: PTeam; t,i: Longword; + k: boolean; begin DeleteCI(Gear); @@ -458,8 +459,15 @@ FreeActionsList; // to avoid ThinkThread on drawned gear 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:= false; for i:= 0 to Pred(team^.Clan^.TeamsNumber) do - TeamGoneEffect(team^.Clan^.Teams[i]^); + 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); diff -r 8dbfe782218c -r 033aa644578f hedgewars/uTeams.pas --- a/hedgewars/uTeams.pas Fri Feb 05 11:47:57 2010 +0000 +++ b/hedgewars/uTeams.pas Fri Feb 05 13:12:31 2010 +0000 @@ -306,24 +306,19 @@ th: LongInt; begin -// Some initial King buffs -if (GameFlags and gfKing) <> 0 then - for i:= 0 to Pred(ClansCount) do - begin - with ClansArray[i]^.Teams[0]^.Hedgehogs[0] do - begin - King:= true; - Hat:= 'crown'; - Gear^.Health:= hwRound(int2hwFloat(Gear^.Health)*_1_5); - end - end; - for t:= 0 to Pred(TeamsCount) do with TeamsArray[t]^ do begin if (not ExtDriven) and (Hedgehogs[0].BotLevel = 0) then LocalClan:= Clan^.ClanIndex + 1; th:= 0; + // Some initial King buffs + if (GameFlags and gfKing) <> 0 then + begin + Hedgehogs[0].King:= true; + Hedgehogs[0].Hat:= 'crown'; + inc(Hedgehogs[0].Gear^.Health, hwRound(int2hwFloat(Hedgehogs[0].Gear^.Health)*_1_5)) + end; for i:= 0 to cMaxHHIndex do if Hedgehogs[i].Gear <> nil then inc(th, Hedgehogs[i].Gear^.Health);