diff -r 40df542b5f62 -r af612377fcba hedgewars/uGears.pas --- a/hedgewars/uGears.pas Wed Nov 03 00:48:42 2010 +0100 +++ b/hedgewars/uGears.pas Wed Nov 03 16:29:17 2010 +0100 @@ -935,20 +935,30 @@ cArtillery:= false; // have to sweep *all* current team hedgehogs since it is theoretically possible if you have enough invulnerabilities and switch turns to make your entire team invulnerable if (CurrentTeam <> nil) then - with CurrentTeam^ do - for i:= 0 to cMaxHHIndex do - with Hedgehogs[i] do - begin - if (SpeechGear <> nil) then - begin - DeleteVisualGear(SpeechGear); // remove to restore persisting beyond end of turn. Tiy says was too much of a gameplay issue - SpeechGear:= nil - end; + with CurrentTeam^ do + for i:= 0 to cMaxHHIndex do + with Hedgehogs[i] do + begin + if (SpeechGear <> nil) then + begin + DeleteVisualGear(SpeechGear); // remove to restore persisting beyond end of turn. Tiy says was too much of a gameplay issue + SpeechGear:= nil + end; - if (Gear <> nil) then - if (GameFlags and gfInvulnerable) = 0 then - Gear^.Invulnerable:= false; - end; + if (Gear <> nil) then + begin + if (GameFlags and gfInvulnerable) = 0 then + Gear^.Invulnerable:= false; + if (GameFlags and gfResetHealth) <> 0 then + begin + if Gear^.Health < InitialHealth then + begin + Gear^.Health:= InitialHealth; + RenderHealth(CurrentHedgehog^); + end; + end; + end; + end; t:= GearsList; while t <> nil do begin @@ -957,7 +967,9 @@ end; if (GameFlags and gfResetWeps) <> 0 then - ResetWeapons + ResetWeapons; + if (GameFlags and gfResetHealth) <> 0 then + RecountTeamHealth(CurrentTeam); end; procedure ApplyDamage(Gear: PGear; Damage: Longword; Source: TDamageSource); @@ -1203,12 +1215,11 @@ if ((GameFlags and gfForts) = 0) then begin - if ((GameFlags and gfMines) <> 0) then - for i:= 0 to Pred(cLandMines) do - begin - Gear:= AddGear(0, 0, gtMine, 0, _0, _0, 0); - FindPlace(Gear, false, 0, LAND_WIDTH); - end; + for i:= 0 to Pred(cLandMines) do + begin + Gear:= AddGear(0, 0, gtMine, 0, _0, _0, 0); + FindPlace(Gear, false, 0, LAND_WIDTH); + end; for i:= 0 to Pred(cExplosives) do begin Gear:= AddGear(0, 0, gtExplosives, 0, _0, _0, 0);