# HG changeset patch # User unc0rr # Date 1234629022 0 # Node ID c30c6944bd4942084588d7437d18dbac10bd3a4f # Parent 7c9d645d2591cfb14f004a9bc7a4fca541c05fc9 engine part of nemo's patch diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/tunsetborder.inc --- a/hedgewars/tunsetborder.inc Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/tunsetborder.inc Sat Feb 14 16:30:22 2009 +0000 @@ -23,5 +23,5 @@ ty:= hwRound(Y); if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) and - (Land[ty, tx] = $FFFFFF) then LandPixels[ty, tx]:= cExplosionBorderColor + (Land[ty, tx] = COLOR_LAND) then LandPixels[ty, tx]:= cExplosionBorderColor end; diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/uConsole.pas --- a/hedgewars/uConsole.pas Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/uConsole.pas Sat Feb 14 16:30:22 2009 +0000 @@ -29,6 +29,7 @@ procedure ParseCommand(CmdStr: shortstring; TrustedSource: boolean); procedure StopMessages(Message: Longword); function GetLastConsoleLine: shortstring; +procedure SplitBySpace(var a, b: shortstring); procedure doPut(putX, putY: LongInt; fromAI: boolean); diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/uConsts.pas Sat Feb 14 16:30:22 2009 +0000 @@ -143,8 +143,8 @@ LAND_WIDTH_MASK = $FFFFF000; LAND_HEIGHT_MASK = $FFFFF800; - COLOR_LAND = $00FFFFFF; - COLOR_INDESTRUCTIBLE = $0000F00D; + COLOR_LAND = $FFFFFFFF; // white + COLOR_INDESTRUCTIBLE = $FF0000FF; // red cifRandomize = $00000001; cifTheme = $00000002; diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/uGears.pas Sat Feb 14 16:30:22 2009 +0000 @@ -422,7 +422,6 @@ function CheckNoDamage: boolean; // returns TRUE in case of no damaged hhs var Gear: PGear; begin -SweepDirty; // convenient place to clean up pixels after damage is run CheckNoDamage:= true; Gear:= GearsList; while Gear <> nil do @@ -494,7 +493,14 @@ if delay = 0 then inc(step) end; - stChDmg: if CheckNoDamage then inc(step) else step:= stDelay; + stChDmg: begin + if CheckNoDamage then inc(step) else step:= stDelay; + if SweepDirty then + begin + SetAllToActive; + step:= stChDmg + end; + end; stTurnReact: begin if (not bBetweenTurns) and (not isInMultiShoot) then begin @@ -1367,7 +1373,10 @@ inc(Count) end; end; - + // unC0Rr, while it is true user can watch value on map screen, IMO this (and check above) should be enforced in UI + // - is there a good place to put values for the different widgets to check? Right now they are kind of disconnected. + //it'd be nice if divide teams, forts mode and hh per map could all be checked by the team widget, or maybe disable start button + TryDo(Count <= MaxHedgehogs, 'Too many hedgehogs for this map!', true); while (Count > 0) do begin i:= GetRandom(Count); diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/uLand.pas --- a/hedgewars/uLand.pas Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/uLand.pas Sat Feb 14 16:30:22 2009 +0000 @@ -30,7 +30,7 @@ LandDirty: TDirtyTag; hasBorder: boolean; // I'm putting this here for now. I'd like it to be toggleable by user (so user can set a border on a non-cave map) - will turn off air attacks hasGirders: boolean; // I think should be on template by template basis. some caverns might have open water and large spaces. Some islands don't need? It might be better to tweak the girder code based upon space above. dunno. - playHeight, playWidth, leftX, rightX, topY: Longword; // idea is that a template can specify height/width. Or, a map, a height/width by the dimensions of the image. If the map has pixels near top of image, it triggers border. Maybe not a good idea, but, for now? Could also be used to prevent placing a girder outside play area on maps with hasBorder = true + playHeight, playWidth, leftX, rightX, topY, MaxHedgehogs: Longword; // idea is that a template can specify height/width. Or, a map, a height/width by the dimensions of the image. If the map has pixels near top of image, it triggers border. Maybe not a good idea, but, for now? Could also be used to prevent placing a girder outside play area on maps with hasBorder = true // in your coding style, it appears to be "isXXXX" for a verb, and "FooBar" for everything else - should be PlayHeight ? @@ -376,6 +376,8 @@ for i:= 0 to pred(pa.Count) do begin pa.ar[i].x:= BasePoints^[i].x + LongInt(GetRandom(BasePoints^[i].w)); + if pa.ar[i].x <> NTPX then + pa.ar[i].x:= pa.ar[i].x + ((LAND_WIDTH - Template.TemplateWidth) div 2); pa.ar[i].y:= BasePoints^[i].y + LongInt(GetRandom(BasePoints^[i].h)) + LAND_HEIGHT - Template.TemplateHeight end; @@ -505,10 +507,10 @@ DrawEdge(pa, COLOR_LAND); +MaxHedgehogs:= Template.MaxHedgehogs; hasGirders:= Template.hasGirders; playHeight:= Template.TemplateHeight; playWidth:= Template.TemplateWidth; -//TryDo(playWidth<>0, 'freakin magic man! Why the HELL does having a TryDo here make the following calculations work?', true); leftX:= ((LAND_WIDTH - playWidth) div 2); rightX:= (playWidth + ((LAND_WIDTH - playWidth) div 2)) - 1; topY:= LAND_HEIGHT - playHeight; @@ -533,7 +535,8 @@ function SelectTemplate: LongInt; begin -SelectTemplate:= getrandom(Succ(High(EdgeTemplates))) +SelectTemplate:= getrandom(Succ(High(EdgeTemplates))); +WriteLnToConsole('Selected template #'+inttostr(SelectTemplate)); end; procedure LandSurface2LandPixels(Surface: PSDL_Surface); @@ -602,17 +605,64 @@ SDL_FreeSurface(tmpsurf); end; +// Hi unC0Rr. +// This is a function that Tiy assures me would not be good for gameplay. +// It allows the setting of arbitrary portions of landscape as indestructible, or regular, or even blank. +// He said I could add it here only when I swore it wouldn't impact gameplay. Which, as far as I can tell, is true. +// I'd just like to play with it with my friends if you don't mind. +// Can allow for amusing maps. +procedure LoadMask; +var tmpsurf: PSDL_Surface; + p: PLongwordArray; + x, y, cpX, cpY: Longword; +begin +tmpsurf:= LoadImage(Pathz[ptMapCurrent] + '/mask', true, false, true); +if (tmpsurf <> nil) and (tmpsurf^.w <= LAND_WIDTH) and (tmpsurf^.h <= LAND_HEIGHT) and (tmpsurf^.format^.BytesPerPixel = 4) then + begin + cpX:= (LAND_WIDTH - tmpsurf^.w) div 2; + cpY:= LAND_HEIGHT - tmpsurf^.h; + if SDL_MustLock(tmpsurf) then + SDLTry(SDL_LockSurface(tmpsurf) >= 0, true); + + p:= tmpsurf^.pixels; + for y:= 0 to Pred(tmpsurf^.h) do + begin + for x:= 0 to Pred(tmpsurf^.w) do + Land[cpY + y, cpX + x]:= p^[x]; + p:= @(p^[tmpsurf^.pitch div 4]); + end; + + if SDL_MustLock(tmpsurf) then + SDL_UnlockSurface(tmpsurf); + SDL_FreeSurface(tmpsurf); + end; +end; + procedure LoadMap; var tmpsurf: PSDL_Surface; + s: string; + a,b: shortstring; + f: textfile; + tn: Longint; + begin WriteLnToConsole('Loading land from file...'); AddProgress; tmpsurf:= LoadImage(Pathz[ptMapCurrent] + '/map', true, true, true); TryDo((tmpsurf^.w <= LAND_WIDTH) and (tmpsurf^.h <= LAND_HEIGHT), 'Map dimensions too big!', true); +// unC0Rr - should this be passed from the GUI? I'm not sure which layer does what +s:= Pathz[ptMapCurrent] + '/map.cfg'; +WriteLnToConsole('Fetching map HH limit'); +Assign(f, s); +Reset(f); +Readln(f, a); +SplitBySpace(a,b); +Val(b,MaxHedgehogs,tn); +if(MaxHedgehogs = 0) then MaxHedgehogs:= 18; + playHeight:= tmpsurf^.h; playWidth:= tmpsurf^.w; -TryDo(playWidth<>0, 'freakin magic man! Why the HELL does having a TryDo here make the following calculations work?', true); leftX:= (LAND_WIDTH - playWidth) div 2; rightX:= (playWidth + ((LAND_WIDTH - playWidth) div 2)) - 1; topY:= LAND_HEIGHT - playHeight; @@ -625,6 +675,8 @@ tmpsurf^.w, tmpsurf); SDL_FreeSurface(tmpsurf); + +LoadMask; end; procedure GenMap; diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/uLandGraphics.pas --- a/hedgewars/uLandGraphics.pas Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/uLandGraphics.pas Sat Feb 14 16:30:22 2009 +0000 @@ -26,7 +26,7 @@ Left, Right: LongInt; end; -procedure SweepDirty; +function SweepDirty: boolean; function Despeckle(X, Y: LongInt): boolean; procedure DrawExplosion(X, Y, Radius: LongInt); procedure DrawHLinesExplosions(ar: PRangeArray; Radius: LongInt; y, dY: LongInt; Count: Byte); @@ -349,8 +349,10 @@ begin for x:= 0 to Pred(w) do if PLongword(@(p^[x * 4]))^ <> 0 then - if (((cpY + y) and LAND_HEIGHT_MASK) <> 0) or - (((cpX + x) and LAND_WIDTH_MASK) <> 0) or + if ((cpY + y) < Longint(topY)) or + ((cpY + y) > LAND_HEIGHT) or + ((cpX + x) < Longint(leftX)) or + ((cpX + x) > Longint(rightX)) or (Land[cpY + y, cpX + x] <> 0) then begin if SDL_MustLock(Image) then @@ -386,7 +388,7 @@ if SDL_MustLock(Image) then SDL_UnlockSurface(Image); -y:= max(cpY, 0); +y:= max(cpY, topY); h:= min(cpY + Image^.h, LAND_HEIGHT) - y; UpdateLandTexture(y, h) end; @@ -395,7 +397,7 @@ function Despeckle(X, Y: LongInt): boolean; var nx, ny, i, j, c: LongInt; begin -if (Land[Y, X] <> 0) and (Land[Y, X] <> COLOR_INDESTRUCTIBLE) then // check neighbours +if (Land[Y, X] <> 0) and (Land[Y, X] <> COLOR_INDESTRUCTIBLE) and (LandPixels[Y, X] = cExplosionBorderColor)then // check neighbours begin c:= 0; for i:= -1 to 1 do @@ -419,10 +421,12 @@ Despeckle:= false end; -procedure SweepDirty; +function SweepDirty: boolean; var x, y, xx, yy: LongInt; - updatedRow, updatedCell: boolean; + updatedRow, updatedCell, Result: boolean; begin +Result:= false; + for y:= 0 to LAND_HEIGHT div 32 - 1 do begin updatedRow:= false; @@ -445,8 +449,13 @@ end; if updatedRow then + begin UpdateLandTexture(y * 32, 32); + Result:= true + end end; + +SweepDirty:= Result end; end. diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/uLandObjects.pas --- a/hedgewars/uLandObjects.pas Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/uLandObjects.pas Sat Feb 14 16:30:22 2009 +0000 @@ -151,30 +151,30 @@ end; begin -y:= 150; +y:= topY+150; repeat inc(y, 24); x1:= gX; x2:= gX; - while (x1 > 100) and (CountNonZeroz(x1, y) = 0) do dec(x1, 2); + while (x1 > Longint(leftX)+150) and (CountNonZeroz(x1, y) = 0) do dec(x1, 2); i:= x1 - 12; repeat dec(x1, 2); k:= CountNonZeroz(x1, y) - until (x1 < 100) or (k = 0) or (k = 16) or (x1 < i); + until (x1 < Longint(leftX)+150) or (k = 0) or (k = 16) or (x1 < i); inc(x1, 2); if k = 16 then begin - while (x2 < (LAND_WIDTH-150)) and (CountNonZeroz(x2, y) = 0) do inc(x2, 2); + while (x2 < (rightX-150)) and (CountNonZeroz(x2, y) = 0) do inc(x2, 2); i:= x2 + 12; repeat inc(x2, 2); k:= CountNonZeroz(x2, y) - 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) + until (x2 > (rightX-150)) or (k = 0) or (k = 16) or (x2 > i); + if (x2 < (rightX-150)) and (k = 16) and (x2 - x1 > 250) and not CheckIntersect(x1 - 32, y - 64, x2 - x1 + 64, 144) then break; end; x1:= 0; @@ -259,7 +259,7 @@ exit(false); x:= 0; repeat - y:= 0; + y:= topY+32; // leave room for a hedgie to teleport in repeat if CheckCanPlace(x, y, Obj) then begin @@ -469,19 +469,19 @@ end; procedure AddObjects(); +var i, int: Longword; begin InitRects; if hasGirders then begin - AddGirder(256); - AddGirder(512); - AddGirder(768); - AddGirder(1024); - AddGirder(1280); - AddGirder(1536); - AddGirder(1792); + int:= max(playWidth div 8, 256); + i:=leftX+int; + repeat + AddGirder(i); + i:=i+int; + until (i>rightX-int); end; -AddThemeObjects(ThemeObjects, 8); +AddThemeObjects(ThemeObjects, MaxHedgehogs div 2); // MaxHedgehogs should roughly correspond to available surface area. Was also thinking maybe using playHeight * playWidth div constant :) AddProgress; FreeRects end; diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/uLandTemplates.pas --- a/hedgewars/uLandTemplates.pas Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/uLandTemplates.pas Sat Feb 14 16:30:22 2009 +0000 @@ -37,14 +37,1270 @@ hasGirders: boolean; MaxHedgeHogs: Longword; end; +///////////////////////// ORIGINAL SET ////////////////////////////// +// Area expanded to 2848x1424 at Tiy's request to move out border /// +///////////////////////////////////////////////////////////////////// +const Template0Points: array[0..18] of TSDL_Rect = + ( + (x: 810; y: 1424; w: 1; h: 1), + (x: 560; y: 1160; w: 130; h: 170), + (x: 742; y: 1106; w: 316; h: 150), + (x: 638; y: 786; w: 270; h: 180), + (x: 646; y: 576; w: 242; h: 156), + (x: 952; y: 528; w: 610; h: 300), + (x: 1150; y: 868; w: 352; h: 324), + (x: 1050; y: 1424; w: 500; h: 1), + (x: 1650; y: 1500; w: 1; h: 1), + (x: 1890; y: 1424; w: 1; h: 1), + (x: 1852; y: 1304; w: 74; h: 12), + (x: 1648; y: 975; w: 68; h: 425), + (x: 1826; y: 992; w: 140; h: 142), + (x: 1710; y: 592; w: 150; h: 350), + (x: 1988; y: 594; w: 148; h: 242), + (x: 2018; y: 872; w: 276; h: 314), + (x: 2110; y: 1250; w: 130; h: 86), + (x: 2134; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template0FPoints: array[0..0] of TPoint = + ( + (x: 1023; 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..18] of TSDL_Rect = +const Template1Points: array[0..15] of TSDL_Rect = + ( + (x: 800; y: 1424; w: 25; h: 1), + (x: 684; y: 1292; w: 254; h: 58), + (x: 892; y: 1034; w: 100; h: 200), + (x: 654; y: 646; w: 276; h: 380), + (x: 1020; y: 654; w: 125; h: 270), + (x: 1080; y: 950; w: 96; h: 390), + (x: 1226; y: 1014; w: 110; h: 350), + (x: 1200; y: 586; w: 150; h: 380), + (x: 1400; y: 586; w: 170; h: 375), + (x: 1412; y: 990; w: 188; h: 298), + (x: 1640; y: 1068; w: 136; h: 172), + (x: 1670; y: 594; w: 120; h: 392), + (x: 1914; y: 594; w: 364; h: 362), + (x: 1850; y: 1052; w: 315; h: 232), + (x: 1860; y: 1424; 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: 754; y: 1424; w: 1; h: 1), + (x: 632; y: 1326; w: 226; h: 60), + (x: 520; y: 1246; w: 298; h: 62), + (x: 680; y: 1104; w: 210; h: 102), + (x: 608; y: 822; w: 192; h: 248), + (x: 692; y: 560; w: 206; h: 240), + (x: 926; y: 572; w: 92; h: 334), + (x: 862; y: 928; w: 226; h: 126), + (x: 956; y: 1078; w: 268; h: 156), + (x: 1122; y: 564; w: 138; h: 500), + (x: 1290; y: 556; w: 94; h: 352), + (x: 1298; y: 962; w: 170; h: 264), + (x: 1492; y: 784; w: 84; h: 446), + (x: 1606; y: 600; w: 158; h: 278), + (x: 1700; y: 890; w: 104; h: 336), + (x: 1816; y: 946; w: 90; h: 398), + (x: 1946; y: 592; w: 134; h: 532), + (x: 2102; y: 646; w: 156; h: 258), + (x: 2100; y: 948; w: 132; h: 340), + (x: 1934; y: 1298; w: 252; h: 82), + (x: 2004; y: 1424; 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: 748; y: 1424; w: 1; h: 1), + (x: 636; y: 1252; w: 208; h: 72), + (x: 898; y: 1110; w: 308; h: 60), + (x: 1128; y: 1252; w: 434; h: 40), + (x: 1574; y: 1112; w: 332; h: 40), + (x: 1802; y: 1238; w: 226; h: 36), + (x: 1930; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2060; y: 898; w: 111; h: 111), + (x: 1670; y: 876; w: 34; h: 102), + (x: 1082; y: 814; w: 284; h: 132), + (x: 630; y: 728; w: 126; h: 168), + (x: 810; y: 574; w: 114; h: 100), + (x: 1190; y: 572; w: 352; h: 120), + (x: 1674; y: 528; w: 60; h: 240), + (x: 1834; y: 622; 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: 818; y: 1424; w: 1; h: 1), + (x: 648; y: 1300; w: 186; h: 62), + (x: 672; y: 1092; w: 254; h: 138), + (x: 1010; y: 1168; w: 90; h: 166), + (x: 1220; y: 1016; w: 224; h: 258), + (x: 1642; y: 1158; w: 96; h: 146), + (x: 1950; y: 1098; w: 224; h: 134), + (x: 1930; y: 1302; w: 210; h: 54), + (x: 1932; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 602; y: 818; w: 110; h: 92), + (x: 652; y: 712; w: 160; h: 32), + (x: 550; y: 568; w: 134; h: 78), + (x: 1102; y: 560; w: 132; h: 84), + (x: 1102; y: 708; w: 230; h: 36), + (x: 1120; y: 808; w: 166; h: 96), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2102; y: 834; w: 202; h: 42), + (x: 1652; y: 788; w: 134; h: 98), + (x: 1614; y: 552; w: 116; h: 154), + (x: 1828; y: 652; w: 150; h: 70), + (x: 2150; y: 552; 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: 674; y: 1424; w: 1; h: 1), + (x: 590; y: 1318; w: 168; h: 26), + (x: 782; y: 976; w: 122; h: 314), + (x: 968; y: 1144; w: 56; h: 180), + (x: 1078; y: 1256; w: 64; h: 56), + (x: 1140; y: 1050; w: 106; h: 220), + (x: 1044; y: 896; w: 162; h: 140), + (x: 896; y: 610; w: 886; h: 174), + (x: 1334; y: 848; w: 296; h: 108), + (x: 1350; y: 1152; w: 152; h: 146), + (x: 1572; y: 1174; w: 60; h: 152), + (x: 1684; y: 1122; w: 150; h: 138), + (x: 1894; y: 764; w: 56; h: 582), + (x: 2020; y: 1174; w: 94; h: 232), + (x: 2012; y: 1424; 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: 768; y: 1422; w: 2; h: 2), + (x: 666; y: 1240; w: 302; h: 110), + (x: 694; y: 912; w: 104; h: 290), + (x: 970; y: 980; w: 364; h: 122), + (x: 968; y: 840; w: 368; h: 100), + (x: 632; y: 660; w: 482; h: 130), + (x: 1178; y: 642; w: 62; h: 64), + (x: 1390; y: 554; w: 58; h: 246), + (x: 1600; y: 676; w: 590; h: 98), + (x: 1488; y: 842; w: 214; h: 188), + (x: 1450; y: 1086; w: 406; h: 92), + (x: 1984; y: 902; w: 190; h: 412), + (x: 2046; y: 1420; 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: 562; y: 1424; w: 400; h: 1), + (x: 626; y: 634; w: 142; h: 360), + (x: 1336; y: 1140; w: 400; h: 200), + (x: 1976; y: 576; w: 186; h: 550), + (x: 1830; y: 1424; 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: 764; y: 1424; w: 20; h: 1), + (x: 690; y: 1260; w: 64; h: 62), + (x: 886; y: 1150; w: 52; h: 146), + (x: 656; y: 990; w: 116; h: 144), + (x: 870; y: 868; w: 138; h: 168), + (x: 642; y: 642; w: 158; h: 162), + (x: 908; y: 710; w: 198; h: 72), + (x: 1170; y: 628; w: 118; h: 134), + (x: 1036; y: 1118; w: 142; h: 132), + (x: 1368; y: 1100; w: 172; h: 58), + (x: 1370; y: 1204; w: 172; h: 62), + (x: 1632; y: 1104; w: 82; h: 226), + (x: 1756; y: 994; w: 64; h: 152), + (x: 1614; y: 734; w: 106; h: 152), + (x: 1810; y: 660; w: 380; h: 82), + (x: 1928; y: 822; w: 30; h: 118), + (x: 1940; y: 988; w: 212; h: 50), + (x: 1864; y: 1146; w: 128; h: 146), + (x: 2030; y: 1424; 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: 740; y: 1424; w: 1; h: 1), + (x: 676; y: 1302; w: 44; h: 54), + (x: 834; y: 1236; w: 58; h: 90), + (x: 666; y: 1134; w: 80; h: 80), + (x: 646; y: 1004; w: 96; h: 108), + (x: 826; y: 1046; w: 110; h: 112), + (x: 634; y: 692; w: 118; h: 164), + (x: 828; y: 796; w: 130; h: 110), + (x: 916; y: 598; w: 344; h: 78), + (x: 1088; y: 826; w: 50; h: 40), + (x: 1026; y: 960; w: 32; h: 148), + (x: 1098; y: 1050; w: 160; h: 34), + (x: 1074; y: 1188; w: 36; h: 136), + (x: 1414; y: 1248; w: 48; h: 48), + (x: 1486; y: 1128; w: 64; h: 88), + (x: 1358; y: 1060; w: 70; h: 74), + (x: 1516; y: 996; w: 68; h: 70), + (x: 1518; y: 884; w: 68; h: 82), + (x: 1358; y: 724; w: 44; h: 140), + (x: 1672; y: 706; w: 52; h: 66), + (x: 1654; y: 902; w: 58; h: 66), + (x: 1634; y: 1160; w: 76; h: 112), + (x: 1780; y: 1162; w: 124; h: 64), + (x: 1872; y: 872; w: 54; h: 134), + (x: 1810; y: 596; w: 246; h: 62), + (x: 2106; y: 554; w: 38; h: 238), + (x: 2212; y: 748; w: 28; h: 28), + (x: 2092; y: 924; w: 144; h: 94), + (x: 2032; y: 1078; w: 248; h: 20), + (x: 2032; y: 1202; w: 238; h: 16), + (x: 2080; y: 1424; 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: 588; y: 1424; w: 190; h: 1), + (x: 640; y: 1082; w: 140; h: 150), + (x: 714; y: 868; w: 352; h: 94), + (x: 1126; y: 646; w: 106; h: 282), + (x: 1302; y: 790; w: 368; h: 142), + (x: 1358; y: 988; w: 116; h: 244), + (x: 1276; y: 1424; w: 14; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1464; y: 1424; w: 22; h: 1), + (x: 1688; y: 1195; w: 120; h: 120), + (x: 1858; y: 674; w: 354; h: 448), + (x: 2088; y: 1195; w: 120; h: 120), + (x: 2182; y: 1424; 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: 674; y: 1424; w: 166; h: 1), + (x: 730; y: 1262; w: 96; h: 92), + (x: 892; y: 1090; w: 152; h: 250), + (x: 1146; y: 1046; w: 36; h: 270), + (x: 1338; y: 1026; w: 54; h: 224), + (x: 1534; y: 1046; w: 44; h: 216), + (x: 1692; y: 1030; w: 46; h: 300), + (x: 1848; y: 1064; w: 158; h: 272), + (x: 1984; y: 1424; 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: 760; y: 1424; w: 2; h: 2), + (x: 642; y: 1030; w: 46; h: 286), + (x: 854; y: 1072; w: 194; h: 56), + (x: 654; y: 734; w: 534; h: 200), + (x: 1270; y: 676; w: 58; h: 468), + (x: 1476; y: 672; w: 198; h: 112), + (x: 1400; y: 1424; w: 64; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1644; y: 1424; w: 64; h: 2), + (x: 1756; y: 894; w: 184; h: 94), + (x: 2000; y: 814; w: 76; h: 358), + (x: 2148; y: 984; w: 108; h: 304), + (x: 2088; y: 1424; 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: 846; y: 1424; w: 140; h: 2), + (x: 680; y: 1272; w: 196; h: 32), + (x: 654; y: 1080; w: 262; h: 134), + (x: 1054; y: 1072; w: 220; h: 136), + (x: 1008; y: 890; w: 268; h: 110), + (x: 700; y: 762; w: 104; h: 200), + (x: 846; y: 624; w: 306; h: 58), + (x: 1316; y: 588; w: 84; h: 206), + (x: 1548; y: 574; w: 104; h: 220), + (x: 1826; y: 576; w: 120; h: 202), + (x: 1956; y: 818; w: 192; h: 68), + (x: 1626; y: 948; w: 246; h: 88), + (x: 1656; y: 1106; w: 194; h: 150), + (x: 1968; y: 1106; w: 198; h: 152), + (x: 1844; y: 1424; 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: 686; y: 1424; w: 2; h: 2), + (x: 644; y: 1286; w: 84; h: 54), + (x: 612; y: 1086; w: 150; h: 166), + (x: 1078; y: 1240; w: 186; h: 98), + (x: 1144; y: 1004; w: 124; h: 58), + (x: 1020; y: 582; w: 112; h: 194), + (x: 1388; y: 660; w: 92; h: 132), + (x: 1710; y: 574; w: 154; h: 196), + (x: 1560; y: 974; w: 118; h: 64), + (x: 1452; y: 1222; w: 328; h: 92), + (x: 1996; y: 1030; w: 242; h: 222), + (x: 1998; y: 1316; w: 254; h: 50), + (x: 2008; y: 1424; 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: 702; y: 1424; w: 2; h: 2), + (x: 640; y: 1290; w: 44; h: 94), + (x: 750; y: 1262; w: 44; h: 94), + (x: 860; y: 1306; w: 78; h: 70), + (x: 866; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1204; y: 1424; w: 2; h: 2), + (x: 1120; y: 1182; w: 108; h: 174), + (x: 884; y: 1024; w: 314; h: 98), + (x: 710; y: 882; w: 76; h: 230), + (x: 834; y: 686; w: 220; h: 154), + (x: 1240; y: 674; w: 56; h: 266), + (x: 1424; y: 644; w: 78; h: 304), + (x: 1648; y: 646; w: 116; h: 162), + (x: 1980; y: 726; w: 190; h: 228), + (x: 1760; y: 1004; w: 140; h: 84), + (x: 1596; y: 1140; w: 242; h: 118), + (x: 1616; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1894; y: 1424; w: 2; h: 2), + (x: 1850; y: 1328; w: 88; h: 34), + (x: 1998; y: 1238; w: 96; h: 112), + (x: 2056; y: 1424; 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: 700; y: 1424; w: 2; h: 2), + (x: 794; y: 1302; w: 58; h: 62), + (x: 780; y: 1170; w: 94; h: 90), + (x: 586; y: 1026; w: 80; h: 220), + (x: 776; y: 1000; w: 82; h: 118), + (x: 582; y: 728; w: 134; h: 226), + (x: 768; y: 728; w: 52; h: 52), + (x: 872; y: 574; w: 56; h: 212), + (x: 988; y: 722; w: 60; h: 62), + (x: 1118; y: 724; w: 108; h: 218), + (x: 1012; y: 916; w: 36; h: 168), + (x: 1128; y: 1056; w: 140; h: 134), + (x: 988; y: 1250; w: 74; h: 82), + (x: 1150; y: 1424; w: 102; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1704; y: 1424; w: 72; h: 2), + (x: 1626; y: 1308; w: 266; h: 34), + (x: 1624; y: 1148; w: 252; h: 80), + (x: 1612; y: 976; w: 256; h: 94), + (x: 1540; y: 834; w: 174; h: 86), + (x: 1796; y: 718; w: 156; h: 96), + (x: 1486; y: 614; w: 206; h: 66), + (x: 1846; y: 556; w: 152; h: 40), + (x: 2108; y: 672; w: 60; h: 162), + (x: 1942; y: 888; w: 146; h: 80), + (x: 2086; y: 1034; w: 178; h: 122), + (x: 1972; y: 1220; w: 34; h: 124), + (x: 2098; y: 1424; 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: 630; y: 1424; w: 2; h: 2), + (x: 566; y: 1256; w: 128; h: 118), + (x: 752; y: 1256; w: 98; h: 114), + (x: 748; y: 1074; w: 140; h: 138), + (x: 956; y: 1072; w: 136; h: 142), + (x: 1146; y: 1070; w: 114; h: 252), + (x: 1324; y: 778; w: 120; h: 390), + (x: 1522; y: 862; w: 114; h: 210), + (x: 1724; y: 706; w: 130; h: 252), + (x: 1936; y: 606; w: 278; h: 234), + (x: 1924; y: 1044; w: 272; h: 52), + (x: 1972; y: 1252; w: 180; h: 56), + (x: 1998; y: 1424; w: 42; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template17FPoints: array[0..0] of TPoint = + ( + (x: 1023; y: 0) + ); +//////////////////// MIXING AND MATCHING ORIGINAL ////////////////////////////////////// +const Template18Points: array[0..32] of TSDL_Rect = + ( + (x: 610; y: 1424; w: 1; h: 1), + (x: 360; y: 1160; w: 130; h: 170), + (x: 542; y: 1106; w: 316; h: 150), + (x: 438; y: 786; w: 270; h: 180), + (x: 446; y: 576; w: 242; h: 156), + (x: 752; y: 528; w: 610; h: 300), + (x: 950; y: 868; w: 352; h: 324), + (x: 850; y: 1424; w: 500; h: 1), + (x: 1450; y: 1500; w: 1; h: 1), + (x: 1690; y: 1424; w: 1; h: 1), + (x: 1652; y: 1304; w: 74; h: 12), + (x: 1448; y: 975; w: 68; h: 425), + (x: 1626; y: 992; w: 140; h: 142), + (x: 1510; y: 592; w: 150; h: 350), + (x: 1788; y: 594; w: 148; h: 242), + (x: 1818; y: 872; w: 276; h: 314), + (x: 1910; y: 1250; w: 130; h: 86), + (x: 1934; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2230; y: 1424; w: 2; h: 2), + (x: 2166; y: 1256; w: 128; h: 118), + (x: 2352; y: 1256; w: 98; h: 114), + (x: 2348; y: 1074; w: 140; h: 138), + (x: 2556; y: 1072; w: 136; h: 142), + (x: 2746; y: 1070; w: 114; h: 252), + (x: 2924; y: 778; w: 120; h: 390), + (x: 3122; y: 862; w: 114; h: 210), + (x: 3324; y: 706; w: 130; h: 252), + (x: 3536; y: 606; w: 278; h: 234), + (x: 3524; y: 1044; w: 272; h: 52), + (x: 3572; y: 1252; w: 180; h: 56), + (x: 3598; y: 1424; w: 42; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template18FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template19Points: array[0..44] of TSDL_Rect = + ( + (x: 600; y: 1424; w: 25; h: 1), + (x: 484; y: 1292; w: 254; h: 58), + (x: 692; y: 1034; w: 100; h: 200), + (x: 454; y: 646; w: 276; h: 380), + (x: 820; y: 654; w: 125; h: 270), + (x: 880; y: 950; w: 96; h: 390), + (x: 1026; y: 1014; w: 110; h: 350), + (x: 1000; y: 586; w: 150; h: 380), + (x: 1200; y: 586; w: 170; h: 375), + (x: 1212; y: 990; w: 188; h: 298), + (x: 1440; y: 1068; w: 136; h: 172), + (x: 1470; y: 594; w: 120; h: 392), + (x: 1714; y: 594; w: 364; h: 362), + (x: 1650; y: 1052; w: 315; h: 232), + (x: 1660; y: 1424; w: 25; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2000; y: 1424; w: 2; h: 2), + (x: 2094; y: 1302; w: 58; h: 62), + (x: 2080; y: 1170; w: 94; h: 90), + (x: 1886; y: 1026; w: 80; h: 220), + (x: 2076; y: 1000; w: 82; h: 118), + (x: 1882; y: 728; w: 134; h: 226), + (x: 2068; y: 728; w: 52; h: 52), + (x: 2172; y: 574; w: 56; h: 212), + (x: 2288; y: 722; w: 60; h: 62), + (x: 2418; y: 724; w: 108; h: 218), + (x: 2312; y: 916; w: 36; h: 168), + (x: 2428; y: 1056; w: 140; h: 134), + (x: 2288; y: 1250; w: 74; h: 82), + (x: 2450; y: 1424; w: 102; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3004; y: 1424; w: 72; h: 2), + (x: 2926; y: 1308; w: 266; h: 34), + (x: 2924; y: 1148; w: 252; h: 80), + (x: 2912; y: 976; w: 256; h: 94), + (x: 2840; y: 834; w: 174; h: 86), + (x: 3096; y: 718; w: 156; h: 96), + (x: 2786; y: 614; w: 206; h: 66), + (x: 3146; y: 556; w: 152; h: 40), + (x: 3408; y: 672; w: 60; h: 162), + (x: 3242; y: 888; w: 146; h: 80), + (x: 3386; y: 1034; w: 178; h: 122), + (x: 3272; y: 1220; w: 34; h: 124), + (x: 3398; y: 1424; w: 52; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template19FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template20Points: array[0..45] of TSDL_Rect = + ( + (x: 554; y: 1424; w: 1; h: 1), + (x: 432; y: 1326; w: 226; h: 60), + (x: 320; y: 1246; w: 298; h: 62), + (x: 480; y: 1104; w: 210; h: 102), + (x: 408; y: 822; w: 192; h: 248), + (x: 492; y: 560; w: 206; h: 240), + (x: 726; y: 572; w: 92; h: 334), + (x: 662; y: 928; w: 226; h: 126), + (x: 756; y: 1078; w: 268; h: 156), + (x: 922; y: 564; w: 138; h: 500), + (x: 1090; y: 556; w: 94; h: 352), + (x: 1098; y: 962; w: 170; h: 264), + (x: 1292; y: 784; w: 84; h: 446), + (x: 1406; y: 600; w: 158; h: 278), + (x: 1500; y: 890; w: 104; h: 336), + (x: 1616; y: 946; w: 90; h: 398), + (x: 1746; y: 592; w: 134; h: 532), + (x: 1902; y: 646; w: 156; h: 258), + (x: 1900; y: 948; w: 132; h: 340), + (x: 1734; y: 1298; w: 252; h: 82), + (x: 1804; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2102; y: 1424; w: 2; h: 2), + (x: 2040; y: 1290; w: 44; h: 94), + (x: 2150; y: 1262; w: 44; h: 94), + (x: 2260; y: 1306; w: 78; h: 70), + (x: 2266; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2604; y: 1424; w: 2; h: 2), + (x: 2520; y: 1182; w: 108; h: 174), + (x: 2284; y: 1024; w: 314; h: 98), + (x: 2110; y: 882; w: 76; h: 230), + (x: 2234; y: 686; w: 220; h: 154), + (x: 2640; y: 674; w: 56; h: 266), + (x: 2824; y: 644; w: 78; h: 304), + (x: 3048; y: 646; w: 116; h: 162), + (x: 3380; y: 726; w: 190; h: 228), + (x: 3160; y: 1004; w: 140; h: 84), + (x: 2996; y: 1140; w: 242; h: 118), + (x: 3016; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3294; y: 1424; w: 2; h: 2), + (x: 3250; y: 1328; w: 88; h: 34), + (x: 3398; y: 1238; w: 96; h: 112), + (x: 3456; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template20FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template21Points: array[0..30] of TSDL_Rect = + ( + (x: 548; y: 1424; w: 1; h: 1), + (x: 436; y: 1252; w: 208; h: 72), + (x: 698; y: 1110; w: 308; h: 60), + (x: 928; y: 1252; w: 434; h: 40), + (x: 1374; y: 1112; w: 332; h: 40), + (x: 1602; y: 1238; w: 226; h: 36), + (x: 1730; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1860; y: 898; w: 111; h: 111), + (x: 1470; y: 876; w: 34; h: 102), + (x: 882; y: 814; w: 284; h: 132), + (x: 430; y: 728; w: 126; h: 168), + (x: 610; y: 574; w: 114; h: 100), + (x: 990; y: 572; w: 352; h: 120), + (x: 1474; y: 528; w: 60; h: 240), + (x: 1634; y: 622; w: 254; h: 116), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1936; y: 1424; w: 2; h: 2), + (x: 1894; y: 1286; w: 84; h: 54), + (x: 1862; y: 1086; w: 150; h: 166), + (x: 2328; y: 1240; w: 186; h: 98), + (x: 2394; y: 1004; w: 124; h: 58), + (x: 2270; y: 582; w: 112; h: 194), + (x: 2638; y: 660; w: 92; h: 132), + (x: 2960; y: 574; w: 154; h: 196), + (x: 2810; y: 974; w: 118; h: 64), + (x: 2702; y: 1222; w: 328; h: 92), + (x: 3246; y: 1030; w: 242; h: 222), + (x: 3248; y: 1316; w: 254; h: 50), + (x: 3258; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template21FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template22Points: array[0..38] of TSDL_Rect = + ( + (x: 618; y: 1424; w: 1; h: 1), + (x: 448; y: 1300; w: 186; h: 62), + (x: 472; y: 1092; w: 254; h: 138), + (x: 810; y: 1168; w: 90; h: 166), + (x: 1020; y: 1016; w: 224; h: 258), + (x: 1442; y: 1158; w: 96; h: 146), + (x: 1750; y: 1098; w: 224; h: 134), + (x: 1730; y: 1302; w: 210; h: 54), + (x: 1732; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 402; y: 818; w: 110; h: 92), + (x: 452; y: 712; w: 160; h: 32), + (x: 350; y: 568; w: 134; h: 78), + (x: 902; y: 560; w: 132; h: 84), + (x: 902; y: 708; w: 230; h: 36), + (x: 920; y: 808; w: 166; h: 96), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1902; y: 834; w: 202; h: 42), + (x: 1452; y: 788; w: 134; h: 98), + (x: 1414; y: 552; w: 116; h: 154), + (x: 1628; y: 652; w: 150; h: 70), + (x: 1950; y: 552; w: 86; h: 220), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2246; y: 1424; w: 140; h: 2), + (x: 2080; y: 1272; w: 196; h: 32), + (x: 2054; y: 1080; w: 262; h: 134), + (x: 2454; y: 1072; w: 220; h: 136), + (x: 2408; y: 890; w: 268; h: 110), + (x: 2100; y: 762; w: 104; h: 200), + (x: 2246; y: 624; w: 306; h: 58), + (x: 2716; y: 588; w: 84; h: 206), + (x: 2948; y: 574; w: 104; h: 220), + (x: 3226; y: 576; w: 120; h: 202), + (x: 3356; y: 818; w: 192; h: 68), + (x: 3026; y: 948; w: 246; h: 88), + (x: 3056; y: 1106; w: 194; h: 150), + (x: 3368; y: 1106; w: 198; h: 152), + (x: 3244; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template22FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template23Points: array[0..29] of TSDL_Rect = + ( + (x: 474; y: 1424; w: 1; h: 1), + (x: 390; y: 1318; w: 168; h: 26), + (x: 582; y: 976; w: 122; h: 314), + (x: 768; y: 1144; w: 56; h: 180), + (x: 878; y: 1256; w: 64; h: 56), + (x: 940; y: 1050; w: 106; h: 220), + (x: 844; y: 896; w: 162; h: 140), + (x: 696; y: 610; w: 886; h: 174), + (x: 1134; y: 848; w: 296; h: 108), + (x: 1150; y: 1152; w: 152; h: 146), + (x: 1372; y: 1174; w: 60; h: 152), + (x: 1484; y: 1122; w: 150; h: 138), + (x: 1694; y: 764; w: 56; h: 582), + (x: 1820; y: 1174; w: 94; h: 232), + (x: 1812; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2110; y: 1424; w: 2; h: 2), + (x: 1992; y: 1030; w: 46; h: 286), + (x: 2204; y: 1072; w: 194; h: 56), + (x: 2004; y: 734; w: 534; h: 200), + (x: 2620; y: 676; w: 58; h: 468), + (x: 2826; y: 672; w: 198; h: 112), + (x: 2750; y: 1424; w: 64; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2994; y: 1424; w: 64; h: 2), + (x: 3106; y: 894; w: 184; h: 94), + (x: 3350; y: 814; w: 76; h: 358), + (x: 3498; y: 984; w: 108; h: 304), + (x: 3438; y: 1424; w: 176; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template23FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template24Points: array[0..23] of TSDL_Rect = + ( + (x: 474; y: 1424; w: 166; h: 1), + (x: 530; y: 1262; w: 96; h: 92), + (x: 692; y: 1090; w: 152; h: 250), + (x: 946; y: 1046; w: 36; h: 270), + (x: 1138; y: 1026; w: 54; h: 224), + (x: 1334; y: 1046; w: 44; h: 216), + (x: 1492; y: 1030; w: 46; h: 300), + (x: 1648; y: 1064; w: 158; h: 272), + (x: 1784; y: 1424; w: 136; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2068; y: 1422; w: 2; h: 2), + (x: 1966; y: 1240; w: 302; h: 110), + (x: 1994; y: 912; w: 104; h: 290), + (x: 2270; y: 980; w: 364; h: 122), + (x: 2268; y: 840; w: 368; h: 100), + (x: 1932; y: 660; w: 482; h: 130), + (x: 2478; y: 642; w: 62; h: 64), + (x: 2690; y: 554; w: 58; h: 246), + (x: 2900; y: 676; w: 590; h: 98), + (x: 2788; y: 842; w: 214; h: 188), + (x: 2750; y: 1086; w: 406; h: 92), + (x: 3284; y: 902; w: 190; h: 412), + (x: 3346; y: 1420; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template24FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template25Points: array[0..19] of TSDL_Rect = + ( + (x: 362; y: 1424; w: 400; h: 1), + (x: 426; y: 634; w: 142; h: 360), + (x: 1136; y: 1140; w: 400; h: 200), + (x: 1776; y: 576; w: 186; h: 550), + (x: 1630; y: 1424; w: 454; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1938; y: 1424; w: 190; h: 1), + (x: 1990; y: 1082; w: 140; h: 150), + (x: 2064; y: 868; w: 352; h: 94), + (x: 2476; y: 646; w: 106; h: 282), + (x: 2652; y: 790; w: 368; h: 142), + (x: 2708; y: 988; w: 116; h: 244), + (x: 2626; y: 1424; w: 14; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2814; y: 1424; w: 22; h: 1), + (x: 3038; y: 1195; w: 120; h: 120), + (x: 3208; y: 674; w: 354; h: 448), + (x: 3438; y: 1195; w: 120; h: 120), + (x: 3532; y: 1424; w: 2; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template25FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + + +const Template26Points: array[0..51] of TSDL_Rect = + ( + (x: 564; y: 1424; w: 20; h: 1), + (x: 490; y: 1260; w: 64; h: 62), + (x: 686; y: 1150; w: 52; h: 146), + (x: 456; y: 990; w: 116; h: 144), + (x: 670; y: 868; w: 138; h: 168), + (x: 442; y: 642; w: 158; h: 162), + (x: 708; y: 710; w: 198; h: 72), + (x: 970; y: 628; w: 118; h: 134), + (x: 836; y: 1118; w: 142; h: 132), + (x: 1168; y: 1100; w: 172; h: 58), + (x: 1170; y: 1204; w: 172; h: 62), + (x: 1432; y: 1104; w: 82; h: 226), + (x: 1556; y: 994; w: 64; h: 152), + (x: 1414; y: 734; w: 106; h: 152), + (x: 1610; y: 660; w: 380; h: 82), + (x: 1728; y: 822; w: 30; h: 118), + (x: 1740; y: 988; w: 212; h: 50), + (x: 1664; y: 1146; w: 128; h: 146), + (x: 1830; y: 1424; w: 20; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2140; y: 1424; w: 1; h: 1), + (x: 2076; y: 1302; w: 44; h: 54), + (x: 2234; y: 1236; w: 58; h: 90), + (x: 2066; y: 1134; w: 80; h: 80), + (x: 2046; y: 1004; w: 96; h: 108), + (x: 2226; y: 1046; w: 110; h: 112), + (x: 2034; y: 692; w: 118; h: 164), + (x: 2228; y: 796; w: 130; h: 110), + (x: 2316; y: 598; w: 344; h: 78), + (x: 2488; y: 826; w: 50; h: 40), + (x: 2426; y: 960; w: 32; h: 148), + (x: 2498; y: 1050; w: 160; h: 34), + (x: 2474; y: 1188; w: 36; h: 136), + (x: 2814; y: 1248; w: 48; h: 48), + (x: 2886; y: 1128; w: 64; h: 88), + (x: 2758; y: 1060; w: 70; h: 74), + (x: 2916; y: 996; w: 68; h: 70), + (x: 2918; y: 884; w: 68; h: 82), + (x: 2758; y: 724; w: 44; h: 140), + (x: 3072; y: 706; w: 52; h: 66), + (x: 3054; y: 902; w: 58; h: 66), + (x: 3034; y: 1160; w: 76; h: 112), + (x: 3180; y: 1162; w: 124; h: 64), + (x: 3272; y: 872; w: 54; h: 134), + (x: 3210; y: 596; w: 246; h: 62), + (x: 3506; y: 554; w: 38; h: 238), + (x: 3612; y: 748; w: 28; h: 28), + (x: 3492; y: 924; w: 144; h: 94), + (x: 3432; y: 1078; w: 248; h: 20), + (x: 3432; y: 1202; w: 238; h: 16), + (x: 3480; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template26FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template27Points: array[0..42] of TSDL_Rect = + ( + (x: 610; y: 1424; w: 1; h: 1), + (x: 360; y: 1160; w: 130; h: 170), + (x: 542; y: 1106; w: 316; h: 150), + (x: 438; y: 786; w: 270; h: 180), + (x: 446; y: 576; w: 242; h: 156), + (x: 752; y: 528; w: 610; h: 300), + (x: 950; y: 868; w: 352; h: 324), + (x: 850; y: 1424; w: 500; h: 1), + (x: 1450; y: 1500; w: 1; h: 1), + (x: 1690; y: 1424; w: 1; h: 1), + (x: 1652; y: 1304; w: 74; h: 12), + (x: 1448; y: 975; w: 68; h: 425), + (x: 1626; y: 992; w: 140; h: 142), + (x: 1510; y: 592; w: 150; h: 350), + (x: 1788; y: 594; w: 148; h: 242), + (x: 1818; y: 872; w: 276; h: 314), + (x: 1910; y: 1250; w: 130; h: 86), + (x: 1934; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2202; y: 1424; w: 2; h: 2), + (x: 2140; y: 1290; w: 44; h: 94), + (x: 2250; y: 1262; w: 44; h: 94), + (x: 2360; y: 1306; w: 78; h: 70), + (x: 2366; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2704; y: 1424; w: 2; h: 2), + (x: 2620; y: 1182; w: 108; h: 174), + (x: 2384; y: 1024; w: 314; h: 98), + (x: 2210; y: 882; w: 76; h: 230), + (x: 2334; y: 686; w: 220; h: 154), + (x: 2740; y: 674; w: 56; h: 266), + (x: 2924; y: 644; w: 78; h: 304), + (x: 3148; y: 646; w: 116; h: 162), + (x: 3480; y: 726; w: 190; h: 228), + (x: 3260; y: 1004; w: 140; h: 84), + (x: 3096; y: 1140; w: 242; h: 118), + (x: 3116; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3394; y: 1424; w: 2; h: 2), + (x: 3350; y: 1328; w: 88; h: 34), + (x: 3498; y: 1238; w: 96; h: 112), + (x: 3556; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template27FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template28Points: array[0..29] of TSDL_Rect = + ( + (x: 600; y: 1424; w: 25; h: 1), + (x: 484; y: 1292; w: 254; h: 58), + (x: 692; y: 1034; w: 100; h: 200), + (x: 454; y: 646; w: 276; h: 380), + (x: 820; y: 654; w: 125; h: 270), + (x: 880; y: 950; w: 96; h: 390), + (x: 1026; y: 1014; w: 110; h: 350), + (x: 1000; y: 586; w: 150; h: 380), + (x: 1200; y: 586; w: 170; h: 375), + (x: 1212; y: 990; w: 188; h: 298), + (x: 1440; y: 1068; w: 136; h: 172), + (x: 1470; y: 594; w: 120; h: 392), + (x: 1714; y: 594; w: 364; h: 362), + (x: 1650; y: 1052; w: 315; h: 232), + (x: 1660; y: 1424; w: 25; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1986; y: 1424; w: 2; h: 2), + (x: 1944; y: 1286; w: 84; h: 54), + (x: 1912; y: 1086; w: 150; h: 166), + (x: 2378; y: 1240; w: 186; h: 98), + (x: 2444; y: 1004; w: 124; h: 58), + (x: 2320; y: 582; w: 112; h: 194), + (x: 2688; y: 660; w: 92; h: 132), + (x: 3010; y: 574; w: 154; h: 196), + (x: 2860; y: 974; w: 118; h: 64), + (x: 2752; y: 1222; w: 328; h: 92), + (x: 3296; y: 1030; w: 242; h: 222), + (x: 3298; y: 1316; w: 254; h: 50), + (x: 3308; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template28FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template29Points: array[0..37] of TSDL_Rect = + ( + (x: 554; y: 1424; w: 1; h: 1), + (x: 432; y: 1326; w: 226; h: 60), + (x: 320; y: 1246; w: 298; h: 62), + (x: 480; y: 1104; w: 210; h: 102), + (x: 408; y: 822; w: 192; h: 248), + (x: 492; y: 560; w: 206; h: 240), + (x: 726; y: 572; w: 92; h: 334), + (x: 662; y: 928; w: 226; h: 126), + (x: 756; y: 1078; w: 268; h: 156), + (x: 922; y: 564; w: 138; h: 500), + (x: 1090; y: 556; w: 94; h: 352), + (x: 1098; y: 962; w: 170; h: 264), + (x: 1292; y: 784; w: 84; h: 446), + (x: 1406; y: 600; w: 158; h: 278), + (x: 1500; y: 890; w: 104; h: 336), + (x: 1616; y: 946; w: 90; h: 398), + (x: 1746; y: 592; w: 134; h: 532), + (x: 1902; y: 646; w: 156; h: 258), + (x: 1900; y: 948; w: 132; h: 340), + (x: 1734; y: 1298; w: 252; h: 82), + (x: 1804; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2096; y: 1424; w: 140; h: 2), + (x: 1930; y: 1272; w: 196; h: 32), + (x: 1904; y: 1080; w: 262; h: 134), + (x: 2304; y: 1072; w: 220; h: 136), + (x: 2258; y: 890; w: 268; h: 110), + (x: 1950; y: 762; w: 104; h: 200), + (x: 2096; y: 624; w: 306; h: 58), + (x: 2566; y: 588; w: 84; h: 206), + (x: 2798; y: 574; w: 104; h: 220), + (x: 3076; y: 576; w: 120; h: 202), + (x: 3206; y: 818; w: 192; h: 68), + (x: 2876; y: 948; w: 246; h: 88), + (x: 2906; y: 1106; w: 194; h: 150), + (x: 3218; y: 1106; w: 198; h: 152), + (x: 3094; y: 1424; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template29FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template30Points: array[0..30] of TSDL_Rect = + ( + (x: 548; y: 1424; w: 1; h: 1), + (x: 436; y: 1252; w: 208; h: 72), + (x: 698; y: 1110; w: 308; h: 60), + (x: 928; y: 1252; w: 434; h: 40), + (x: 1374; y: 1112; w: 332; h: 40), + (x: 1602; y: 1238; w: 226; h: 36), + (x: 1730; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1860; y: 898; w: 111; h: 111), + (x: 1470; y: 876; w: 34; h: 102), + (x: 882; y: 814; w: 284; h: 132), + (x: 430; y: 728; w: 126; h: 168), + (x: 610; y: 574; w: 114; h: 100), + (x: 990; y: 572; w: 352; h: 120), + (x: 1474; y: 528; w: 60; h: 240), + (x: 1634; y: 622; w: 254; h: 116), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1960; y: 1424; w: 2; h: 2), + (x: 1842; y: 1030; w: 46; h: 286), + (x: 2054; y: 1072; w: 194; h: 56), + (x: 1854; y: 734; w: 534; h: 200), + (x: 2470; y: 676; w: 58; h: 468), + (x: 2676; y: 672; w: 198; h: 112), + (x: 2600; y: 1424; w: 64; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2844; y: 1424; w: 64; h: 2), + (x: 2956; y: 894; w: 184; h: 94), + (x: 3200; y: 814; w: 76; h: 358), + (x: 3348; y: 984; w: 108; h: 304), + (x: 3288; y: 1424; w: 176; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template30FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template31Points: array[0..32] of TSDL_Rect = + ( + (x: 618; y: 1424; w: 1; h: 1), + (x: 448; y: 1300; w: 186; h: 62), + (x: 472; y: 1092; w: 254; h: 138), + (x: 810; y: 1168; w: 90; h: 166), + (x: 1020; y: 1016; w: 224; h: 258), + (x: 1442; y: 1158; w: 96; h: 146), + (x: 1750; y: 1098; w: 224; h: 134), + (x: 1730; y: 1302; w: 210; h: 54), + (x: 1732; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 402; y: 818; w: 110; h: 92), + (x: 452; y: 712; w: 160; h: 32), + (x: 350; y: 568; w: 134; h: 78), + (x: 902; y: 560; w: 132; h: 84), + (x: 902; y: 708; w: 230; h: 36), + (x: 920; y: 808; w: 166; h: 96), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1902; y: 834; w: 202; h: 42), + (x: 1452; y: 788; w: 134; h: 98), + (x: 1414; y: 552; w: 116; h: 154), + (x: 1628; y: 652; w: 150; h: 70), + (x: 1950; y: 552; w: 86; h: 220), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2274; y: 1424; w: 166; h: 1), + (x: 2330; y: 1262; w: 96; h: 92), + (x: 2492; y: 1090; w: 152; h: 250), + (x: 2746; y: 1046; w: 36; h: 270), + (x: 2938; y: 1026; w: 54; h: 224), + (x: 3134; y: 1046; w: 44; h: 216), + (x: 3292; y: 1030; w: 46; h: 300), + (x: 3448; y: 1064; w: 158; h: 272), + (x: 3584; y: 1424; w: 136; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template31FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template32Points: array[0..29] of TSDL_Rect = + ( + (x: 474; y: 1424; w: 1; h: 1), + (x: 390; y: 1318; w: 168; h: 26), + (x: 582; y: 976; w: 122; h: 314), + (x: 768; y: 1144; w: 56; h: 180), + (x: 878; y: 1256; w: 64; h: 56), + (x: 940; y: 1050; w: 106; h: 220), + (x: 844; y: 896; w: 162; h: 140), + (x: 696; y: 610; w: 886; h: 174), + (x: 1134; y: 848; w: 296; h: 108), + (x: 1150; y: 1152; w: 152; h: 146), + (x: 1372; y: 1174; w: 60; h: 152), + (x: 1484; y: 1122; w: 150; h: 138), + (x: 1694; y: 764; w: 56; h: 582), + (x: 1820; y: 1174; w: 94; h: 232), + (x: 1812; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2088; y: 1424; w: 190; h: 1), + (x: 2140; y: 1082; w: 140; h: 150), + (x: 2214; y: 868; w: 352; h: 94), + (x: 2626; y: 646; w: 106; h: 282), + (x: 2802; y: 790; w: 368; h: 142), + (x: 2858; y: 988; w: 116; h: 244), + (x: 2776; y: 1424; w: 14; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2964; y: 1424; w: 22; h: 1), + (x: 3188; y: 1195; w: 120; h: 120), + (x: 3358; y: 674; w: 354; h: 448), + (x: 3588; y: 1195; w: 120; h: 120), + (x: 3682; y: 1424; w: 2; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template32FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template33Points: array[0..45] of TSDL_Rect = + ( + (x: 568; y: 1422; w: 2; h: 2), + (x: 466; y: 1240; w: 302; h: 110), + (x: 494; y: 912; w: 104; h: 290), + (x: 770; y: 980; w: 364; h: 122), + (x: 768; y: 840; w: 368; h: 100), + (x: 432; y: 660; w: 482; h: 130), + (x: 978; y: 642; w: 62; h: 64), + (x: 1190; y: 554; w: 58; h: 246), + (x: 1400; y: 676; w: 590; h: 98), + (x: 1288; y: 842; w: 214; h: 188), + (x: 1250; y: 1086; w: 406; h: 92), + (x: 1784; y: 902; w: 190; h: 412), + (x: 1846; y: 1420; w: 2; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2140; y: 1424; w: 1; h: 1), + (x: 2076; y: 1302; w: 44; h: 54), + (x: 2234; y: 1236; w: 58; h: 90), + (x: 2066; y: 1134; w: 80; h: 80), + (x: 2046; y: 1004; w: 96; h: 108), + (x: 2226; y: 1046; w: 110; h: 112), + (x: 2034; y: 692; w: 118; h: 164), + (x: 2228; y: 796; w: 130; h: 110), + (x: 2316; y: 598; w: 344; h: 78), + (x: 2488; y: 826; w: 50; h: 40), + (x: 2426; y: 960; w: 32; h: 148), + (x: 2498; y: 1050; w: 160; h: 34), + (x: 2474; y: 1188; w: 36; h: 136), + (x: 2814; y: 1248; w: 48; h: 48), + (x: 2886; y: 1128; w: 64; h: 88), + (x: 2758; y: 1060; w: 70; h: 74), + (x: 2916; y: 996; w: 68; h: 70), + (x: 2918; y: 884; w: 68; h: 82), + (x: 2758; y: 724; w: 44; h: 140), + (x: 3072; y: 706; w: 52; h: 66), + (x: 3054; y: 902; w: 58; h: 66), + (x: 3034; y: 1160; w: 76; h: 112), + (x: 3180; y: 1162; w: 124; h: 64), + (x: 3272; y: 872; w: 54; h: 134), + (x: 3210; y: 596; w: 246; h: 62), + (x: 3506; y: 554; w: 38; h: 238), + (x: 3612; y: 748; w: 28; h: 28), + (x: 3492; y: 924; w: 144; h: 94), + (x: 3432; y: 1078; w: 248; h: 20), + (x: 3432; y: 1202; w: 238; h: 16), + (x: 3480; y: 1424; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template33FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template34Points: array[0..25] of TSDL_Rect = + ( + (x: 362; y: 1424; w: 400; h: 1), + (x: 426; y: 634; w: 142; h: 360), + (x: 1136; y: 1140; w: 400; h: 200), + (x: 1776; y: 576; w: 186; h: 550), + (x: 1630; y: 1424; w: 454; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1964; y: 1424; w: 20; h: 1), + (x: 1890; y: 1260; w: 64; h: 62), + (x: 2086; y: 1150; w: 52; h: 146), + (x: 1856; y: 990; w: 116; h: 144), + (x: 2070; y: 868; w: 138; h: 168), + (x: 1842; y: 642; w: 158; h: 162), + (x: 2108; y: 710; w: 198; h: 72), + (x: 2370; y: 628; w: 118; h: 134), + (x: 2236; y: 1118; w: 142; h: 132), + (x: 2568; y: 1100; w: 172; h: 58), + (x: 2570; y: 1204; w: 172; h: 62), + (x: 2832; y: 1104; w: 82; h: 226), + (x: 2956; y: 994; w: 64; h: 152), + (x: 2814; y: 734; w: 106; h: 152), + (x: 3010; y: 660; w: 380; h: 82), + (x: 3128; y: 822; w: 30; h: 118), + (x: 3140; y: 988; w: 212; h: 50), + (x: 3064; y: 1146; w: 128; h: 146), + (x: 3230; y: 1424; w: 20; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template34FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +const Template35Points: array[0..48] of TSDL_Rect = + ( + (x: 564; y: 1424; w: 20; h: 1), + (x: 490; y: 1260; w: 64; h: 62), + (x: 686; y: 1150; w: 52; h: 146), + (x: 456; y: 990; w: 116; h: 144), + (x: 670; y: 868; w: 138; h: 168), + (x: 442; y: 642; w: 158; h: 162), + (x: 708; y: 710; w: 198; h: 72), + (x: 970; y: 628; w: 118; h: 134), + (x: 836; y: 1118; w: 142; h: 132), + (x: 1168; y: 1100; w: 172; h: 58), + (x: 1170; y: 1204; w: 172; h: 62), + (x: 1432; y: 1104; w: 82; h: 226), + (x: 1556; y: 994; w: 64; h: 152), + (x: 1414; y: 734; w: 106; h: 152), + (x: 1610; y: 660; w: 380; h: 82), + (x: 1728; y: 822; w: 30; h: 118), + (x: 1740; y: 988; w: 212; h: 50), + (x: 1664; y: 1146; w: 128; h: 146), + (x: 1830; y: 1424; w: 20; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2100; y: 1424; w: 2; h: 2), + (x: 2194; y: 1302; w: 58; h: 62), + (x: 2180; y: 1170; w: 94; h: 90), + (x: 1986; y: 1026; w: 80; h: 220), + (x: 2176; y: 1000; w: 82; h: 118), + (x: 1982; y: 728; w: 134; h: 226), + (x: 2168; y: 728; w: 52; h: 52), + (x: 2272; y: 574; w: 56; h: 212), + (x: 2388; y: 722; w: 60; h: 62), + (x: 2518; y: 724; w: 108; h: 218), + (x: 2412; y: 916; w: 36; h: 168), + (x: 2528; y: 1056; w: 140; h: 134), + (x: 2388; y: 1250; w: 74; h: 82), + (x: 2550; y: 1424; w: 102; h: 2), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 3104; y: 1424; w: 72; h: 2), + (x: 3026; y: 1308; w: 266; h: 34), + (x: 3024; y: 1148; w: 252; h: 80), + (x: 3012; y: 976; w: 256; h: 94), + (x: 2940; y: 834; w: 174; h: 86), + (x: 3196; y: 718; w: 156; h: 96), + (x: 2886; y: 614; w: 206; h: 66), + (x: 3246; y: 556; w: 152; h: 40), + (x: 3508; y: 672; w: 60; h: 162), + (x: 3342; y: 888; w: 146; h: 80), + (x: 3486; y: 1034; w: 178; h: 122), + (x: 3372; y: 1220; w: 34; h: 124), + (x: 3498; y: 1424; w: 52; h: 2), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template35FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); + +///////////////////////// CAVERNS /////////////////////////////////// +//// DUE TO LACK OF OTHER CAVERNS, AND A FILTER OPTION IN GUI +//// BELOW IS SAME CAVERN CLONED 18 TIMES TO KEEP UP RATIO +//////////////////////////////////////////////////////////////////// +const Template36Points: array[0..18] of TSDL_Rect = ( (x: 324; y: 756; w: 196; h: 204), (x: 224; y: 596; w: 404; h: 60), @@ -66,27 +1322,1234 @@ (x: 576; y: 976; w: 16; h: 28), (x: NTPX; y: 0; w: 1; h: 1) ); - Template0FPoints: array[0..0] of TPoint = + Template36FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template37Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template37FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template38Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template38FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template39Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template39FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template40Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template40FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template41Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template41FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template42Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template42FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template43Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template43FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template44Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template44FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template45Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template45FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template46Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template46FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template47Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template47FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template48Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template48FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template49Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template49FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template50Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template50FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template51Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template51FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template52Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template52FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template53Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template53FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +const Template54Points: array[0..18] of TSDL_Rect = + ( + (x: 324; y: 756; w: 196; h: 204), + (x: 224; y: 596; w: 404; h: 60), + (x: 240; y: 268; w: 464; h: 152), + (x: 876; y: 236; w: 168; h: 348), + (x: 1204; y: 56; w: 148; h: 700), + (x: 1516; y: 52; w: 192; h: 664), + (x: 1808; y: 60; w: 328; h: 496), + (x: 2292; y: 92; w: 184; h: 492), + (x: 2664; y: 216; w: 196; h: 340), + (x: 3004; y: 108; w: 176; h: 480), + (x: 3260; y: 368; w: 120; h: 348), + (x: 3476; y: 460; w: 208; h: 448), + (x: 3268; y: 906; w: 192; h: 96), + (x: 2876; y: 664; w: 204; h: 310), + (x: 2240; y: 748; w: 344; h: 224), + (x: 1584; y: 796; w: 440; h: 250), + (x: 892; y: 852; w: 324; h: 184), + (x: 576; y: 976; w: 16; h: 28), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template54FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +////////////////////////////// ... Silly ... //////////////////////////////// +/// Ok. Tiy doesn't care for these. Perhaps they could be saved. +/// For now, just rare. +////////////////////////////////////////////////////////////////////////////// + +// maybe Tiy would be ok with this if it was smoother/more climable and a bit shorter? +const Template55Points: array[0..27] of TSDL_Rect = + ( + (x: 700; y: 2100; w: 20; h: 75), + (x: 800; y: 1200; w: 20; h: 75), + (x: 900; y: 400; w: 20; h: 50), + (x: 1100; y: 600; w: 20; h: 50), + (x: 1300; y: 900; w: 20; h: 50), + (x: 1000; y: 1000; w: 20; h: 50), + (x: 1700; y: 1850; w: 20; h: 75), + (x: 2048; y: 2100; w: 20; h: 75), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 2048; y: 2100; w: 20; h: 50), + (x: 2400; y: 1850; w: 20; h: 50), + (x: 2600; y: 1000; w: 20; h: 75), + (x: 2800; y: 900; w: 20; h: 50), + (x: 3000; y: 600; w: 20; h: 50), + (x: 3200; y: 400; w: 20; h: 50), + (x: 3300; y: 1200; w: 20; h: 50), + (x: 3400; y: 2100; w: 20; h: 75), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1450; y: 700; w: 25; h: 25), + (x: 1850; y: 650; w: 25; h: 25), + (x: 2250; y: 800; w: 25; h: 25), + (x: 2500; y: 700; w: 25; h: 25), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1550; y: 1500; w: 25; h: 25), + (x: 1830; y: 1150; w: 25; h: 25), + (x: 2260; y: 1000; w: 25; h: 25), + (x: 2250; y: 1200; w: 25; h: 25), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template55FPoints: array[0..0] of TPoint = + ( + (x: 2047; y: 0) + ); +// attempt to make a series of moderate hills/valleys - was before I really figured out the whole probabilities thing +const Template56Points: array[0..16] of TSDL_Rect = + ( + (x: 100; y: 2100; w: 1; h: 1), + (x: 100; y: 1600; w: 300; h: 500), + (x: 400; y: 600; w: 300; h: 1500), + (x: 700; y: 1600; w: 300; h: 600), + (x: 1000; y: 1800; w: 300; h: 300), + (x: 1300; y: 500; w: 300; h: 1600), + (x: 1600; y: 1700; w: 300; h: 400), + (x: 1600; y: 1600; w: 300; h: 500), + (x: 1600; y: 1400; w: 300; h: 700), + (x: 2200; y: 300; w: 300; h: 1800), + (x: 2500; y: 1500; w: 300; h: 600), + (x: 2800; y: 1900; w: 300; h: 200), + (x: 3100; y: 1600; w: 300; h: 500), + (x: 3400; y: 600; w: 300; h: 1500), + (x: 3700; y: 1800; w: 200; h: 300), + (x: 3700; y: 2100; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template56FPoints: array[0..0] of TPoint = ( (x: 2047; y: 0) ); -////////////////////////////////////////////////////////////////////////////// -/////////////////// END MIRRORED TWO TIMES /////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// +// 8 tiny islands +const Template57Points: array[0..39] of TSDL_Rect = + ( + (x: 90; y: 520; w: 1; h: 1), + (x: 90; y: 350; w: 10; h: 150), + (x: 170; y: 350; w: 10; h: 150), + (x: 170; y: 520; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 270; y: 520; w: 1; h: 1), + (x: 270; y: 350; w: 10; h: 150), + (x: 350; y: 350; w: 10; h: 150), + (x: 350; y: 520; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 450; y: 520; w: 1; h: 1), + (x: 450; y: 350; w: 10; h: 150), + (x: 530; y: 350; w: 10; h: 150), + (x: 530; y: 520; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 630; y: 520; w: 1; h: 1), + (x: 630; y: 350; w: 10; h: 150), + (x: 710; y: 350; w: 10; h: 150), + (x: 710; y: 520; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 810; y: 520; w: 1; h: 1), + (x: 810; y: 350; w: 10; h: 150), + (x: 890; y: 350; w: 10; h: 150), + (x: 890; y: 520; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 990; y: 520; w: 1; h: 1), + (x: 990; y: 350; w: 10; h: 150), + (x: 1070; y: 350; w: 10; h: 150), + (x: 1070; y: 520; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1170; y: 520; w: 1; h: 1), + (x: 1170; y: 350; w: 10; h: 150), + (x: 1250; y: 350; w: 10; h: 150), + (x: 1250; y: 520; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1), + (x: 1350; y: 520; w: 1; h: 1), + (x: 1350; y: 350; w: 10; h: 150), + (x: 1430; y: 350; w: 10; h: 150), + (x: 1430; y: 520; w: 1; h: 1), + (x: NTPX; y: 0; w: 1; h: 1) + ); + Template57FPoints: array[0..0] of TPoint = + ( + (x: 512; y: 0) + ); -const EdgeTemplates: array[0..0] of TEdgeTemplate = +//////////////////////////////////////////////////////////////////////// +const EdgeTemplates: array[0..57] of TEdgeTemplate = ( (BasePoints: @Template0Points; BasePointsCount: Succ(High(Template0Points)); FillPoints: @Template0FPoints; FillPointsCount: Succ(High(Template0FPoints)); + BezierizeCount: 3; + RandPassesCount: 8; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template1Points; + BasePointsCount: Succ(High(Template1Points)); + FillPoints: @Template1FPoints; + FillPointsCount: Succ(High(Template1FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template2Points; + BasePointsCount: Succ(High(Template2Points)); + FillPoints: @Template2FPoints; + FillPointsCount: Succ(High(Template2FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template3Points; + BasePointsCount: Succ(High(Template3Points)); + FillPoints: @Template3FPoints; + FillPointsCount: Succ(High(Template3FPoints)); + BezierizeCount: 3; + RandPassesCount: 4; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template4Points; + BasePointsCount: Succ(High(Template4Points)); + FillPoints: @Template4FPoints; + FillPointsCount: Succ(High(Template4FPoints)); + BezierizeCount: 3; + RandPassesCount: 4; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template5Points; + BasePointsCount: Succ(High(Template5Points)); + FillPoints: @Template5FPoints; + FillPointsCount: Succ(High(Template5FPoints)); + BezierizeCount: 2; + RandPassesCount: 8; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template6Points; + BasePointsCount: Succ(High(Template6Points)); + FillPoints: @Template6FPoints; + FillPointsCount: Succ(High(Template6FPoints)); + BezierizeCount: 2; + RandPassesCount: 5; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template7Points; + BasePointsCount: Succ(High(Template7Points)); + FillPoints: @Template7FPoints; + FillPointsCount: Succ(High(Template7FPoints)); + BezierizeCount: 4; + RandPassesCount: 4; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template8Points; + BasePointsCount: Succ(High(Template8Points)); + FillPoints: @Template8FPoints; + FillPointsCount: Succ(High(Template8FPoints)); + BezierizeCount: 2; + RandPassesCount: 7; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template9Points; + BasePointsCount: Succ(High(Template9Points)); + FillPoints: @Template9FPoints; + FillPointsCount: Succ(High(Template9FPoints)); + BezierizeCount: 1; + RandPassesCount: 5; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template10Points; + BasePointsCount: Succ(High(Template10Points)); + FillPoints: @Template10FPoints; + FillPointsCount: Succ(High(Template10FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template11Points; + BasePointsCount: Succ(High(Template11Points)); + FillPoints: @Template11FPoints; + FillPointsCount: Succ(High(Template11FPoints)); + BezierizeCount: 1; + RandPassesCount: 8; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template12Points; + BasePointsCount: Succ(High(Template12Points)); + FillPoints: @Template12FPoints; + FillPointsCount: Succ(High(Template12FPoints)); + BezierizeCount: 3; + RandPassesCount: 8; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template13Points; + BasePointsCount: Succ(High(Template13Points)); + FillPoints: @Template13FPoints; + FillPointsCount: Succ(High(Template13FPoints)); + BezierizeCount: 3; + RandPassesCount: 5; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template14Points; + BasePointsCount: Succ(High(Template14Points)); + FillPoints: @Template14FPoints; + FillPointsCount: Succ(High(Template14FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template15Points; + BasePointsCount: Succ(High(Template15Points)); + FillPoints: @Template15FPoints; + FillPointsCount: Succ(High(Template15FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template16Points; + BasePointsCount: Succ(High(Template16Points)); + FillPoints: @Template16FPoints; + FillPointsCount: Succ(High(Template16FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template17Points; + BasePointsCount: Succ(High(Template17Points)); + FillPoints: @Template17FPoints; + FillPointsCount: Succ(High(Template17FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + TemplateHeight: 1424; TemplateWidth: 2848; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 18; + ), + (BasePoints: @Template18Points; + BasePointsCount: Succ(High(Template18Points)); + FillPoints: @Template18FPoints; + FillPointsCount: Succ(High(Template18FPoints)); + BezierizeCount: 3; + RandPassesCount: 8; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template19Points; + BasePointsCount: Succ(High(Template19Points)); + FillPoints: @Template19FPoints; + FillPointsCount: Succ(High(Template19FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template20Points; + BasePointsCount: Succ(High(Template20Points)); + FillPoints: @Template20FPoints; + FillPointsCount: Succ(High(Template20FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template21Points; + BasePointsCount: Succ(High(Template21Points)); + FillPoints: @Template21FPoints; + FillPointsCount: Succ(High(Template21FPoints)); + BezierizeCount: 3; + RandPassesCount: 4; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template22Points; + BasePointsCount: Succ(High(Template22Points)); + FillPoints: @Template22FPoints; + FillPointsCount: Succ(High(Template22FPoints)); + BezierizeCount: 3; + RandPassesCount: 4; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template23Points; + BasePointsCount: Succ(High(Template23Points)); + FillPoints: @Template23FPoints; + FillPointsCount: Succ(High(Template23FPoints)); + BezierizeCount: 2; + RandPassesCount: 8; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template24Points; + BasePointsCount: Succ(High(Template24Points)); + FillPoints: @Template24FPoints; + FillPointsCount: Succ(High(Template24FPoints)); + BezierizeCount: 2; + RandPassesCount: 5; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template25Points; + BasePointsCount: Succ(High(Template25Points)); + FillPoints: @Template25FPoints; + FillPointsCount: Succ(High(Template25FPoints)); + BezierizeCount: 4; + RandPassesCount: 4; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template26Points; + BasePointsCount: Succ(High(Template26Points)); + FillPoints: @Template26FPoints; + FillPointsCount: Succ(High(Template26FPoints)); + BezierizeCount: 2; + RandPassesCount: 7; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template27Points; + BasePointsCount: Succ(High(Template27Points)); + FillPoints: @Template27FPoints; + FillPointsCount: Succ(High(Template27FPoints)); + BezierizeCount: 1; + RandPassesCount: 5; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template28Points; + BasePointsCount: Succ(High(Template28Points)); + FillPoints: @Template28FPoints; + FillPointsCount: Succ(High(Template28FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template29Points; + BasePointsCount: Succ(High(Template29Points)); + FillPoints: @Template29FPoints; + FillPointsCount: Succ(High(Template29FPoints)); + BezierizeCount: 1; + RandPassesCount: 8; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template30Points; + BasePointsCount: Succ(High(Template30Points)); + FillPoints: @Template30FPoints; + FillPointsCount: Succ(High(Template30FPoints)); + BezierizeCount: 3; + RandPassesCount: 8; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template31Points; + BasePointsCount: Succ(High(Template31Points)); + FillPoints: @Template31FPoints; + FillPointsCount: Succ(High(Template31FPoints)); + BezierizeCount: 3; + RandPassesCount: 5; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template32Points; + BasePointsCount: Succ(High(Template32Points)); + FillPoints: @Template32FPoints; + FillPointsCount: Succ(High(Template32FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template33Points; + BasePointsCount: Succ(High(Template33Points)); + FillPoints: @Template33FPoints; + FillPointsCount: Succ(High(Template33FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template34Points; + BasePointsCount: Succ(High(Template34Points)); + FillPoints: @Template34FPoints; + FillPointsCount: Succ(High(Template34FPoints)); + BezierizeCount: 2; + RandPassesCount: 6; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template35Points; + BasePointsCount: Succ(High(Template35Points)); + FillPoints: @Template35FPoints; + FillPointsCount: Succ(High(Template35FPoints)); + BezierizeCount: 3; + RandPassesCount: 7; + TemplateHeight: 1424; TemplateWidth: 3900; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 36; + ), + (BasePoints: @Template36Points; + BasePointsCount: Succ(High(Template36Points)); + FillPoints: @Template36FPoints; + FillPointsCount: Succ(High(Template36FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: true; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template37Points; + BasePointsCount: Succ(High(Template37Points)); + FillPoints: @Template37FPoints; + FillPointsCount: Succ(High(Template37FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: true; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template38Points; + BasePointsCount: Succ(High(Template38Points)); + FillPoints: @Template38FPoints; + FillPointsCount: Succ(High(Template38FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: true; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template39Points; + BasePointsCount: Succ(High(Template39Points)); + FillPoints: @Template39FPoints; + FillPointsCount: Succ(High(Template39FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: true; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template40Points; + BasePointsCount: Succ(High(Template40Points)); + FillPoints: @Template40FPoints; + FillPointsCount: Succ(High(Template40FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: true; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template41Points; + BasePointsCount: Succ(High(Template41Points)); + FillPoints: @Template41FPoints; + FillPointsCount: Succ(High(Template41FPoints)); BezierizeCount: 4; RandPassesCount: 12; TemplateHeight: 1024; TemplateWidth: 4096; canMirror: true; canFlip: false; isNegative: true; canInvert: false; - hasGirders: false; // this map, and some other caves, are cramped enough and have plenty of ceiling. Maybe not all caves though - MaxHedgehogs: 24; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template42Points; + BasePointsCount: Succ(High(Template42Points)); + FillPoints: @Template42FPoints; + FillPointsCount: Succ(High(Template42FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template43Points; + BasePointsCount: Succ(High(Template43Points)); + FillPoints: @Template43FPoints; + FillPointsCount: Succ(High(Template43FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template44Points; + BasePointsCount: Succ(High(Template44Points)); + FillPoints: @Template44FPoints; + FillPointsCount: Succ(High(Template44FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template45Points; + BasePointsCount: Succ(High(Template45Points)); + FillPoints: @Template45FPoints; + FillPointsCount: Succ(High(Template45FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template46Points; + BasePointsCount: Succ(High(Template46Points)); + FillPoints: @Template46FPoints; + FillPointsCount: Succ(High(Template46FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template47Points; + BasePointsCount: Succ(High(Template47Points)); + FillPoints: @Template47FPoints; + FillPointsCount: Succ(High(Template47FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template48Points; + BasePointsCount: Succ(High(Template48Points)); + FillPoints: @Template48FPoints; + FillPointsCount: Succ(High(Template48FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template49Points; + BasePointsCount: Succ(High(Template49Points)); + FillPoints: @Template49FPoints; + FillPointsCount: Succ(High(Template49FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template50Points; + BasePointsCount: Succ(High(Template50Points)); + FillPoints: @Template50FPoints; + FillPointsCount: Succ(High(Template50FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template51Points; + BasePointsCount: Succ(High(Template51Points)); + FillPoints: @Template51FPoints; + FillPointsCount: Succ(High(Template51FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template52Points; + BasePointsCount: Succ(High(Template52Points)); + FillPoints: @Template52FPoints; + FillPointsCount: Succ(High(Template52FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template53Points; + BasePointsCount: Succ(High(Template53Points)); + FillPoints: @Template53FPoints; + FillPointsCount: Succ(High(Template53FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template54Points; + BasePointsCount: Succ(High(Template54Points)); + FillPoints: @Template54FPoints; + FillPointsCount: Succ(High(Template54FPoints)); + BezierizeCount: 4; + RandPassesCount: 12; + TemplateHeight: 1024; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: true; canInvert: false; + hasGirders: false; + MaxHedgehogs: 32; + ), + (BasePoints: @Template55Points; + BasePointsCount: Succ(High(Template55Points)); + FillPoints: @Template55FPoints; + FillPointsCount: Succ(High(Template55FPoints)); + BezierizeCount: 3; + RandPassesCount: 3; + TemplateHeight: 2048; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 48; + ), + (BasePoints: @Template56Points; + BasePointsCount: Succ(High(Template56Points)); + FillPoints: @Template56FPoints; + FillPointsCount: Succ(High(Template56FPoints)); + BezierizeCount: 6; + RandPassesCount: 6; + TemplateHeight: 2048; TemplateWidth: 4096; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: true; + MaxHedgehogs: 48; + ), + (BasePoints: @Template57Points; + BasePointsCount: Succ(High(Template57Points)); + FillPoints: @Template57FPoints; + FillPointsCount: Succ(High(Template57FPoints)); + BezierizeCount: 3; + RandPassesCount: 3; + TemplateHeight: 512; TemplateWidth: 1536; + canMirror: true; canFlip: false; isNegative: false; canInvert: false; + hasGirders: false; + MaxHedgehogs: 8; ) ); diff -r 7c9d645d2591 -r c30c6944bd49 hedgewars/uVisualGears.pas --- a/hedgewars/uVisualGears.pas Sat Feb 14 16:25:58 2009 +0000 +++ b/hedgewars/uVisualGears.pas Sat Feb 14 16:30:22 2009 +0000 @@ -91,7 +91,7 @@ if hwRound(Gear^.X) < -cScreenWidth - 64 then Gear^.X:= int2hwFloat(cScreenWidth + LAND_WIDTH) else if hwRound(Gear^.X) > cScreenWidth + LAND_WIDTH then Gear^.X:= int2hwFloat(-cScreenWidth - 64); -if hwRound(Gear^.Y) > (LAND_HEIGHT + 75) then Gear^.Y:= Gear^.Y - int2hwFloat(LAND_HEIGHT-1024) // TODO - configure in theme (jellies for example could use limited range) +if hwRound(Gear^.Y) > (LAND_HEIGHT + 75) then Gear^.Y:= Gear^.Y - int2hwFloat(LAND_HEIGHT-1024+150) // TODO - configure in theme (jellies for example could use limited range) end; procedure doStepCloud(Gear: PVisualGear; Steps: Longword);