diff -r 58c29439225d -r dc9ea05c9d2f hedgewars/uAmmos.pas --- a/hedgewars/uAmmos.pas Sun Apr 12 06:01:17 2009 +0000 +++ b/hedgewars/uAmmos.pas Sun Apr 12 12:50:43 2009 +0000 @@ -27,7 +27,7 @@ function HHHasAmmo(var Hedgehog: THedgehog; Ammo: TAmmoType): boolean; procedure PackAmmo(Ammo: PHHAmmo; Slot: LongInt); procedure OnUsedAmmo(var Hedgehog: THedgehog); -procedure ApplyAngleBounds(var Hedgehog: THedgehog); +procedure ApplyAngleBounds(var Hedgehog: THedgehog; AmmoType: TAmmoType); procedure ApplyAmmoChanges(var Hedgehog: THedgehog); procedure SwitchNotHeldAmmo(var Hedgehog: THedgehog); procedure SetWeapon(weap: TAmmoType); @@ -180,23 +180,22 @@ HHHasAmmo:= false end; -procedure ApplyAngleBounds(var Hedgehog: THedgehog); +procedure ApplyAngleBounds(var Hedgehog: THedgehog; AmmoType: TAmmoType); begin with Hedgehog do - with Ammo^[CurSlot, CurAmmo] do + begin + CurMinAngle:= Ammoz[AmmoType].minAngle; + if Ammoz[AmmoType].maxAngle <> 0 then + CurMaxAngle:= Ammoz[AmmoType].maxAngle + else + CurMaxAngle:= cMaxAngle; + + with Hedgehog.Gear^ do begin - CurMinAngle:= Ammoz[AmmoType].minAngle; - if Ammoz[AmmoType].maxAngle <> 0 then - CurMaxAngle:= Ammoz[AmmoType].maxAngle - else - CurMaxAngle:= cMaxAngle; - - with Hedgehog.Gear^ do - begin - if Angle < CurMinAngle then Angle:= CurMinAngle; - if Angle > CurMaxAngle then Angle:= CurMaxAngle; - end + if Angle < CurMinAngle then Angle:= CurMinAngle; + if Angle > CurMaxAngle then Angle:= CurMaxAngle; end + end end; procedure ApplyAmmoChanges(var Hedgehog: THedgehog); @@ -213,7 +212,7 @@ while (CurSlot <= cMaxSlotIndex) and (Ammo^[CurSlot, CurAmmo].Count = 0) do inc(CurSlot) end; - ApplyAngleBounds(Hedgehog); + ApplyAngleBounds(Hedgehog, Ammo^[CurSlot, CurAmmo].AmmoType); with Ammo^[CurSlot, CurAmmo] do begin