# HG changeset patch # User sheepluva # Date 1418332960 -3600 # Node ID e0d7d499c851e59380da2153c7321c6f9603c98e # Parent 0da243c01bdee4fb3fd4c4f5385281373da38b44 make camera in wrap mode a bit smarter diff -r 0da243c01bde -r e0d7d499c851 hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Thu Dec 11 20:46:45 2014 +0100 +++ b/hedgewars/uWorld.pas Thu Dec 11 22:22:40 2014 +0100 @@ -1867,12 +1867,17 @@ end else begin - if abs(prevPoint.X - WorldDx - hwRound(FollowGear^.X)) > LongInt(rightX) - leftX - 100 then + if (WorldEdge = weWrap) then + cameraJump:= LongInt(playWidth) div 2 + 50 + else + cameraJump:= LongInt(rightX) - leftX - 100; + + if abs(prevPoint.X - WorldDx - hwRound(FollowGear^.X)) > cameraJump then begin - if (prevPoint.X - WorldDx) * 2 < LongInt((rightX + leftX)) then - cameraJump:= LongInt(rightX) - leftX - else - cameraJump:= LongInt(leftX) - rightX; + if prevPoint.X - WorldDx < LongInt(playWidth div 2) then + cameraJump:= LongInt(playWidth) + else + cameraJump:= -LongInt(playWidth); WorldDx:= WorldDx - cameraJump; end;