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 |