# HG changeset patch # User Wuzzy # Date 1507160269 -7200 # Node ID 2837dee472cc813ed496eb7128f26c25d82d7ac4 # Parent c755afd8fb6b25e752d878bd16870c8ce92078b4 Show selected weapon again when using it in inf attack mode This is useful if you have e.g. lots of (finite) bazookas; it's easy to lose track of the amount of remaining bazookas. Not displayed for weapons which always end your turn. diff -r c755afd8fb6b -r 2837dee472cc hedgewars/uAmmos.pas --- a/hedgewars/uAmmos.pas Wed Oct 04 21:33:05 2017 +0200 +++ b/hedgewars/uAmmos.pas Thu Oct 05 01:37:49 2017 +0200 @@ -378,15 +378,14 @@ procedure ApplyAmmoChanges(var Hedgehog: THedgehog); var s: ansistring; - CurWeapon: PAmmo; + OldWeapon, CurWeapon: PAmmo; begin TargetPoint.X:= NoPointX; with Hedgehog do begin - Timer:= 10; - CurWeapon:= GetCurAmmoEntry(Hedgehog); + OldWeapon:= GetCurAmmoEntry(Hedgehog); if (CurWeapon^.Count = 0) then SwitchToFirstLegalAmmo(Hedgehog) @@ -395,6 +394,10 @@ CurWeapon:= GetCurAmmoEntry(Hedgehog); + // Weapon selection animation (if new ammo type) + if CurWeapon^.AmmoType <> OldWeapon^.AmmoType then + Timer:= 10; + ApplyAngleBounds(Hedgehog, CurWeapon^.AmmoType); with CurWeapon^ do diff -r c755afd8fb6b -r 2837dee472cc hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Wed Oct 04 21:33:05 2017 +0200 +++ b/hedgewars/uConsts.pas Thu Oct 05 01:37:49 2017 +0200 @@ -307,6 +307,7 @@ = $00080000; ammoprop_DoesntStopTimerWhileAttackingInInfAttackMode = $00100000; + ammoprop_ForceTurnEnd = $00200000; ammoprop_NoRoundEnd = $10000000; AMMO_INFINITE = 100; diff -r c755afd8fb6b -r 2837dee472cc hedgewars/uGearsHedgehog.pas --- a/hedgewars/uGearsHedgehog.pas Wed Oct 04 21:33:05 2017 +0200 +++ b/hedgewars/uGearsHedgehog.pas Thu Oct 05 01:37:49 2017 +0200 @@ -576,7 +576,8 @@ end; if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) and (HHGear <> nil) then HHGear^.State:= HHGear^.State or gstAttacked; - if (Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) <> 0 then + if (a = amNothing) or ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) <> 0) or + (((GameFlags and gfInfAttack) <> 0) and ((Ammoz[a].Ammo.Propz and ammoprop_ForceTurnEnd) = 0)) then ApplyAmmoChanges(CurrentHedgehog^) end; end diff -r c755afd8fb6b -r 2837dee472cc hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Wed Oct 04 21:33:05 2017 +0200 +++ b/hedgewars/uVariables.pas Thu Oct 05 01:37:49 2017 +0200 @@ -991,7 +991,8 @@ NumberInCase: 1; Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_AttackInMove or - ammoprop_DontHold; + ammoprop_DontHold or + ammoprop_ForceTurnEnd; Count: AMMO_INFINITE; NumPerTurn: 0; Timer: 0; @@ -1424,7 +1425,8 @@ Ammo: (Propz: ammoprop_ForwMsgs or ammoprop_DontHold or ammoprop_NeedUpDown or - ammoprop_AttackInMove; + ammoprop_AttackInMove or + ammoprop_ForceTurnEnd; Count: 1; NumPerTurn: 0; Timer: 0; @@ -1978,7 +1980,8 @@ ammoprop_NeedTarget or ammoprop_AttackingPut or ammoprop_DontHold or - ammoprop_NotBorder; + ammoprop_NotBorder or + ammoprop_ForceTurnEnd; Count: 1; NumPerTurn: 0; Timer: 0; @@ -2216,7 +2219,8 @@ Ammo: (Propz: ammoprop_ForwMsgs or ammoprop_NoCrosshair or ammoprop_Utility or - ammoprop_DontHold; + ammoprop_DontHold or + ammoprop_ForceTurnEnd; Count: 2; NumPerTurn: 0; Timer: 0;