--- a/hedgewars/uWorld.pas Sat Oct 27 21:39:09 2012 +0400
+++ b/hedgewars/uWorld.pas Sat Oct 27 20:05:52 2012 +0200
@@ -629,11 +629,7 @@
Pos:= -1;
Slot:= -1;
{$IFDEF USE_LANDSCAPE_AMMOMENU}
- {$IFDEF USE_AM_NUMCOLUMN}
-c:= 0;
- {$ELSE}
c:= -1;
- {$ENDIF}
for i:= 0 to cMaxSlotIndex do
if ((i = 0) and (Ammo^[i, 1].Count > 0)) or ((i <> 0) and (Ammo^[i, 0].Count > 0)) then
begin
@@ -647,8 +643,8 @@
if (Ammo^[i, t].Count > 0) and (Ammo^[i, t].AmmoType <> amNothing) then
begin
if (CursorPoint.Y <= (cScreenHeight - AmmoRect.y) - ( g * (AMSlotSize+1))) and
- (CursorPoint.Y >= (cScreenHeight - AmmoRect.y) - ((g+1) * (AMSlotSize+1))) and
- (CursorPoint.X >= AmmoRect.x + ( c * (AMSlotSize+1))) and
+ (CursorPoint.Y > (cScreenHeight - AmmoRect.y) - ((g+1) * (AMSlotSize+1))) and
+ (CursorPoint.X > AmmoRect.x + ( c * (AMSlotSize+1))) and
(CursorPoint.X <= AmmoRect.x + ((c+1) * (AMSlotSize+1))) then
begin
Slot:= i;
@@ -663,11 +659,7 @@
end;
end;
{$ELSE}
- {$IFDEF USE_AM_NUMCOLUMN}
c:= -1;
- {$ELSE}
-c:= 0;
- {$ENDIF}
for i:= 0 to cMaxSlotIndex do
if ((i = 0) and (Ammo^[i, 1].Count > 0)) or ((i <> 0) and (Ammo^[i, 0].Count > 0)) then
begin
@@ -1640,7 +1632,7 @@
var PrevSentPointTime: LongWord = 0;
procedure MoveCamera;
-var EdgesDist, wdy, shs,z: LongInt;
+var EdgesDist, wdy, shs,z, amNumOffsetX, amNumOffsetY: LongInt;
begin
{$IFNDEF MOBILE}
if (not (CurrentTeam^.ExtDriven and isCursorVisible and (not bShowAmmoMenu))) and cHasFocus and (GameState <> gsConfirm) then
@@ -1672,14 +1664,30 @@
if (AMState = AMShowingUp) or (AMState = AMShowing) then
begin
- if CursorPoint.X < AmmoRect.x + AMSlotSize then//check left
- CursorPoint.X:= AmmoRect.x + AMSlotSize;
- if CursorPoint.X > AmmoRect.x + AmmoRect.w then//check right
- CursorPoint.X:= AmmoRect.x + AmmoRect.w;
- if CursorPoint.Y > cScreenHeight - AmmoRect.y then//check top
- CursorPoint.Y:= cScreenHeight - AmmoRect.y;
- if CursorPoint.Y < cScreenHeight - (AmmoRect.y + AmmoRect.h - AMSlotSize - 2) then//check bottom
- CursorPoint.Y:= cScreenHeight - (AmmoRect.y + AmmoRect.h - AMSlotSize - 2);
+{$IFDEF USE_LANDSCAPE_AMMOMENU}
+ amNumOffsetX:= 0;
+ {$IFDEF USE_AM_NUMCOLUMN}
+ amNumOffsetY:= AMSlotSize;
+ {$ELSE}
+ amNumOffsetY:= 0;
+ {$ENDIF}
+{$ELSE}
+ amNumOffsetY:= 0;
+ {$IFDEF USE_AM_NUMCOLUMN}
+ amNumOffsetX:= AMSlotSize;
+ {$ELSE}
+ amNumOffsetX:= 0;
+ {$ENDIF}
+
+{$ENDIF}
+ if CursorPoint.X < AmmoRect.x + amNumOffsetX + 3 then//check left
+ CursorPoint.X:= AmmoRect.x + amNumOffsetX + 3;
+ if CursorPoint.X > AmmoRect.x + AmmoRect.w - 3 then//check right
+ CursorPoint.X:= AmmoRect.x + AmmoRect.w - 3;
+ if CursorPoint.Y > cScreenHeight - AmmoRect.y -amNumOffsetY - 1 then//check top
+ CursorPoint.Y:= cScreenHeight - AmmoRect.y - amNumOffsetY - 1;
+ if CursorPoint.Y < cScreenHeight - (AmmoRect.y + AmmoRect.h - AMSlotSize - 5) then//check bottom
+ CursorPoint.Y:= cScreenHeight - (AmmoRect.y + AmmoRect.h - AMSlotSize - 5);
prevPoint:= CursorPoint;
//if cHasFocus then SDL_WarpMouse(CursorPoint.X + cScreenWidth div 2, cScreenHeight - CursorPoint.Y);
exit