diff -r 67483e87590c -r 411146650700 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Sun Mar 21 03:51:58 2010 +0000 +++ b/hedgewars/uGears.pas Sun Mar 21 13:41:11 2010 +0000 @@ -44,7 +44,7 @@ Radius: LongInt; Angle, Power : Longword; DirAngle: real; - Timer, Timer2 : LongWord; + Timer : LongWord; Elasticity: hwFloat; Friction : hwFloat; Message, MsgParam : Longword; @@ -879,9 +879,10 @@ lx, ly, dx, dy, ax, ay, aAngle, dAngle, hAngle: real; // laser, change defaultPos, HatVisible: boolean; VertexBuffer: array [0..1] of TVertex2f; + HH: PHedgehog; begin - -if PHedgehog(Gear^.Hedgehog)^.Unplaced then exit; +HH:= PHedgehog(Gear^.Hedgehog); +if HH^.Unplaced then exit; m:= 1; if ((Gear^.State and gstHHHJump) <> 0) and not cArtillery then m:= -1; if (Gear^.State and gstHHDeath) <> 0 then @@ -992,7 +993,7 @@ // draw crosshair cx:= Round(hwRound(Gear^.X) + dx * 80); cy:= Round(hwRound(Gear^.Y) + dy * 80); - DrawRotatedTex(PHedgehog(Gear^.Hedgehog)^.Team^.CrosshairTex, + DrawRotatedTex(HH^.Team^.CrosshairTex, 12, 12, cx + WorldDx, cy + WorldDy, 0, hwSign(Gear^.dX) * (Gear^.Angle * 180.0) / cMaxAngle); end; @@ -1042,7 +1043,7 @@ 1, 0, DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + dAngle); - with PHedgehog(Gear^.Hedgehog)^ do + with HH^ do if (HatTex <> nil) then DrawRotatedTextureF(HatTex, 1.0, -1.0, -6.0, sx, sy, 0, i, 32, 32, i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle); @@ -1055,9 +1056,9 @@ DrawHedgehog(sx, sy, hwSign(Gear^.dX), 3, - PHedgehog(Gear^.Hedgehog)^.visStepPos div 2, + HH^.visStepPos div 2, 0); - with PHedgehog(Gear^.Hedgehog)^ do + with HH^ do if (HatTex <> nil) then DrawTextureF(HatTex, 1, @@ -1161,7 +1162,7 @@ DrawHedgehog(sx, sy, hwSign(Gear^.dX), 0, - PHedgehog(Gear^.Hedgehog)^.visStepPos div 2, + HH^.visStepPos div 2, 0); defaultPos:= false; HatVisible:= true @@ -1181,13 +1182,13 @@ else if ((Gear^.State and gstAttacked) = 0) then begin - if Gear^.Timer2 > 0 then + if HH^.Timer > 0 then begin // There must be a tidier way to do this. Anyone? if aangle <= 90 then aangle:= aangle+360; - if Gear^.dX > _0 then aangle:= aangle-((aangle-240)*Gear^.Timer2/10) - else aangle:= aangle+((240-aangle)*Gear^.Timer2/10); - dec(Gear^.Timer2) + if Gear^.dX > _0 then aangle:= aangle-((aangle-240)*HH^.Timer/10) + else aangle:= aangle+((240-aangle)*HH^.Timer/10); + dec(HH^.Timer) end; amt:= CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].AmmoType; case amt of @@ -1255,7 +1256,7 @@ 0); HatVisible:= true; - with PHedgehog(Gear^.Hedgehog)^ do + with HH^ do if (HatTex <> nil) and (HatVisibility > 0) then DrawTextureF(HatTex, @@ -1301,7 +1302,7 @@ end; end; -with PHedgehog(Gear^.Hedgehog)^ do +with HH^ do begin if defaultPos then begin @@ -1367,7 +1368,7 @@ end end; -with PHedgehog(Gear^.Hedgehog)^ do +with HH^ do begin if ((Gear^.State and not gstWinner) = 0) or (bShowFinger and ((Gear^.State and gstHHDriven) <> 0)) then