hedgewars/uGearsUtils.pas
changeset 9485 3dee8a3b0406
parent 9479 167dea42d7d7
child 9489 0818d14e90be
equal deleted inserted replaced
9483:14ad1ac00ac9 9485:3dee8a3b0406
  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-100)) or
  1227 if (hwRound(Gear^.X)-Gear^.Radius < leftX) or
  1228    (hwRound(Gear^.X)+Gear^.Radius > (rightX+100)) then
  1228    (hwRound(Gear^.X)+Gear^.Radius > rightX) 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-100) then
  1232         if (hwRound(Gear^.X)-Gear^.Radius < leftX) then
  1233              Gear^.X:= int2hwfloat(rightX-Gear^.Radius+100)
  1233              Gear^.X:= int2hwfloat(rightX-Gear^.Radius)
  1234         else Gear^.X:= int2hwfloat(leftX+Gear^.Radius-100)
  1234         else Gear^.X:= int2hwfloat(leftX+Gear^.Radius)
  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-100)
  1241             Gear^.X:= int2hwfloat(leftX+Gear^.Radius)
  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+100)
  1246             Gear^.X:= int2hwfloat(rightX-Gear^.Radius)
  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