hedgewars/uGearsUtils.pas
changeset 9479 167dea42d7d7
parent 9477 0463f747e839
child 9485 3dee8a3b0406
equal deleted inserted replaced
9477:0463f747e839 9479:167dea42d7d7
   487         if isSubmersible and (Gear = CurAmmoGear) and (CurAmmoGear^.Pos = 0) then
   487         if isSubmersible and (Gear = CurAmmoGear) and (CurAmmoGear^.Pos = 0) then
   488             CurAmmoGear^.Pos := 1000
   488             CurAmmoGear^.Pos := 1000
   489         end
   489         end
   490     else
   490     else
   491         begin
   491         begin
   492         if Gear^.Kind = gtHedgehog then Gear^.State:= Gear^.State and not gstSubmersible;
   492         if not (Gear^.Kind in [gtJetpack, gtBee]) then Gear^.State:= Gear^.State and not gstSubmersible;  // making it temporary for most gears is more attractive I think
   493         CheckGearDrowning := false
   493         CheckGearDrowning := false
   494         end
   494         end
   495 end;
   495 end;
   496 
   496 
   497 
   497 
  1222 begin
  1222 begin
  1223 WorldWrap:= false;
  1223 WorldWrap:= false;
  1224 // for playing around since it isn't hooked up yet
  1224 // for playing around since it isn't hooked up yet
  1225 //WorldEdge:= weBounce;
  1225 //WorldEdge:= weBounce;
  1226 if WorldEdge = weNone then exit(false);
  1226 if WorldEdge = weNone then exit(false);
  1227 if (hwRound(Gear^.X)-Gear^.Radius < leftX) or
  1227 if (hwRound(Gear^.X)-Gear^.Radius < (leftX-100)) or
  1228    (hwRound(Gear^.X)+Gear^.Radius > rightX) then
  1228    (hwRound(Gear^.X)+Gear^.Radius > (rightX+100)) then
  1229     begin
  1229     begin
  1230     if WorldEdge = weWrap then
  1230     if WorldEdge = weWrap then
  1231         begin
  1231         begin
  1232         if (hwRound(Gear^.X)-Gear^.Radius < leftX) then
  1232         if (hwRound(Gear^.X)-Gear^.Radius < leftX-100) then
  1233              Gear^.X:= int2hwfloat(rightX-Gear^.Radius)
  1233              Gear^.X:= int2hwfloat(rightX-Gear^.Radius+100)
  1234         else Gear^.X:= int2hwfloat(leftX+Gear^.Radius)
  1234         else Gear^.X:= int2hwfloat(leftX+Gear^.Radius-100)
  1235         end
  1235         end
  1236     else if WorldEdge = weBounce then
  1236     else if WorldEdge = weBounce then
  1237         begin
  1237         begin
  1238         if (hwRound(Gear^.X)-Gear^.Radius < leftX) then
  1238         if (hwRound(Gear^.X)-Gear^.Radius < leftX) then
  1239             begin
  1239             begin
  1240             Gear^.dX.isNegative:= false;
  1240             Gear^.dX.isNegative:= false;
  1241             Gear^.X:= int2hwfloat(leftX+Gear^.Radius)
  1241             Gear^.X:= int2hwfloat(leftX+Gear^.Radius-100)
  1242             end
  1242             end
  1243         else 
  1243         else 
  1244             begin
  1244             begin
  1245             Gear^.dX.isNegative:= true;
  1245             Gear^.dX.isNegative:= true;
  1246             Gear^.X:= int2hwfloat(rightX-Gear^.Radius)
  1246             Gear^.X:= int2hwfloat(rightX-Gear^.Radius+100)
  1247             end
  1247             end
  1248         end
  1248         end
  1249     else if WorldEdge = weSea then
  1249     else if WorldEdge = weSea then
  1250         begin
  1250         begin
  1251         if (hwRound(Gear^.Y) > cWaterLine) and (Gear^.State and gstSubmersible <> 0) then
  1251         if (hwRound(Gear^.Y) > cWaterLine) and (Gear^.State and gstSubmersible <> 0) then