hedgewars/uGearsUtils.pas
changeset 10245 3ccc054c3c3e
parent 10160 4608f10ae65f
child 10272 31ee88c9b4d0
equal deleted inserted replaced
10244:f7b5b4b88171 10245:3ccc054c3c3e
   378                 Gear^.Y:= int2hwFloat(GetRandom(LAND_HEIGHT-topY)+topY);
   378                 Gear^.Y:= int2hwFloat(GetRandom(LAND_HEIGHT-topY)+topY);
   379                 Gear^.dX:= _90-(GetRandomf*_360);
   379                 Gear^.dX:= _90-(GetRandomf*_360);
   380                 Gear^.dY:= _90-(GetRandomf*_360)
   380                 Gear^.dY:= _90-(GetRandomf*_360)
   381                 end
   381                 end
   382             else DeleteGear(Gear);
   382             else DeleteGear(Gear);
   383             exit
   383             exit(true)
   384             end;
   384             end;
   385         isSubmersible:= ((Gear = CurrentHedgehog^.Gear) and (CurAmmoGear <> nil) and (CurAmmoGear^.State and gstSubmersible <> 0)) or (Gear^.State and gstSubmersible <> 0);
   385         isSubmersible:= ((Gear = CurrentHedgehog^.Gear) and (CurAmmoGear <> nil) and (CurAmmoGear^.State and gstSubmersible <> 0)) or (Gear^.State and gstSubmersible <> 0);
   386         skipSpeed := _0_25;
   386         skipSpeed := _0_25;
   387         skipAngle := _1_9;
   387         skipAngle := _1_9;
   388         skipDecay := _0_87;
   388         skipDecay := _0_87;
   412                         begin
   412                         begin
   413                         if Gear^.Hedgehog^.Effects[heResurrectable] <> 0 then
   413                         if Gear^.Hedgehog^.Effects[heResurrectable] <> 0 then
   414                             begin
   414                             begin
   415                             // Gear could become nil after this, just exit to skip splashes
   415                             // Gear could become nil after this, just exit to skip splashes
   416                             ResurrectHedgehog(Gear);
   416                             ResurrectHedgehog(Gear);
   417                             exit
   417                             exit(true)
   418                             end
   418                             end
   419                         else
   419                         else
   420                             begin
   420                             begin
   421                             Gear^.doStep := @doStepDrowningGear;
   421                             Gear^.doStep := @doStepDrowningGear;
   422                             Gear^.State := Gear^.State and (not gstHHDriven);
   422                             Gear^.State := Gear^.State and (not gstHHDriven);
   425                             end
   425                             end
   426                         end
   426                         end
   427                     else
   427                     else
   428                         Gear^.doStep := @doStepDrowningGear;
   428                         Gear^.doStep := @doStepDrowningGear;
   429                         if Gear^.Kind = gtFlake then
   429                         if Gear^.Kind = gtFlake then
   430                             exit // skip splashes
   430                             exit(true) // skip splashes
   431                 end
   431                 end
   432             else if (Y > cWaterLine + cVisibleWater*4) and
   432             else if (Y > cWaterLine + cVisibleWater*4) and
   433                     ((Gear <> CurrentHedgehog^.Gear) or (CurAmmoGear = nil) or (CurAmmoGear^.State and gstSubmersible = 0)) then
   433                     ((Gear <> CurrentHedgehog^.Gear) or (CurAmmoGear = nil) or (CurAmmoGear^.State and gstSubmersible = 0)) then
   434                 Gear^.doStep:= @doStepDrowningGear;
   434                 Gear^.doStep:= @doStepDrowningGear;
   435             if ((not isSubmersible) and (Y < cWaterLine + 64 + Gear^.Radius))
   435             if ((not isSubmersible) and (Y < cWaterLine + 64 + Gear^.Radius))