hedgewars/uGearsHandlersMess.pas
changeset 15716 d5fce8a02092
parent 15715 e0cdb6ae88ab
child 15717 9060532c25f7
equal deleted inserted replaced
15715:e0cdb6ae88ab 15716:d5fce8a02092
  7469             Gear^.Timer := 1800 + GetRandom(400);
  7469             Gear^.Timer := 1800 + GetRandom(400);
  7470         end
  7470         end
  7471     end
  7471     end
  7472 end;
  7472 end;
  7473 
  7473 
       
  7474 procedure doStepSentryWater(Gear: PGear);
       
  7475 begin
       
  7476     if Gear^.Tag < 0 then
       
  7477     begin
       
  7478         CheckGearDrowning(Gear);
       
  7479         exit;
       
  7480     end;
       
  7481 
       
  7482     Gear^.Y := int2hwFloat(cWaterLine - 3 * Gear^.Radius);
       
  7483     if TestCollisionYwithGear(Gear, -1) <> 0 then
       
  7484     begin
       
  7485         Gear^.Tag := -1;
       
  7486         exit;
       
  7487     end;
       
  7488 end;
       
  7489 
  7474 procedure doStepSentryDeploy(Gear: PGear);
  7490 procedure doStepSentryDeploy(Gear: PGear);
  7475 begin
  7491 begin
  7476     Gear^.Tag := -1;
  7492     Gear^.Tag := -1;
  7477     if Gear^.dY.isNegative or (TestCollisionYwithGear(Gear, 1) = 0) then
  7493     if hwRound(Gear^.Y) + 3 * Gear^.Radius >= cWaterLine then
       
  7494     begin
       
  7495         Gear^.Y := int2hwFloat(cWaterLine - 3 * Gear^.Radius);
       
  7496         if Gear^.Timer > 0 then dec(Gear^.Timer);
       
  7497         if Gear^.Timer = 0 then
       
  7498         begin
       
  7499             Gear^.Tag := 0;
       
  7500             Gear^.doStep := @doStepSentryWater;
       
  7501         end;
       
  7502     end
       
  7503     else if Gear^.dY.isNegative or (TestCollisionYwithGear(Gear, 1) = 0) then
  7478         doStepFallingGear(Gear)
  7504         doStepFallingGear(Gear)
  7479     else
  7505     else
  7480     begin
  7506     begin
  7481         if Gear^.Timer > 0 then dec(Gear^.Timer);
  7507         if Gear^.Timer > 0 then dec(Gear^.Timer);
  7482         if Gear^.Timer = 0 then
  7508         if Gear^.Timer = 0 then