hedgewars/GSHandlers.inc
changeset 1914 aab686a4e0c5
parent 1909 30fa1608b54f
child 1915 c357f5b55320
equal deleted inserted replaced
1913:73d2da2df3c2 1914:aab686a4e0c5
  1423 ty:= TargetPoint.Y;
  1423 ty:= TargetPoint.Y;
  1424 x:= hwRound(HHGear^.X);
  1424 x:= hwRound(HHGear^.X);
  1425 y:= hwRound(HHGear^.Y);
  1425 y:= hwRound(HHGear^.Y);
  1426 
  1426 
  1427 // use a circle instead?
  1427 // use a circle instead?
  1428 if (abs(tx-x) > 256) or 
  1428 if (abs(tx-x) > 256) or
  1429    (abs(ty-y) > 256) or
  1429    (abs(ty-y) > 256) or
  1430    not TryPlaceOnLand(tx - SpritesData[sprAmGirder].Width div 2,
  1430    not TryPlaceOnLand(tx - SpritesData[sprAmGirder].Width div 2,
  1431                       ty - SpritesData[sprAmGirder].Height div 2,
  1431                       ty - SpritesData[sprAmGirder].Height div 2,
  1432                       sprAmGirder, Gear^.State, true) then
  1432                       sprAmGirder, Gear^.State, true) then
  1433 	begin
  1433 	begin
       
  1434     PlaySound(sndDenied, false, nil);
       
  1435 	HHGear^.Message:= HHGear^.Message and not gm_Attack;
       
  1436 	HHGear^.State:= HHGear^.State and not gstAttacking;
  1434 	HHGear^.State:= HHGear^.State or gstHHChooseTarget;
  1437 	HHGear^.State:= HHGear^.State or gstHHChooseTarget;
  1435 	DeleteGear(Gear);
  1438 	isCursorVisible:= true;
  1436     isCursorVisible:= true
  1439 	DeleteGear(Gear)
  1437 	end
  1440 	end
  1438 else begin
  1441 else begin
       
  1442     PlaySound(sndPlaced, false, nil);
  1439 	DeleteGear(Gear);
  1443 	DeleteGear(Gear);
  1440     OnUsedAmmo(PHedgehog(HHGear^.Hedgehog)^);
  1444     OnUsedAmmo(PHedgehog(HHGear^.Hedgehog)^);
  1441     ApplyAmmoChanges(PHedgehog(HHGear^.Hedgehog)^);
  1445     ApplyAmmoChanges(PHedgehog(HHGear^.Hedgehog)^)
  1442     isCursorVisible:= false
  1446 	end;
  1443  	end;
  1447 
  1444 HHGear^.State:= HHGear^.State and not (gstAttacking or gstAttacked);
  1448 HHGear^.State:= HHGear^.State and not (gstAttacking or gstAttacked);
  1445 HHGear^.Message:= HHGear^.Message and not gm_Attack;
  1449 HHGear^.Message:= HHGear^.Message and not gm_Attack;
  1446 TargetPoint.X:= NoPointX
  1450 TargetPoint.X:= NoPointX
  1447 end;
  1451 end;
  1448 
  1452