# HG changeset patch # User nemo # Date 1300639956 14400 # Node ID e26f430be1ed7c15e6427233ed52e741ec3b215d # Parent 3c43f00b0743ac9b82fdf17021a2548363993a26 Adjust conditions for showing crosshair diff -r 3c43f00b0743 -r e26f430be1ed hedgewars/HHHandlers.inc --- a/hedgewars/HHHandlers.inc Sun Mar 20 08:42:32 2011 +0000 +++ b/hedgewars/HHHandlers.inc Sun Mar 20 12:52:36 2011 -0400 @@ -90,7 +90,14 @@ if i <= cMaxSlotAmmoIndex then ammoidx:= i else ammoidx:= -1 end; - if ammoidx >= 0 then CurAmmoType:= Ammo^[slot, ammoidx].AmmoType; + if ammoidx >= 0 then + begin + CurAmmoType:= Ammo^[slot, ammoidx].AmmoType; + if (CurAmmoGear <> nil) and ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) <> 0) then + ShowCrosshair:= (Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_NoCrossHair) = 0 + else + ShowCrosshair:= (Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NoCrosshair) = 0; + end end end; @@ -385,6 +392,10 @@ TurnTimeLeft:=round(Ammoz[a].TimeAfterTurn * (cGetAwayTime / 100)); end; if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) then State:= State or gstAttacked; + if (CurAmmoGear <> nil) and ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) <> 0) then + ShowCrosshair:= (Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_NoCrossHair) = 0 + else + ShowCrosshair:= (Ammoz[a].Ammo.Propz and ammoprop_NoCrosshair) = 0; if (Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) <> 0 then ApplyAmmoChanges(CurrentHedgehog^) end; end diff -r 3c43f00b0743 -r e26f430be1ed hedgewars/uAmmos.pas --- a/hedgewars/uAmmos.pas Sun Mar 20 08:42:32 2011 +0000 +++ b/hedgewars/uAmmos.pas Sun Mar 20 12:52:36 2011 -0400 @@ -295,6 +295,10 @@ end; TryDo(slot <= cMaxSlotIndex, 'Ammo slot index overflow', true); CurAmmoType:= Ammo^[slot, ammoidx].AmmoType; + if (CurAmmoGear <> nil) and ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) <> 0) then + ShowCrosshair:= (Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_NoCrossHair) = 0 + else + ShowCrosshair:= (Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NoCrosshair) = 0; end end; @@ -333,10 +337,6 @@ Gear^.State:= Gear^.State and not gstHHChooseTarget; isCursorVisible:= false end; - if (CurAmmoGear <> nil) and ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) <> 0) then - ShowCrosshair:= (Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_NoCrossHair) = 0 - else - ShowCrosshair:= (Propz and ammoprop_NoCrosshair) = 0; end end; end; diff -r 3c43f00b0743 -r e26f430be1ed hedgewars/uGearsRender.pas --- a/hedgewars/uGearsRender.pas Sun Mar 20 08:42:32 2011 +0000 +++ b/hedgewars/uGearsRender.pas Sun Mar 20 12:52:36 2011 -0400 @@ -259,8 +259,8 @@ if (Gear^.State and gstHHDriven) <> 0 then begin if ((Gear^.State and gstHHThinking) = 0) and - (ShowCrosshair or ((CurAmmoGear <> nil) and (CurAmmoGear^.Kind = gtRope))) and - ((Gear^.State and (gstAttacked or gstAnimation)) = 0) then + ShowCrosshair and + ((Gear^.State and gstAnimation) = 0) then begin (* These calculations are a little complex for a few reasons: 1: I need to draw the laser from weapon origin to nearest land