--- a/hedgewars/uConsts.pas Sat Nov 19 15:00:14 2016 +0100
+++ b/hedgewars/uConsts.pas Sat Apr 30 23:30:34 2016 +0200
@@ -299,6 +299,8 @@
ammoprop_Track = $00040000;
ammoprop_DoesntStopTimerInMultiShoot
= $00080000;
+ ammoprop_DoesntStopTimerWhileAttackingInInfAttackMode
+ = $00100000;
ammoprop_NoRoundEnd = $10000000;
AMMO_INFINITE = 100;
--- a/hedgewars/uGears.pas Sat Nov 19 15:00:14 2016 +0100
+++ b/hedgewars/uGears.pas Sat Apr 30 23:30:34 2016 +0200
@@ -446,7 +446,8 @@
if TurnTimeLeft > 0 then
if CurrentHedgehog^.Gear <> nil then
if (((CurrentHedgehog^.Gear^.State and gstAttacking) = 0)
- or (Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_DoesntStopTimerWhileAttacking <> 0))
+ or (Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_DoesntStopTimerWhileAttacking <> 0)
+ or ((GameFlags and gfInfAttack) <> 0) and (Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_DoesntStopTimerWhileAttackingInInfAttackMode <> 0))
and (not(isInMultiShoot and ((Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_DoesntStopTimerInMultiShoot) <> 0))) then
//(CurrentHedgehog^.CurAmmoType in [amShotgun, amDEagle, amSniperRifle])
begin
--- a/hedgewars/uGearsHandlersMess.pas Sat Nov 19 15:00:14 2016 +0100
+++ b/hedgewars/uGearsHandlersMess.pas Sat Apr 30 23:30:34 2016 +0200
@@ -1461,8 +1461,6 @@
WorldWrap(Gear);
HHGear := Gear^.Hedgehog^.Gear;
dec(Gear^.Timer);
- if ((GameFlags and gfInfAttack) <> 0) and (TurnTimeLeft > 0) then
- dec(TurnTimeLeft);
if (TurnTimeLeft = 0) or (Gear^.Timer = 0)
or((Gear^.Message and gmDestroy) <> 0)
or((HHGear^.State and gstHHDriven) =0) then
@@ -1589,8 +1587,6 @@
AllInactive := false;
WorldWrap(Gear);
dec(Gear^.Timer);
- if ((GameFlags and gfInfAttack) <> 0) and (TurnTimeLeft > 0) then
- dec(TurnTimeLeft);
if Gear^.Hedgehog^.Gear = nil then
begin
--- a/hedgewars/uVariables.pas Sat Nov 19 15:00:14 2016 +0100
+++ b/hedgewars/uVariables.pas Sat Apr 30 23:30:34 2016 +0200
@@ -945,7 +945,8 @@
Ammo: (Propz: ammoprop_ForwMsgs or
ammoprop_AttackInMove or
ammoprop_NoCrosshair or
- ammoprop_DontHold;
+ ammoprop_DontHold or
+ ammoprop_DoesntStopTimerWhileAttackingInInfAttackMode;
Count: 2;
NumPerTurn: 0;
Timer: 0;
@@ -1267,7 +1268,8 @@
Probability: 100;
NumberInCase: 2;
Ammo: (Propz: ammoprop_ForwMsgs or
- ammoprop_NeedUpDown;
+ ammoprop_NeedUpDown or
+ ammoprop_DoesntStopTimerWhileAttackingInInfAttackMode;
Count: 1;
NumPerTurn: 0;
Timer: 0;