1439 if ((GameTicks and $3F) = 25) then |
1439 if ((GameTicks and $3F) = 25) then |
1440 doStepFallingGear(Gear); |
1440 doStepFallingGear(Gear); |
1441 |
1441 |
1442 if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Health <> 0) then |
1442 if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Health <> 0) then |
1443 if ((Gear^.State and gstAttacking) = 0) then |
1443 if ((Gear^.State and gstAttacking) = 0) then |
1444 begin |
1444 begin |
1445 if ((GameTicks and $1F) = 0) then |
1445 if ((GameTicks and $1F) = 0) then |
1446 if CheckGearNear(Gear, gtHedgehog, 46, 32) <> nil then Gear^.State := Gear^.State or |
1446 if CheckGearNear(Gear, gtHedgehog, 46, 32) <> nil then Gear^.State := Gear^.State or |
1447 gstAttacking |
1447 gstAttacking |
1448 end |
1448 end |
1449 else // gstAttacking <> 0 |
1449 else // gstAttacking <> 0 |
1450 begin |
|
1451 AllInactive := false; |
|
1452 if (Gear^.Timer and $FF) = 0 then PlaySound(sndMineTick); |
|
1453 if Gear^.Timer = 0 then |
|
1454 begin |
|
1455 if ((Gear^.State and gstWait) <> 0) or |
|
1456 (cMineDudPercent = 0) or |
|
1457 (getRandom(100) > cMineDudPercent) then |
|
1458 begin |
1450 begin |
1459 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound); |
1451 AllInactive := false; |
1460 DeleteGear(Gear) |
1452 if (Gear^.Timer and $FF) = 0 then PlaySound(sndMineTick); |
|
1453 if Gear^.Timer = 0 then |
|
1454 begin |
|
1455 if ((Gear^.State and gstWait) <> 0) or |
|
1456 (cMineDudPercent = 0) or |
|
1457 (getRandom(100) > cMineDudPercent) then |
|
1458 begin |
|
1459 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound); |
|
1460 DeleteGear(Gear) |
|
1461 end |
|
1462 else |
|
1463 begin |
|
1464 AddVisualGear(hwRound(Gear^.X) - 4 + Random(8), hwRound(Gear^.Y) - 4 - Random(4), |
|
1465 vgtSmoke); |
|
1466 PlaySound(sndVaporize); |
|
1467 Gear^.Health := 0; |
|
1468 end; |
|
1469 exit |
|
1470 end; |
|
1471 dec(Gear^.Timer); |
1461 end |
1472 end |
1462 else |
|
1463 begin |
|
1464 AddVisualGear(hwRound(Gear^.X) - 4 + Random(8), hwRound(Gear^.Y) - 4 - Random(4), |
|
1465 vgtSmoke); |
|
1466 PlaySound(sndVaporize); |
|
1467 Gear^.Health := 0; |
|
1468 end; |
|
1469 exit |
|
1470 end; |
|
1471 dec(Gear^.Timer); |
|
1472 end |
|
1473 else // gsttmpFlag = 0 |
1473 else // gsttmpFlag = 0 |
1474 if (TurnTimeLeft = 0) or ((GameFlags and gfInfAttack) <> 0) then Gear^.State := Gear^.State or gsttmpFlag; |
1474 if (TurnTimeLeft = 0) or ((GameFlags and gfInfAttack) <> 0) then Gear^.State := Gear^.State or gsttmpFlag; |
1475 end; |
1475 end; |
1476 |
1476 |
1477 //////////////////////////////////////////////////////////////////////////////// |
1477 //////////////////////////////////////////////////////////////////////////////// |