2079 // Remove land created by frozen air mine sprite pixel-perfectly |
2079 // Remove land created by frozen air mine sprite pixel-perfectly |
2080 EraseLand( |
2080 EraseLand( |
2081 hwRound(Gear^.X) - SpritesData[sprFrozenAirMine].Width div 2, |
2081 hwRound(Gear^.X) - SpritesData[sprFrozenAirMine].Width div 2, |
2082 hwRound(Gear^.Y) - SpritesData[sprFrozenAirMine].Height div 2, |
2082 hwRound(Gear^.Y) - SpritesData[sprFrozenAirMine].Height div 2, |
2083 sprFrozenAirMine, 0, 0, false, false, false, false); |
2083 sprFrozenAirMine, 0, 0, false, false, false, false); |
2084 DeleteGear(Gear) |
2084 DeleteGear(Gear); |
|
2085 exit |
2085 end; |
2086 end; |
2086 doStepFallingGear(Gear); |
2087 doStepFallingGear(Gear); |
2087 exit |
2088 exit |
2088 end; |
2089 end; |
2089 isUnderwater:= CheckCoordInWater(hwRound(Gear^.X), hwRound(Gear^.Y) + Gear^.Radius); |
2090 isUnderwater:= CheckCoordInWater(hwRound(Gear^.X), hwRound(Gear^.Y) + Gear^.Radius); |
2458 if ((k <> gtExplosives) and (Gear^.Damage > 0)) or ((k = gtExplosives) and (Gear^.Health<=0)) then |
2460 if ((k <> gtExplosives) and (Gear^.Damage > 0)) or ((k = gtExplosives) and (Gear^.Health<=0)) then |
2459 begin |
2461 begin |
2460 x := hwRound(Gear^.X); |
2462 x := hwRound(Gear^.X); |
2461 y := hwRound(Gear^.Y); |
2463 y := hwRound(Gear^.Y); |
2462 hog:= Gear^.Hedgehog; |
2464 hog:= Gear^.Hedgehog; |
2463 |
2465 Boom:= Gear^.Boom; |
2464 DeleteGear(Gear); |
2466 DeleteGear(Gear); |
2465 // <-- delete gear! |
2467 // <-- delete gear! |
2466 |
2468 |
2467 if k = gtCase then |
2469 if k = gtCase then |
2468 begin |
2470 begin |
2469 doMakeExplosion(x, y, Gear^.Boom, hog, EXPLAutoSound); |
2471 doMakeExplosion(x, y, Boom, hog, EXPLAutoSound); |
2470 for i:= 0 to 63 do |
2472 for i:= 0 to 63 do |
2471 AddGear(x, y, gtFlame, 0, _0, _0, 0); |
2473 AddGear(x, y, gtFlame, 0, _0, _0, 0); |
2472 end |
2474 end |
2473 else if k = gtTarget then |
2475 else if k = gtTarget then |
2474 uStats.TargetHit() |
2476 uStats.TargetHit() |
2475 else if k = gtExplosives then |
2477 else if k = gtExplosives then |
2476 begin |
2478 begin |
2477 doMakeExplosion(x, y, Gear^.Boom, hog, EXPLAutoSound); |
2479 doMakeExplosion(x, y, Boom, hog, EXPLAutoSound); |
2478 for i:= 0 to 31 do |
2480 for i:= 0 to 31 do |
2479 begin |
2481 begin |
2480 dX := AngleCos(i * 64) * _0_5 * (getrandomf + _1); |
2482 dX := AngleCos(i * 64) * _0_5 * (getrandomf + _1); |
2481 dY := AngleSin(i * 64) * _0_5 * (getrandomf + _1); |
2483 dY := AngleSin(i * 64) * _0_5 * (getrandomf + _1); |
2482 AddGear(x, y, gtFlame, 0, dX, dY, 0); |
2484 AddGear(x, y, gtFlame, 0, dX, dY, 0); |