1412 |
1412 |
1413 //////////////////////////////////////////////////////////////////////////////// |
1413 //////////////////////////////////////////////////////////////////////////////// |
1414 |
1414 |
1415 procedure doStepGirder(Gear: PGear); |
1415 procedure doStepGirder(Gear: PGear); |
1416 var HHGear: PGear; |
1416 var HHGear: PGear; |
1417 begin |
1417 x, y, tx, ty: LongInt; |
1418 AllInactive:= false; |
1418 begin |
1419 |
1419 AllInactive:= false; |
1420 HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear; |
1420 |
1421 if not TryPlaceOnLand(TargetPoint.X - SpritesData[sprAmGirder].Width div 2, |
1421 HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear; |
1422 TargetPoint.Y - SpritesData[sprAmGirder].Height div 2, |
1422 tx:= TargetPoint.X; |
|
1423 ty:= TargetPoint.Y; |
|
1424 x:= hwRound(HHGear^.X); |
|
1425 y:= hwRound(HHGear^.Y); |
|
1426 |
|
1427 // use a circle instead? |
|
1428 if (abs(tx-x) > 256) or |
|
1429 (abs(ty-y) > 256) or |
|
1430 not TryPlaceOnLand(tx - SpritesData[sprAmGirder].Width div 2, |
|
1431 ty - SpritesData[sprAmGirder].Height div 2, |
1423 sprAmGirder, Gear^.State, true) then |
1432 sprAmGirder, Gear^.State, true) then |
1424 begin |
1433 begin |
1425 HHGear^.Message:= HHGear^.Message and not gm_Attack; |
|
1426 HHGear^.State:= HHGear^.State and not gstAttacking; |
|
1427 HHGear^.State:= HHGear^.State or gstHHChooseTarget; |
1434 HHGear^.State:= HHGear^.State or gstHHChooseTarget; |
1428 DeleteGear(Gear); |
1435 DeleteGear(Gear); |
1429 isCursorVisible:= true |
1436 isCursorVisible:= true |
1430 end |
1437 end |
1431 else begin |
1438 else begin |
1432 DeleteGear(Gear); |
1439 DeleteGear(Gear); |
1433 AfterAttack |
1440 OnUsedAmmo(PHedgehog(HHGear^.Hedgehog)^); |
1434 end; |
1441 ApplyAmmoChanges(PHedgehog(HHGear^.Hedgehog)^); |
|
1442 isCursorVisible:= false |
|
1443 end; |
|
1444 HHGear^.State:= HHGear^.State and not (gstAttacking or gstAttacked); |
|
1445 HHGear^.Message:= HHGear^.Message and not gm_Attack; |
1435 TargetPoint.X:= NoPointX |
1446 TargetPoint.X:= NoPointX |
1436 end; |
1447 end; |
1437 |
1448 |
1438 //////////////////////////////////////////////////////////////////////////////// |
1449 //////////////////////////////////////////////////////////////////////////////// |
1439 procedure doStepTeleportAfter(Gear: PGear); |
1450 procedure doStepTeleportAfter(Gear: PGear); |