10198
|
1 |
unit uLandUtils;
|
|
2 |
interface
|
|
3 |
|
|
4 |
procedure ResizeLand(width, height: LongWord);
|
|
5 |
|
|
6 |
implementation
|
|
7 |
uses uUtils, uConsts, uVariables;
|
|
8 |
|
|
9 |
procedure ResizeLand(width, height: LongWord);
|
|
10 |
var potW, potH: LongInt;
|
|
11 |
begin
|
|
12 |
potW:= toPowerOf2(width);
|
|
13 |
potH:= toPowerOf2(height);
|
|
14 |
if (potW <> LAND_WIDTH) or (potH <> LAND_HEIGHT) then
|
|
15 |
begin
|
|
16 |
LAND_WIDTH:= potW;
|
|
17 |
LAND_HEIGHT:= potH;
|
|
18 |
LAND_WIDTH_MASK:= not(LAND_WIDTH-1);
|
|
19 |
LAND_HEIGHT_MASK:= not(LAND_HEIGHT-1);
|
|
20 |
cWaterLine:= LAND_HEIGHT;
|
|
21 |
if (cReducedQuality and rqBlurryLand) = 0 then
|
|
22 |
SetLength(LandPixels, LAND_HEIGHT, LAND_WIDTH)
|
|
23 |
else
|
|
24 |
SetLength(LandPixels, LAND_HEIGHT div 2, LAND_WIDTH div 2);
|
|
25 |
|
|
26 |
SetLength(Land, LAND_HEIGHT, LAND_WIDTH);
|
|
27 |
SetLength(LandDirty, (LAND_HEIGHT div 32), (LAND_WIDTH div 32));
|
|
28 |
// 0.5 is already approaching on unplayable
|
|
29 |
if (width div 4096 >= 2) or (height div 2048 >= 2) then cMaxZoomLevel:= 0.5;
|
|
30 |
cMinMaxZoomLevelDelta:= cMaxZoomLevel - cMinZoomLevel
|
|
31 |
end;
|
|
32 |
end;
|
|
33 |
|
|
34 |
end.
|