# HG changeset patch # User unc0rr # Date 1232907023 0 # Node ID 2ccba26f1aa4003ea33f876e2011cbcb72e2c2f8 # Parent 769986d39202997e54abb07989fe45136995fdcc Apply nemo's world resize patch diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/GSHandlers.inc Sun Jan 25 18:10:23 2009 +0000 @@ -390,7 +390,7 @@ end; dec(i) until i = 0; -if (Gear^.X < _0) or (Gear^.Y < _0) or (Gear^.X > _2048) or (Gear^.Y > _1024) then +if (Gear^.X < _0) or (Gear^.Y < _0) or (Gear^.X > _4096) or (Gear^.Y > _2048) then // LAND_WIDTH / LAND_HEIGHT Gear^.doStep:= @doStepShotIdle end; @@ -409,7 +409,7 @@ Gear^.Y:= Gear^.Y + Gear^.dY; x:= hwRound(Gear^.X); y:= hwRound(Gear^.Y); - if ((y and $FFFFFC00) = 0) and ((x and $FFFFF800) = 0) + if ((y and LAND_HEIGHT_MASK) = 0) and ((x and LAND_WIDTH_MASK) = 0) and (Land[y, x] <> 0) then inc(Gear^.Damage); if Gear^.Damage > 5 then AmmoShove(Gear, 7, 20); dec(i) @@ -420,7 +420,7 @@ dec(Gear^.Health, Gear^.Damage); Gear^.Damage:= 0 end; -if (Gear^.Health <= 0) or (Gear^.X < _0) or (Gear^.Y < _0) or (Gear^.X > _2048) or (Gear^.Y > _1024) then +if (Gear^.Health <= 0) or (Gear^.X < _0) or (Gear^.Y < _0) or (Gear^.X > _4096) or (Gear^.Y > _2048) then // LAND_WIDTH / LAND_HEIGHT Gear^.doStep:= @doStepShotIdle end; @@ -712,7 +712,7 @@ begin lx:= hwRound(Gear^.X + mdX * len); ly:= hwRound(Gear^.Y + mdY * len); - if ((ly and $FFFFFC00) = 0) and ((lx and $FFFFF800) = 0) and (Land[ly, lx] <> 0) then + if ((ly and LAND_HEIGHT_MASK) = 0) and ((lx and LAND_WIDTH_MASK) = 0) and (Land[ly, lx] <> 0) then begin with RopePoints.ar[RopePoints.Count] do begin @@ -1301,7 +1301,7 @@ if (GameTicks and $3F) = 0 then AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtSmokeTrace, 0, _0, _0, 0); -if (hwRound(Gear^.X) > 3072) or (hwRound(Gear^.X) < -1024) then DeleteGear(Gear) +if (hwRound(Gear^.X) > (LAND_WIDTH+1024)) or (hwRound(Gear^.X) < -1024) then DeleteGear(Gear) end; procedure doStepAirAttack(Gear: PGear); @@ -1777,7 +1777,7 @@ x:= hwRound(Gear^.X); y:= hwRound(Gear^.Y); -if ((y and $FFFFFC00) = 0) and ((x and $FFFFF800) = 0) then +if ((y and LAND_HEIGHT_MASK) = 0) and ((x and LAND_WIDTH_MASK) = 0) then if (Land[y, x] <> 0) then begin Gear^.dX.isNegative:= not Gear^.dX.isNegative; diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uAIAmmoTests.pas --- a/hedgewars/uAIAmmoTests.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uAIAmmoTests.pas Sun Jan 25 18:10:23 2009 +0000 @@ -334,7 +334,7 @@ repeat x:= x + vX; y:= y + vY; - if ((hwRound(x) and $FFFFF800) = 0)and((hwRound(y) and $FFFFFC00) = 0) + if ((hwRound(x) and LAND_WIDTH_MASK) = 0)and((hwRound(y) and LAND_HEIGHT_MASK) = 0) and (Land[hwRound(y), hwRound(x)] <> 0) then inc(d); until (Abs(Targ.X - hwRound(x)) + Abs(Targ.Y - hwRound(y)) < 4) or (x < _0) or (y < _0) or (x > _2048) or (y > _1024) or (d > 200); if Abs(Targ.X - hwRound(x)) + Abs(Targ.Y - hwRound(y)) < 3 then Result:= max(0, (4 - d div 50) * 7 * 1024) diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uAIMisc.pas --- a/hedgewars/uAIMisc.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uAIMisc.pas Sun Jan 25 18:10:23 2009 +0000 @@ -176,13 +176,13 @@ function TestColl(x, y, r: LongInt): boolean; var b: boolean; begin -b:= (((x-r) and $FFFFF800) = 0)and(((y-r) and $FFFFFC00) = 0) and (Land[y-r, x-r] <> 0); +b:= (((x-r) and LAND_WIDTH_MASK) = 0)and(((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x-r] <> 0); if b then exit(true); -b:=(((x-r) and $FFFFF800) = 0)and(((y+r) and $FFFFFC00) = 0) and (Land[y+r, x-r] <> 0); +b:=(((x-r) and LAND_WIDTH_MASK) = 0)and(((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x-r] <> 0); if b then exit(true); -b:=(((x+r) and $FFFFF800) = 0)and(((y-r) and $FFFFFC00) = 0) and (Land[y-r, x+r] <> 0); +b:=(((x+r) and LAND_WIDTH_MASK) = 0)and(((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x+r] <> 0); if b then exit(true); -TestColl:=(((x+r) and $FFFFF800) = 0)and(((y+r) and $FFFFFC00) = 0) and (Land[y+r, x+r] <> 0) +TestColl:=(((x+r) and LAND_WIDTH_MASK) = 0)and(((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x+r] <> 0) end; function RateExplosion(Me: PGear; x, y, r: LongInt): LongInt; diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uCollisions.pas --- a/hedgewars/uCollisions.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uCollisions.pas Sun Jan 25 18:10:23 2009 +0000 @@ -124,12 +124,12 @@ x:= hwRound(Gear^.X); if Dir < 0 then x:= x - Gear^.Radius else x:= x + Gear^.Radius; -if (x and $FFFFF800) = 0 then +if (x and LAND_WIDTH_MASK) = 0 then begin y:= hwRound(Gear^.Y) - Gear^.Radius + 1; i:= y + Gear^.Radius * 2 - 2; repeat - if (y and $FFFFFC00) = 0 then + if (y and LAND_HEIGHT_MASK) = 0 then if Land[y, x] > TestWord then exit(true); inc(y) until (y > i); @@ -155,12 +155,12 @@ y:= hwRound(Gear^.Y); if Dir < 0 then y:= y - Gear^.Radius else y:= y + Gear^.Radius; -if (y and $FFFFFC00) = 0 then +if (y and LAND_HEIGHT_MASK) = 0 then begin x:= hwRound(Gear^.X) - Gear^.Radius + 1; i:= x + Gear^.Radius * 2 - 2; repeat - if (x and $FFFFF800) = 0 then + if (x and LAND_WIDTH_MASK) = 0 then if Land[y, x] > TestWord then exit(true); inc(x) until (x > i); @@ -176,12 +176,12 @@ x:= hwRound(Gear^.X); if Dir < 0 then x:= x - Gear^.Radius else x:= x + Gear^.Radius; -if (x and $FFFFF800) = 0 then +if (x and LAND_WIDTH_MASK) = 0 then begin y:= hwRound(Gear^.Y) - Gear^.Radius + 1; i:= y + Gear^.Radius * 2 - 2; repeat - if (y and $FFFFFC00) = 0 then + if (y and LAND_HEIGHT_MASK) = 0 then if Land[y, x] = COLOR_LAND then exit(true) else if Land[y, x] <> 0 then flag:= true; inc(y) @@ -226,12 +226,12 @@ y:= hwRound(Gear^.Y); if Dir < 0 then y:= y - Gear^.Radius else y:= y + Gear^.Radius; -if (y and $FFFFFC00) = 0 then +if (y and LAND_HEIGHT_MASK) = 0 then begin x:= hwRound(Gear^.X) - Gear^.Radius + 1; i:= x + Gear^.Radius * 2 - 2; repeat - if (x and $FFFFF800) = 0 then + if (x and LAND_WIDTH_MASK) = 0 then if Land[y, x] > 0 then if Land[y, x] = COLOR_LAND then exit(true) else if Land[y, x] <> 0 then flag:= true; @@ -285,12 +285,12 @@ y:= hwRound(Gear^.Y); if Dir < 0 then y:= y - Gear^.Radius else y:= y + Gear^.Radius; -if (y and $FFFFFC00) = 0 then +if (y and LAND_HEIGHT_MASK) = 0 then begin x:= hwRound(Gear^.X) - Gear^.Radius + 1; i:= x + Gear^.Radius * 2 - 2; repeat - if (x and $FFFFF800) = 0 then + if (x and LAND_WIDTH_MASK) = 0 then if Land[y, x] = COLOR_LAND then exit(true); inc(x) until (x > i); diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uConsts.pas Sun Jan 25 18:10:23 2009 +0000 @@ -138,7 +138,12 @@ MAXNAMELEN = 192; + LAND_HEIGHT = 2047; // could these be variable instead of const? + LAND_HEIGHT_MASK = $FFFFF800; // derive from LAND_HEIGHT? + LAND_WIDTH = 4095; + LAND_WIDTH_MASK = $FFFFF000; COLOR_LAND = $00FFFFFF; + COLOR_INDESTRUCTIBLE = $0000F00D; cifRandomize = $00000001; cifTheme = $00000002; diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uFloat.pas --- a/hedgewars/uFloat.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uFloat.pas Sun Jan 25 18:10:23 2009 +0000 @@ -125,6 +125,7 @@ _450: hwFloat = (isNegative: false; QWordValue: 4294967296 * 450); _1024: hwFloat = (isNegative: false; QWordValue: 4294967296 * 1024); _2048: hwFloat = (isNegative: false; QWordValue: 4294967296 * 2048); + _4096: hwFloat = (isNegative: false; QWordValue: 4294967296 * 4096); _10000: hwFloat = (isNegative: false; QWordValue: 4294967296 * 10000); cLittle: hwFloat = (isNegative: false; QWordValue: 1); diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uGears.pas Sun Jan 25 18:10:23 2009 +0000 @@ -1180,7 +1180,7 @@ for i:= 0 to Pred(cLandAdditions) do begin Gear:= AddGear(0, 0, gtMine, 0, _0, _0, 0); - FindPlace(Gear, false, 0, 2048) + FindPlace(Gear, false, 0, LAND_WIDTH+1) end end; @@ -1371,10 +1371,10 @@ while (Count > 0) do begin i:= GetRandom(Count); - FindPlace(ar[i]^.Gear, false, 0, 2048); + FindPlace(ar[i]^.Gear, false, 0, LAND_WIDTH+1); if ar[i]^.Gear <> nil then begin - ar[i]^.Gear^.dX.isNegative:= ar[i]^.Gear^.X > _1024; + ar[i]^.Gear^.dX.isNegative:= ar[i]^.Gear^.X > _4096; // LAND_WIDTH ar[i]^.Gear^.Pos:= GetRandom(19); ar[i]:= ar[Count - 1] end; @@ -1482,7 +1482,7 @@ FollowGear^.State:= Longword(i) end; end; -FindPlace(FollowGear, true, 0, 2048) +FindPlace(FollowGear, true, 0, 4096) end; procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt); @@ -1492,8 +1492,8 @@ Result: LongInt; begin Result:= 0; - if (y and $FFFFFC00) = 0 then - for i:= max(x - r, 0) to min(x + r, 2043) do + if (y and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - r, 0) to min(x + r, LAND_WIDTH-4) do if Land[y, i] <> 0 then inc(Result); CountNonZeroz:= Result end; @@ -1513,20 +1513,20 @@ inc(x, Delta); cnt:= 0; y:= -Gear^.Radius * 2; - while y < 1023 do + while y < LAND_HEIGHT do begin repeat inc(y, 2); - until (y > 1023) or (CountNonZeroz(x, y, Gear^.Radius - 1) = 0); + until (y > LAND_HEIGHT) or (CountNonZeroz(x, y, Gear^.Radius - 1) = 0); sy:= y; repeat inc(y); - until (y > 1023) or (CountNonZeroz(x, y, Gear^.Radius - 1) <> 0); + until (y > LAND_HEIGHT) or (CountNonZeroz(x, y, Gear^.Radius - 1) <> 0); if (y - sy > Gear^.Radius * 2) - and (y < 1023) + and (y < LAND_HEIGHT) and (CheckGearsNear(x, y - Gear^.Radius, [gtHedgehog, gtMine, gtCase], 110, 110) = nil) then begin ar[cnt].X:= x; diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uLand.pas Sun Jan 25 18:10:23 2009 +0000 @@ -20,9 +20,9 @@ interface uses SDLh, uLandTemplates, uFloat, GL, uConsts; {$include options.inc} -type TLandArray = packed array[0..1023, 0..2047] of LongWord; +type TLandArray = packed array[0..LAND_HEIGHT, 0..LAND_WIDTH] of LongWord; TPreview = packed array[0..127, 0..31] of byte; - TDirtyTag = packed array[0..31, 0..63] of byte; + TDirtyTag = packed array[0..63, 0..127] of byte; var Land: TLandArray; LandPixels: TLandArray; @@ -118,7 +118,7 @@ inc(y, sY); end; - if ((x and $FFFFF800) = 0) and ((y and $FFFFFC00) = 0) then + if ((x and LAND_WIDTH_MASK) = 0) and ((y and LAND_HEIGHT_MASK) = 0) then Land[y, x]:= Color; end end; @@ -245,7 +245,7 @@ begin TryDo(Stack.Count <= 8192, 'FillLand: stack overflow', true); _y:= _y + _dir; - if (_y < 0) or (_y > 1023) then exit; + if (_y < 0) or (_y > LAND_HEIGHT) then exit; with Stack.points[Stack.Count] do begin xl:= _xl; @@ -279,7 +279,7 @@ begin Pop(xl, xr, y, dir); while (xl > 0) and (Land[y, xl] <> 0) do dec(xl); - while (xr < 2047) and (Land[y, xr] <> 0) do inc(xr); + while (xr < LAND_WIDTH) and (Land[y, xr] <> 0) do inc(xr); while (xl < xr) do begin while (xl <= xr) and (Land[y, xl] = 0) do inc(xl); @@ -305,10 +305,10 @@ begin tmpsurf:= LoadImage(Pathz[ptCurrTheme] + '/LandTex', false, true, false); r.y:= 0; -while r.y < 1024 do +while r.y < 2048 do begin r.x:= 0; - while r.x < 2048 do + while r.x <= LAND_WIDTH do begin SDL_UpperBlit(tmpsurf, nil, Surface, @r); inc(r.x, tmpsurf^.w) @@ -318,22 +318,22 @@ SDL_FreeSurface(tmpsurf); tmpsurf:= LoadImage(Pathz[ptCurrTheme] + '/Border', false, true, true); -for x:= 0 to 2047 do +for x:= 0 to 4095 do begin - yd:= 1023; + yd:= LAND_HEIGHT; repeat while (yd > 0 ) and (Land[yd, x] = 0) do dec(yd); if (yd < 0) then yd:= 0; - while (yd < 1024) and (Land[yd, x] <> 0) do inc(yd); + while (yd <= LAND_HEIGHT) and (Land[yd, x] <> 0) do inc(yd); dec(yd); yu:= yd; while (yu > 0 ) and (Land[yu, x] <> 0) do dec(yu); while (yu < yd ) and (Land[yu, x] = 0) do inc(yu); - if (yd < 1023) and ((yd - yu) >= 16) then + if (yd < LAND_HEIGHT) and ((yd - yu) >= 16) then begin rr.x:= x; rr.y:= yd - 15; @@ -375,18 +375,18 @@ begin for i:= 0 to pred(BasePointsCount) do if pa.ar[i].x <> NTPX then - pa.ar[i].x:= 2047 - pa.ar[i].x; + pa.ar[i].x:= LAND_WIDTH - pa.ar[i].x; for i:= 0 to pred(FillPointsCount) do - FillPoints^[i].x:= 2047 - FillPoints^[i].x; + FillPoints^[i].x:= LAND_WIDTH - FillPoints^[i].x; end; if canFlip then if getrandom(2) = 0 then begin for i:= 0 to pred(BasePointsCount) do - pa.ar[i].y:= 1023 - pa.ar[i].y; + pa.ar[i].y:= LAND_HEIGHT - pa.ar[i].y; for i:= 0 to pred(FillPointsCount) do - FillPoints^[i].y:= 1023 - FillPoints^[i].y; + FillPoints^[i].y:= LAND_HEIGHT - FillPoints^[i].y; end; end end; @@ -440,8 +440,8 @@ with pa.ar[i] do if x <> NTPX then begin - radz[i]:= Min(Max(x - cEdge, 0), Max(2048 - cEdge - x, 0)); - radz[i]:= Min(radz[i], Min(Max(y - cEdge, 0), Max(1024 - cEdge - y, 0))); + radz[i]:= Min(Max(x - cEdge, 0), Max(LAND_WIDTH + 1 - cEdge - x, 0)); + radz[i]:= Min(radz[i], Min(Max(y - cEdge, 0), Max(LAND_HEIGHT + 1 - cEdge - y, 0))); if radz[i] > 0 then for k:= 0 to Pred(i) do begin @@ -453,7 +453,7 @@ for i:= 0 to Pred(pa.Count) do with pa.ar[i] do - if ((x and $FFFFF800) = 0) and ((y and $FFFFFC00) = 0) then + if ((x and LAND_WIDTH_MASK) = 0) and ((y and LAND_HEIGHT_MASK) = 0) then begin px:= x; py:= y; @@ -473,8 +473,8 @@ i: Longword; y, x: Longword; begin -for y:= 0 to 1023 do - for x:= 0 to 2047 do +for y:= 0 to LAND_HEIGHT do + for x:= 0 to LAND_WIDTH do Land[y, x]:= COLOR_LAND; SetPoints(Template, pa); @@ -504,6 +504,7 @@ procedure LandSurface2LandPixels(Surface: PSDL_Surface); var x, y: LongInt; + c: LongWord; p: PLongwordArray; begin TryDo(Surface <> nil, 'Assert (LandSurface <> nil) failed', true); @@ -512,15 +513,50 @@ SDLTry(SDL_LockSurface(Surface) >= 0, true); p:= Surface^.pixels; -for y:= 0 to 1023 do +for y:= 0 to LAND_HEIGHT do begin - for x:= 0 to 2047 do + for x:= 0 to LAND_WIDTH do if Land[y, x] <> 0 then LandPixels[y, x]:= p^[x] or $FF000000; p:= @(p^[Surface^.pitch div 4]); end; if SDL_MustLock(Surface) then - SDL_UnlockSurface(Surface) + SDL_UnlockSurface(Surface); + +for y:= 0 to 63 do + for x:= 0 to 127 do + LandDirty[y, x]:= 0; // TODO - ask unC0Rr why he took this out of merge - doesn't it need initialising? seems random values could result in some unintended smoothing of initial map edges. also be slower. + +// experiment hardcoding cave +for y:= 0 to LAND_HEIGHT do + begin + Land[y, 0]:= COLOR_INDESTRUCTIBLE; + Land[y, 1]:= COLOR_INDESTRUCTIBLE; + Land[y, 2]:= COLOR_INDESTRUCTIBLE; + Land[y, LAND_WIDTH-2]:= COLOR_INDESTRUCTIBLE; + Land[y, LAND_WIDTH-1]:= COLOR_INDESTRUCTIBLE; + Land[y, LAND_WIDTH]:= COLOR_INDESTRUCTIBLE; + if y mod 32 < 16 then c:= $FF000000 + else c:= $FF00FFFF; + LandPixels[y, 0]:= c; + LandPixels[y, 1]:= c; + LandPixels[y, 2]:= c; + LandPixels[y, LAND_WIDTH-2]:= c; + LandPixels[y, LAND_WIDTH-1]:= c; + LandPixels[y, LAND_WIDTH]:= c; + end; + +for x:= 0 to LAND_WIDTH do + begin + Land[0, x]:= COLOR_INDESTRUCTIBLE; + Land[1, x]:= COLOR_INDESTRUCTIBLE; + Land[2, x]:= COLOR_INDESTRUCTIBLE; + if x mod 32 < 16 then c:= $FF000000 + else c:= $FF00FFFF; + LandPixels[0, x]:= c; + LandPixels[1, x]:= c; + LandPixels[2, x]:= c; + end; end; procedure GenLandSurface; @@ -532,7 +568,7 @@ AddProgress; -tmpsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, 2048, 1024, 32, RMask, GMask, BMask, 0); +tmpsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, LAND_WIDTH+1, LAND_HEIGHT+1, 32, RMask, GMask, BMask, 0); TryDo(tmpsurf <> nil, 'Error creating pre-land surface', true); ColorizeLand(tmpsurf); @@ -545,7 +581,7 @@ AddObjects; -UpdateLandTexture(0, 1023); +UpdateLandTexture(0, LAND_WIDTH); AddProgress end; @@ -555,14 +591,14 @@ WriteLnToConsole('Generating forts land...'); tmpsurf:= LoadImage(Pathz[ptForts] + '/' + ClansArray[0]^.Teams[0]^.FortName + 'L', true, true, true); -BlitImageAndGenerateCollisionInfo(0, 0, 1024, tmpsurf); +BlitImageAndGenerateCollisionInfo(0, 0, LAND_WIDTH+1, tmpsurf); SDL_FreeSurface(tmpsurf); tmpsurf:= LoadImage(Pathz[ptForts] + '/' + ClansArray[1]^.Teams[0]^.FortName + 'R', true, true, true); -BlitImageAndGenerateCollisionInfo(1024, 0, 1024, tmpsurf); +BlitImageAndGenerateCollisionInfo(2048, 0, LAND_WIDTH+1, tmpsurf); SDL_FreeSurface(tmpsurf); -UpdateLandTexture(0, 1023) +UpdateLandTexture(0, LAND_HEIGHT) end; procedure LoadMap; @@ -571,14 +607,14 @@ WriteLnToConsole('Loading land from file...'); AddProgress; tmpsurf:= LoadImage(Pathz[ptMapCurrent] + '/map', true, true, true); -TryDo((tmpsurf^.w = 2048) and (tmpsurf^.h = 1024), 'Map dimensions should be 2048x1024!', true); +TryDo((tmpsurf^.w = LAND_WIDTH+1) and (tmpsurf^.h = LAND_HEIGHT+1), 'Map dimensions should be 4096x2048!', true); TryDo(tmpsurf^.format^.BytesPerPixel = 4, 'Map should be 32bit', true); -BlitImageAndGenerateCollisionInfo(0, 0, 2048, tmpsurf); +BlitImageAndGenerateCollisionInfo(0, 0, LAND_WIDTH+1, tmpsurf); SDL_FreeSurface(tmpsurf); -UpdateLandTexture(0, 1023) +UpdateLandTexture(0, LAND_HEIGHT) end; procedure GenMap; @@ -607,8 +643,8 @@ for bit:= 0 to 7 do begin t:= 0; - for yy:= y * 8 to y * 8 + 7 do - for xx:= x * 64 + bit * 8 to x * 64 + bit * 8 + 7 do + for yy:= y * 16 to y * 16 + 7 do + for xx:= x * 128 + bit * 8 to x * 128 + bit * 8 + 7 do if Land[yy, xx] <> 0 then inc(t); if t > 8 then Preview[y, x]:= Preview[y, x] or ($80 shr bit) end @@ -619,15 +655,15 @@ procedure UpdateLandTexture(Y, Height: LongInt); begin if (Height <= 0) then exit; -TryDo((Y >= 0) and (Y < 1024), 'UpdateLandTexture: wrong Y parameter', true); -TryDo(Y + Height < 1024, 'UpdateLandTexture: wrong Height parameter', true); +TryDo((Y >= 0) and (Y <= LAND_HEIGHT), 'UpdateLandTexture: wrong Y parameter', true); +TryDo(Y + Height <= LAND_WIDTH, 'UpdateLandTexture: wrong Height parameter', true); if LandTexture = nil then - LandTexture:= NewTexture(2048, 1024, @LandPixels) + LandTexture:= NewTexture(LAND_WIDTH+1, LAND_HEIGHT+1, @LandPixels) else begin glBindTexture(GL_TEXTURE_2D, LandTexture^.id); - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, Y, 2048, Height, GL_RGBA, GL_UNSIGNED_BYTE, @LandPixels[Y, 0]); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, Y, LAND_WIDTH+1, Height, GL_RGBA, GL_UNSIGNED_BYTE, @LandPixels[Y, 0]); end end; diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uLandGraphics.pas --- a/hedgewars/uLandGraphics.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uLandGraphics.pas Sun Jan 25 18:10:23 2009 +0000 @@ -42,14 +42,22 @@ procedure FillCircleLines(x, y, dx, dy: LongInt; Value: Longword); var i: LongInt; begin -if ((y + dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do Land[y + dy, i]:= Value; -if ((y - dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do Land[y - dy, i]:= Value; -if ((y + dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do Land[y + dx, i]:= Value; -if ((y - dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do Land[y - dx, i]:= Value; +if ((y + dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do + if Land[y + dy, i] <> COLOR_INDESTRUCTIBLE then + Land[y + dy, i]:= Value; +if ((y - dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do + if Land[y - dy, i] <> COLOR_INDESTRUCTIBLE then + Land[y - dy, i]:= Value; +if ((y + dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do + if Land[y + dx, i] <> COLOR_INDESTRUCTIBLE then + Land[y + dx, i]:= Value; +if ((y - dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do + if Land[y - dx, i] <> COLOR_INDESTRUCTIBLE then + Land[y - dx, i]:= Value; end; procedure ChangeCircleLines(x, y, dx, dy: LongInt; doSet: boolean); @@ -57,28 +65,28 @@ begin if not doSet then begin - if ((y + dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do + if ((y + dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do if (Land[y + dy, i] > 0) then dec(Land[y + dy, i]); // check > 0 because explosion can erase collision data - if ((y - dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do + if ((y - dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do if (Land[y - dy, i] > 0) then dec(Land[y - dy, i]); - if ((y + dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do + if ((y + dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do if (Land[y + dx, i] > 0) then dec(Land[y + dx, i]); - if ((y - dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do + if ((y - dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do if (Land[y - dx, i] > 0) then dec(Land[y - dx, i]); end else begin - if ((y + dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do inc(Land[y + dy, i]); - if ((y - dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do inc(Land[y - dy, i]); - if ((y + dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do inc(Land[y + dx, i]); - if ((y - dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do inc(Land[y - dx, i]); + if ((y + dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do inc(Land[y + dy, i]); + if ((y - dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do inc(Land[y - dy, i]); + if ((y + dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do inc(Land[y + dx, i]); + if ((y - dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do inc(Land[y - dx, i]); end end; @@ -125,45 +133,53 @@ procedure FillLandCircleLines0(x, y, dx, dy: LongInt); var i: LongInt; begin -if ((y + dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do LandPixels[y + dy, i]:= 0; -if ((y - dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do LandPixels[y - dy, i]:= 0; -if ((y + dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do LandPixels[y + dx, i]:= 0; -if ((y - dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do LandPixels[y - dx, i]:= 0; +if ((y + dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do + if Land[y + dy, i] <> COLOR_INDESTRUCTIBLE then + LandPixels[y + dy, i]:= 0; +if ((y - dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do + if Land[y - dy, i] <> COLOR_INDESTRUCTIBLE then + LandPixels[y - dy, i]:= 0; +if ((y + dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do + if Land[y + dx, i] <> COLOR_INDESTRUCTIBLE then + LandPixels[y + dx, i]:= 0; +if ((y - dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do + if Land[y - dx, i] <> COLOR_INDESTRUCTIBLE then + LandPixels[y - dx, i]:= 0; end; procedure FillLandCircleLinesEBC(x, y, dx, dy: LongInt); var i: LongInt; begin -if ((y + dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do +if ((y + dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do if Land[y + dy, i] = COLOR_LAND then begin LandPixels[y + dy, i]:= cExplosionBorderColor; // Despeckle(y + dy, i); LandDirty[(y + dy) div 32, i div 32]:= 1; end; -if ((y - dy) and $FFFFFC00) = 0 then - for i:= max(x - dx, 0) to min(x + dx, 2047) do +if ((y - dy) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dx, 0) to min(x + dx, 4095) do if Land[y - dy, i] = COLOR_LAND then begin LandPixels[y - dy, i]:= cExplosionBorderColor; // Despeckle(y - dy, i); LandDirty[(y - dy) div 32, i div 32]:= 1; end; -if ((y + dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do +if ((y + dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do if Land[y + dx, i] = COLOR_LAND then begin LandPixels[y + dx, i]:= cExplosionBorderColor; // Despeckle(y + dx, i); LandDirty[(y + dx) div 32, i div 32]:= 1; end; -if ((y - dx) and $FFFFFC00) = 0 then - for i:= max(x - dy, 0) to min(x + dy, 2047) do +if ((y - dx) and LAND_HEIGHT_MASK) = 0 then + for i:= max(x - dy, 0) to min(x + dy, 4095) do if Land[y - dx, i] = COLOR_LAND then begin LandPixels[y - dx, i]:= cExplosionBorderColor; @@ -210,7 +226,7 @@ if (dx = dy) then FillLandCircleLinesEBC(x, y, dx, dy); d:= max(Y - Radius - 1, 0); -dy:= min(Y + Radius + 1, 1023) - d; +dy:= min(Y + Radius + 1, 2047) - d; UpdateLandTexture(d, dy) end; @@ -219,9 +235,10 @@ begin for i:= 0 to Pred(Count) do begin - for ty:= max(y - Radius, 0) to min(y + Radius, 1023) do - for tx:= max(0, ar^[i].Left - Radius) to min(2047, ar^[i].Right + Radius) do - LandPixels[ty, tx]:= 0; + for ty:= max(y - Radius, 0) to min(y + Radius, LAND_HEIGHT) do + for tx:= max(0, ar^[i].Left - Radius) to min(LAND_WIDTH, ar^[i].Right + Radius) do + if Land[ty, tx] <> COLOR_INDESTRUCTIBLE then + LandPixels[ty, tx]:= 0; inc(y, dY) end; @@ -230,9 +247,9 @@ for i:= 0 to Pred(Count) do begin - for ty:= max(y - Radius, 0) to min(y + Radius, 1023) do - for tx:= max(0, ar^[i].Left - Radius) to min(2047, ar^[i].Right + Radius) do - if Land[ty, tx] = $FFFFFF then + for ty:= max(y - Radius, 0) to min(y + Radius, LAND_HEIGHT) do + for tx:= max(0, ar^[i].Left - Radius) to min(LAND_WIDTH, ar^[i].Right + Radius) do + if Land[ty, tx] = COLOR_LAND then begin LandPixels[ty, tx]:= cExplosionBorderColor; LandDirty[trunc((y + dy)/32), trunc(i/32)]:= 1; @@ -241,7 +258,7 @@ end; -UpdateLandTexture(0, 1023) +UpdateLandTexture(0, LAND_HEIGHT) end; // @@ -282,7 +299,7 @@ Y:= Y + dY; tx:= hwRound(X); ty:= hwRound(Y); - if ((ty and $FFFFFC00) = 0) and ((tx and $FFFFF800) = 0) then + if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) then if Land[ty, tx] = COLOR_LAND then begin Land[ty, tx]:= 0; @@ -306,7 +323,7 @@ end; t:= max(stY - HalfWidth * 2 - 4 - abs(hwRound(dY * ticks)), 0); -ty:= min(stY + HalfWidth * 2 + 4 + abs(hwRound(dY * ticks)), 1023) - t; +ty:= min(stY + HalfWidth * 2 + 4 + abs(hwRound(dY * ticks)), 2047) - t; UpdateLandTexture(t, ty) end; @@ -332,8 +349,8 @@ begin for x:= 0 to Pred(w) do if PLongword(@(p^[x * 4]))^ <> 0 then - if (((cpY + y) and $FFFFFC00) <> 0) or - (((cpX + x) and $FFFFF800) <> 0) or + if (((cpY + y) and LAND_HEIGHT_MASK) <> 0) or + (((cpX + x) and LAND_WIDTH_MASK) <> 0) or (Land[cpY + y, cpX + x] <> 0) then begin if SDL_MustLock(Image) then @@ -370,7 +387,7 @@ SDL_UnlockSurface(Image); y:= max(cpY, 0); -h:= min(cpY + Image^.h, 1023) - y; +h:= min(cpY + Image^.h, LAND_HEIGHT) - y; UpdateLandTexture(y, h) end; @@ -378,7 +395,7 @@ function Despeckle(X, Y: LongInt): boolean; var nx, ny, i, j, c: LongInt; begin -if Land[Y, X] <> 0 then // check neighbours +if (Land[Y, X] <> 0) and (Land[Y, X] <> COLOR_INDESTRUCTIBLE) then // check neighbours begin c:= 0; for i:= -1 to 1 do @@ -387,7 +404,7 @@ begin ny:= Y + i; nx:= X + j; - if ((ny and $FFFFFC00) = 0) and ((nx and $FFFFF800) = 0) then + if ((ny and LAND_HEIGHT_MASK) = 0) and ((nx and LAND_WIDTH_MASK) = 0) then if Land[ny, nx] <> 0 then inc(c); end; @@ -406,11 +423,11 @@ var x, y, xx, yy: LongInt; updatedRow, updatedCell: boolean; begin -for y:= 0 to 31 do +for y:= 0 to 63 do begin updatedRow:= false; - for x:= 0 to 63 do + for x:= 0 to 127 do begin repeat updatedCell:= false; @@ -428,8 +445,8 @@ end; if updatedRow then - if y = 31 then - UpdateLandTexture(992, 31) + if y = 63 then + UpdateLandTexture(LAND_HEIGHT-31, 31) else UpdateLandTexture(y*32, 32); end; diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uLandObjects.pas --- a/hedgewars/uLandObjects.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uLandObjects.pas Sun Jan 25 18:10:23 2009 +0000 @@ -168,17 +168,17 @@ inc(x1, 2); if k = 16 then begin - while (x2 < 1900) and (CountNonZeroz(x2, y) = 0) do inc(x2, 2); + while (x2 < (LAND_WIDTH-150)) and (CountNonZeroz(x2, y) = 0) do inc(x2, 2); i:= x2 + 12; repeat inc(x2, 2); k:= CountNonZeroz(x2, y) - until (x2 > 1900) or (k = 0) or (k = 16) or (x2 > i); - if (x2 < 1900) and (k = 16) and (x2 - x1 > 250) + until (x2 > (LAND_WIDTH-150)) or (k = 0) or (k = 16) or (x2 > i); + if (x2 < (LAND_WIDTH-150)) and (k = 16) and (x2 - x1 > 250) and not CheckIntersect(x1 - 32, y - 64, x2 - x1 + 64, 144) then break; end; x1:= 0; -until y > 900; +until y > (LAND_HEIGHT-125); if x1 > 0 then begin @@ -273,9 +273,9 @@ end end; inc(y, 3); - until y > 1023 - Height; + until y > LAND_HEIGHT - Height; inc(x, getrandom(6) + 3) - until x > 2047 - Width; + until x > LAND_WIDTH - Width; Result:= cnt <> 0; if Result then begin @@ -422,7 +422,7 @@ Readln(f, vobFramesCount, vobFrameTicks, vobVelocity, vobFallSpeed); for i:= 0 to Pred(vobCount) do - AddVisualGear( -cScreenWidth + random(cScreenWidth * 2 + 2048), random(1200) - 100, vgtFlake); + AddVisualGear( -cScreenWidth + random(cScreenWidth * 2 + LAND_WIDTH), random(LAND_HEIGHT+200) - 100, vgtFlake); Close(f); {$I+} diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uLandTemplates.pas --- a/hedgewars/uLandTemplates.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uLandTemplates.pas Sun Jan 25 18:10:23 2009 +0000 @@ -35,7 +35,947 @@ canMirror, canFlip: boolean; end; -const Template0Points: array[0..18] of TSDL_Rect = +// Original positions. Keeping them around in case I start +// seriously distorting the other 18. If we want smaller maps they might +// still be needed +// const Template0Points: array[0..18] of TSDL_Rect = +// ( +// (x: 410; y: 1024; w: 1; h: 1), +// (x: 160; y: 760; w: 130; h: 170), +// (x: 342; y: 706; w: 316; h: 150), +// (x: 238; y: 386; w: 270; h: 180), +// (x: 246; y: 176; w: 242; h: 156), +// (x: 552; y: 128; w: 610; h: 300), +// (x: 750; y: 468; w: 352; h: 324), +// (x: 650; y: 1024; w: 500; h: 1), +// (x: 1250; y: 1100; w: 1; h: 1), +// (x: 1490; y: 1024; w: 1; h: 1), +// (x: 1452; y: 904; w: 74; h: 12), +// (x: 1248; y: 575; w: 68; h: 425), +// (x: 1426; y: 592; w: 140; h: 142), +// (x: 1310; y: 192; w: 150; h: 350), +// (x: 1588; y: 194; w: 148; h: 242), +// (x: 1618; y: 472; w: 276; h: 314), +// (x: 1710; y: 850; w: 130; h: 86), +// (x: 1734; y: 1024; w: 1; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template0FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template1Points: array[0..15] of TSDL_Rect = +// ( +// (x: 400; y: 1024; w: 25; h: 1), +// (x: 284; y: 892; w: 254; h: 58), +// (x: 492; y: 634; w: 100; h: 200), +// (x: 254; y: 246; w: 276; h: 380), +// (x: 620; y: 254; w: 125; h: 270), +// (x: 680; y: 550; w: 96; h: 390), +// (x: 826; y: 614; w: 110; h: 350), +// (x: 800; y: 186; w: 150; h: 380), +// (x: 1000; y: 186; w: 170; h: 375), +// (x: 1012; y: 590; w: 188; h: 298), +// (x: 1240; y: 668; w: 136; h: 172), +// (x: 1270; y: 194; w: 120; h: 392), +// (x: 1514; y: 194; w: 364; h: 362), +// (x: 1450; y: 652; w: 315; h: 232), +// (x: 1460; y: 1024; w: 25; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template1FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template2Points: array[0..21] of TSDL_Rect = +// ( +// (x: 354; y: 1024; w: 1; h: 1), +// (x: 232; y: 926; w: 226; h: 60), +// (x: 120; y: 846; w: 298; h: 62), +// (x: 280; y: 704; w: 210; h: 102), +// (x: 208; y: 422; w: 192; h: 248), +// (x: 292; y: 160; w: 206; h: 240), +// (x: 526; y: 172; w: 92; h: 334), +// (x: 462; y: 528; w: 226; h: 126), +// (x: 556; y: 678; w: 268; h: 156), +// (x: 722; y: 164; w: 138; h: 500), +// (x: 890; y: 156; w: 94; h: 352), +// (x: 898; y: 562; w: 170; h: 264), +// (x: 1092; y: 384; w: 84; h: 446), +// (x: 1206; y: 200; w: 158; h: 278), +// (x: 1300; y: 490; w: 104; h: 336), +// (x: 1416; y: 546; w: 90; h: 398), +// (x: 1546; y: 192; w: 134; h: 532), +// (x: 1702; y: 246; w: 156; h: 258), +// (x: 1700; y: 548; w: 132; h: 340), +// (x: 1534; y: 898; w: 252; h: 82), +// (x: 1604; y: 1024; w: 1; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template2FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template3Points: array[0..16] of TSDL_Rect = +// ( +// (x: 348; y: 1024; w: 1; h: 1), +// (x: 236; y: 852; w: 208; h: 72), +// (x: 498; y: 710; w: 308; h: 60), +// (x: 728; y: 852; w: 434; h: 40), +// (x: 1174; y: 712; w: 332; h: 40), +// (x: 1402; y: 838; w: 226; h: 36), +// (x: 1530; y: 1024; w: 1; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1), +// (x: 1660; y: 498; w: 111; h: 111), +// (x: 1270; y: 476; w: 34; h: 102), +// (x: 682; y: 414; w: 284; h: 132), +// (x: 230; y: 328; w: 126; h: 168), +// (x: 410; y: 174; w: 114; h: 100), +// (x: 790; y: 172; w: 352; h: 120), +// (x: 1274; y: 128; w: 60; h: 240), +// (x: 1434; y: 222; w: 254; h: 116), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template3FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template4Points: array[0..22] of TSDL_Rect = +// ( +// (x: 418; y: 1024; w: 1; h: 1), +// (x: 248; y: 900; w: 186; h: 62), +// (x: 272; y: 692; w: 254; h: 138), +// (x: 610; y: 768; w: 90; h: 166), +// (x: 820; y: 616; w: 224; h: 258), +// (x: 1242; y: 758; w: 96; h: 146), +// (x: 1550; y: 698; w: 224; h: 134), +// (x: 1530; y: 902; w: 210; h: 54), +// (x: 1532; y: 1024; w: 1; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1), +// (x: 202; y: 418; w: 110; h: 92), +// (x: 252; y: 312; w: 160; h: 32), +// (x: 150; y: 168; w: 134; h: 78), +// (x: 702; y: 160; w: 132; h: 84), +// (x: 702; y: 308; w: 230; h: 36), +// (x: 720; y: 408; w: 166; h: 96), +// (x: NTPX; y: 0; w: 1; h: 1), +// (x: 1702; y: 434; w: 202; h: 42), +// (x: 1252; y: 388; w: 134; h: 98), +// (x: 1214; y: 152; w: 116; h: 154), +// (x: 1428; y: 252; w: 150; h: 70), +// (x: 1750; y: 152; w: 86; h: 220), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template4FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template5Points: array[0..15] of TSDL_Rect = +// ( +// (x: 274; y: 1024; w: 1; h: 1), +// (x: 190; y: 918; w: 168; h: 26), +// (x: 382; y: 576; w: 122; h: 314), +// (x: 568; y: 744; w: 56; h: 180), +// (x: 678; y: 856; w: 64; h: 56), +// (x: 740; y: 650; w: 106; h: 220), +// (x: 644; y: 496; w: 162; h: 140), +// (x: 496; y: 210; w: 886; h: 174), +// (x: 934; y: 448; w: 296; h: 108), +// (x: 950; y: 752; w: 152; h: 146), +// (x: 1172; y: 774; w: 60; h: 152), +// (x: 1284; y: 722; w: 150; h: 138), +// (x: 1494; y: 364; w: 56; h: 582), +// (x: 1620; y: 774; w: 94; h: 232), +// (x: 1612; y: 1024; w: 1; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template5FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template6Points: array[0..13] of TSDL_Rect = +// ( +// (x: 368; y: 1022; w: 2; h: 2), +// (x: 266; y: 840; w: 302; h: 110), +// (x: 294; y: 512; w: 104; h: 290), +// (x: 570; y: 580; w: 364; h: 122), +// (x: 568; y: 440; w: 368; h: 100), +// (x: 232; y: 260; w: 482; h: 130), +// (x: 778; y: 242; w: 62; h: 64), +// (x: 990; y: 154; w: 58; h: 246), +// (x: 1200; y: 276; w: 590; h: 98), +// (x: 1088; y: 442; w: 214; h: 188), +// (x: 1050; y: 686; w: 406; h: 92), +// (x: 1584; y: 502; w: 190; h: 412), +// (x: 1646; y: 1020; w: 2; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template6FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template7Points: array[0..5] of TSDL_Rect = +// ( +// (x: 162; y: 1024; w: 400; h: 1), +// (x: 226; y: 234; w: 142; h: 360), +// (x: 936; y: 740; w: 400; h: 200), +// (x: 1576; y: 176; w: 186; h: 550), +// (x: 1430; y: 1024; w: 454; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template7FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// +// const Template8Points: array[0..19] of TSDL_Rect = +// ( +// (x: 364; y: 1024; w: 20; h: 1), +// (x: 290; y: 860; w: 64; h: 62), +// (x: 486; y: 750; w: 52; h: 146), +// (x: 256; y: 590; w: 116; h: 144), +// (x: 470; y: 468; w: 138; h: 168), +// (x: 242; y: 242; w: 158; h: 162), +// (x: 508; y: 310; w: 198; h: 72), +// (x: 770; y: 228; w: 118; h: 134), +// (x: 636; y: 718; w: 142; h: 132), +// (x: 968; y: 700; w: 172; h: 58), +// (x: 970; y: 804; w: 172; h: 62), +// (x: 1232; y: 704; w: 82; h: 226), +// (x: 1356; y: 594; w: 64; h: 152), +// (x: 1214; y: 334; w: 106; h: 152), +// (x: 1410; y: 260; w: 380; h: 82), +// (x: 1528; y: 422; w: 30; h: 118), +// (x: 1540; y: 588; w: 212; h: 50), +// (x: 1464; y: 746; w: 128; h: 146), +// (x: 1630; y: 1024; w: 20; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template8FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template9Points: array[0..31] of TSDL_Rect = +// ( +// (x: 340; y: 1024; w: 1; h: 1), +// (x: 276; y: 902; w: 44; h: 54), +// (x: 434; y: 836; w: 58; h: 90), +// (x: 266; y: 734; w: 80; h: 80), +// (x: 246; y: 604; w: 96; h: 108), +// (x: 426; y: 646; w: 110; h: 112), +// (x: 234; y: 292; w: 118; h: 164), +// (x: 428; y: 396; w: 130; h: 110), +// (x: 516; y: 198; w: 344; h: 78), +// (x: 688; y: 426; w: 50; h: 40), +// (x: 626; y: 560; w: 32; h: 148), +// (x: 698; y: 650; w: 160; h: 34), +// (x: 674; y: 788; w: 36; h: 136), +// (x: 1014; y: 848; w: 48; h: 48), +// (x: 1086; y: 728; w: 64; h: 88), +// (x: 958; y: 660; w: 70; h: 74), +// (x: 1116; y: 596; w: 68; h: 70), +// (x: 1118; y: 484; w: 68; h: 82), +// (x: 958; y: 324; w: 44; h: 140), +// (x: 1272; y: 306; w: 52; h: 66), +// (x: 1254; y: 502; w: 58; h: 66), +// (x: 1234; y: 760; w: 76; h: 112), +// (x: 1380; y: 762; w: 124; h: 64), +// (x: 1472; y: 472; w: 54; h: 134), +// (x: 1410; y: 196; w: 246; h: 62), +// (x: 1706; y: 154; w: 38; h: 238), +// (x: 1812; y: 348; w: 28; h: 28), +// (x: 1692; y: 524; w: 144; h: 94), +// (x: 1632; y: 678; w: 248; h: 20), +// (x: 1632; y: 802; w: 238; h: 16), +// (x: 1680; y: 1024; w: 1; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template9FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template10Points: array[0..13] of TSDL_Rect = +// ( +// (x: 188; y: 1024; w: 190; h: 1), +// (x: 240; y: 682; w: 140; h: 150), +// (x: 314; y: 468; w: 352; h: 94), +// (x: 726; y: 246; w: 106; h: 282), +// (x: 902; y: 390; w: 368; h: 142), +// (x: 958; y: 588; w: 116; h: 244), +// (x: 876; y: 1024; w: 14; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1), +// (x: 1064; y: 1024; w: 22; h: 1), +// (x: 1288; y: 795; w: 120; h: 120), +// (x: 1458; y: 274; w: 354; h: 448), +// (x: 1688; y: 795; w: 120; h: 120), +// (x: 1782; y: 1024; w: 2; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template10FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template11Points: array[0..9] of TSDL_Rect = +// ( +// (x: 274; y: 1024; w: 166; h: 1), +// (x: 330; y: 862; w: 96; h: 92), +// (x: 492; y: 690; w: 152; h: 250), +// (x: 746; y: 646; w: 36; h: 270), +// (x: 938; y: 626; w: 54; h: 224), +// (x: 1134; y: 646; w: 44; h: 216), +// (x: 1292; y: 630; w: 46; h: 300), +// (x: 1448; y: 664; w: 158; h: 272), +// (x: 1584; y: 1024; w: 136; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template11FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template12Points: array[0..13] of TSDL_Rect = +// ( +// (x: 360; y: 1024; w: 2; h: 2), +// (x: 242; y: 630; w: 46; h: 286), +// (x: 454; y: 672; w: 194; h: 56), +// (x: 254; y: 334; w: 534; h: 200), +// (x: 870; y: 276; w: 58; h: 468), +// (x: 1076; y: 272; w: 198; h: 112), +// (x: 1000; y: 1024; w: 64; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1), +// (x: 1244; y: 1024; w: 64; h: 2), +// (x: 1356; y: 494; w: 184; h: 94), +// (x: 1600; y: 414; w: 76; h: 358), +// (x: 1748; y: 584; w: 108; h: 304), +// (x: 1688; y: 1024; w: 176; h: 1), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template12FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template13Points: array[0..15] of TSDL_Rect = +// ( +// (x: 446; y: 1024; w: 140; h: 2), +// (x: 280; y: 872; w: 196; h: 32), +// (x: 254; y: 680; w: 262; h: 134), +// (x: 654; y: 672; w: 220; h: 136), +// (x: 608; y: 490; w: 268; h: 110), +// (x: 300; y: 362; w: 104; h: 200), +// (x: 446; y: 224; w: 306; h: 58), +// (x: 916; y: 188; w: 84; h: 206), +// (x: 1148; y: 174; w: 104; h: 220), +// (x: 1426; y: 176; w: 120; h: 202), +// (x: 1556; y: 418; w: 192; h: 68), +// (x: 1226; y: 548; w: 246; h: 88), +// (x: 1256; y: 706; w: 194; h: 150), +// (x: 1568; y: 706; w: 198; h: 152), +// (x: 1444; y: 1024; w: 2; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template13FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template14Points: array[0..13] of TSDL_Rect = +// ( +// (x: 286; y: 1024; w: 2; h: 2), +// (x: 244; y: 886; w: 84; h: 54), +// (x: 212; y: 686; w: 150; h: 166), +// (x: 678; y: 840; w: 186; h: 98), +// (x: 744; y: 604; w: 124; h: 58), +// (x: 620; y: 182; w: 112; h: 194), +// (x: 988; y: 260; w: 92; h: 132), +// (x: 1310; y: 174; w: 154; h: 196), +// (x: 1160; y: 574; w: 118; h: 64), +// (x: 1052; y: 822; w: 328; h: 92), +// (x: 1596; y: 630; w: 242; h: 222), +// (x: 1598; y: 916; w: 254; h: 50), +// (x: 1608; y: 1024; w: 2; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template14FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template15Points: array[0..23] of TSDL_Rect = +// ( +// (x: 302; y: 1024; w: 2; h: 2), +// (x: 240; y: 890; w: 44; h: 94), +// (x: 350; y: 862; w: 44; h: 94), +// (x: 460; y: 906; w: 78; h: 70), +// (x: 466; y: 1024; w: 2; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1), +// (x: 804; y: 1024; w: 2; h: 2), +// (x: 720; y: 782; w: 108; h: 174), +// (x: 484; y: 624; w: 314; h: 98), +// (x: 310; y: 482; w: 76; h: 230), +// (x: 434; y: 286; w: 220; h: 154), +// (x: 840; y: 274; w: 56; h: 266), +// (x: 1024; y: 244; w: 78; h: 304), +// (x: 1248; y: 246; w: 116; h: 162), +// (x: 1580; y: 326; w: 190; h: 228), +// (x: 1360; y: 604; w: 140; h: 84), +// (x: 1196; y: 740; w: 242; h: 118), +// (x: 1216; y: 1024; w: 2; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1), +// (x: 1494; y: 1024; w: 2; h: 2), +// (x: 1450; y: 928; w: 88; h: 34), +// (x: 1598; y: 838; w: 96; h: 112), +// (x: 1656; y: 1024; w: 2; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template15FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template16Points: array[0..28] of TSDL_Rect = +// ( +// (x: 300; y: 1024; w: 2; h: 2), +// (x: 394; y: 902; w: 58; h: 62), +// (x: 380; y: 770; w: 94; h: 90), +// (x: 186; y: 626; w: 80; h: 220), +// (x: 376; y: 600; w: 82; h: 118), +// (x: 182; y: 328; w: 134; h: 226), +// (x: 368; y: 328; w: 52; h: 52), +// (x: 472; y: 174; w: 56; h: 212), +// (x: 588; y: 322; w: 60; h: 62), +// (x: 718; y: 324; w: 108; h: 218), +// (x: 612; y: 516; w: 36; h: 168), +// (x: 728; y: 656; w: 140; h: 134), +// (x: 588; y: 850; w: 74; h: 82), +// (x: 750; y: 1024; w: 102; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1), +// (x: 1304; y: 1024; w: 72; h: 2), +// (x: 1226; y: 908; w: 266; h: 34), +// (x: 1224; y: 748; w: 252; h: 80), +// (x: 1212; y: 576; w: 256; h: 94), +// (x: 1140; y: 434; w: 174; h: 86), +// (x: 1396; y: 318; w: 156; h: 96), +// (x: 1086; y: 214; w: 206; h: 66), +// (x: 1446; y: 156; w: 152; h: 40), +// (x: 1708; y: 272; w: 60; h: 162), +// (x: 1542; y: 488; w: 146; h: 80), +// (x: 1686; y: 634; w: 178; h: 122), +// (x: 1572; y: 820; w: 34; h: 124), +// (x: 1698; y: 1024; w: 52; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template16FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); +// +// const Template17Points: array[0..13] of TSDL_Rect = +// ( +// (x: 230; y: 1024; w: 2; h: 2), +// (x: 166; y: 856; w: 128; h: 118), +// (x: 352; y: 856; w: 98; h: 114), +// (x: 348; y: 674; w: 140; h: 138), +// (x: 556; y: 672; w: 136; h: 142), +// (x: 746; y: 670; w: 114; h: 252), +// (x: 924; y: 378; w: 120; h: 390), +// (x: 1122; y: 462; w: 114; h: 210), +// (x: 1324; y: 306; w: 130; h: 252), +// (x: 1536; y: 206; w: 278; h: 234), +// (x: 1524; y: 644; w: 272; h: 52), +// (x: 1572; y: 852; w: 180; h: 56), +// (x: 1598; y: 1024; w: 42; h: 2), +// (x: NTPX; y: 0; w: 1; h: 1) +// ); +// Template17FPoints: array[0..0] of TPoint = +// ( +// (x: 1023; y: 0) +// ); + +// This is the original set, repositioned +// const Template0Points: array[0..18] of TSDL_Rect = +// ( +// (x: 1434;y: 2048; w: 1; h: 1), +// (x: 1184;y: 1784; w: 130; h: 170), +// (x: 1366;y: 1730; w: 316; h: 150), +// (x: 1262;y: 1410; w: 270; h: 180), +// (x: 1270;y: 1200; w: 242; h: 156), +// (x: 1576;y: 1152; w: 610; h: 300), +// (x: 1774;y: 1492; w: 352; h: 324), +// (x: 1674;y: 2048; w: 500; h: 1), +// (x: 2274;y: 2124; w: 1; h: 1), +// (x: 2514;y: 2048; w: 1; h: 1), +// (x: 2476;y: 1928; w: 74; h: 12), +// (x: 2272;y: 1599; w: 68; h: 425), +// (x: 2450;y: 1616; w: 140; h: 142), +// (x: 2334;y: 1216; w: 150; h: 350), +// (x: 2612;y: 1218; w: 148; h: 242), +// (x: 2642;y: 1496; w: 276; h: 314), +// (x: 2734;y: 1874; w: 130; h: 86), +// (x: 2758;y: 2048; w: 1; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template0FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template1Points: array[0..15] of TSDL_Rect = +// ( +// (x: 1424;y: 2048; w: 25; h: 1), +// (x: 1308;y: 1916; w: 254; h: 58), +// (x: 1516;y: 1658; w: 100; h: 200), +// (x: 1278;y: 1270; w: 276; h: 380), +// (x: 1644;y: 1278; w: 125; h: 270), +// (x: 1704;y: 1574; w: 96; h: 390), +// (x: 1850;y: 1638; w: 110; h: 350), +// (x: 1824;y: 1210; w: 150; h: 380), +// (x: 2024;y: 1210; w: 170; h: 375), +// (x: 2036;y: 1614; w: 188; h: 298), +// (x: 2264;y: 1692; w: 136; h: 172), +// (x: 2294;y: 1218; w: 120; h: 392), +// (x: 2538;y: 1218; w: 364; h: 362), +// (x: 2474;y: 1676; w: 315; h: 232), +// (x: 2484;y: 2048; w: 25; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template1FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template2Points: array[0..21] of TSDL_Rect = +// ( +// (x: 1378;y: 2048; w: 1; h: 1), +// (x: 1256;y: 1950; w: 226; h: 60), +// (x: 1144;y: 1870; w: 298; h: 62), +// (x: 1304;y: 1728; w: 210; h: 102), +// (x: 1232;y: 1446; w: 192; h: 248), +// (x: 1316;y: 1184; w: 206; h: 240), +// (x: 1550;y: 1196; w: 92; h: 334), +// (x: 1486;y: 1552; w: 226; h: 126), +// (x: 1580;y: 1702; w: 268; h: 156), +// (x: 1746;y: 1188; w: 138; h: 500), +// (x: 1914;y: 1180; w: 94; h: 352), +// (x: 1922;y: 1586; w: 170; h: 264), +// (x: 2116;y: 1408; w: 84; h: 446), +// (x: 2230;y: 1224; w: 158; h: 278), +// (x: 2324;y: 1514; w: 104; h: 336), +// (x: 2440;y: 1570; w: 90; h: 398), +// (x: 2570;y: 1216; w: 134; h: 532), +// (x: 2726;y: 1270; w: 156; h: 258), +// (x: 2724;y: 1572; w: 132; h: 340), +// (x: 2558;y: 1922; w: 252; h: 82), +// (x: 2628;y: 2048; w: 1; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template2FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template3Points: array[0..16] of TSDL_Rect = +// ( +// (x: 1372;y: 2048; w: 1; h: 1), +// (x: 1260;y: 1876; w: 208; h: 72), +// (x: 1522;y: 1734; w: 308; h: 60), +// (x: 1752;y: 1876; w: 434; h: 40), +// (x: 2198;y: 1736; w: 332; h: 40), +// (x: 2426;y: 1862; w: 226; h: 36), +// (x: 2554;y: 2048; w: 1; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1), +// (x: 2684;y: 1522; w: 111; h: 111), +// (x: 2294;y: 1500; w: 34; h: 102), +// (x: 1706;y: 1438; w: 284; h: 132), +// (x: 1254;y: 1352; w: 126; h: 168), +// (x: 1434;y: 1198; w: 114; h: 100), +// (x: 1814;y: 1196; w: 352; h: 120), +// (x: 2298;y: 1152; w: 60; h: 240), +// (x: 2458;y: 1246; w: 254; h: 116), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template3FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template4Points: array[0..22] of TSDL_Rect = +// ( +// (x: 1442;y: 2048; w: 1; h: 1), +// (x: 1272;y: 1924; w: 186; h: 62), +// (x: 1296;y: 1716; w: 254; h: 138), +// (x: 1634;y: 1792; w: 90; h: 166), +// (x: 1844;y: 1640; w: 224; h: 258), +// (x: 2266;y: 1782; w: 96; h: 146), +// (x: 2574;y: 1722; w: 224; h: 134), +// (x: 2554;y: 1926; w: 210; h: 54), +// (x: 2556;y: 2048; w: 1; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1), +// (x: 1226;y: 1442; w: 110; h: 92), +// (x: 1276;y: 1336; w: 160; h: 32), +// (x: 1174;y: 1192; w: 134; h: 78), +// (x: 1726;y: 1184; w: 132; h: 84), +// (x: 1726;y: 1332; w: 230; h: 36), +// (x: 1744;y: 1432; w: 166; h: 96), +// (x: NTPX;y: 2048; w: 1; h: 1), +// (x: 2726;y: 1458; w: 202; h: 42), +// (x: 2276;y: 1412; w: 134; h: 98), +// (x: 2238;y: 1176; w: 116; h: 154), +// (x: 2452;y: 1276; w: 150; h: 70), +// (x: 2774;y: 1176; w: 86; h: 220), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template4FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template5Points: array[0..15] of TSDL_Rect = +// ( +// (x: 1298;y: 2048; w: 1; h: 1), +// (x: 1214;y: 1942; w: 168; h: 26), +// (x: 1406;y: 1600; w: 122; h: 314), +// (x: 1592;y: 1768; w: 56; h: 180), +// (x: 1702;y: 1880; w: 64; h: 56), +// (x: 1764;y: 1674; w: 106; h: 220), +// (x: 1668;y: 1520; w: 162; h: 140), +// (x: 1520;y: 1234; w: 886; h: 174), +// (x: 1958;y: 1472; w: 296; h: 108), +// (x: 1974;y: 1776; w: 152; h: 146), +// (x: 2196;y: 1798; w: 60; h: 152), +// (x: 2308;y: 1746; w: 150; h: 138), +// (x: 2518;y: 1388; w: 56; h: 582), +// (x: 2644;y: 1798; w: 94; h: 232), +// (x: 2636;y: 2048; w: 1; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template5FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template6Points: array[0..13] of TSDL_Rect = +// ( +// (x: 1392;y: 2046; w: 2; h: 2), +// (x: 1290;y: 1864; w: 302; h: 110), +// (x: 1318;y: 1536; w: 104; h: 290), +// (x: 1594;y: 1604; w: 364; h: 122), +// (x: 1592;y: 1464; w: 368; h: 100), +// (x: 1256;y: 1284; w: 482; h: 130), +// (x: 1802;y: 1266; w: 62; h: 64), +// (x: 2014;y: 1178; w: 58; h: 246), +// (x: 2224;y: 1300; w: 590; h: 98), +// (x: 2112;y: 1466; w: 214; h: 188), +// (x: 2074;y: 1710; w: 406; h: 92), +// (x: 2608;y: 1526; w: 190; h: 412), +// (x: 2670;y: 2044; w: 2; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template6FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template7Points: array[0..5] of TSDL_Rect = +// ( +// (x: 1186;y: 2048; w: 400; h: 1), +// (x: 1250;y: 1258; w: 142; h: 360), +// (x: 1960;y: 1764; w: 400; h: 200), +// (x: 2600;y: 1200; w: 186; h: 550), +// (x: 2454;y: 2048; w: 454; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template7FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// +// const Template8Points: array[0..19] of TSDL_Rect = +// ( +// (x: 1388;y: 2048; w: 20; h: 1), +// (x: 1314;y: 1884; w: 64; h: 62), +// (x: 1510;y: 1774; w: 52; h: 146), +// (x: 1280;y: 1614; w: 116; h: 144), +// (x: 1494;y: 1492; w: 138; h: 168), +// (x: 1266;y: 1266; w: 158; h: 162), +// (x: 1532;y: 1334; w: 198; h: 72), +// (x: 1794;y: 1252; w: 118; h: 134), +// (x: 1660;y: 1742; w: 142; h: 132), +// (x: 1992;y: 1724; w: 172; h: 58), +// (x: 1994;y: 1828; w: 172; h: 62), +// (x: 2256;y: 1728; w: 82; h: 226), +// (x: 2380;y: 1618; w: 64; h: 152), +// (x: 2238;y: 1358; w: 106; h: 152), +// (x: 2434;y: 1284; w: 380; h: 82), +// (x: 2552;y: 1446; w: 30; h: 118), +// (x: 2564;y: 1612; w: 212; h: 50), +// (x: 2488;y: 1770; w: 128; h: 146), +// (x: 2654;y: 2048; w: 20; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template8FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template9Points: array[0..31] of TSDL_Rect = +// ( +// (x: 1364;y: 2048; w: 1; h: 1), +// (x: 1300;y: 1926; w: 44; h: 54), +// (x: 1458;y: 1860; w: 58; h: 90), +// (x: 1290;y: 1758; w: 80; h: 80), +// (x: 1270;y: 1628; w: 96; h: 108), +// (x: 1450;y: 1670; w: 110; h: 112), +// (x: 1258;y: 1316; w: 118; h: 164), +// (x: 1452;y: 1420; w: 130; h: 110), +// (x: 1540;y: 1222; w: 344; h: 78), +// (x: 1712;y: 1450; w: 50; h: 40), +// (x: 1650;y: 1584; w: 32; h: 148), +// (x: 1722;y: 1674; w: 160; h: 34), +// (x: 1698;y: 1812; w: 36; h: 136), +// (x: 2038;y: 1872; w: 48; h: 48), +// (x: 2110;y: 1752; w: 64; h: 88), +// (x: 1982;y: 1684; w: 70; h: 74), +// (x: 2140;y: 1620; w: 68; h: 70), +// (x: 2142;y: 1508; w: 68; h: 82), +// (x: 1982;y: 1348; w: 44; h: 140), +// (x: 2296;y: 1330; w: 52; h: 66), +// (x: 2278;y: 1526; w: 58; h: 66), +// (x: 2258;y: 1784; w: 76; h: 112), +// (x: 2404;y: 1786; w: 124; h: 64), +// (x: 2496;y: 1496; w: 54; h: 134), +// (x: 2434;y: 1220; w: 246; h: 62), +// (x: 2730;y: 1178; w: 38; h: 238), +// (x: 2836;y: 1372; w: 28; h: 28), +// (x: 2716;y: 1548; w: 144; h: 94), +// (x: 2656;y: 1702; w: 248; h: 20), +// (x: 2656;y: 1826; w: 238; h: 16), +// (x: 2704;y: 2048; w: 1; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template9FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template10Points: array[0..13] of TSDL_Rect = +// ( +// (x: 1212;y: 2048; w: 190; h: 1), +// (x: 1264;y: 1706; w: 140; h: 150), +// (x: 1338;y: 1492; w: 352; h: 94), +// (x: 1750;y: 1270; w: 106; h: 282), +// (x: 1926;y: 1414; w: 368; h: 142), +// (x: 1982;y: 1612; w: 116; h: 244), +// (x: 1900;y: 2048; w: 14; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1), +// (x: 2088;y: 2048; w: 22; h: 1), +// (x: 2312;y: 1819; w: 120; h: 120), +// (x: 2482;y: 1298; w: 354; h: 448), +// (x: 2712;y: 1819; w: 120; h: 120), +// (x: 2806;y: 2048; w: 2; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template10FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template11Points: array[0..9] of TSDL_Rect = +// ( +// (x: 1298;y: 2048; w: 166; h: 1), +// (x: 1354;y: 1886; w: 96; h: 92), +// (x: 1516;y: 1714; w: 152; h: 250), +// (x: 1770;y: 1670; w: 36; h: 270), +// (x: 1962;y: 1650; w: 54; h: 224), +// (x: 2158;y: 1670; w: 44; h: 216), +// (x: 2316;y: 1654; w: 46; h: 300), +// (x: 2472;y: 1688; w: 158; h: 272), +// (x: 2608;y: 2048; w: 136; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template11FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template12Points: array[0..13] of TSDL_Rect = +// ( +// (x: 1384;y: 2048; w: 2; h: 2), +// (x: 1266;y: 1654; w: 46; h: 286), +// (x: 1478;y: 1696; w: 194; h: 56), +// (x: 1278;y: 1358; w: 534; h: 200), +// (x: 1894;y: 1300; w: 58; h: 468), +// (x: 2100;y: 1296; w: 198; h: 112), +// (x: 2024;y: 2048; w: 64; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1), +// (x: 2268;y: 2048; w: 64; h: 2), +// (x: 2380;y: 1518; w: 184; h: 94), +// (x: 2624;y: 1438; w: 76; h: 358), +// (x: 2772;y: 1608; w: 108; h: 304), +// (x: 2712;y: 2048; w: 176; h: 1), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template12FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template13Points: array[0..15] of TSDL_Rect = +// ( +// (x: 1470;y: 2048; w: 140; h: 2), +// (x: 1304;y: 1896; w: 196; h: 32), +// (x: 1278;y: 1704; w: 262; h: 134), +// (x: 1678;y: 1696; w: 220; h: 136), +// (x: 1632;y: 1514; w: 268; h: 110), +// (x: 1324;y: 1386; w: 104; h: 200), +// (x: 1470;y: 1248; w: 306; h: 58), +// (x: 1940;y: 1212; w: 84; h: 206), +// (x: 2172;y: 1198; w: 104; h: 220), +// (x: 2450;y: 1200; w: 120; h: 202), +// (x: 2580;y: 1442; w: 192; h: 68), +// (x: 2250;y: 1572; w: 246; h: 88), +// (x: 2280;y: 1730; w: 194; h: 150), +// (x: 2592;y: 1730; w: 198; h: 152), +// (x: 2468;y: 2048; w: 2; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template13FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template14Points: array[0..13] of TSDL_Rect = +// ( +// (x: 1310;y: 2048; w: 2; h: 2), +// (x: 1268;y: 1910; w: 84; h: 54), +// (x: 1236;y: 1710; w: 150; h: 166), +// (x: 1702;y: 1864; w: 186; h: 98), +// (x: 1768;y: 1628; w: 124; h: 58), +// (x: 1644;y: 1206; w: 112; h: 194), +// (x: 2012;y: 1284; w: 92; h: 132), +// (x: 2334;y: 1198; w: 154; h: 196), +// (x: 2184;y: 1598; w: 118; h: 64), +// (x: 2076;y: 1846; w: 328; h: 92), +// (x: 2620;y: 1654; w: 242; h: 222), +// (x: 2622;y: 1940; w: 254; h: 50), +// (x: 2632;y: 2048; w: 2; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template14FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template15Points: array[0..23] of TSDL_Rect = +// ( +// (x: 1326;y: 2048; w: 2; h: 2), +// (x: 1264;y: 1914; w: 44; h: 94), +// (x: 1374;y: 1886; w: 44; h: 94), +// (x: 1484;y: 1930; w: 78; h: 70), +// (x: 1490;y: 2048; w: 2; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1), +// (x: 1828;y: 2048; w: 2; h: 2), +// (x: 1744;y: 1806; w: 108; h: 174), +// (x: 1508;y: 1648; w: 314; h: 98), +// (x: 1334;y: 1506; w: 76; h: 230), +// (x: 1458;y: 1310; w: 220; h: 154), +// (x: 1864;y: 1298; w: 56; h: 266), +// (x: 2048;y: 1268; w: 78; h: 304), +// (x: 2272;y: 1270; w: 116; h: 162), +// (x: 2604;y: 1350; w: 190; h: 228), +// (x: 2384;y: 1628; w: 140; h: 84), +// (x: 2220;y: 1764; w: 242; h: 118), +// (x: 2240;y: 2048; w: 2; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1), +// (x: 2518;y: 2048; w: 2; h: 2), +// (x: 2474;y: 1952; w: 88; h: 34), +// (x: 2622;y: 1862; w: 96; h: 112), +// (x: 2680;y: 2048; w: 2; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template15FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template16Points: array[0..28] of TSDL_Rect = +// ( +// (x: 1324;y: 2048; w: 2; h: 2), +// (x: 1418;y: 1926; w: 58; h: 62), +// (x: 1404;y: 1794; w: 94; h: 90), +// (x: 1210;y: 1650; w: 80; h: 220), +// (x: 1400;y: 1624; w: 82; h: 118), +// (x: 1206;y: 1352; w: 134; h: 226), +// (x: 1392;y: 1352; w: 52; h: 52), +// (x: 1496;y: 1198; w: 56; h: 212), +// (x: 1612;y: 1346; w: 60; h: 62), +// (x: 1742;y: 1348; w: 108; h: 218), +// (x: 1636;y: 1540; w: 36; h: 168), +// (x: 1752;y: 1680; w: 140; h: 134), +// (x: 1612;y: 1874; w: 74; h: 82), +// (x: 1774;y: 2048; w: 102; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1), +// (x: 2328;y: 2048; w: 72; h: 2), +// (x: 2250;y: 1932; w: 266; h: 34), +// (x: 2248;y: 1772; w: 252; h: 80), +// (x: 2236;y: 1600; w: 256; h: 94), +// (x: 2164;y: 1458; w: 174; h: 86), +// (x: 2420;y: 1342; w: 156; h: 96), +// (x: 2110;y: 1238; w: 206; h: 66), +// (x: 2470;y: 1180; w: 152; h: 40), +// (x: 2732;y: 1296; w: 60; h: 162), +// (x: 2566;y: 1512; w: 146; h: 80), +// (x: 2710;y: 1658; w: 178; h: 122), +// (x: 2596;y: 1844; w: 34; h: 124), +// (x: 2722;y: 2048; w: 52; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template16FPoints: array[0..0] of TPoint = +// ( +// (x: 2047;y: 1024) +// ); +// +// const Template17Points: array[0..13] of TSDL_Rect = +// ( +// (x: 1254;y: 2048; w: 2; h: 2), +// (x: 1190;y: 1880; w: 128; h: 118), +// (x: 1376;y: 1880; w: 98; h: 114), +// (x: 1372;y: 1698; w: 140; h: 138), +// (x: 1580;y: 1696; w: 136; h: 142), +// (x: 1770;y: 1694; w: 114; h: 252), +// (x: 1948;y: 1402; w: 120; h: 390), +// (x: 2146;y: 1486; w: 114; h: 210), +// (x: 2348;y: 1330; w: 130; h: 252), +// (x: 2560;y: 1230; w: 278; h: 234), +// (x: 2548;y: 1668; w: 272; h: 52), +// (x: 2596;y: 1876; w: 180; h: 56), +// (x: 2622;y: 2048; w: 42; h: 2), +// (x: NTPX;y: 2048; w: 1; h: 1) +// ); +// Template17FPoints: array[0..0] of TPoint = +// ( +// (x: 2047; y: 0) +// ); + +////////////////////////////////////////////////////////////////////////////// +/////////////////// MIRRORED FOUR TIMES ////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +// Hi unC0Rr. Yeah, I know this is kind of lame. Real templates should probably +// be made from scratch for taller/wider area. But hey, for testing. +// The first 18 are in all 4 quadrants, the last 18 are in only the bottom 2 +const Template0Points: array[0..75] of TSDL_Rect = ( (x: 410; y: 1024; w: 1; h: 1), (x: 160; y: 760; w: 130; h: 170), @@ -55,14 +995,71 @@ (x: 1618; y: 472; w: 276; h: 314), (x: 1710; y: 850; w: 130; h: 86), (x: 1734; y: 1024; w: 1; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 410;y: 2048; w: 1; h: 1), // Y + 1024 + (x: 160;y: 1784; w: 130; h: 170), + (x: 342;y: 1730; w: 316; h: 150), + (x: 238;y: 1410; w: 270; h: 180), + (x: 246;y: 1200; w: 242; h: 156), + (x: 552;y: 1152; w: 610; h: 300), + (x: 750;y: 1492; w: 352; h: 324), + (x: 650;y: 2048; w: 500; h: 1), + (x: 1250;y: 2124; w: 1; h: 1), + (x: 1490;y: 2048; w: 1; h: 1), + (x: 1452;y: 1928; w: 74; h: 12), + (x: 1248;y: 1599; w: 68; h: 425), + (x: 1426;y: 1616; w: 140; h: 142), + (x: 1310;y: 1216; w: 150; h: 350), + (x: 1588;y: 1218; w: 148; h: 242), + (x: 1618;y: 1496; w: 276; h: 314), + (x: 1710;y: 1874; w: 130; h: 86), + (x: 1734;y: 2048; w: 1; h: 1), + (x: NTPX;y: 1024; w: 1; h: 1), + (x: 2458; y: 1024; w: 1; h: 1), // X + 2048 + (x: 2208; y: 760; w: 130; h: 170), + (x: 2390; y: 706; w: 316; h: 150), + (x: 2286; y: 386; w: 270; h: 180), + (x: 2294; y: 176; w: 242; h: 156), + (x: 2600; y: 128; w: 610; h: 300), + (x: 2798; y: 468; w: 352; h: 324), + (x: 2698; y: 1024; w: 500; h: 1), + (x: 3298; y: 1100; w: 1; h: 1), + (x: 3538; y: 1024; w: 1; h: 1), + (x: 3500; y: 904; w: 74; h: 12), + (x: 3296; y: 575; w: 68; h: 425), + (x: 3474; y: 592; w: 140; h: 142), + (x: 3358; y: 192; w: 150; h: 350), + (x: 3636; y: 194; w: 148; h: 242), + (x: 3666; y: 472; w: 276; h: 314), + (x: 3758; y: 850; w: 130; h: 86), + (x: 3782; y: 1024; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2458; y: 2048; w: 1; h: 1), // X + 2048, Y+1024 + (x: 2208; y: 1784; w: 130; h: 170), + (x: 2390; y: 1730; w: 316; h: 150), + (x: 2286; y: 1410; w: 270; h: 180), + (x: 2294; y: 1200; w: 242; h: 156), + (x: 2600; y: 1152; w: 610; h: 300), + (x: 2798; y: 1492; w: 352; h: 324), + (x: 2698; y: 2048; w: 500; h: 1), + (x: 3298; y: 2124; w: 1; h: 1), + (x: 3538; y: 2048; w: 1; h: 1), + (x: 3500; y: 1928; w: 74; h: 12), + (x: 3296; y: 1599; w: 68; h: 425), + (x: 3474; y: 1616; w: 140; h: 142), + (x: 3358; y: 1216; w: 150; h: 350), + (x: 3636; y: 1218; w: 148; h: 242), + (x: 3666; y: 1496; w: 276; h: 314), + (x: 3758; y: 1874; w: 130; h: 86), + (x: 3782; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template0FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) // TODO - determine (or ask unC0Rr) what these initial values mean ); -const Template1Points: array[0..15] of TSDL_Rect = +const Template1Points: array[0..63] of TSDL_Rect = ( (x: 400; y: 1024; w: 25; h: 1), (x: 284; y: 892; w: 254; h: 58), @@ -79,14 +1076,62 @@ (x: 1514; y: 194; w: 364; h: 362), (x: 1450; y: 652; w: 315; h: 232), (x: 1460; y: 1024; w: 25; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 400; y: 2048; w: 25; h: 1), // Y + 1024 + (x: 284; y: 1916; w: 254; h: 58), + (x: 492; y: 1658; w: 100; h: 200), + (x: 254; y: 1270; w: 276; h: 380), + (x: 620; y: 1278; w: 125; h: 270), + (x: 680; y: 1574; w: 96; h: 390), + (x: 826; y: 1638; w: 110; h: 350), + (x: 800; y: 1210; w: 150; h: 380), + (x: 1000; y: 1210; w: 170; h: 375), + (x: 1012; y: 1614; w: 188; h: 298), + (x: 1240; y: 1692; w: 136; h: 172), + (x: 1270; y: 1218; w: 120; h: 392), + (x: 1514; y: 1218; w: 364; h: 362), + (x: 1450; y: 1676; w: 315; h: 232), + (x: 1460; y: 2048; w: 25; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2448; y: 1024; w: 25; h: 1), // X + 2048 + (x: 2332; y: 892; w: 254; h: 58), + (x: 2540; y: 634; w: 100; h: 200), + (x: 2302; y: 246; w: 276; h: 380), + (x: 2668; y: 254; w: 125; h: 270), + (x: 2728; y: 550; w: 96; h: 390), + (x: 2874; y: 614; w: 110; h: 350), + (x: 2848; y: 186; w: 150; h: 380), + (x: 3048; y: 186; w: 170; h: 375), + (x: 3060; y: 590; w: 188; h: 298), + (x: 3288; y: 668; w: 136; h: 172), + (x: 3318; y: 194; w: 120; h: 392), + (x: 3562; y: 194; w: 364; h: 362), + (x: 3498; y: 652; w: 315; h: 232), + (x: 3508; y: 1024; w: 25; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2448; y: 2048; w: 25; h: 1), // X + 2048, Y + 1024 + (x: 2332; y: 1916; w: 254; h: 58), + (x: 2540; y: 1658; w: 100; h: 200), + (x: 2302; y: 1270; w: 276; h: 380), + (x: 2668; y: 1278; w: 125; h: 270), + (x: 2728; y: 1574; w: 96; h: 390), + (x: 2874; y: 1638; w: 110; h: 350), + (x: 2848; y: 1210; w: 150; h: 380), + (x: 3048; y: 1210; w: 170; h: 375), + (x: 3060; y: 1614; w: 188; h: 298), + (x: 3288; y: 1692; w: 136; h: 172), + (x: 3318; y: 1218; w: 120; h: 392), + (x: 3562; y: 1218; w: 364; h: 362), + (x: 3498; y: 1676; w: 315; h: 232), + (x: 3508; y: 2048; w: 25; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template1FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template2Points: array[0..21] of TSDL_Rect = +const Template2Points: array[0..87] of TSDL_Rect = ( (x: 354; y: 1024; w: 1; h: 1), (x: 232; y: 926; w: 226; h: 60), @@ -109,14 +1154,80 @@ (x: 1700; y: 548; w: 132; h: 340), (x: 1534; y: 898; w: 252; h: 82), (x: 1604; y: 1024; w: 1; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 354; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 232; y: 1950; w: 226; h: 60), + (x: 120; y: 1870; w: 298; h: 62), + (x: 280; y: 1728; w: 210; h: 102), + (x: 208; y: 1446; w: 192; h: 248), + (x: 292; y: 1184; w: 206; h: 240), + (x: 526; y: 1196; w: 92; h: 334), + (x: 462; y: 1552; w: 226; h: 126), + (x: 556; y: 1702; w: 268; h: 156), + (x: 722; y: 1188; w: 138; h: 500), + (x: 890; y: 1180; w: 94; h: 352), + (x: 898; y: 1586; w: 170; h: 264), + (x: 1092; y: 1408; w: 84; h: 446), + (x: 1206; y: 1224; w: 158; h: 278), + (x: 1300; y: 1514; w: 104; h: 336), + (x: 1416; y: 1570; w: 90; h: 398), + (x: 1546; y: 1216; w: 134; h: 532), + (x: 1702; y: 1270; w: 156; h: 258), + (x: 1700; y: 1572; w: 132; h: 340), + (x: 1534; y: 1922; w: 252; h: 82), + (x: 1604; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2402; y: 1024; w: 1; h: 1), // X + 2048 + (x: 2280; y: 926; w: 226; h: 60), + (x: 2168; y: 846; w: 298; h: 62), + (x: 2328; y: 704; w: 210; h: 102), + (x: 2256; y: 422; w: 192; h: 248), + (x: 2340; y: 160; w: 206; h: 240), + (x: 2574; y: 172; w: 92; h: 334), + (x: 2510; y: 528; w: 226; h: 126), + (x: 2604; y: 678; w: 268; h: 156), + (x: 2770; y: 164; w: 138; h: 500), + (x: 2938; y: 156; w: 94; h: 352), + (x: 2946; y: 562; w: 170; h: 264), + (x: 3140; y: 384; w: 84; h: 446), + (x: 3254; y: 200; w: 158; h: 278), + (x: 3348; y: 490; w: 104; h: 336), + (x: 3464; y: 546; w: 90; h: 398), + (x: 3594; y: 192; w: 134; h: 532), + (x: 3750; y: 246; w: 156; h: 258), + (x: 3748; y: 548; w: 132; h: 340), + (x: 3582; y: 898; w: 252; h: 82), + (x: 3652; y: 1024; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2402; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2280; y: 1950; w: 226; h: 60), + (x: 2168; y: 1870; w: 298; h: 62), + (x: 2328; y: 1728; w: 210; h: 102), + (x: 2256; y: 1446; w: 192; h: 248), + (x: 2340; y: 1184; w: 206; h: 240), + (x: 2574; y: 1196; w: 92; h: 334), + (x: 2510; y: 1552; w: 226; h: 126), + (x: 2604; y: 1702; w: 268; h: 156), + (x: 2770; y: 1188; w: 138; h: 500), + (x: 2938; y: 1180; w: 94; h: 352), + (x: 2946; y: 1586; w: 170; h: 264), + (x: 3140; y: 1408; w: 84; h: 446), + (x: 3254; y: 1224; w: 158; h: 278), + (x: 3348; y: 1514; w: 104; h: 336), + (x: 3464; y: 1570; w: 90; h: 398), + (x: 3594; y: 1216; w: 134; h: 532), + (x: 3750; y: 1270; w: 156; h: 258), + (x: 3748; y: 1572; w: 132; h: 340), + (x: 3582; y: 1922; w: 252; h: 82), + (x: 3652; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template2FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template3Points: array[0..16] of TSDL_Rect = +const Template3Points: array[0..67] of TSDL_Rect = ( (x: 348; y: 1024; w: 1; h: 1), (x: 236; y: 852; w: 208; h: 72), @@ -134,14 +1245,65 @@ (x: 790; y: 172; w: 352; h: 120), (x: 1274; y: 128; w: 60; h: 240), (x: 1434; y: 222; w: 254; h: 116), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 348; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 236; y: 1876; w: 208; h: 72), + (x: 498; y: 1734; w: 308; h: 60), + (x: 728; y: 1876; w: 434; h: 40), + (x: 1174; y: 1736; w: 332; h: 40), + (x: 1402; y: 1862; w: 226; h: 36), + (x: 1530; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1660; y: 1522; w: 111; h: 111), + (x: 1270; y: 1500; w: 34; h: 102), + (x: 682; y: 1438; w: 284; h: 132), + (x: 230; y: 1352; w: 126; h: 168), + (x: 410; y: 1198; w: 114; h: 100), + (x: 790; y: 1196; w: 352; h: 120), + (x: 1274; y: 1152; w: 60; h: 240), + (x: 1434; y: 1246; w: 254; h: 116), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2396; y: 1024; w: 1; h: 1), // X + 2048 + (x: 2284; y: 852; w: 208; h: 72), + (x: 2546; y: 710; w: 308; h: 60), + (x: 2776; y: 852; w: 434; h: 40), + (x: 3222; y: 712; w: 332; h: 40), + (x: 3450; y: 838; w: 226; h: 36), + (x: 3578; y: 1024; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3708; y: 498; w: 111; h: 111), + (x: 3318; y: 476; w: 34; h: 102), + (x: 2730; y: 414; w: 284; h: 132), + (x: 2278; y: 328; w: 126; h: 168), + (x: 2458; y: 174; w: 114; h: 100), + (x: 2838; y: 172; w: 352; h: 120), + (x: 3322; y: 128; w: 60; h: 240), + (x: 3482; y: 222; w: 254; h: 116), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2396; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2284; y: 1876; w: 208; h: 72), + (x: 2546; y: 1734; w: 308; h: 60), + (x: 2776; y: 1876; w: 434; h: 40), + (x: 3222; y: 1736; w: 332; h: 40), + (x: 3450; y: 1862; w: 226; h: 36), + (x: 3578; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3708; y: 1522; w: 111; h: 111), + (x: 3318; y: 1500; w: 34; h: 102), + (x: 2730; y: 1438; w: 284; h: 132), + (x: 2278; y: 1352; w: 126; h: 168), + (x: 2458; y: 1198; w: 114; h: 100), + (x: 2838; y: 1196; w: 352; h: 120), + (x: 3322; y: 1152; w: 60; h: 240), + (x: 3482; y: 1246; w: 254; h: 116), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template3FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template4Points: array[0..22] of TSDL_Rect = +const Template4Points: array[0..91] of TSDL_Rect = ( (x: 418; y: 1024; w: 1; h: 1), (x: 248; y: 900; w: 186; h: 62), @@ -165,14 +1327,83 @@ (x: 1214; y: 152; w: 116; h: 154), (x: 1428; y: 252; w: 150; h: 70), (x: 1750; y: 152; w: 86; h: 220), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 418; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 248; y: 1924; w: 186; h: 62), + (x: 272; y: 1716; w: 254; h: 138), + (x: 610; y: 1792; w: 90; h: 166), + (x: 820; y: 1640; w: 224; h: 258), + (x: 1242; y: 1782; w: 96; h: 146), + (x: 1550; y: 1722; w: 224; h: 134), + (x: 1530; y: 1926; w: 210; h: 54), + (x: 1532; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 202; y: 1442; w: 110; h: 92), + (x: 252; y: 1336; w: 160; h: 32), + (x: 150; y: 1192; w: 134; h: 78), + (x: 702; y: 1184; w: 132; h: 84), + (x: 702; y: 1332; w: 230; h: 36), + (x: 720; y: 1432; w: 166; h: 96), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1702; y: 1458; w: 202; h: 42), + (x: 1252; y: 1412; w: 134; h: 98), + (x: 1214; y: 1176; w: 116; h: 154), + (x: 1428; y: 1276; w: 150; h: 70), + (x: 1750; y: 1176; w: 86; h: 220), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2466; y: 1024; w: 1; h: 1), // X + 2048 + (x: 2296; y: 900; w: 186; h: 62), + (x: 2320; y: 692; w: 254; h: 138), + (x: 2658; y: 768; w: 90; h: 166), + (x: 2868; y: 616; w: 224; h: 258), + (x: 3290; y: 758; w: 96; h: 146), + (x: 3598; y: 698; w: 224; h: 134), + (x: 3578; y: 902; w: 210; h: 54), + (x: 3580; y: 1024; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2250; y: 418; w: 110; h: 92), + (x: 2300; y: 312; w: 160; h: 32), + (x: 2198; y: 168; w: 134; h: 78), + (x: 2750; y: 160; w: 132; h: 84), + (x: 2750; y: 308; w: 230; h: 36), + (x: 2768; y: 408; w: 166; h: 96), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3750; y: 434; w: 202; h: 42), + (x: 3300; y: 388; w: 134; h: 98), + (x: 3262; y: 152; w: 116; h: 154), + (x: 3476; y: 252; w: 150; h: 70), + (x: 3798; y: 152; w: 86; h: 220), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2466; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2296; y: 1924; w: 186; h: 62), + (x: 2320; y: 1716; w: 254; h: 138), + (x: 2658; y: 1792; w: 90; h: 166), + (x: 2868; y: 1640; w: 224; h: 258), + (x: 3290; y: 1782; w: 96; h: 146), + (x: 3598; y: 1722; w: 224; h: 134), + (x: 3578; y: 1926; w: 210; h: 54), + (x: 3580; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2250; y: 1442; w: 110; h: 92), + (x: 2300; y: 1336; w: 160; h: 32), + (x: 2198; y: 1192; w: 134; h: 78), + (x: 2750; y: 1184; w: 132; h: 84), + (x: 2750; y: 1332; w: 230; h: 36), + (x: 2768; y: 1432; w: 166; h: 96), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3750; y: 1458; w: 202; h: 42), + (x: 3300; y: 1412; w: 134; h: 98), + (x: 3262; y: 1176; w: 116; h: 154), + (x: 3476; y: 1276; w: 150; h: 70), + (x: 3798; y: 1176; w: 86; h: 220), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template4FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template5Points: array[0..15] of TSDL_Rect = +const Template5Points: array[0..63] of TSDL_Rect = ( (x: 274; y: 1024; w: 1; h: 1), (x: 190; y: 918; w: 168; h: 26), @@ -189,14 +1420,62 @@ (x: 1494; y: 364; w: 56; h: 582), (x: 1620; y: 774; w: 94; h: 232), (x: 1612; y: 1024; w: 1; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 274; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 190; y: 1942; w: 168; h: 26), + (x: 382; y: 1600; w: 122; h: 314), + (x: 568; y: 1768; w: 56; h: 180), + (x: 678; y: 1880; w: 64; h: 56), + (x: 740; y: 1674; w: 106; h: 220), + (x: 644; y: 1520; w: 162; h: 140), + (x: 496; y: 1234; w: 886; h: 174), + (x: 934; y: 1472; w: 296; h: 108), + (x: 950; y: 1776; w: 152; h: 146), + (x: 1172; y: 1798; w: 60; h: 152), + (x: 1284; y: 1746; w: 150; h: 138), + (x: 1494; y: 1388; w: 56; h: 582), + (x: 1620; y: 1798; w: 94; h: 232), + (x: 1612; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2322; y: 1024; w: 1; h: 1), // X + 2048 + (x: 2238; y: 918; w: 168; h: 26), + (x: 2430; y: 576; w: 122; h: 314), + (x: 2616; y: 744; w: 56; h: 180), + (x: 2726; y: 856; w: 64; h: 56), + (x: 2788; y: 650; w: 106; h: 220), + (x: 2692; y: 496; w: 162; h: 140), + (x: 2544; y: 210; w: 886; h: 174), + (x: 2982; y: 448; w: 296; h: 108), + (x: 2998; y: 752; w: 152; h: 146), + (x: 3220; y: 774; w: 60; h: 152), + (x: 3332; y: 722; w: 150; h: 138), + (x: 3542; y: 364; w: 56; h: 582), + (x: 3668; y: 774; w: 94; h: 232), + (x: 3660; y: 1024; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2322; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2238; y: 1942; w: 168; h: 26), + (x: 2430; y: 1600; w: 122; h: 314), + (x: 2616; y: 1768; w: 56; h: 180), + (x: 2726; y: 1880; w: 64; h: 56), + (x: 2788; y: 1674; w: 106; h: 220), + (x: 2692; y: 1520; w: 162; h: 140), + (x: 2544; y: 1234; w: 886; h: 174), + (x: 2982; y: 1472; w: 296; h: 108), + (x: 2998; y: 1776; w: 152; h: 146), + (x: 3220; y: 1798; w: 60; h: 152), + (x: 3332; y: 1746; w: 150; h: 138), + (x: 3542; y: 1388; w: 56; h: 582), + (x: 3668; y: 1798; w: 94; h: 232), + (x: 3660; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template5FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template6Points: array[0..13] of TSDL_Rect = +const Template6Points: array[0..55] of TSDL_Rect = ( (x: 368; y: 1022; w: 2; h: 2), (x: 266; y: 840; w: 302; h: 110), @@ -211,29 +1490,89 @@ (x: 1050; y: 686; w: 406; h: 92), (x: 1584; y: 502; w: 190; h: 412), (x: 1646; y: 1020; w: 2; h: 2), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 368; y: 2046; w: 2; h: 2), // Y + 1024 + (x: 266; y: 1864; w: 302; h: 110), + (x: 294; y: 1536; w: 104; h: 290), + (x: 570; y: 1604; w: 364; h: 122), + (x: 568; y: 1464; w: 368; h: 100), + (x: 232; y: 1284; w: 482; h: 130), + (x: 778; y: 1266; w: 62; h: 64), + (x: 990; y: 1178; w: 58; h: 246), + (x: 1200; y: 1300; w: 590; h: 98), + (x: 1088; y: 1466; w: 214; h: 188), + (x: 1050; y: 1710; w: 406; h: 92), + (x: 1584; y: 1526; w: 190; h: 412), + (x: 1646; y: 2044; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2416; y: 1022; w: 2; h: 2), // X + 2048 + (x: 2314; y: 840; w: 302; h: 110), + (x: 2342; y: 512; w: 104; h: 290), + (x: 2618; y: 580; w: 364; h: 122), + (x: 2616; y: 440; w: 368; h: 100), + (x: 2280; y: 260; w: 482; h: 130), + (x: 2826; y: 242; w: 62; h: 64), + (x: 3038; y: 154; w: 58; h: 246), + (x: 3248; y: 276; w: 590; h: 98), + (x: 3136; y: 442; w: 214; h: 188), + (x: 3098; y: 686; w: 406; h: 92), + (x: 3632; y: 502; w: 190; h: 412), + (x: 3694; y: 1020; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2416; y: 2046; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2314; y: 1864; w: 302; h: 110), + (x: 2342; y: 1536; w: 104; h: 290), + (x: 2618; y: 1604; w: 364; h: 122), + (x: 2616; y: 1464; w: 368; h: 100), + (x: 2280; y: 1284; w: 482; h: 130), + (x: 2826; y: 1266; w: 62; h: 64), + (x: 3038; y: 1178; w: 58; h: 246), + (x: 3248; y: 1300; w: 590; h: 98), + (x: 3136; y: 1466; w: 214; h: 188), + (x: 3098; y: 1710; w: 406; h: 92), + (x: 3632; y: 1526; w: 190; h: 412), + (x: 3694; y: 2044; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template6FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template7Points: array[0..5] of TSDL_Rect = +const Template7Points: array[0..23] of TSDL_Rect = ( (x: 162; y: 1024; w: 400; h: 1), (x: 226; y: 234; w: 142; h: 360), (x: 936; y: 740; w: 400; h: 200), (x: 1576; y: 176; w: 186; h: 550), (x: 1430; y: 1024; w: 454; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 162; y: 2048; w: 400; h: 1), // Y + 1024 + (x: 226; y: 1258; w: 142; h: 360), + (x: 936; y: 1764; w: 400; h: 200), + (x: 1576; y: 1200; w: 186; h: 550), + (x: 1430; y: 2048; w: 454; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 162; y: 1024; w: 400; h: 1), // X + 2048 + (x: 226; y: 234; w: 142; h: 360), + (x: 936; y: 740; w: 400; h: 200), + (x: 1576; y: 176; w: 186; h: 550), + (x: 1430; y: 1024; w: 454; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 162; y: 2048; w: 400; h: 1), // X + 2048, Y + 1024 + (x: 226; y: 1258; w: 142; h: 360), + (x: 936; y: 1764; w: 400; h: 200), + (x: 1576; y: 1200; w: 186; h: 550), + (x: 1430; y: 2048; w: 454; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template7FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template8Points: array[0..19] of TSDL_Rect = +const Template8Points: array[0..79] of TSDL_Rect = ( (x: 364; y: 1024; w: 20; h: 1), (x: 290; y: 860; w: 64; h: 62), @@ -254,14 +1593,74 @@ (x: 1540; y: 588; w: 212; h: 50), (x: 1464; y: 746; w: 128; h: 146), (x: 1630; y: 1024; w: 20; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 364; y: 2048; w: 20; h: 1), // Y + 1024 + (x: 290; y: 1884; w: 64; h: 62), + (x: 486; y: 1774; w: 52; h: 146), + (x: 256; y: 1614; w: 116; h: 144), + (x: 470; y: 1492; w: 138; h: 168), + (x: 242; y: 1266; w: 158; h: 162), + (x: 508; y: 1334; w: 198; h: 72), + (x: 770; y: 1252; w: 118; h: 134), + (x: 636; y: 1742; w: 142; h: 132), + (x: 968; y: 1724; w: 172; h: 58), + (x: 970; y: 1828; w: 172; h: 62), + (x: 1232; y: 1728; w: 82; h: 226), + (x: 1356; y: 1618; w: 64; h: 152), + (x: 1214; y: 1358; w: 106; h: 152), + (x: 1410; y: 1284; w: 380; h: 82), + (x: 1528; y: 1446; w: 30; h: 118), + (x: 1540; y: 1612; w: 212; h: 50), + (x: 1464; y: 1770; w: 128; h: 146), + (x: 1630; y: 2048; w: 20; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2412; y: 1024; w: 20; h: 1), // X + 2048 + (x: 2338; y: 860; w: 64; h: 62), + (x: 2534; y: 750; w: 52; h: 146), + (x: 2304; y: 590; w: 116; h: 144), + (x: 2518; y: 468; w: 138; h: 168), + (x: 2290; y: 242; w: 158; h: 162), + (x: 2556; y: 310; w: 198; h: 72), + (x: 2818; y: 228; w: 118; h: 134), + (x: 2684; y: 718; w: 142; h: 132), + (x: 3016; y: 700; w: 172; h: 58), + (x: 3018; y: 804; w: 172; h: 62), + (x: 3280; y: 704; w: 82; h: 226), + (x: 3404; y: 594; w: 64; h: 152), + (x: 3262; y: 334; w: 106; h: 152), + (x: 3458; y: 260; w: 380; h: 82), + (x: 3576; y: 422; w: 30; h: 118), + (x: 3588; y: 588; w: 212; h: 50), + (x: 3512; y: 746; w: 128; h: 146), + (x: 3678; y: 1024; w: 20; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2412; y: 2048; w: 20; h: 1), // X + 2048, Y + 1024 + (x: 2338; y: 1884; w: 64; h: 62), + (x: 2534; y: 1774; w: 52; h: 146), + (x: 2304; y: 1614; w: 116; h: 144), + (x: 2518; y: 1492; w: 138; h: 168), + (x: 2290; y: 1266; w: 158; h: 162), + (x: 2556; y: 1334; w: 198; h: 72), + (x: 2818; y: 1252; w: 118; h: 134), + (x: 2684; y: 1742; w: 142; h: 132), + (x: 3016; y: 1724; w: 172; h: 58), + (x: 3018; y: 1828; w: 172; h: 62), + (x: 3280; y: 1728; w: 82; h: 226), + (x: 3404; y: 1618; w: 64; h: 152), + (x: 3262; y: 1358; w: 106; h: 152), + (x: 3458; y: 1284; w: 380; h: 82), + (x: 3576; y: 1446; w: 30; h: 118), + (x: 3588; y: 1612; w: 212; h: 50), + (x: 3512; y: 1770; w: 128; h: 146), + (x: 3678; y: 2048; w: 20; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template8FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template9Points: array[0..31] of TSDL_Rect = +const Template9Points: array[0..127] of TSDL_Rect = ( (x: 340; y: 1024; w: 1; h: 1), (x: 276; y: 902; w: 44; h: 54), @@ -294,14 +1693,110 @@ (x: 1632; y: 678; w: 248; h: 20), (x: 1632; y: 802; w: 238; h: 16), (x: 1680; y: 1024; w: 1; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 340; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 276; y: 1926; w: 44; h: 54), + (x: 434; y: 1860; w: 58; h: 90), + (x: 266; y: 1758; w: 80; h: 80), + (x: 246; y: 1628; w: 96; h: 108), + (x: 426; y: 1670; w: 110; h: 112), + (x: 234; y: 1316; w: 118; h: 164), + (x: 428; y: 1420; w: 130; h: 110), + (x: 516; y: 1222; w: 344; h: 78), + (x: 688; y: 1450; w: 50; h: 40), + (x: 626; y: 1584; w: 32; h: 148), + (x: 698; y: 1674; w: 160; h: 34), + (x: 674; y: 1812; w: 36; h: 136), + (x: 1014; y: 1872; w: 48; h: 48), + (x: 1086; y: 1752; w: 64; h: 88), + (x: 958; y: 1684; w: 70; h: 74), + (x: 1116; y: 1620; w: 68; h: 70), + (x: 1118; y: 1508; w: 68; h: 82), + (x: 958; y: 1348; w: 44; h: 140), + (x: 1272; y: 1330; w: 52; h: 66), + (x: 1254; y: 1526; w: 58; h: 66), + (x: 1234; y: 1784; w: 76; h: 112), + (x: 1380; y: 1786; w: 124; h: 64), + (x: 1472; y: 1496; w: 54; h: 134), + (x: 1410; y: 1220; w: 246; h: 62), + (x: 1706; y: 1178; w: 38; h: 238), + (x: 1812; y: 1372; w: 28; h: 28), + (x: 1692; y: 1548; w: 144; h: 94), + (x: 1632; y: 1702; w: 248; h: 20), + (x: 1632; y: 1826; w: 238; h: 16), + (x: 1680; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2388; y: 1024; w: 1; h: 1), // X + 2048 + (x: 2324; y: 902; w: 44; h: 54), + (x: 2482; y: 836; w: 58; h: 90), + (x: 2314; y: 734; w: 80; h: 80), + (x: 2294; y: 604; w: 96; h: 108), + (x: 2474; y: 646; w: 110; h: 112), + (x: 2282; y: 292; w: 118; h: 164), + (x: 2476; y: 396; w: 130; h: 110), + (x: 2564; y: 198; w: 344; h: 78), + (x: 2736; y: 426; w: 50; h: 40), + (x: 2674; y: 560; w: 32; h: 148), + (x: 2746; y: 650; w: 160; h: 34), + (x: 2722; y: 788; w: 36; h: 136), + (x: 3062; y: 848; w: 48; h: 48), + (x: 3134; y: 728; w: 64; h: 88), + (x: 3006; y: 660; w: 70; h: 74), + (x: 3164; y: 596; w: 68; h: 70), + (x: 3166; y: 484; w: 68; h: 82), + (x: 3006; y: 324; w: 44; h: 140), + (x: 3320; y: 306; w: 52; h: 66), + (x: 3302; y: 502; w: 58; h: 66), + (x: 3282; y: 760; w: 76; h: 112), + (x: 3428; y: 762; w: 124; h: 64), + (x: 3520; y: 472; w: 54; h: 134), + (x: 3458; y: 196; w: 246; h: 62), + (x: 3754; y: 154; w: 38; h: 238), + (x: 3860; y: 348; w: 28; h: 28), + (x: 3740; y: 524; w: 144; h: 94), + (x: 3680; y: 678; w: 248; h: 20), + (x: 3680; y: 802; w: 238; h: 16), + (x: 3728; y: 1024; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2388; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2324; y: 1926; w: 44; h: 54), + (x: 2482; y: 1860; w: 58; h: 90), + (x: 2314; y: 1758; w: 80; h: 80), + (x: 2294; y: 1628; w: 96; h: 108), + (x: 2474; y: 1670; w: 110; h: 112), + (x: 2282; y: 1316; w: 118; h: 164), + (x: 2476; y: 1420; w: 130; h: 110), + (x: 2564; y: 1222; w: 344; h: 78), + (x: 2736; y: 1450; w: 50; h: 40), + (x: 2674; y: 1584; w: 32; h: 148), + (x: 2746; y: 1674; w: 160; h: 34), + (x: 2722; y: 1812; w: 36; h: 136), + (x: 3062; y: 1872; w: 48; h: 48), + (x: 3134; y: 1752; w: 64; h: 88), + (x: 3006; y: 1684; w: 70; h: 74), + (x: 3164; y: 1620; w: 68; h: 70), + (x: 3166; y: 1508; w: 68; h: 82), + (x: 3006; y: 1348; w: 44; h: 140), + (x: 3320; y: 1330; w: 52; h: 66), + (x: 3302; y: 1526; w: 58; h: 66), + (x: 3282; y: 1784; w: 76; h: 112), + (x: 3428; y: 1786; w: 124; h: 64), + (x: 3520; y: 1496; w: 54; h: 134), + (x: 3458; y: 1220; w: 246; h: 62), + (x: 3754; y: 1178; w: 38; h: 238), + (x: 3860; y: 1372; w: 28; h: 28), + (x: 3740; y: 1548; w: 144; h: 94), + (x: 3680; y: 1702; w: 248; h: 20), + (x: 3680; y: 1826; w: 238; h: 16), + (x: 3728; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template9FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template10Points: array[0..13] of TSDL_Rect = +const Template10Points: array[0..55] of TSDL_Rect = ( (x: 188; y: 1024; w: 190; h: 1), (x: 240; y: 682; w: 140; h: 150), @@ -316,14 +1811,56 @@ (x: 1458; y: 274; w: 354; h: 448), (x: 1688; y: 795; w: 120; h: 120), (x: 1782; y: 1024; w: 2; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 188; y: 2048; w: 190; h: 1), // Y + 1024 + (x: 240; y: 1706; w: 140; h: 150), + (x: 314; y: 1492; w: 352; h: 94), + (x: 726; y: 1270; w: 106; h: 282), + (x: 902; y: 1414; w: 368; h: 142), + (x: 958; y: 1612; w: 116; h: 244), + (x: 876; y: 2048; w: 14; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1064; y: 2048; w: 22; h: 1), + (x: 1288; y: 1819; w: 120; h: 120), + (x: 1458; y: 1298; w: 354; h: 448), + (x: 1688; y: 1819; w: 120; h: 120), + (x: 1782; y: 2048; w: 2; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2236; y: 1024; w: 190; h: 1), // X + 2048 + (x: 2288; y: 682; w: 140; h: 150), + (x: 2362; y: 468; w: 352; h: 94), + (x: 2774; y: 246; w: 106; h: 282), + (x: 2950; y: 390; w: 368; h: 142), + (x: 3006; y: 588; w: 116; h: 244), + (x: 2924; y: 1024; w: 14; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3112; y: 1024; w: 22; h: 1), + (x: 3336; y: 795; w: 120; h: 120), + (x: 3506; y: 274; w: 354; h: 448), + (x: 3736; y: 795; w: 120; h: 120), + (x: 3830; y: 1024; w: 2; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2236; y: 2048; w: 190; h: 1), // X + 2048, Y + 1024 + (x: 2288; y: 1706; w: 140; h: 150), + (x: 2362; y: 1492; w: 352; h: 94), + (x: 2774; y: 1270; w: 106; h: 282), + (x: 2950; y: 1414; w: 368; h: 142), + (x: 3006; y: 1612; w: 116; h: 244), + (x: 2924; y: 2048; w: 14; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3112; y: 2048; w: 22; h: 1), + (x: 3336; y: 1819; w: 120; h: 120), + (x: 3506; y: 1298; w: 354; h: 448), + (x: 3736; y: 1819; w: 120; h: 120), + (x: 3830; y: 2048; w: 2; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template10FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template11Points: array[0..9] of TSDL_Rect = +const Template11Points: array[0..39] of TSDL_Rect = ( (x: 274; y: 1024; w: 166; h: 1), (x: 330; y: 862; w: 96; h: 92), @@ -334,14 +1871,44 @@ (x: 1292; y: 630; w: 46; h: 300), (x: 1448; y: 664; w: 158; h: 272), (x: 1584; y: 1024; w: 136; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 274; y: 2048; w: 166; h: 1), // Y + 1024 + (x: 330; y: 1886; w: 96; h: 92), + (x: 492; y: 1714; w: 152; h: 250), + (x: 746; y: 1670; w: 36; h: 270), + (x: 938; y: 1650; w: 54; h: 224), + (x: 1134; y: 1670; w: 44; h: 216), + (x: 1292; y: 1654; w: 46; h: 300), + (x: 1448; y: 1688; w: 158; h: 272), + (x: 1584; y: 2048; w: 136; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2322; y: 1024; w: 166; h: 1), // X + 2048 + (x: 2378; y: 862; w: 96; h: 92), + (x: 2540; y: 690; w: 152; h: 250), + (x: 2794; y: 646; w: 36; h: 270), + (x: 2986; y: 626; w: 54; h: 224), + (x: 3182; y: 646; w: 44; h: 216), + (x: 3340; y: 630; w: 46; h: 300), + (x: 3496; y: 664; w: 158; h: 272), + (x: 3632; y: 1024; w: 136; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2322; y: 1024; w: 166; h: 1), // X + 2048, Y + 1024 + (x: 2378; y: 862; w: 96; h: 92), + (x: 2540; y: 690; w: 152; h: 250), + (x: 2794; y: 646; w: 36; h: 270), + (x: 2986; y: 626; w: 54; h: 224), + (x: 3182; y: 646; w: 44; h: 216), + (x: 3340; y: 630; w: 46; h: 300), + (x: 3496; y: 664; w: 158; h: 272), + (x: 3632; y: 1024; w: 136; h: 1), (x: NTPX; y: 0; w: 1; h: 1) ); Template11FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template12Points: array[0..13] of TSDL_Rect = +const Template12Points: array[0..55] of TSDL_Rect = ( (x: 360; y: 1024; w: 2; h: 2), (x: 242; y: 630; w: 46; h: 286), @@ -356,14 +1923,56 @@ (x: 1600; y: 414; w: 76; h: 358), (x: 1748; y: 584; w: 108; h: 304), (x: 1688; y: 1024; w: 176; h: 1), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 360; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 242; y: 1654; w: 46; h: 286), + (x: 454; y: 1696; w: 194; h: 56), + (x: 254; y: 1358; w: 534; h: 200), + (x: 870; y: 1300; w: 58; h: 468), + (x: 1076; y: 1296; w: 198; h: 112), + (x: 1000; y: 2048; w: 64; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1244; y: 2048; w: 64; h: 2), + (x: 1356; y: 1518; w: 184; h: 94), + (x: 1600; y: 1438; w: 76; h: 358), + (x: 1748; y: 1608; w: 108; h: 304), + (x: 1688; y: 2048; w: 176; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2408; y: 1024; w: 2; h: 2), // X + 2048 + (x: 2290; y: 630; w: 46; h: 286), + (x: 2502; y: 672; w: 194; h: 56), + (x: 2302; y: 334; w: 534; h: 200), + (x: 2918; y: 276; w: 58; h: 468), + (x: 3124; y: 272; w: 198; h: 112), + (x: 3048; y: 1024; w: 64; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3292; y: 1024; w: 64; h: 2), + (x: 3404; y: 494; w: 184; h: 94), + (x: 3648; y: 414; w: 76; h: 358), + (x: 3796; y: 584; w: 108; h: 304), + (x: 3736; y: 1024; w: 176; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2408; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2290; y: 1654; w: 46; h: 286), + (x: 2502; y: 1696; w: 194; h: 56), + (x: 2302; y: 1358; w: 534; h: 200), + (x: 2918; y: 1300; w: 58; h: 468), + (x: 3124; y: 1296; w: 198; h: 112), + (x: 3048; y: 2048; w: 64; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3292; y: 2048; w: 64; h: 2), + (x: 3404; y: 1518; w: 184; h: 94), + (x: 3648; y: 1438; w: 76; h: 358), + (x: 3796; y: 1608; w: 108; h: 304), + (x: 3736; y: 2048; w: 176; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template12FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template13Points: array[0..15] of TSDL_Rect = +const Template13Points: array[0..63] of TSDL_Rect = ( (x: 446; y: 1024; w: 140; h: 2), (x: 280; y: 872; w: 196; h: 32), @@ -380,14 +1989,62 @@ (x: 1256; y: 706; w: 194; h: 150), (x: 1568; y: 706; w: 198; h: 152), (x: 1444; y: 1024; w: 2; h: 2), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 446; y: 2048; w: 140; h: 2), // Y + 1024 + (x: 280; y: 1896; w: 196; h: 32), + (x: 254; y: 1704; w: 262; h: 134), + (x: 654; y: 1696; w: 220; h: 136), + (x: 608; y: 1514; w: 268; h: 110), + (x: 300; y: 1386; w: 104; h: 200), + (x: 446; y: 1248; w: 306; h: 58), + (x: 916; y: 1212; w: 84; h: 206), + (x: 1148; y: 1198; w: 104; h: 220), + (x: 1426; y: 1200; w: 120; h: 202), + (x: 1556; y: 1442; w: 192; h: 68), + (x: 1226; y: 1572; w: 246; h: 88), + (x: 1256; y: 1730; w: 194; h: 150), + (x: 1568; y: 1730; w: 198; h: 152), + (x: 1444; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2494; y: 1024; w: 140; h: 2), // X + 2048 + (x: 2328; y: 872; w: 196; h: 32), + (x: 2302; y: 680; w: 262; h: 134), + (x: 2702; y: 672; w: 220; h: 136), + (x: 2656; y: 490; w: 268; h: 110), + (x: 2348; y: 362; w: 104; h: 200), + (x: 2494; y: 224; w: 306; h: 58), + (x: 2964; y: 188; w: 84; h: 206), + (x: 3196; y: 174; w: 104; h: 220), + (x: 3474; y: 176; w: 120; h: 202), + (x: 3604; y: 418; w: 192; h: 68), + (x: 3274; y: 548; w: 246; h: 88), + (x: 3304; y: 706; w: 194; h: 150), + (x: 3616; y: 706; w: 198; h: 152), + (x: 3492; y: 1024; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2494; y: 2048; w: 140; h: 2), // X + 2048, Y + 1024 + (x: 2328; y: 1896; w: 196; h: 32), + (x: 2302; y: 1704; w: 262; h: 134), + (x: 2702; y: 1696; w: 220; h: 136), + (x: 2656; y: 1514; w: 268; h: 110), + (x: 2348; y: 1386; w: 104; h: 200), + (x: 2494; y: 1248; w: 306; h: 58), + (x: 2964; y: 1212; w: 84; h: 206), + (x: 3196; y: 1198; w: 104; h: 220), + (x: 3474; y: 1200; w: 120; h: 202), + (x: 3604; y: 1442; w: 192; h: 68), + (x: 3274; y: 1572; w: 246; h: 88), + (x: 3304; y: 1730; w: 194; h: 150), + (x: 3616; y: 1730; w: 198; h: 152), + (x: 3492; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template13FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template14Points: array[0..13] of TSDL_Rect = +const Template14Points: array[0..55] of TSDL_Rect = ( (x: 286; y: 1024; w: 2; h: 2), (x: 244; y: 886; w: 84; h: 54), @@ -402,14 +2059,56 @@ (x: 1596; y: 630; w: 242; h: 222), (x: 1598; y: 916; w: 254; h: 50), (x: 1608; y: 1024; w: 2; h: 2), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 286; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 244; y: 1910; w: 84; h: 54), + (x: 212; y: 1710; w: 150; h: 166), + (x: 678; y: 1864; w: 186; h: 98), + (x: 744; y: 1628; w: 124; h: 58), + (x: 620; y: 1206; w: 112; h: 194), + (x: 988; y: 1284; w: 92; h: 132), + (x: 1310; y: 1198; w: 154; h: 196), + (x: 1160; y: 1598; w: 118; h: 64), + (x: 1052; y: 1846; w: 328; h: 92), + (x: 1596; y: 1654; w: 242; h: 222), + (x: 1598; y: 1940; w: 254; h: 50), + (x: 1608; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2334; y: 1024; w: 2; h: 2), // X + 2048 + (x: 2292; y: 886; w: 84; h: 54), + (x: 2260; y: 686; w: 150; h: 166), + (x: 2726; y: 840; w: 186; h: 98), + (x: 2792; y: 604; w: 124; h: 58), + (x: 2668; y: 182; w: 112; h: 194), + (x: 3036; y: 260; w: 92; h: 132), + (x: 3358; y: 174; w: 154; h: 196), + (x: 3208; y: 574; w: 118; h: 64), + (x: 3100; y: 822; w: 328; h: 92), + (x: 3644; y: 630; w: 242; h: 222), + (x: 3646; y: 916; w: 254; h: 50), + (x: 3656; y: 1024; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2334; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2292; y: 1910; w: 84; h: 54), + (x: 2260; y: 1710; w: 150; h: 166), + (x: 2726; y: 1864; w: 186; h: 98), + (x: 2792; y: 1628; w: 124; h: 58), + (x: 2668; y: 1206; w: 112; h: 194), + (x: 3036; y: 1284; w: 92; h: 132), + (x: 3358; y: 1198; w: 154; h: 196), + (x: 3208; y: 1598; w: 118; h: 64), + (x: 3100; y: 1846; w: 328; h: 92), + (x: 3644; y: 1654; w: 242; h: 222), + (x: 3646; y: 1940; w: 254; h: 50), + (x: 3656; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template14FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template15Points: array[0..23] of TSDL_Rect = +const Template15Points: array[0..95] of TSDL_Rect = ( (x: 302; y: 1024; w: 2; h: 2), (x: 240; y: 890; w: 44; h: 94), @@ -434,14 +2133,86 @@ (x: 1450; y: 928; w: 88; h: 34), (x: 1598; y: 838; w: 96; h: 112), (x: 1656; y: 1024; w: 2; h: 2), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 302; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 240; y: 1914; w: 44; h: 94), + (x: 350; y: 1886; w: 44; h: 94), + (x: 460; y: 1930; w: 78; h: 70), + (x: 466; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 804; y: 2048; w: 2; h: 2), + (x: 720; y: 1806; w: 108; h: 174), + (x: 484; y: 1648; w: 314; h: 98), + (x: 310; y: 1506; w: 76; h: 230), + (x: 434; y: 1310; w: 220; h: 154), + (x: 840; y: 1298; w: 56; h: 266), + (x: 1024; y: 1268; w: 78; h: 304), + (x: 1248; y: 1270; w: 116; h: 162), + (x: 1580; y: 1350; w: 190; h: 228), + (x: 1360; y: 1628; w: 140; h: 84), + (x: 1196; y: 1764; w: 242; h: 118), + (x: 1216; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1494; y: 2048; w: 2; h: 2), + (x: 1450; y: 1952; w: 88; h: 34), + (x: 1598; y: 1862; w: 96; h: 112), + (x: 1656; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2350; y: 1024; w: 2; h: 2), // X + 2048 + (x: 2288; y: 890; w: 44; h: 94), + (x: 2398; y: 862; w: 44; h: 94), + (x: 2508; y: 906; w: 78; h: 70), + (x: 2514; y: 1024; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2852; y: 1024; w: 2; h: 2), + (x: 2768; y: 782; w: 108; h: 174), + (x: 2532; y: 624; w: 314; h: 98), + (x: 2358; y: 482; w: 76; h: 230), + (x: 2482; y: 286; w: 220; h: 154), + (x: 2888; y: 274; w: 56; h: 266), + (x: 3072; y: 244; w: 78; h: 304), + (x: 3296; y: 246; w: 116; h: 162), + (x: 3628; y: 326; w: 190; h: 228), + (x: 3408; y: 604; w: 140; h: 84), + (x: 3244; y: 740; w: 242; h: 118), + (x: 3264; y: 1024; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3542; y: 1024; w: 2; h: 2), + (x: 3498; y: 928; w: 88; h: 34), + (x: 3646; y: 838; w: 96; h: 112), + (x: 3704; y: 1024; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2350; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2288; y: 1914; w: 44; h: 94), + (x: 2398; y: 1886; w: 44; h: 94), + (x: 2508; y: 1930; w: 78; h: 70), + (x: 2514; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2852; y: 2048; w: 2; h: 2), + (x: 2768; y: 1806; w: 108; h: 174), + (x: 2532; y: 1648; w: 314; h: 98), + (x: 2358; y: 1506; w: 76; h: 230), + (x: 2482; y: 1310; w: 220; h: 154), + (x: 2888; y: 1298; w: 56; h: 266), + (x: 3072; y: 1268; w: 78; h: 304), + (x: 3296; y: 1270; w: 116; h: 162), + (x: 3628; y: 1350; w: 190; h: 228), + (x: 3408; y: 1628; w: 140; h: 84), + (x: 3244; y: 1764; w: 242; h: 118), + (x: 3264; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3542; y: 2048; w: 2; h: 2), + (x: 3498; y: 1952; w: 88; h: 34), + (x: 3646; y: 1862; w: 96; h: 112), + (x: 3704; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template15FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template16Points: array[0..28] of TSDL_Rect = +const Template16Points: array[0..115] of TSDL_Rect = ( (x: 300; y: 1024; w: 2; h: 2), (x: 394; y: 902; w: 58; h: 62), @@ -471,14 +2242,101 @@ (x: 1686; y: 634; w: 178; h: 122), (x: 1572; y: 820; w: 34; h: 124), (x: 1698; y: 1024; w: 52; h: 2), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 300; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 394; y: 1926; w: 58; h: 62), + (x: 380; y: 1794; w: 94; h: 90), + (x: 186; y: 1650; w: 80; h: 220), + (x: 376; y: 1624; w: 82; h: 118), + (x: 182; y: 1352; w: 134; h: 226), + (x: 368; y: 1352; w: 52; h: 52), + (x: 472; y: 1198; w: 56; h: 212), + (x: 588; y: 1346; w: 60; h: 62), + (x: 718; y: 1348; w: 108; h: 218), + (x: 612; y: 1540; w: 36; h: 168), + (x: 728; y: 1680; w: 140; h: 134), + (x: 588; y: 1874; w: 74; h: 82), + (x: 750; y: 2048; w: 102; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1304; y: 2048; w: 72; h: 2), + (x: 1226; y: 1932; w: 266; h: 34), + (x: 1224; y: 1772; w: 252; h: 80), + (x: 1212; y: 1600; w: 256; h: 94), + (x: 1140; y: 1458; w: 174; h: 86), + (x: 1396; y: 1342; w: 156; h: 96), + (x: 1086; y: 1238; w: 206; h: 66), + (x: 1446; y: 1180; w: 152; h: 40), + (x: 1708; y: 1296; w: 60; h: 162), + (x: 1542; y: 1512; w: 146; h: 80), + (x: 1686; y: 1658; w: 178; h: 122), + (x: 1572; y: 1844; w: 34; h: 124), + (x: 1698; y: 2048; w: 52; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2348; y: 1024; w: 2; h: 2), // X + 2048 + (x: 2442; y: 902; w: 58; h: 62), + (x: 2428; y: 770; w: 94; h: 90), + (x: 2234; y: 626; w: 80; h: 220), + (x: 2424; y: 600; w: 82; h: 118), + (x: 2230; y: 328; w: 134; h: 226), + (x: 2416; y: 328; w: 52; h: 52), + (x: 2520; y: 174; w: 56; h: 212), + (x: 2636; y: 322; w: 60; h: 62), + (x: 2766; y: 324; w: 108; h: 218), + (x: 2660; y: 516; w: 36; h: 168), + (x: 2776; y: 656; w: 140; h: 134), + (x: 2636; y: 850; w: 74; h: 82), + (x: 2798; y: 1024; w: 102; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3352; y: 1024; w: 72; h: 2), + (x: 3274; y: 908; w: 266; h: 34), + (x: 3272; y: 748; w: 252; h: 80), + (x: 3260; y: 576; w: 256; h: 94), + (x: 3188; y: 434; w: 174; h: 86), + (x: 3444; y: 318; w: 156; h: 96), + (x: 3134; y: 214; w: 206; h: 66), + (x: 3494; y: 156; w: 152; h: 40), + (x: 3756; y: 272; w: 60; h: 162), + (x: 3590; y: 488; w: 146; h: 80), + (x: 3734; y: 634; w: 178; h: 122), + (x: 3620; y: 820; w: 34; h: 124), + (x: 3746; y: 1024; w: 52; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2348; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2442; y: 1926; w: 58; h: 62), + (x: 2428; y: 1794; w: 94; h: 90), + (x: 2234; y: 1650; w: 80; h: 220), + (x: 2424; y: 1624; w: 82; h: 118), + (x: 2230; y: 1352; w: 134; h: 226), + (x: 2416; y: 1352; w: 52; h: 52), + (x: 2520; y: 1198; w: 56; h: 212), + (x: 2636; y: 1346; w: 60; h: 62), + (x: 2766; y: 1348; w: 108; h: 218), + (x: 2660; y: 1540; w: 36; h: 168), + (x: 2776; y: 1680; w: 140; h: 134), + (x: 2636; y: 1874; w: 74; h: 82), + (x: 2798; y: 2048; w: 102; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3352; y: 2048; w: 72; h: 2), + (x: 3274; y: 1932; w: 266; h: 34), + (x: 3272; y: 1772; w: 252; h: 80), + (x: 3260; y: 1600; w: 256; h: 94), + (x: 3188; y: 1458; w: 174; h: 86), + (x: 3444; y: 1342; w: 156; h: 96), + (x: 3134; y: 1238; w: 206; h: 66), + (x: 3494; y: 1180; w: 152; h: 40), + (x: 3756; y: 1296; w: 60; h: 162), + (x: 3590; y: 1512; w: 146; h: 80), + (x: 3734; y: 1658; w: 178; h: 122), + (x: 3620; y: 1844; w: 34; h: 124), + (x: 3746; y: 2048; w: 52; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template16FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) ); -const Template17Points: array[0..13] of TSDL_Rect = +const Template17Points: array[0..55] of TSDL_Rect = ( (x: 230; y: 1024; w: 2; h: 2), (x: 166; y: 856; w: 128; h: 118), @@ -493,15 +2351,853 @@ (x: 1524; y: 644; w: 272; h: 52), (x: 1572; y: 852; w: 180; h: 56), (x: 1598; y: 1024; w: 42; h: 2), - (x: NTPX; y: 0; w: 1; h: 1) + (x: NTPX; y: 0; w: 1; h: 1), + (x: 230; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 166; y: 1880; w: 128; h: 118), + (x: 352; y: 1880; w: 98; h: 114), + (x: 348; y: 1698; w: 140; h: 138), + (x: 556; y: 1696; w: 136; h: 142), + (x: 746; y: 1694; w: 114; h: 252), + (x: 924; y: 1402; w: 120; h: 390), + (x: 1122; y: 1486; w: 114; h: 210), + (x: 1324; y: 1330; w: 130; h: 252), + (x: 1536; y: 1230; w: 278; h: 234), + (x: 1524; y: 1668; w: 272; h: 52), + (x: 1572; y: 1876; w: 180; h: 56), + (x: 1598; y: 2048; w: 42; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2278; y: 1024; w: 2; h: 2), // X + 2048 + (x: 2214; y: 856; w: 128; h: 118), + (x: 2400; y: 856; w: 98; h: 114), + (x: 2396; y: 674; w: 140; h: 138), + (x: 2604; y: 672; w: 136; h: 142), + (x: 2794; y: 670; w: 114; h: 252), + (x: 2972; y: 378; w: 120; h: 390), + (x: 3170; y: 462; w: 114; h: 210), + (x: 3372; y: 306; w: 130; h: 252), + (x: 3584; y: 206; w: 278; h: 234), + (x: 3572; y: 644; w: 272; h: 52), + (x: 3620; y: 852; w: 180; h: 56), + (x: 3646; y: 1024; w: 42; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2278; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2214; y: 1880; w: 128; h: 118), + (x: 2400; y: 1880; w: 98; h: 114), + (x: 2396; y: 1698; w: 140; h: 138), + (x: 2604; y: 1696; w: 136; h: 142), + (x: 2794; y: 1694; w: 114; h: 252), + (x: 2972; y: 1402; w: 120; h: 390), + (x: 3170; y: 1486; w: 114; h: 210), + (x: 3372; y: 1330; w: 130; h: 252), + (x: 3584; y: 1230; w: 278; h: 234), + (x: 3572; y: 1668; w: 272; h: 52), + (x: 3620; y: 1876; w: 180; h: 56), + (x: 3646; y: 2048; w: 42; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) ); Template17FPoints: array[0..0] of TPoint = ( - (x: 1023; y: 0) + (x: 2047; y: 0) + ); +////////////////////////////////////////////////////////////////////////////// +/////////////////// END MIRRORED FOUR TIMES ////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +/////////////////// MIRRORED TWO TIMES /////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + + +const Template18Points: array[0..37] of TSDL_Rect = + ( + (x: 410;y: 2048; w: 1; h: 1), // Y + 1024 + (x: 160;y: 1784; w: 130; h: 170), + (x: 342;y: 1730; w: 316; h: 150), + (x: 238;y: 1410; w: 270; h: 180), + (x: 246;y: 1200; w: 242; h: 156), + (x: 552;y: 1152; w: 610; h: 300), + (x: 750;y: 1492; w: 352; h: 324), + (x: 650;y: 2048; w: 500; h: 1), + (x: 1250;y: 2124; w: 1; h: 1), + (x: 1490;y: 2048; w: 1; h: 1), + (x: 1452;y: 1928; w: 74; h: 12), + (x: 1248;y: 1599; w: 68; h: 425), + (x: 1426;y: 1616; w: 140; h: 142), + (x: 1310;y: 1216; w: 150; h: 350), + (x: 1588;y: 1218; w: 148; h: 242), + (x: 1618;y: 1496; w: 276; h: 314), + (x: 1710;y: 1874; w: 130; h: 86), + (x: 1734;y: 2048; w: 1; h: 1), + (x: NTPX;y: 1024; w: 1; h: 1), + (x: 2458; y: 2048; w: 1; h: 1), // X + 2048, Y+1024 + (x: 2208; y: 1784; w: 130; h: 170), + (x: 2390; y: 1730; w: 316; h: 150), + (x: 2286; y: 1410; w: 270; h: 180), + (x: 2294; y: 1200; w: 242; h: 156), + (x: 2600; y: 1152; w: 610; h: 300), + (x: 2798; y: 1492; w: 352; h: 324), + (x: 2698; y: 2048; w: 500; h: 1), + (x: 3298; y: 2124; w: 1; h: 1), + (x: 3538; y: 2048; w: 1; h: 1), + (x: 3500; y: 1928; w: 74; h: 12), + (x: 3296; y: 1599; w: 68; h: 425), + (x: 3474; y: 1616; w: 140; h: 142), + (x: 3358; y: 1216; w: 150; h: 350), + (x: 3636; y: 1218; w: 148; h: 242), + (x: 3666; y: 1496; w: 276; h: 314), + (x: 3758; y: 1874; w: 130; h: 86), + (x: 3782; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template18FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template19Points: array[0..31] of TSDL_Rect = + ( + (x: 400; y: 2048; w: 25; h: 1), // Y + 1024 + (x: 284; y: 1916; w: 254; h: 58), + (x: 492; y: 1658; w: 100; h: 200), + (x: 254; y: 1270; w: 276; h: 380), + (x: 620; y: 1278; w: 125; h: 270), + (x: 680; y: 1574; w: 96; h: 390), + (x: 826; y: 1638; w: 110; h: 350), + (x: 800; y: 1210; w: 150; h: 380), + (x: 1000; y: 1210; w: 170; h: 375), + (x: 1012; y: 1614; w: 188; h: 298), + (x: 1240; y: 1692; w: 136; h: 172), + (x: 1270; y: 1218; w: 120; h: 392), + (x: 1514; y: 1218; w: 364; h: 362), + (x: 1450; y: 1676; w: 315; h: 232), + (x: 1460; y: 2048; w: 25; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2448; y: 2048; w: 25; h: 1), // X + 2048, Y + 1024 + (x: 2332; y: 1916; w: 254; h: 58), + (x: 2540; y: 1658; w: 100; h: 200), + (x: 2302; y: 1270; w: 276; h: 380), + (x: 2668; y: 1278; w: 125; h: 270), + (x: 2728; y: 1574; w: 96; h: 390), + (x: 2874; y: 1638; w: 110; h: 350), + (x: 2848; y: 1210; w: 150; h: 380), + (x: 3048; y: 1210; w: 170; h: 375), + (x: 3060; y: 1614; w: 188; h: 298), + (x: 3288; y: 1692; w: 136; h: 172), + (x: 3318; y: 1218; w: 120; h: 392), + (x: 3562; y: 1218; w: 364; h: 362), + (x: 3498; y: 1676; w: 315; h: 232), + (x: 3508; y: 2048; w: 25; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template19FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template20Points: array[0..43] of TSDL_Rect = + ( + (x: 354; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 232; y: 1950; w: 226; h: 60), + (x: 120; y: 1870; w: 298; h: 62), + (x: 280; y: 1728; w: 210; h: 102), + (x: 208; y: 1446; w: 192; h: 248), + (x: 292; y: 1184; w: 206; h: 240), + (x: 526; y: 1196; w: 92; h: 334), + (x: 462; y: 1552; w: 226; h: 126), + (x: 556; y: 1702; w: 268; h: 156), + (x: 722; y: 1188; w: 138; h: 500), + (x: 890; y: 1180; w: 94; h: 352), + (x: 898; y: 1586; w: 170; h: 264), + (x: 1092; y: 1408; w: 84; h: 446), + (x: 1206; y: 1224; w: 158; h: 278), + (x: 1300; y: 1514; w: 104; h: 336), + (x: 1416; y: 1570; w: 90; h: 398), + (x: 1546; y: 1216; w: 134; h: 532), + (x: 1702; y: 1270; w: 156; h: 258), + (x: 1700; y: 1572; w: 132; h: 340), + (x: 1534; y: 1922; w: 252; h: 82), + (x: 1604; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2402; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2280; y: 1950; w: 226; h: 60), + (x: 2168; y: 1870; w: 298; h: 62), + (x: 2328; y: 1728; w: 210; h: 102), + (x: 2256; y: 1446; w: 192; h: 248), + (x: 2340; y: 1184; w: 206; h: 240), + (x: 2574; y: 1196; w: 92; h: 334), + (x: 2510; y: 1552; w: 226; h: 126), + (x: 2604; y: 1702; w: 268; h: 156), + (x: 2770; y: 1188; w: 138; h: 500), + (x: 2938; y: 1180; w: 94; h: 352), + (x: 2946; y: 1586; w: 170; h: 264), + (x: 3140; y: 1408; w: 84; h: 446), + (x: 3254; y: 1224; w: 158; h: 278), + (x: 3348; y: 1514; w: 104; h: 336), + (x: 3464; y: 1570; w: 90; h: 398), + (x: 3594; y: 1216; w: 134; h: 532), + (x: 3750; y: 1270; w: 156; h: 258), + (x: 3748; y: 1572; w: 132; h: 340), + (x: 3582; y: 1922; w: 252; h: 82), + (x: 3652; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template20FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template21Points: array[0..33] of TSDL_Rect = + ( + (x: 348; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 236; y: 1876; w: 208; h: 72), + (x: 498; y: 1734; w: 308; h: 60), + (x: 728; y: 1876; w: 434; h: 40), + (x: 1174; y: 1736; w: 332; h: 40), + (x: 1402; y: 1862; w: 226; h: 36), + (x: 1530; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1660; y: 1522; w: 111; h: 111), + (x: 1270; y: 1500; w: 34; h: 102), + (x: 682; y: 1438; w: 284; h: 132), + (x: 230; y: 1352; w: 126; h: 168), + (x: 410; y: 1198; w: 114; h: 100), + (x: 790; y: 1196; w: 352; h: 120), + (x: 1274; y: 1152; w: 60; h: 240), + (x: 1434; y: 1246; w: 254; h: 116), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2396; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2284; y: 1876; w: 208; h: 72), + (x: 2546; y: 1734; w: 308; h: 60), + (x: 2776; y: 1876; w: 434; h: 40), + (x: 3222; y: 1736; w: 332; h: 40), + (x: 3450; y: 1862; w: 226; h: 36), + (x: 3578; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3708; y: 1522; w: 111; h: 111), + (x: 3318; y: 1500; w: 34; h: 102), + (x: 2730; y: 1438; w: 284; h: 132), + (x: 2278; y: 1352; w: 126; h: 168), + (x: 2458; y: 1198; w: 114; h: 100), + (x: 2838; y: 1196; w: 352; h: 120), + (x: 3322; y: 1152; w: 60; h: 240), + (x: 3482; y: 1246; w: 254; h: 116), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template21FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template22Points: array[0..45] of TSDL_Rect = + ( + (x: 418; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 248; y: 1924; w: 186; h: 62), + (x: 272; y: 1716; w: 254; h: 138), + (x: 610; y: 1792; w: 90; h: 166), + (x: 820; y: 1640; w: 224; h: 258), + (x: 1242; y: 1782; w: 96; h: 146), + (x: 1550; y: 1722; w: 224; h: 134), + (x: 1530; y: 1926; w: 210; h: 54), + (x: 1532; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 202; y: 1442; w: 110; h: 92), + (x: 252; y: 1336; w: 160; h: 32), + (x: 150; y: 1192; w: 134; h: 78), + (x: 702; y: 1184; w: 132; h: 84), + (x: 702; y: 1332; w: 230; h: 36), + (x: 720; y: 1432; w: 166; h: 96), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1702; y: 1458; w: 202; h: 42), + (x: 1252; y: 1412; w: 134; h: 98), + (x: 1214; y: 1176; w: 116; h: 154), + (x: 1428; y: 1276; w: 150; h: 70), + (x: 1750; y: 1176; w: 86; h: 220), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2466; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2296; y: 1924; w: 186; h: 62), + (x: 2320; y: 1716; w: 254; h: 138), + (x: 2658; y: 1792; w: 90; h: 166), + (x: 2868; y: 1640; w: 224; h: 258), + (x: 3290; y: 1782; w: 96; h: 146), + (x: 3598; y: 1722; w: 224; h: 134), + (x: 3578; y: 1926; w: 210; h: 54), + (x: 3580; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2250; y: 1442; w: 110; h: 92), + (x: 2300; y: 1336; w: 160; h: 32), + (x: 2198; y: 1192; w: 134; h: 78), + (x: 2750; y: 1184; w: 132; h: 84), + (x: 2750; y: 1332; w: 230; h: 36), + (x: 2768; y: 1432; w: 166; h: 96), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3750; y: 1458; w: 202; h: 42), + (x: 3300; y: 1412; w: 134; h: 98), + (x: 3262; y: 1176; w: 116; h: 154), + (x: 3476; y: 1276; w: 150; h: 70), + (x: 3798; y: 1176; w: 86; h: 220), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template22FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template23Points: array[0..31] of TSDL_Rect = + ( + (x: 274; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 190; y: 1942; w: 168; h: 26), + (x: 382; y: 1600; w: 122; h: 314), + (x: 568; y: 1768; w: 56; h: 180), + (x: 678; y: 1880; w: 64; h: 56), + (x: 740; y: 1674; w: 106; h: 220), + (x: 644; y: 1520; w: 162; h: 140), + (x: 496; y: 1234; w: 886; h: 174), + (x: 934; y: 1472; w: 296; h: 108), + (x: 950; y: 1776; w: 152; h: 146), + (x: 1172; y: 1798; w: 60; h: 152), + (x: 1284; y: 1746; w: 150; h: 138), + (x: 1494; y: 1388; w: 56; h: 582), + (x: 1620; y: 1798; w: 94; h: 232), + (x: 1612; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2322; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2238; y: 1942; w: 168; h: 26), + (x: 2430; y: 1600; w: 122; h: 314), + (x: 2616; y: 1768; w: 56; h: 180), + (x: 2726; y: 1880; w: 64; h: 56), + (x: 2788; y: 1674; w: 106; h: 220), + (x: 2692; y: 1520; w: 162; h: 140), + (x: 2544; y: 1234; w: 886; h: 174), + (x: 2982; y: 1472; w: 296; h: 108), + (x: 2998; y: 1776; w: 152; h: 146), + (x: 3220; y: 1798; w: 60; h: 152), + (x: 3332; y: 1746; w: 150; h: 138), + (x: 3542; y: 1388; w: 56; h: 582), + (x: 3668; y: 1798; w: 94; h: 232), + (x: 3660; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template23FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template24Points: array[0..27] of TSDL_Rect = + ( + (x: 368; y: 2046; w: 2; h: 2), // Y + 1024 + (x: 266; y: 1864; w: 302; h: 110), + (x: 294; y: 1536; w: 104; h: 290), + (x: 570; y: 1604; w: 364; h: 122), + (x: 568; y: 1464; w: 368; h: 100), + (x: 232; y: 1284; w: 482; h: 130), + (x: 778; y: 1266; w: 62; h: 64), + (x: 990; y: 1178; w: 58; h: 246), + (x: 1200; y: 1300; w: 590; h: 98), + (x: 1088; y: 1466; w: 214; h: 188), + (x: 1050; y: 1710; w: 406; h: 92), + (x: 1584; y: 1526; w: 190; h: 412), + (x: 1646; y: 2044; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2416; y: 2046; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2314; y: 1864; w: 302; h: 110), + (x: 2342; y: 1536; w: 104; h: 290), + (x: 2618; y: 1604; w: 364; h: 122), + (x: 2616; y: 1464; w: 368; h: 100), + (x: 2280; y: 1284; w: 482; h: 130), + (x: 2826; y: 1266; w: 62; h: 64), + (x: 3038; y: 1178; w: 58; h: 246), + (x: 3248; y: 1300; w: 590; h: 98), + (x: 3136; y: 1466; w: 214; h: 188), + (x: 3098; y: 1710; w: 406; h: 92), + (x: 3632; y: 1526; w: 190; h: 412), + (x: 3694; y: 2044; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template24FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template25Points: array[0..11] of TSDL_Rect = + ( + (x: 162; y: 2048; w: 400; h: 1), // Y + 1024 + (x: 226; y: 1258; w: 142; h: 360), + (x: 936; y: 1764; w: 400; h: 200), + (x: 1576; y: 1200; w: 186; h: 550), + (x: 1430; y: 2048; w: 454; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 162; y: 2048; w: 400; h: 1), // X + 2048, Y + 1024 + (x: 226; y: 1258; w: 142; h: 360), + (x: 936; y: 1764; w: 400; h: 200), + (x: 1576; y: 1200; w: 186; h: 550), + (x: 1430; y: 2048; w: 454; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template25FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) ); -const EdgeTemplates: array[0..17] of TEdgeTemplate = +const Template26Points: array[0..39] of TSDL_Rect = + ( + (x: 364; y: 2048; w: 20; h: 1), // Y + 1024 + (x: 290; y: 1884; w: 64; h: 62), + (x: 486; y: 1774; w: 52; h: 146), + (x: 256; y: 1614; w: 116; h: 144), + (x: 470; y: 1492; w: 138; h: 168), + (x: 242; y: 1266; w: 158; h: 162), + (x: 508; y: 1334; w: 198; h: 72), + (x: 770; y: 1252; w: 118; h: 134), + (x: 636; y: 1742; w: 142; h: 132), + (x: 968; y: 1724; w: 172; h: 58), + (x: 970; y: 1828; w: 172; h: 62), + (x: 1232; y: 1728; w: 82; h: 226), + (x: 1356; y: 1618; w: 64; h: 152), + (x: 1214; y: 1358; w: 106; h: 152), + (x: 1410; y: 1284; w: 380; h: 82), + (x: 1528; y: 1446; w: 30; h: 118), + (x: 1540; y: 1612; w: 212; h: 50), + (x: 1464; y: 1770; w: 128; h: 146), + (x: 1630; y: 2048; w: 20; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2412; y: 2048; w: 20; h: 1), // X + 2048, Y + 1024 + (x: 2338; y: 1884; w: 64; h: 62), + (x: 2534; y: 1774; w: 52; h: 146), + (x: 2304; y: 1614; w: 116; h: 144), + (x: 2518; y: 1492; w: 138; h: 168), + (x: 2290; y: 1266; w: 158; h: 162), + (x: 2556; y: 1334; w: 198; h: 72), + (x: 2818; y: 1252; w: 118; h: 134), + (x: 2684; y: 1742; w: 142; h: 132), + (x: 3016; y: 1724; w: 172; h: 58), + (x: 3018; y: 1828; w: 172; h: 62), + (x: 3280; y: 1728; w: 82; h: 226), + (x: 3404; y: 1618; w: 64; h: 152), + (x: 3262; y: 1358; w: 106; h: 152), + (x: 3458; y: 1284; w: 380; h: 82), + (x: 3576; y: 1446; w: 30; h: 118), + (x: 3588; y: 1612; w: 212; h: 50), + (x: 3512; y: 1770; w: 128; h: 146), + (x: 3678; y: 2048; w: 20; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template26FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template27Points: array[0..63] of TSDL_Rect = + ( + (x: 340; y: 2048; w: 1; h: 1), // Y + 1024 + (x: 276; y: 1926; w: 44; h: 54), + (x: 434; y: 1860; w: 58; h: 90), + (x: 266; y: 1758; w: 80; h: 80), + (x: 246; y: 1628; w: 96; h: 108), + (x: 426; y: 1670; w: 110; h: 112), + (x: 234; y: 1316; w: 118; h: 164), + (x: 428; y: 1420; w: 130; h: 110), + (x: 516; y: 1222; w: 344; h: 78), + (x: 688; y: 1450; w: 50; h: 40), + (x: 626; y: 1584; w: 32; h: 148), + (x: 698; y: 1674; w: 160; h: 34), + (x: 674; y: 1812; w: 36; h: 136), + (x: 1014; y: 1872; w: 48; h: 48), + (x: 1086; y: 1752; w: 64; h: 88), + (x: 958; y: 1684; w: 70; h: 74), + (x: 1116; y: 1620; w: 68; h: 70), + (x: 1118; y: 1508; w: 68; h: 82), + (x: 958; y: 1348; w: 44; h: 140), + (x: 1272; y: 1330; w: 52; h: 66), + (x: 1254; y: 1526; w: 58; h: 66), + (x: 1234; y: 1784; w: 76; h: 112), + (x: 1380; y: 1786; w: 124; h: 64), + (x: 1472; y: 1496; w: 54; h: 134), + (x: 1410; y: 1220; w: 246; h: 62), + (x: 1706; y: 1178; w: 38; h: 238), + (x: 1812; y: 1372; w: 28; h: 28), + (x: 1692; y: 1548; w: 144; h: 94), + (x: 1632; y: 1702; w: 248; h: 20), + (x: 1632; y: 1826; w: 238; h: 16), + (x: 1680; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2388; y: 2048; w: 1; h: 1), // X + 2048, Y + 1024 + (x: 2324; y: 1926; w: 44; h: 54), + (x: 2482; y: 1860; w: 58; h: 90), + (x: 2314; y: 1758; w: 80; h: 80), + (x: 2294; y: 1628; w: 96; h: 108), + (x: 2474; y: 1670; w: 110; h: 112), + (x: 2282; y: 1316; w: 118; h: 164), + (x: 2476; y: 1420; w: 130; h: 110), + (x: 2564; y: 1222; w: 344; h: 78), + (x: 2736; y: 1450; w: 50; h: 40), + (x: 2674; y: 1584; w: 32; h: 148), + (x: 2746; y: 1674; w: 160; h: 34), + (x: 2722; y: 1812; w: 36; h: 136), + (x: 3062; y: 1872; w: 48; h: 48), + (x: 3134; y: 1752; w: 64; h: 88), + (x: 3006; y: 1684; w: 70; h: 74), + (x: 3164; y: 1620; w: 68; h: 70), + (x: 3166; y: 1508; w: 68; h: 82), + (x: 3006; y: 1348; w: 44; h: 140), + (x: 3320; y: 1330; w: 52; h: 66), + (x: 3302; y: 1526; w: 58; h: 66), + (x: 3282; y: 1784; w: 76; h: 112), + (x: 3428; y: 1786; w: 124; h: 64), + (x: 3520; y: 1496; w: 54; h: 134), + (x: 3458; y: 1220; w: 246; h: 62), + (x: 3754; y: 1178; w: 38; h: 238), + (x: 3860; y: 1372; w: 28; h: 28), + (x: 3740; y: 1548; w: 144; h: 94), + (x: 3680; y: 1702; w: 248; h: 20), + (x: 3680; y: 1826; w: 238; h: 16), + (x: 3728; y: 2048; w: 1; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template27FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template28Points: array[0..27] of TSDL_Rect = + ( + (x: 188; y: 2048; w: 190; h: 1), // Y + 1024 + (x: 240; y: 1706; w: 140; h: 150), + (x: 314; y: 1492; w: 352; h: 94), + (x: 726; y: 1270; w: 106; h: 282), + (x: 902; y: 1414; w: 368; h: 142), + (x: 958; y: 1612; w: 116; h: 244), + (x: 876; y: 2048; w: 14; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1064; y: 2048; w: 22; h: 1), + (x: 1288; y: 1819; w: 120; h: 120), + (x: 1458; y: 1298; w: 354; h: 448), + (x: 1688; y: 1819; w: 120; h: 120), + (x: 1782; y: 2048; w: 2; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2236; y: 2048; w: 190; h: 1), // X + 2048, Y + 1024 + (x: 2288; y: 1706; w: 140; h: 150), + (x: 2362; y: 1492; w: 352; h: 94), + (x: 2774; y: 1270; w: 106; h: 282), + (x: 2950; y: 1414; w: 368; h: 142), + (x: 3006; y: 1612; w: 116; h: 244), + (x: 2924; y: 2048; w: 14; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3112; y: 2048; w: 22; h: 1), + (x: 3336; y: 1819; w: 120; h: 120), + (x: 3506; y: 1298; w: 354; h: 448), + (x: 3736; y: 1819; w: 120; h: 120), + (x: 3830; y: 2048; w: 2; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template28FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template29Points: array[0..19] of TSDL_Rect = + ( + (x: 274; y: 2048; w: 166; h: 1), // Y + 1024 + (x: 330; y: 1886; w: 96; h: 92), + (x: 492; y: 1714; w: 152; h: 250), + (x: 746; y: 1670; w: 36; h: 270), + (x: 938; y: 1650; w: 54; h: 224), + (x: 1134; y: 1670; w: 44; h: 216), + (x: 1292; y: 1654; w: 46; h: 300), + (x: 1448; y: 1688; w: 158; h: 272), + (x: 1584; y: 2048; w: 136; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2322; y: 2048; w: 166; h: 1), // X + 2048, Y + 1024 + (x: 2378; y: 1886; w: 96; h: 92), + (x: 2540; y: 1714; w: 152; h: 250), + (x: 2794; y: 1670; w: 36; h: 270), + (x: 2986; y: 1650; w: 54; h: 224), + (x: 3182; y: 1670; w: 44; h: 216), + (x: 3340; y: 1654; w: 46; h: 300), + (x: 3496; y: 1688; w: 158; h: 272), + (x: 3632; y: 2048; w: 136; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template29FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template30Points: array[0..27] of TSDL_Rect = + ( + (x: 360; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 242; y: 1654; w: 46; h: 286), + (x: 454; y: 1696; w: 194; h: 56), + (x: 254; y: 1358; w: 534; h: 200), + (x: 870; y: 1300; w: 58; h: 468), + (x: 1076; y: 1296; w: 198; h: 112), + (x: 1000; y: 2048; w: 64; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1244; y: 2048; w: 64; h: 2), + (x: 1356; y: 1518; w: 184; h: 94), + (x: 1600; y: 1438; w: 76; h: 358), + (x: 1748; y: 1608; w: 108; h: 304), + (x: 1688; y: 2048; w: 176; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2408; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2290; y: 1654; w: 46; h: 286), + (x: 2502; y: 1696; w: 194; h: 56), + (x: 2302; y: 1358; w: 534; h: 200), + (x: 2918; y: 1300; w: 58; h: 468), + (x: 3124; y: 1296; w: 198; h: 112), + (x: 3048; y: 2048; w: 64; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3292; y: 2048; w: 64; h: 2), + (x: 3404; y: 1518; w: 184; h: 94), + (x: 3648; y: 1438; w: 76; h: 358), + (x: 3796; y: 1608; w: 108; h: 304), + (x: 3736; y: 2048; w: 176; h: 1), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template30FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template31Points: array[0..31] of TSDL_Rect = + ( + (x: 446; y: 2048; w: 140; h: 2), // Y + 1024 + (x: 280; y: 1896; w: 196; h: 32), + (x: 254; y: 1704; w: 262; h: 134), + (x: 654; y: 1696; w: 220; h: 136), + (x: 608; y: 1514; w: 268; h: 110), + (x: 300; y: 1386; w: 104; h: 200), + (x: 446; y: 1248; w: 306; h: 58), + (x: 916; y: 1212; w: 84; h: 206), + (x: 1148; y: 1198; w: 104; h: 220), + (x: 1426; y: 1200; w: 120; h: 202), + (x: 1556; y: 1442; w: 192; h: 68), + (x: 1226; y: 1572; w: 246; h: 88), + (x: 1256; y: 1730; w: 194; h: 150), + (x: 1568; y: 1730; w: 198; h: 152), + (x: 1444; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2494; y: 2048; w: 140; h: 2), // X + 2048, Y + 1024 + (x: 2328; y: 1896; w: 196; h: 32), + (x: 2302; y: 1704; w: 262; h: 134), + (x: 2702; y: 1696; w: 220; h: 136), + (x: 2656; y: 1514; w: 268; h: 110), + (x: 2348; y: 1386; w: 104; h: 200), + (x: 2494; y: 1248; w: 306; h: 58), + (x: 2964; y: 1212; w: 84; h: 206), + (x: 3196; y: 1198; w: 104; h: 220), + (x: 3474; y: 1200; w: 120; h: 202), + (x: 3604; y: 1442; w: 192; h: 68), + (x: 3274; y: 1572; w: 246; h: 88), + (x: 3304; y: 1730; w: 194; h: 150), + (x: 3616; y: 1730; w: 198; h: 152), + (x: 3492; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template31FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template32Points: array[0..27] of TSDL_Rect = + ( + (x: 286; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 244; y: 1910; w: 84; h: 54), + (x: 212; y: 1710; w: 150; h: 166), + (x: 678; y: 1864; w: 186; h: 98), + (x: 744; y: 1628; w: 124; h: 58), + (x: 620; y: 1206; w: 112; h: 194), + (x: 988; y: 1284; w: 92; h: 132), + (x: 1310; y: 1198; w: 154; h: 196), + (x: 1160; y: 1598; w: 118; h: 64), + (x: 1052; y: 1846; w: 328; h: 92), + (x: 1596; y: 1654; w: 242; h: 222), + (x: 1598; y: 1940; w: 254; h: 50), + (x: 1608; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2334; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2292; y: 1910; w: 84; h: 54), + (x: 2260; y: 1710; w: 150; h: 166), + (x: 2726; y: 1864; w: 186; h: 98), + (x: 2792; y: 1628; w: 124; h: 58), + (x: 2668; y: 1206; w: 112; h: 194), + (x: 3036; y: 1284; w: 92; h: 132), + (x: 3358; y: 1198; w: 154; h: 196), + (x: 3208; y: 1598; w: 118; h: 64), + (x: 3100; y: 1846; w: 328; h: 92), + (x: 3644; y: 1654; w: 242; h: 222), + (x: 3646; y: 1940; w: 254; h: 50), + (x: 3656; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template32FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template33Points: array[0..47] of TSDL_Rect = + ( + (x: 302; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 240; y: 1914; w: 44; h: 94), + (x: 350; y: 1886; w: 44; h: 94), + (x: 460; y: 1930; w: 78; h: 70), + (x: 466; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 804; y: 2048; w: 2; h: 2), + (x: 720; y: 1806; w: 108; h: 174), + (x: 484; y: 1648; w: 314; h: 98), + (x: 310; y: 1506; w: 76; h: 230), + (x: 434; y: 1310; w: 220; h: 154), + (x: 840; y: 1298; w: 56; h: 266), + (x: 1024; y: 1268; w: 78; h: 304), + (x: 1248; y: 1270; w: 116; h: 162), + (x: 1580; y: 1350; w: 190; h: 228), + (x: 1360; y: 1628; w: 140; h: 84), + (x: 1196; y: 1764; w: 242; h: 118), + (x: 1216; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1494; y: 2048; w: 2; h: 2), + (x: 1450; y: 1952; w: 88; h: 34), + (x: 1598; y: 1862; w: 96; h: 112), + (x: 1656; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2350; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2288; y: 1914; w: 44; h: 94), + (x: 2398; y: 1886; w: 44; h: 94), + (x: 2508; y: 1930; w: 78; h: 70), + (x: 2514; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2852; y: 2048; w: 2; h: 2), + (x: 2768; y: 1806; w: 108; h: 174), + (x: 2532; y: 1648; w: 314; h: 98), + (x: 2358; y: 1506; w: 76; h: 230), + (x: 2482; y: 1310; w: 220; h: 154), + (x: 2888; y: 1298; w: 56; h: 266), + (x: 3072; y: 1268; w: 78; h: 304), + (x: 3296; y: 1270; w: 116; h: 162), + (x: 3628; y: 1350; w: 190; h: 228), + (x: 3408; y: 1628; w: 140; h: 84), + (x: 3244; y: 1764; w: 242; h: 118), + (x: 3264; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3542; y: 2048; w: 2; h: 2), + (x: 3498; y: 1952; w: 88; h: 34), + (x: 3646; y: 1862; w: 96; h: 112), + (x: 3704; y: 2048; w: 2; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template33FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template34Points: array[0..57] of TSDL_Rect = + ( + (x: 300; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 394; y: 1926; w: 58; h: 62), + (x: 380; y: 1794; w: 94; h: 90), + (x: 186; y: 1650; w: 80; h: 220), + (x: 376; y: 1624; w: 82; h: 118), + (x: 182; y: 1352; w: 134; h: 226), + (x: 368; y: 1352; w: 52; h: 52), + (x: 472; y: 1198; w: 56; h: 212), + (x: 588; y: 1346; w: 60; h: 62), + (x: 718; y: 1348; w: 108; h: 218), + (x: 612; y: 1540; w: 36; h: 168), + (x: 728; y: 1680; w: 140; h: 134), + (x: 588; y: 1874; w: 74; h: 82), + (x: 750; y: 2048; w: 102; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 1304; y: 2048; w: 72; h: 2), + (x: 1226; y: 1932; w: 266; h: 34), + (x: 1224; y: 1772; w: 252; h: 80), + (x: 1212; y: 1600; w: 256; h: 94), + (x: 1140; y: 1458; w: 174; h: 86), + (x: 1396; y: 1342; w: 156; h: 96), + (x: 1086; y: 1238; w: 206; h: 66), + (x: 1446; y: 1180; w: 152; h: 40), + (x: 1708; y: 1296; w: 60; h: 162), + (x: 1542; y: 1512; w: 146; h: 80), + (x: 1686; y: 1658; w: 178; h: 122), + (x: 1572; y: 1844; w: 34; h: 124), + (x: 1698; y: 2048; w: 52; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2348; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2442; y: 1926; w: 58; h: 62), + (x: 2428; y: 1794; w: 94; h: 90), + (x: 2234; y: 1650; w: 80; h: 220), + (x: 2424; y: 1624; w: 82; h: 118), + (x: 2230; y: 1352; w: 134; h: 226), + (x: 2416; y: 1352; w: 52; h: 52), + (x: 2520; y: 1198; w: 56; h: 212), + (x: 2636; y: 1346; w: 60; h: 62), + (x: 2766; y: 1348; w: 108; h: 218), + (x: 2660; y: 1540; w: 36; h: 168), + (x: 2776; y: 1680; w: 140; h: 134), + (x: 2636; y: 1874; w: 74; h: 82), + (x: 2798; y: 2048; w: 102; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 3352; y: 2048; w: 72; h: 2), + (x: 3274; y: 1932; w: 266; h: 34), + (x: 3272; y: 1772; w: 252; h: 80), + (x: 3260; y: 1600; w: 256; h: 94), + (x: 3188; y: 1458; w: 174; h: 86), + (x: 3444; y: 1342; w: 156; h: 96), + (x: 3134; y: 1238; w: 206; h: 66), + (x: 3494; y: 1180; w: 152; h: 40), + (x: 3756; y: 1296; w: 60; h: 162), + (x: 3590; y: 1512; w: 146; h: 80), + (x: 3734; y: 1658; w: 178; h: 122), + (x: 3620; y: 1844; w: 34; h: 124), + (x: 3746; y: 2048; w: 52; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template34FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template35Points: array[0..27] of TSDL_Rect = + ( + (x: 230; y: 2048; w: 2; h: 2), // Y + 1024 + (x: 166; y: 1880; w: 128; h: 118), + (x: 352; y: 1880; w: 98; h: 114), + (x: 348; y: 1698; w: 140; h: 138), + (x: 556; y: 1696; w: 136; h: 142), + (x: 746; y: 1694; w: 114; h: 252), + (x: 924; y: 1402; w: 120; h: 390), + (x: 1122; y: 1486; w: 114; h: 210), + (x: 1324; y: 1330; w: 130; h: 252), + (x: 1536; y: 1230; w: 278; h: 234), + (x: 1524; y: 1668; w: 272; h: 52), + (x: 1572; y: 1876; w: 180; h: 56), + (x: 1598; y: 2048; w: 42; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1), + (x: 2278; y: 2048; w: 2; h: 2), // X + 2048, Y + 1024 + (x: 2214; y: 1880; w: 128; h: 118), + (x: 2400; y: 1880; w: 98; h: 114), + (x: 2396; y: 1698; w: 140; h: 138), + (x: 2604; y: 1696; w: 136; h: 142), + (x: 2794; y: 1694; w: 114; h: 252), + (x: 2972; y: 1402; w: 120; h: 390), + (x: 3170; y: 1486; w: 114; h: 210), + (x: 3372; y: 1330; w: 130; h: 252), + (x: 3584; y: 1230; w: 278; h: 234), + (x: 3572; y: 1668; w: 272; h: 52), + (x: 3620; y: 1876; w: 180; h: 56), + (x: 3646; y: 2048; w: 42; h: 2), + (x: NTPX; y: 1024; w: 1; h: 1) + ); + Template35FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + + +////////////////////////////////////////////////////////////////////////////// +/////////////////// END MIRRORED TWO TIMES /////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +const EdgeTemplates: array[0..35] of TEdgeTemplate = ( (BasePoints: @Template0Points; BasePointsCount: Succ(High(Template0Points)); @@ -646,6 +3342,150 @@ BezierizeCount: 3; RandPassesCount: 7; canMirror: true; canFlip: false; + ), + (BasePoints: @Template18Points; + BasePointsCount: Succ(High(Template18Points)); + FillPoints: @Template18FPoints; + FillPointsCount: Succ(High(Template18FPoints)); + BezierizeCount: 3; + RandPassesCount: 8; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template19Points; + BasePointsCount: Succ(High(Template19Points)); + FillPoints: @Template19FPoints; + FillPointsCount: Succ(High(Template19FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template20Points; + BasePointsCount: Succ(High(Template20Points)); + FillPoints: @Template20FPoints; + FillPointsCount: Succ(High(Template20FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template21Points; + BasePointsCount: Succ(High(Template21Points)); + FillPoints: @Template21FPoints; + FillPointsCount: Succ(High(Template21FPoints)); + BezierizeCount: 3; + RandPassesCount: 4; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template22Points; + BasePointsCount: Succ(High(Template22Points)); + FillPoints: @Template22FPoints; + FillPointsCount: Succ(High(Template22FPoints)); + BezierizeCount: 3; + RandPassesCount: 4; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template23Points; + BasePointsCount: Succ(High(Template23Points)); + FillPoints: @Template23FPoints; + FillPointsCount: Succ(High(Template23FPoints)); + BezierizeCount: 2; + RandPassesCount: 8; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template24Points; + BasePointsCount: Succ(High(Template24Points)); + FillPoints: @Template24FPoints; + FillPointsCount: Succ(High(Template24FPoints)); + BezierizeCount: 2; + RandPassesCount: 5; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template25Points; + BasePointsCount: Succ(High(Template25Points)); + FillPoints: @Template25FPoints; + FillPointsCount: Succ(High(Template25FPoints)); + BezierizeCount: 4; + RandPassesCount: 4; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template26Points; + BasePointsCount: Succ(High(Template26Points)); + FillPoints: @Template26FPoints; + FillPointsCount: Succ(High(Template26FPoints)); + BezierizeCount: 2; + RandPassesCount: 7; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template27Points; + BasePointsCount: Succ(High(Template27Points)); + FillPoints: @Template27FPoints; + FillPointsCount: Succ(High(Template27FPoints)); + BezierizeCount: 1; + RandPassesCount: 5; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template28Points; + BasePointsCount: Succ(High(Template28Points)); + FillPoints: @Template28FPoints; + FillPointsCount: Succ(High(Template28FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template29Points; + BasePointsCount: Succ(High(Template29Points)); + FillPoints: @Template29FPoints; + FillPointsCount: Succ(High(Template29FPoints)); + BezierizeCount: 1; + RandPassesCount: 8; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template30Points; + BasePointsCount: Succ(High(Template30Points)); + FillPoints: @Template30FPoints; + FillPointsCount: Succ(High(Template30FPoints)); + BezierizeCount: 3; + RandPassesCount: 8; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template31Points; + BasePointsCount: Succ(High(Template31Points)); + FillPoints: @Template31FPoints; + FillPointsCount: Succ(High(Template31FPoints)); + BezierizeCount: 3; + RandPassesCount: 5; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template32Points; + BasePointsCount: Succ(High(Template32Points)); + FillPoints: @Template32FPoints; + FillPointsCount: Succ(High(Template32FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template33Points; + BasePointsCount: Succ(High(Template33Points)); + FillPoints: @Template33FPoints; + FillPointsCount: Succ(High(Template33FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template34Points; + BasePointsCount: Succ(High(Template34Points)); + FillPoints: @Template34FPoints; + FillPointsCount: Succ(High(Template34FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + canMirror: true; canFlip: false; + ), + (BasePoints: @Template35Points; + BasePointsCount: Succ(High(Template35Points)); + FillPoints: @Template35FPoints; + FillPointsCount: Succ(High(Template35FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + canMirror: true; canFlip: false; ) ); diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uMisc.pas --- a/hedgewars/uMisc.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uMisc.pas Sun Jan 25 18:10:23 2009 +0000 @@ -49,7 +49,7 @@ cBitsStr : string[2] = '16'; cTagsMask : byte = 7; - cWaterLine : LongInt = 1024; + cWaterLine : LongInt = LAND_HEIGHT+1; cVisibleWater : LongInt = 128; cGearScrEdgesDist: LongInt = 240; cCursorEdgesDist : LongInt = 100; diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uVisualGears.pas --- a/hedgewars/uVisualGears.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uVisualGears.pas Sun Jan 25 18:10:23 2009 +0000 @@ -89,9 +89,9 @@ Gear^.Y:= Gear^.Y + (Gear^.dY + cGravity * vobFallSpeed) * Steps; Gear^.Angle:= Gear^.Angle + Gear^.dAngle * Steps; -if hwRound(Gear^.X) < -cScreenWidth - 64 then Gear^.X:= int2hwFloat(cScreenWidth + 2048) else -if hwRound(Gear^.X) > cScreenWidth + 2048 then Gear^.X:= int2hwFloat(-cScreenWidth - 64); -if hwRound(Gear^.Y) > 1100 then Gear^.Y:= Gear^.Y - int2hwFloat(1228) +if hwRound(Gear^.X) < -cScreenWidth - 64 then Gear^.X:= int2hwFloat(cScreenWidth + LAND_WIDTH + 1) else +if hwRound(Gear^.X) > cScreenWidth + LAND_WIDTH + 1 then Gear^.X:= int2hwFloat(-cScreenWidth - 64); +if hwRound(Gear^.Y) > (LAND_HEIGHT+75) then Gear^.Y:= Gear^.Y - int2hwFloat(LAND_HEIGHT+200) end; procedure doStepCloud(Gear: PVisualGear; Steps: Longword); diff -r 769986d39202 -r 2ccba26f1aa4 hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Sun Jan 25 18:07:52 2009 +0000 +++ b/hedgewars/uWorld.pas Sun Jan 25 18:10:23 2009 +0000 @@ -64,8 +64,8 @@ SDL_WarpMouse(cScreenWidth div 2, cScreenHeight div 2); prevPoint.X:= cScreenWidth div 2; prevPoint.Y:= cScreenHeight div 2; -WorldDx:= - 1024 + cScreenWidth div 2; -WorldDy:= - 512 + cScreenHeight div 2; +WorldDx:= - (LAND_WIDTH shr 1) + cScreenWidth div 2; +WorldDy:= - (LAND_HEIGHT shr 1) + cScreenHeight div 2; AMxShift:= 210 end; @@ -177,7 +177,7 @@ i:= Shift mod w; if i > 0 then dec(i, w); repeat - DrawSprite(spr, i, WorldDy + 1024 - SpritesData[spr].Height, 0); + DrawSprite(spr, i, WorldDy + LAND_HEIGHT + 1 - SpritesData[spr].Height, 0); inc(i, w) until i > cScreenWidth end; @@ -491,8 +491,8 @@ if cHasFocus then SDL_WarpMouse(CursorPoint.X, CursorPoint.Y); prevPoint:= CursorPoint; if WorldDy < cScreenHeight - cWaterLine - cVisibleWater then WorldDy:= cScreenHeight - cWaterLine - cVisibleWater; -if WorldDy > 2048 then WorldDy:= 2048; -if WorldDx < -2048 then WorldDx:= -2048; +if WorldDy > LAND_HEIGHT then WorldDy:= LAND_HEIGHT; +if WorldDx < -LAND_WIDTH then WorldDx:= -LAND_WIDTH; if WorldDx > cScreenWidth then WorldDx:= cScreenWidth; end;