hedgewars/GSHandlers.inc
changeset 13 7a5db822fd3f
parent 10 edf56dca1587
child 14 81f125629b25
equal deleted inserted replaced
12:366adfa1a727 13:7a5db822fd3f
   574 procedure doStepMine(Gear: PGear);
   574 procedure doStepMine(Gear: PGear);
   575 begin
   575 begin
   576 if (Gear.dX <> 0) or (Gear.dY <> 0) then
   576 if (Gear.dX <> 0) or (Gear.dY <> 0) then
   577    begin
   577    begin
   578    doStepFallingGear(Gear);
   578    doStepFallingGear(Gear);
       
   579    if Gear.Active = false then
       
   580       begin
       
   581       Gear.dX:= 0;
       
   582       Gear.dY:= 0
       
   583       end;
       
   584    CalcRotationDirAngle(Gear);
   579    AllInactive:= false
   585    AllInactive:= false
   580    end;
   586    end;
   581 CalcRotationDirAngle(Gear);
       
   582 if TurnTimeLeft = 0 then Gear.State:= Gear.State or gsttmpFlag;
       
   583 if ((Gear.State and gsttmpFlag) <> 0) then
   587 if ((Gear.State and gsttmpFlag) <> 0) then
   584    if ((Gear.State and gstAttacking) = 0) then
   588    if ((Gear.State and gstAttacking) = 0) then
   585       if isGearNear(Gear, gtHedgehog, 42, 25) then Gear.State:= Gear.State or gstAttacking else
   589       if isGearNear(Gear, gtHedgehog, 46, 32) then Gear.State:= Gear.State or gstAttacking else
   586       else // gstAttacking <> 0
   590       else // gstAttacking <> 0
   587       begin
   591       begin
   588       AllInactive:= false;
   592       AllInactive:= false;
   589       dec(Gear.Timer);
   593       if (Gear.Timer and $1FF) = 0 then PlaySound(sndMineTick);
   590       if Gear.Timer = 0 then
   594       if Gear.Timer = 0 then
   591          begin
   595          begin
   592          doMakeExplosion(round(Gear.X), round(Gear.Y), 50, 0);
   596          doMakeExplosion(round(Gear.X), round(Gear.Y), 50, EXPLAutoSound);
       
   597          SetAllToActive;
   593          DeleteGear(Gear)
   598          DeleteGear(Gear)
   594          end;
   599          end;
   595       end;
   600       dec(Gear.Timer);
   596 end;
   601       end else // gsttmpFlag = 0
       
   602    if TurnTimeLeft = 0 then Gear.State:= Gear.State or gsttmpFlag;
       
   603 end;