diff -r b71bae455926 -r ceb289e8a582 hedgewars/uAmmos.pas --- a/hedgewars/uAmmos.pas Mon Jul 08 15:16:05 2019 +0300 +++ b/hedgewars/uAmmos.pas Mon Jul 08 21:44:26 2019 +0200 @@ -126,21 +126,23 @@ end; ammos[a]:= cnt; - if ((GameFlags and gfKing) <> 0) and ((GameFlags and gfPlaceHog) = 0) - and (Ammoz[a].SkipTurns = 0) and (a <> amTeleport) and (a <> amSkip) then - Ammoz[a].SkipTurns:= 1; - - if ((GameFlags and gfPlaceHog) <> 0) + if (((GameFlags and gfPlaceHog) <> 0) + or (((GameFlags and gfKing) <> 0) and ((GameFlags and gfPlaceHog) = 0))) and (a <> amTeleport) and (a <> amSkip) and (Ammoz[a].SkipTurns < 10000) then inc(Ammoz[a].SkipTurns,10000); - if ((GameFlags and gfPlaceHog) <> 0) and (a = amTeleport) then + if (((GameFlags and gfPlaceHog) <> 0) + or (((GameFlags and gfKing) <> 0) and ((GameFlags and gfPlaceHog) = 0))) + and (a = amTeleport) then ammos[a]:= AMMO_INFINITE end else ammos[a]:= AMMO_INFINITE; - if ((GameFlags and gfPlaceHog) <> 0) and (a = amTeleport) then + + if (((GameFlags and gfPlaceHog) <> 0) + or (((GameFlags and gfKing) <> 0) and ((GameFlags and gfPlaceHog) = 0))) + and (a = amTeleport) then begin InitialCountsLocal[Pred(StoreCnt)][a]:= cnt; InitialAmmoCounts[a]:= cnt; @@ -496,7 +498,7 @@ ammoReinforcement:= s; end; -// Restore indefinitely disabled weapons and initial weapon counts. Only used for hog placement right now +// Restore indefinitely disabled weapons and initial weapon counts. procedure ResetWeapons; var i, t: Longword; a: TAmmoType;