# HG changeset patch # User nemo # Date 1352171006 18000 # Node ID 7ac6699b6228de49ecfd998db6fc1e059698911c # Parent 0dffb91eeb82fc9405cd1ef504b7a39944ae9f0f support ridiculously large maps diff -r 0dffb91eeb82 -r 7ac6699b6228 hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Tue Nov 06 00:28:47 2012 +0400 +++ b/hedgewars/uConsts.pas Mon Nov 05 22:03:26 2012 -0500 @@ -161,18 +161,6 @@ // do not change this value cDefaultZoomLevel = 2.0; -{$IFDEF MOBILE} - cMaxZoomLevel = 0.5; - cMinZoomLevel = 3.5; - cZoomDelta = 0.20; -{$ELSE} - cMaxZoomLevel = 1.0; - cMinZoomLevel = 3.0; - cZoomDelta = 0.25; -{$ENDIF} - - cMinMaxZoomLevelDelta = cMaxZoomLevel - cMinZoomLevel; - cSendEmptyPacketTime = 1000; trigTurns = $80000001; diff -r 0dffb91eeb82 -r 7ac6699b6228 hedgewars/uInputHandler.pas --- a/hedgewars/uInputHandler.pas Tue Nov 06 00:28:47 2012 +0400 +++ b/hedgewars/uInputHandler.pas Mon Nov 05 22:03:26 2012 -0500 @@ -280,8 +280,8 @@ DefaultBinds[KeyNameToCode(_S'y')]:= 'confirm'; DefaultBinds[KeyNameToCode('mousem')]:= 'zoomreset'; -DefaultBinds[KeyNameToCode('wheelup')]:= 'zoomin'; -DefaultBinds[KeyNameToCode('wheeldown')]:= 'zoomout'; +DefaultBinds[KeyNameToCode('wheelup')]:= 'zoomout'; +DefaultBinds[KeyNameToCode('wheeldown')]:= 'zoomin'; DefaultBinds[KeyNameToCode('f12')]:= 'fullscr'; diff -r 0dffb91eeb82 -r 7ac6699b6228 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Tue Nov 06 00:28:47 2012 +0400 +++ b/hedgewars/uLand.pas Mon Nov 05 22:03:26 2012 -0500 @@ -54,6 +54,9 @@ SetLength(Land, LAND_HEIGHT, LAND_WIDTH); SetLength(LandDirty, (LAND_HEIGHT div 32), (LAND_WIDTH div 32)); + // 0.5 is already approaching on unplayable + if (width div 4096 >= 2) or (height div 2048 >= 2) then cMaxZoomLevel:= 0.5; + cMinMaxZoomLevelDelta:= cMaxZoomLevel - cMinZoomLevel end; end; diff -r 0dffb91eeb82 -r 7ac6699b6228 hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Tue Nov 06 00:28:47 2012 +0400 +++ b/hedgewars/uVariables.pas Mon Nov 05 22:03:26 2012 -0500 @@ -108,7 +108,7 @@ zoom : GLfloat; ZoomValue : GLfloat; - cWaterLine : Word; + cWaterLine : LongWord; cGearScrEdgesDist: LongInt; isAudioMuted : boolean; @@ -122,8 +122,8 @@ Pathz: array[TPathType] of shortstring; UserPathz: array[TPathType] of shortstring; CountTexz: array[0..Pred(AMMO_INFINITE)] of PTexture; - LAND_WIDTH : Word; - LAND_HEIGHT : Word; + LAND_WIDTH : LongWord; + LAND_HEIGHT : LongWord; LAND_WIDTH_MASK : LongWord; LAND_HEIGHT_MASK : LongWord; @@ -164,6 +164,10 @@ AmmoMenuInvalidated: boolean; AmmoRect : TSDL_Rect; HHTexture : PTexture; + cMaxZoomLevel : real; + cMinZoomLevel : real; + cZoomDelta : real; + cMinMaxZoomLevelDelta : real; flagMakeCapture : boolean; @@ -2632,6 +2636,18 @@ cDamageModifier := _1; TargetPoint := cTargetPointRef; +{$IFDEF MOBILE} + cMaxZoomLevel:= 0.5; + cMinZoomLevel:= 3.5; + cZoomDelta:= 0.20; +{$ELSE} + cMaxZoomLevel:= 1.0; + cMinZoomLevel:= 3.0; + cZoomDelta:= 0.25; +{$ENDIF} + + cMinMaxZoomLevelDelta:= cMaxZoomLevel - cMinZoomLevel; + // int, longint longword and byte CursorMovementX := 0; CursorMovementY := 0;