hedgewars/uLandTemplates.pas
branchwebgl
changeset 9954 bf51bc7e2808
parent 9521 8054d9d775fd
child 10015 4feced261c68
equal deleted inserted replaced
9952:32f5982604f4 9954:bf51bc7e2808
    22 interface
    22 interface
    23 uses SDLh;
    23 uses SDLh;
    24 
    24 
    25 const NTPX = Low(SmallInt);
    25 const NTPX = Low(SmallInt);
    26 
    26 
    27 type TPointArray   = array[0..64] of TSDL_Rect;
    27 type TPointArray = array[0..64] of TSDL_Rect;
    28      PPointArray   = ^TPointArray;
    28      PPointArray = ^TPointArray;
    29      TEdgeTemplate = record
    29      TEdgeTemplate = record
    30 			BasePoints				  : PPointArray;		  
    30                      BasePoints: PPointArray;
    31 			BasePointsCount				  : Longword;
    31                      BasePointsCount: Longword;
    32 			FillPoints				  : PPointArray;
    32                      FillPoints: PPointArray;
    33 			FillPointsCount				  : Longword;
    33                      FillPointsCount: Longword;
    34 			BezierizeCount				  : Longword;
    34                      BezierizeCount: Longword;
    35 			RandPassesCount				  : Longword;
    35                      RandPassesCount: Longword;
    36 			TemplateHeight, TemplateWidth		  : Longword;
    36                      TemplateHeight, TemplateWidth: Longword;
    37 			canMirror, canFlip, isNegative, canInvert : boolean;
    37                      canMirror, canFlip, isNegative, canInvert: boolean;
    38 			hasGirders				  : boolean;
    38                      hasGirders: boolean;
    39 			MaxHedgeHogs				  : Longword;
    39                      MaxHedgeHogs: Longword;
    40 		     end;					  
    40                      end;
    41 ///////////////////////// ORIGINAL SET //////////////////////////////
    41 ///////////////////////// ORIGINAL SET //////////////////////////////
    42 /// Area expanded to 2848x1424 at Tiys request to move out border ///
    42 /// Area expanded to 2848x1424 at Tiys request to move out border ///
    43 /////////////////////////////////////////////////////////////////////
    43 /////////////////////////////////////////////////////////////////////
    44 const Template0Points: array[0..18] of TSDL_Rect =
    44 const Template0Points: array[0..18] of TSDL_Rect =
    45       (
    45       (
    61        (x: 2018; y:  872; w:  276; h:  314),
    61        (x: 2018; y:  872; w:  276; h:  314),
    62        (x: 2110; y: 1250; w:  130; h:   86),
    62        (x: 2110; y: 1250; w:  130; h:   86),
    63        (x: 2134; y: 1424; w:    1; h:    1),
    63        (x: 2134; y: 1424; w:    1; h:    1),
    64        (x: NTPX; y:    0; w:    1; h:    1)
    64        (x: NTPX; y:    0; w:    1; h:    1)
    65       );
    65       );
    66       Template0FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
    66       Template0FPoints: array[0..0] of TPoint =
    67       (
    67       (
    68        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
    68        (x: 1023; y:    0)
    69       );
    69       );
    70 
    70 
    71 const Template1Points: array[0..15] of TSDL_Rect =
    71 const Template1Points: array[0..15] of TSDL_Rect =
    72       (
    72       (
    73        (x:  800; y: 1424; w:   25; h:    1),
    73        (x:  800; y: 1424; w:   25; h:    1),
    85        (x: 1914; y:  594; w:  364; h:  362),
    85        (x: 1914; y:  594; w:  364; h:  362),
    86        (x: 1850; y: 1052; w:  315; h:  232),
    86        (x: 1850; y: 1052; w:  315; h:  232),
    87        (x: 1860; y: 1424; w:   25; h:    1),
    87        (x: 1860; y: 1424; w:   25; h:    1),
    88        (x: NTPX; y:    0; w:    1; h:    1)
    88        (x: NTPX; y:    0; w:    1; h:    1)
    89       );
    89       );
    90       Template1FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
    90       Template1FPoints: array[0..0] of TPoint =
    91       (
    91       (
    92        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
    92        (x: 1023; y:    0)
    93       );
    93       );
    94 
    94 
    95 const Template2Points: array[0..21] of TSDL_Rect =
    95 const Template2Points: array[0..21] of TSDL_Rect =
    96       (
    96       (
    97        (x:  754; y: 1424; w:    1; h:    1),
    97        (x:  754; y: 1424; w:    1; h:    1),
   115        (x: 2100; y:  948; w:  132; h:  340),
   115        (x: 2100; y:  948; w:  132; h:  340),
   116        (x: 1934; y: 1298; w:  252; h:   82),
   116        (x: 1934; y: 1298; w:  252; h:   82),
   117        (x: 2004; y: 1424; w:    1; h:    1),
   117        (x: 2004; y: 1424; w:    1; h:    1),
   118        (x: NTPX; y:    0; w:    1; h:    1)
   118        (x: NTPX; y:    0; w:    1; h:    1)
   119       );
   119       );
   120       Template2FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   120       Template2FPoints: array[0..0] of TPoint =
   121       (
   121       (
   122        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   122        (x: 1023; y:    0)
   123       );
   123       );
   124 
   124 
   125 const Template3Points: array[0..16] of TSDL_Rect =
   125 const Template3Points: array[0..16] of TSDL_Rect =
   126       (
   126       (
   127        (x:  748; y: 1424; w:    1; h:    1),
   127        (x:  748; y: 1424; w:    1; h:    1),
   140        (x: 1190; y:  572; w:  352; h:  120),
   140        (x: 1190; y:  572; w:  352; h:  120),
   141        (x: 1674; y:  528; w:   60; h:  240),
   141        (x: 1674; y:  528; w:   60; h:  240),
   142        (x: 1834; y:  622; w:  254; h:  116),
   142        (x: 1834; y:  622; w:  254; h:  116),
   143        (x: NTPX; y:    0; w:    1; h:    1)
   143        (x: NTPX; y:    0; w:    1; h:    1)
   144       );
   144       );
   145       Template3FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   145       Template3FPoints: array[0..0] of TPoint =
   146       (
   146       (
   147        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   147        (x: 1023; y:    0)
   148       );
   148       );
   149 
   149 
   150 const Template4Points: array[0..22] of TSDL_Rect =
   150 const Template4Points: array[0..22] of TSDL_Rect =
   151       (
   151       (
   152        (x:  818; y: 1424; w:    1; h:    1),
   152        (x:  818; y: 1424; w:    1; h:    1),
   171        (x: 1614; y:  552; w:  116; h:  154),
   171        (x: 1614; y:  552; w:  116; h:  154),
   172        (x: 1828; y:  652; w:  150; h:   70),
   172        (x: 1828; y:  652; w:  150; h:   70),
   173        (x: 2150; y:  552; w:   86; h:  220),
   173        (x: 2150; y:  552; w:   86; h:  220),
   174        (x: NTPX; y:    0; w:    1; h:    1)
   174        (x: NTPX; y:    0; w:    1; h:    1)
   175       );
   175       );
   176       Template4FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   176       Template4FPoints: array[0..0] of TPoint =
   177       (
   177       (
   178        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   178        (x: 1023; y:    0)
   179       );
   179       );
   180 
   180 
   181 const Template5Points: array[0..15] of TSDL_Rect =
   181 const Template5Points: array[0..15] of TSDL_Rect =
   182       (
   182       (
   183        (x:  674; y: 1424; w:    1; h:    1),
   183        (x:  674; y: 1424; w:    1; h:    1),
   195        (x: 1894; y:  764; w:   56; h:  582),
   195        (x: 1894; y:  764; w:   56; h:  582),
   196        (x: 2020; y: 1174; w:   94; h:  232),
   196        (x: 2020; y: 1174; w:   94; h:  232),
   197        (x: 2012; y: 1424; w:    1; h:    1),
   197        (x: 2012; y: 1424; w:    1; h:    1),
   198        (x: NTPX; y:    0; w:    1; h:    1)
   198        (x: NTPX; y:    0; w:    1; h:    1)
   199        );
   199        );
   200       Template5FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   200       Template5FPoints: array[0..0] of TPoint =
   201       (
   201       (
   202        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   202        (x: 1023; y:    0)
   203       );
   203       );
   204 
   204 
   205 const Template6Points: array[0..13] of TSDL_Rect =
   205 const Template6Points: array[0..13] of TSDL_Rect =
   206       (
   206       (
   207        (x:  768; y: 1422; w:    2; h:    2),
   207        (x:  768; y: 1422; w:    2; h:    2),
   217        (x: 1450; y: 1086; w:  406; h:   92),
   217        (x: 1450; y: 1086; w:  406; h:   92),
   218        (x: 1984; y:  902; w:  190; h:  412),
   218        (x: 1984; y:  902; w:  190; h:  412),
   219        (x: 2046; y: 1420; w:    2; h:    2),
   219        (x: 2046; y: 1420; w:    2; h:    2),
   220        (x: NTPX; y:    0; w:    1; h:    1)
   220        (x: NTPX; y:    0; w:    1; h:    1)
   221        );
   221        );
   222       Template6FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   222       Template6FPoints: array[0..0] of TPoint =
   223       (
   223       (
   224        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   224        (x: 1023; y:    0)
   225       );
   225       );
   226 
   226 
   227 const Template7Points: array[0..5] of TSDL_Rect =
   227 const Template7Points: array[0..5] of TSDL_Rect =
   228       (
   228       (
   229        (x:  562; y: 1424; w:  400; h:    1),
   229        (x:  562; y: 1424; w:  400; h:    1),
   231        (x: 1336; y: 1140; w:  400; h:  200),
   231        (x: 1336; y: 1140; w:  400; h:  200),
   232        (x: 1976; y:  576; w:  186; h:  550),
   232        (x: 1976; y:  576; w:  186; h:  550),
   233        (x: 1830; y: 1424; w:  454; h:    1),
   233        (x: 1830; y: 1424; w:  454; h:    1),
   234        (x: NTPX; y:    0; w:    1; h:    1)
   234        (x: NTPX; y:    0; w:    1; h:    1)
   235       );
   235       );
   236       Template7FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   236       Template7FPoints: array[0..0] of TPoint =
   237       (
   237       (
   238        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   238        (x: 1023; y:    0)
   239       );
   239       );
   240 
   240 
   241 
   241 
   242 const Template8Points: array[0..19] of TSDL_Rect =
   242 const Template8Points: array[0..19] of TSDL_Rect =
   243       (
   243       (
   260        (x: 1940; y:  988; w:  212; h:   50),
   260        (x: 1940; y:  988; w:  212; h:   50),
   261        (x: 1864; y: 1146; w:  128; h:  146),
   261        (x: 1864; y: 1146; w:  128; h:  146),
   262        (x: 2030; y: 1424; w:   20; h:    1),
   262        (x: 2030; y: 1424; w:   20; h:    1),
   263        (x: NTPX; y:    0; w:    1; h:    1)
   263        (x: NTPX; y:    0; w:    1; h:    1)
   264       );
   264       );
   265       Template8FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   265       Template8FPoints: array[0..0] of TPoint =
   266       (
   266       (
   267        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   267        (x: 1023; y:    0)
   268       );
   268       );
   269 
   269 
   270 const Template9Points: array[0..31] of TSDL_Rect =
   270 const Template9Points: array[0..31] of TSDL_Rect =
   271       (
   271       (
   272        (x:  740; y: 1424; w:    1; h:    1),
   272        (x:  740; y: 1424; w:    1; h:    1),
   300        (x: 2032; y: 1078; w:  248; h:   20),
   300        (x: 2032; y: 1078; w:  248; h:   20),
   301        (x: 2032; y: 1202; w:  238; h:   16),
   301        (x: 2032; y: 1202; w:  238; h:   16),
   302        (x: 2080; y: 1424; w:    1; h:    1),
   302        (x: 2080; y: 1424; w:    1; h:    1),
   303        (x: NTPX; y:    0; w:    1; h:    1)
   303        (x: NTPX; y:    0; w:    1; h:    1)
   304       );
   304       );
   305       Template9FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   305       Template9FPoints: array[0..0] of TPoint =
   306       (
   306       (
   307        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   307        (x: 1023; y:    0)
   308       );
   308       );
   309 
   309 
   310 const Template10Points: array[0..13] of TSDL_Rect =
   310 const Template10Points: array[0..13] of TSDL_Rect =
   311       (
   311       (
   312        (x:  588; y: 1424; w:  190; h:    1),
   312        (x:  588; y: 1424; w:  190; h:    1),
   322        (x: 1858; y:  674; w:  354; h:  448),
   322        (x: 1858; y:  674; w:  354; h:  448),
   323        (x: 2088; y: 1195; w:  120; h:  120),
   323        (x: 2088; y: 1195; w:  120; h:  120),
   324        (x: 2182; y: 1424; w:    2; h:    1),
   324        (x: 2182; y: 1424; w:    2; h:    1),
   325        (x: NTPX; y:    0; w:    1; h:    1)
   325        (x: NTPX; y:    0; w:    1; h:    1)
   326       );
   326       );
   327       Template10FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   327       Template10FPoints: array[0..0] of TPoint =
   328       (
   328       (
   329        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   329        (x: 1023; y:    0)
   330       );
   330       );
   331 
   331 
   332 const Template11Points: array[0..9] of TSDL_Rect =
   332 const Template11Points: array[0..9] of TSDL_Rect =
   333       (
   333       (
   334        (x:  674; y: 1424; w:  166; h:    1),
   334        (x:  674; y: 1424; w:  166; h:    1),
   340        (x: 1692; y: 1030; w:   46; h:  300),
   340        (x: 1692; y: 1030; w:   46; h:  300),
   341        (x: 1848; y: 1064; w:  158; h:  272),
   341        (x: 1848; y: 1064; w:  158; h:  272),
   342        (x: 1984; y: 1424; w:  136; h:    1),
   342        (x: 1984; y: 1424; w:  136; h:    1),
   343        (x: NTPX; y:    0; w:    1; h:    1)
   343        (x: NTPX; y:    0; w:    1; h:    1)
   344       );
   344       );
   345       Template11FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   345       Template11FPoints: array[0..0] of TPoint =
   346       (
   346       (
   347        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   347        (x: 1023; y:    0)
   348       );
   348       );
   349 
   349 
   350 const Template12Points: array[0..13] of TSDL_Rect =
   350 const Template12Points: array[0..13] of TSDL_Rect =
   351       (
   351       (
   352        (x:  760; y: 1424; w:    2; h:    2),
   352        (x:  760; y: 1424; w:    2; h:    2),
   362        (x: 2000; y:  814; w:   76; h:  358),
   362        (x: 2000; y:  814; w:   76; h:  358),
   363        (x: 2148; y:  984; w:  108; h:  304),
   363        (x: 2148; y:  984; w:  108; h:  304),
   364        (x: 2088; y: 1424; w:  176; h:    1),
   364        (x: 2088; y: 1424; w:  176; h:    1),
   365        (x: NTPX; y:    0; w:    1; h:    1)
   365        (x: NTPX; y:    0; w:    1; h:    1)
   366       );
   366       );
   367       Template12FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   367       Template12FPoints: array[0..0] of TPoint =
   368       (
   368       (
   369        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   369        (x: 1023; y:    0)
   370       );
   370       );
   371 
   371 
   372 const Template13Points: array[0..15] of TSDL_Rect =
   372 const Template13Points: array[0..15] of TSDL_Rect =
   373       (
   373       (
   374        (x:  846; y: 1424; w:  140; h:    2),
   374        (x:  846; y: 1424; w:  140; h:    2),
   386        (x: 1656; y: 1106; w:  194; h:  150),
   386        (x: 1656; y: 1106; w:  194; h:  150),
   387        (x: 1968; y: 1106; w:  198; h:  152),
   387        (x: 1968; y: 1106; w:  198; h:  152),
   388        (x: 1844; y: 1424; w:    2; h:    2),
   388        (x: 1844; y: 1424; w:    2; h:    2),
   389        (x: NTPX; y:    0; w:    1; h:    1)
   389        (x: NTPX; y:    0; w:    1; h:    1)
   390       );
   390       );
   391       Template13FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   391       Template13FPoints: array[0..0] of TPoint =
   392       (
   392       (
   393        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   393        (x: 1023; y:    0)
   394       );
   394       );
   395 
   395 
   396 const Template14Points: array[0..13] of TSDL_Rect =
   396 const Template14Points: array[0..13] of TSDL_Rect =
   397       (
   397       (
   398        (x:  686; y: 1424; w:    2; h:    2),
   398        (x:  686; y: 1424; w:    2; h:    2),
   408        (x: 1996; y: 1030; w:  242; h:  222),
   408        (x: 1996; y: 1030; w:  242; h:  222),
   409        (x: 1998; y: 1316; w:  254; h:   50),
   409        (x: 1998; y: 1316; w:  254; h:   50),
   410        (x: 2008; y: 1424; w:    2; h:    2),
   410        (x: 2008; y: 1424; w:    2; h:    2),
   411        (x: NTPX; y:    0; w:    1; h:    1)
   411        (x: NTPX; y:    0; w:    1; h:    1)
   412       );
   412       );
   413       Template14FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   413       Template14FPoints: array[0..0] of TPoint =
   414       (
   414       (
   415        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   415        (x: 1023; y:    0)
   416       );
   416       );
   417 
   417 
   418 const Template15Points: array[0..23] of TSDL_Rect =
   418 const Template15Points: array[0..23] of TSDL_Rect =
   419       (
   419       (
   420        (x:  702; y: 1424; w:    2; h:    2),
   420        (x:  702; y: 1424; w:    2; h:    2),
   440        (x: 1850; y: 1328; w:   88; h:   34),
   440        (x: 1850; y: 1328; w:   88; h:   34),
   441        (x: 1998; y: 1238; w:   96; h:  112),
   441        (x: 1998; y: 1238; w:   96; h:  112),
   442        (x: 2056; y: 1424; w:    2; h:    2),
   442        (x: 2056; y: 1424; w:    2; h:    2),
   443        (x: NTPX; y:    0; w:    1; h:    1)
   443        (x: NTPX; y:    0; w:    1; h:    1)
   444       );
   444       );
   445       Template15FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   445       Template15FPoints: array[0..0] of TPoint =
   446       (
   446       (
   447        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   447        (x: 1023; y:    0)
   448       );
   448       );
   449 
   449 
   450 const Template16Points: array[0..28] of TSDL_Rect =
   450 const Template16Points: array[0..28] of TSDL_Rect =
   451       (
   451       (
   452        (x:  700; y: 1424; w:    2; h:    2),
   452        (x:  700; y: 1424; w:    2; h:    2),
   477        (x: 2086; y: 1034; w:  178; h:  122),
   477        (x: 2086; y: 1034; w:  178; h:  122),
   478        (x: 1972; y: 1220; w:   34; h:  124),
   478        (x: 1972; y: 1220; w:   34; h:  124),
   479        (x: 2098; y: 1424; w:   52; h:    2),
   479        (x: 2098; y: 1424; w:   52; h:    2),
   480        (x: NTPX; y:    0; w:    1; h:    1)
   480        (x: NTPX; y:    0; w:    1; h:    1)
   481       );
   481       );
   482       Template16FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   482       Template16FPoints: array[0..0] of TPoint =
   483       (
   483       (
   484        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   484        (x: 1023; y:    0)
   485       );
   485       );
   486 
   486 
   487 const Template17Points: array[0..13] of TSDL_Rect =
   487 const Template17Points: array[0..13] of TSDL_Rect =
   488       (
   488       (
   489        (x:  630; y: 1424; w:    2; h:    2),
   489        (x:  630; y: 1424; w:    2; h:    2),
   499        (x: 1924; y: 1044; w:  272; h:   52),
   499        (x: 1924; y: 1044; w:  272; h:   52),
   500        (x: 1972; y: 1252; w:  180; h:   56),
   500        (x: 1972; y: 1252; w:  180; h:   56),
   501        (x: 1998; y: 1424; w:   42; h:    2),
   501        (x: 1998; y: 1424; w:   42; h:    2),
   502        (x: NTPX; y:    0; w:    1; h:    1)
   502        (x: NTPX; y:    0; w:    1; h:    1)
   503       );
   503       );
   504       Template17FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   504       Template17FPoints: array[0..0] of TPoint =
   505       (
   505       (
   506        (X: 1023; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   506        (x: 1023; y:    0)
   507       );
   507       );
   508 //////////////////// MIXING AND MATCHING ORIGINAL //////////////////////////////////////
   508 //////////////////// MIXING AND MATCHING ORIGINAL //////////////////////////////////////
   509 const Template18Points: array[0..32] of TSDL_Rect =
   509 const Template18Points: array[0..32] of TSDL_Rect =
   510       (
   510       (
   511        (x:  610; y: 1424; w:    1; h:    1),
   511        (x:  610; y: 1424; w:    1; h:    1),
   540        (x: 3524; y: 1044; w:  272; h:   52),
   540        (x: 3524; y: 1044; w:  272; h:   52),
   541        (x: 3572; y: 1252; w:  180; h:   56),
   541        (x: 3572; y: 1252; w:  180; h:   56),
   542        (x: 3598; y: 1424; w:   42; h:    2),
   542        (x: 3598; y: 1424; w:   42; h:    2),
   543        (x: NTPX; y:    0; w:    1; h:    1)
   543        (x: NTPX; y:    0; w:    1; h:    1)
   544       );
   544       );
   545       Template18FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   545       Template18FPoints: array[0..0] of TPoint =
   546       (
   546       (
   547        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   547        (x: 2047; y:    0)
   548       );
   548       );
   549 
   549 
   550 const Template19Points: array[0..44] of TSDL_Rect =
   550 const Template19Points: array[0..44] of TSDL_Rect =
   551       (
   551       (
   552        (x:  600; y: 1424; w:   25; h:    1),
   552        (x:  600; y: 1424; w:   25; h:    1),
   593        (x: 3386; y: 1034; w:  178; h:  122),
   593        (x: 3386; y: 1034; w:  178; h:  122),
   594        (x: 3272; y: 1220; w:   34; h:  124),
   594        (x: 3272; y: 1220; w:   34; h:  124),
   595        (x: 3398; y: 1424; w:   52; h:    2),
   595        (x: 3398; y: 1424; w:   52; h:    2),
   596        (x: NTPX; y:    0; w:    1; h:    1)
   596        (x: NTPX; y:    0; w:    1; h:    1)
   597       );
   597       );
   598       Template19FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   598       Template19FPoints: array[0..0] of TPoint =
   599       (
   599       (
   600        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   600        (x: 2047; y:    0)
   601       );
   601       );
   602 
   602 
   603 const Template20Points: array[0..45] of TSDL_Rect =
   603 const Template20Points: array[0..45] of TSDL_Rect =
   604       (
   604       (
   605        (x:  554; y: 1424; w:    1; h:    1),
   605        (x:  554; y: 1424; w:    1; h:    1),
   647        (x: 3250; y: 1328; w:   88; h:   34),
   647        (x: 3250; y: 1328; w:   88; h:   34),
   648        (x: 3398; y: 1238; w:   96; h:  112),
   648        (x: 3398; y: 1238; w:   96; h:  112),
   649        (x: 3456; y: 1424; w:    2; h:    2),
   649        (x: 3456; y: 1424; w:    2; h:    2),
   650        (x: NTPX; y:    0; w:    1; h:    1)
   650        (x: NTPX; y:    0; w:    1; h:    1)
   651       );
   651       );
   652       Template20FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   652       Template20FPoints: array[0..0] of TPoint =
   653       (
   653       (
   654        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   654        (x: 2047; y:    0)
   655       );
   655       );
   656 
   656 
   657 const Template21Points: array[0..30] of TSDL_Rect =
   657 const Template21Points: array[0..30] of TSDL_Rect =
   658       (
   658       (
   659        (x:  548; y: 1424; w:    1; h:    1),
   659        (x:  548; y: 1424; w:    1; h:    1),
   686        (x: 3246; y: 1030; w:  242; h:  222),
   686        (x: 3246; y: 1030; w:  242; h:  222),
   687        (x: 3248; y: 1316; w:  254; h:   50),
   687        (x: 3248; y: 1316; w:  254; h:   50),
   688        (x: 3258; y: 1424; w:    2; h:    2),
   688        (x: 3258; y: 1424; w:    2; h:    2),
   689        (x: NTPX; y:    0; w:    1; h:    1)
   689        (x: NTPX; y:    0; w:    1; h:    1)
   690       );
   690       );
   691       Template21FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   691       Template21FPoints: array[0..0] of TPoint =
   692       (
   692       (
   693        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   693        (x: 2047; y:    0)
   694       );
   694       );
   695 
   695 
   696 const Template22Points: array[0..38] of TSDL_Rect =
   696 const Template22Points: array[0..38] of TSDL_Rect =
   697       (
   697       (
   698        (x:  618; y: 1424; w:    1; h:    1),
   698        (x:  618; y: 1424; w:    1; h:    1),
   733        (x: 3056; y: 1106; w:  194; h:  150),
   733        (x: 3056; y: 1106; w:  194; h:  150),
   734        (x: 3368; y: 1106; w:  198; h:  152),
   734        (x: 3368; y: 1106; w:  198; h:  152),
   735        (x: 3244; y: 1424; w:    2; h:    2),
   735        (x: 3244; y: 1424; w:    2; h:    2),
   736        (x: NTPX; y:    0; w:    1; h:    1)
   736        (x: NTPX; y:    0; w:    1; h:    1)
   737       );
   737       );
   738       Template22FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   738       Template22FPoints: array[0..0] of TPoint =
   739       (
   739       (
   740        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   740        (x: 2047; y:    0)
   741       );
   741       );
   742 
   742 
   743 const Template23Points: array[0..29] of TSDL_Rect =
   743 const Template23Points: array[0..29] of TSDL_Rect =
   744       (
   744       (
   745        (x:  474; y: 1424; w:    1; h:    1),
   745        (x:  474; y: 1424; w:    1; h:    1),
   771        (x: 3350; y:  814; w:   76; h:  358),
   771        (x: 3350; y:  814; w:   76; h:  358),
   772        (x: 3498; y:  984; w:  108; h:  304),
   772        (x: 3498; y:  984; w:  108; h:  304),
   773        (x: 3438; y: 1424; w:  176; h:    1),
   773        (x: 3438; y: 1424; w:  176; h:    1),
   774        (x: NTPX; y:    0; w:    1; h:    1)
   774        (x: NTPX; y:    0; w:    1; h:    1)
   775        );
   775        );
   776       Template23FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   776       Template23FPoints: array[0..0] of TPoint =
   777       (
   777       (
   778        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   778        (x: 2047; y:    0)
   779       );
   779       );
   780 
   780 
   781 const Template24Points: array[0..23] of TSDL_Rect =
   781 const Template24Points: array[0..23] of TSDL_Rect =
   782       (
   782       (
   783        (x:  474; y: 1424; w:  166; h:    1),
   783        (x:  474; y: 1424; w:  166; h:    1),
   803        (x: 2750; y: 1086; w:  406; h:   92),
   803        (x: 2750; y: 1086; w:  406; h:   92),
   804        (x: 3284; y:  902; w:  190; h:  412),
   804        (x: 3284; y:  902; w:  190; h:  412),
   805        (x: 3346; y: 1420; w:    2; h:    2),
   805        (x: 3346; y: 1420; w:    2; h:    2),
   806        (x: NTPX; y:    0; w:    1; h:    1)
   806        (x: NTPX; y:    0; w:    1; h:    1)
   807        );
   807        );
   808       Template24FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   808       Template24FPoints: array[0..0] of TPoint =
   809       (
   809       (
   810        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   810        (x: 2047; y:    0)
   811       );
   811       );
   812 
   812 
   813 const Template25Points: array[0..19] of TSDL_Rect =
   813 const Template25Points: array[0..19] of TSDL_Rect =
   814       (
   814       (
   815        (x:  362; y: 1424; w:  400; h:    1),
   815        (x:  362; y: 1424; w:  400; h:    1),
   831        (x: 3208; y:  674; w:  354; h:  448),
   831        (x: 3208; y:  674; w:  354; h:  448),
   832        (x: 3438; y: 1195; w:  120; h:  120),
   832        (x: 3438; y: 1195; w:  120; h:  120),
   833        (x: 3532; y: 1424; w:    2; h:    1),
   833        (x: 3532; y: 1424; w:    2; h:    1),
   834        (x: NTPX; y:    0; w:    1; h:    1)
   834        (x: NTPX; y:    0; w:    1; h:    1)
   835       );
   835       );
   836       Template25FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   836       Template25FPoints: array[0..0] of TPoint =
   837       (
   837       (
   838        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   838        (x: 2047; y:    0)
   839       );
   839       );
   840 
   840 
   841 
   841 
   842 const Template26Points: array[0..51] of TSDL_Rect =
   842 const Template26Points: array[0..51] of TSDL_Rect =
   843       (
   843       (
   892        (x: 3432; y: 1078; w:  248; h:   20),
   892        (x: 3432; y: 1078; w:  248; h:   20),
   893        (x: 3432; y: 1202; w:  238; h:   16),
   893        (x: 3432; y: 1202; w:  238; h:   16),
   894        (x: 3480; y: 1424; w:    1; h:    1),
   894        (x: 3480; y: 1424; w:    1; h:    1),
   895        (x: NTPX; y:    0; w:    1; h:    1)
   895        (x: NTPX; y:    0; w:    1; h:    1)
   896       );
   896       );
   897       Template26FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   897       Template26FPoints: array[0..0] of TPoint =
   898       (
   898       (
   899        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   899        (x: 2047; y:    0)
   900       );
   900       );
   901 
   901 
   902 const Template27Points: array[0..42] of TSDL_Rect =
   902 const Template27Points: array[0..42] of TSDL_Rect =
   903       (
   903       (
   904        (x:  610; y: 1424; w:    1; h:    1),
   904        (x:  610; y: 1424; w:    1; h:    1),
   943        (x: 3350; y: 1328; w:   88; h:   34),
   943        (x: 3350; y: 1328; w:   88; h:   34),
   944        (x: 3498; y: 1238; w:   96; h:  112),
   944        (x: 3498; y: 1238; w:   96; h:  112),
   945        (x: 3556; y: 1424; w:    2; h:    2),
   945        (x: 3556; y: 1424; w:    2; h:    2),
   946        (x: NTPX; y:    0; w:    1; h:    1)
   946        (x: NTPX; y:    0; w:    1; h:    1)
   947       );
   947       );
   948       Template27FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   948       Template27FPoints: array[0..0] of TPoint =
   949       (
   949       (
   950        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   950        (x: 2047; y:    0)
   951       );
   951       );
   952 
   952 
   953 const Template28Points: array[0..29] of TSDL_Rect =
   953 const Template28Points: array[0..29] of TSDL_Rect =
   954       (
   954       (
   955        (x:  600; y: 1424; w:   25; h:    1),
   955        (x:  600; y: 1424; w:   25; h:    1),
   981        (x: 3296; y: 1030; w:  242; h:  222),
   981        (x: 3296; y: 1030; w:  242; h:  222),
   982        (x: 3298; y: 1316; w:  254; h:   50),
   982        (x: 3298; y: 1316; w:  254; h:   50),
   983        (x: 3308; y: 1424; w:    2; h:    2),
   983        (x: 3308; y: 1424; w:    2; h:    2),
   984        (x: NTPX; y:    0; w:    1; h:    1)
   984        (x: NTPX; y:    0; w:    1; h:    1)
   985       );
   985       );
   986       Template28FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
   986       Template28FPoints: array[0..0] of TPoint =
   987       (
   987       (
   988        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
   988        (x: 2047; y:    0)
   989       );
   989       );
   990 
   990 
   991 const Template29Points: array[0..37] of TSDL_Rect =
   991 const Template29Points: array[0..37] of TSDL_Rect =
   992       (
   992       (
   993        (x:  554; y: 1424; w:    1; h:    1),
   993        (x:  554; y: 1424; w:    1; h:    1),
  1027        (x: 2906; y: 1106; w:  194; h:  150),
  1027        (x: 2906; y: 1106; w:  194; h:  150),
  1028        (x: 3218; y: 1106; w:  198; h:  152),
  1028        (x: 3218; y: 1106; w:  198; h:  152),
  1029        (x: 3094; y: 1424; w:    2; h:    2),
  1029        (x: 3094; y: 1424; w:    2; h:    2),
  1030        (x: NTPX; y:    0; w:    1; h:    1)
  1030        (x: NTPX; y:    0; w:    1; h:    1)
  1031       );
  1031       );
  1032       Template29FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1032       Template29FPoints: array[0..0] of TPoint =
  1033       (
  1033       (
  1034        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1034        (x: 2047; y:    0)
  1035       );
  1035       );
  1036 
  1036 
  1037 const Template30Points: array[0..30] of TSDL_Rect =
  1037 const Template30Points: array[0..30] of TSDL_Rect =
  1038       (
  1038       (
  1039        (x:  548; y: 1424; w:    1; h:    1),
  1039        (x:  548; y: 1424; w:    1; h:    1),
  1066        (x: 3200; y:  814; w:   76; h:  358),
  1066        (x: 3200; y:  814; w:   76; h:  358),
  1067        (x: 3348; y:  984; w:  108; h:  304),
  1067        (x: 3348; y:  984; w:  108; h:  304),
  1068        (x: 3288; y: 1424; w:  176; h:    1),
  1068        (x: 3288; y: 1424; w:  176; h:    1),
  1069        (x: NTPX; y:    0; w:    1; h:    1)
  1069        (x: NTPX; y:    0; w:    1; h:    1)
  1070       );
  1070       );
  1071       Template30FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1071       Template30FPoints: array[0..0] of TPoint =
  1072       (
  1072       (
  1073        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1073        (x: 2047; y:    0)
  1074       );
  1074       );
  1075 
  1075 
  1076 const Template31Points: array[0..32] of TSDL_Rect =
  1076 const Template31Points: array[0..32] of TSDL_Rect =
  1077       (
  1077       (
  1078        (x:  618; y: 1424; w:    1; h:    1),
  1078        (x:  618; y: 1424; w:    1; h:    1),
  1107        (x: 3292; y: 1030; w:   46; h:  300),
  1107        (x: 3292; y: 1030; w:   46; h:  300),
  1108        (x: 3448; y: 1064; w:  158; h:  272),
  1108        (x: 3448; y: 1064; w:  158; h:  272),
  1109        (x: 3584; y: 1424; w:  136; h:    1),
  1109        (x: 3584; y: 1424; w:  136; h:    1),
  1110        (x: NTPX; y:    0; w:    1; h:    1)
  1110        (x: NTPX; y:    0; w:    1; h:    1)
  1111       );
  1111       );
  1112       Template31FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1112       Template31FPoints: array[0..0] of TPoint =
  1113       (
  1113       (
  1114        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1114        (x: 2047; y:    0)
  1115       );
  1115       );
  1116 
  1116 
  1117 const Template32Points: array[0..29] of TSDL_Rect =
  1117 const Template32Points: array[0..29] of TSDL_Rect =
  1118       (
  1118       (
  1119        (x:  474; y: 1424; w:    1; h:    1),
  1119        (x:  474; y: 1424; w:    1; h:    1),
  1145        (x: 3358; y:  674; w:  354; h:  448),
  1145        (x: 3358; y:  674; w:  354; h:  448),
  1146        (x: 3588; y: 1195; w:  120; h:  120),
  1146        (x: 3588; y: 1195; w:  120; h:  120),
  1147        (x: 3682; y: 1424; w:    2; h:    1),
  1147        (x: 3682; y: 1424; w:    2; h:    1),
  1148        (x: NTPX; y:    0; w:    1; h:    1)
  1148        (x: NTPX; y:    0; w:    1; h:    1)
  1149       );
  1149       );
  1150       Template32FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1150       Template32FPoints: array[0..0] of TPoint =
  1151       (
  1151       (
  1152        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1152          (x: 2047; y:    0)
  1153       );
  1153       );
  1154 
  1154 
  1155 const Template33Points: array[0..45] of TSDL_Rect =
  1155 const Template33Points: array[0..45] of TSDL_Rect =
  1156       (
  1156       (
  1157        (x:  568; y: 1422; w:    2; h:    2),
  1157        (x:  568; y: 1422; w:    2; h:    2),
  1199        (x: 3432; y: 1078; w:  248; h:   20),
  1199        (x: 3432; y: 1078; w:  248; h:   20),
  1200        (x: 3432; y: 1202; w:  238; h:   16),
  1200        (x: 3432; y: 1202; w:  238; h:   16),
  1201        (x: 3480; y: 1424; w:    1; h:    1),
  1201        (x: 3480; y: 1424; w:    1; h:    1),
  1202        (x: NTPX; y:    0; w:    1; h:    1)
  1202        (x: NTPX; y:    0; w:    1; h:    1)
  1203       );
  1203       );
  1204       Template33FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1204       Template33FPoints: array[0..0] of TPoint =
  1205       (
  1205       (
  1206        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1206        (x: 2047; y:    0)
  1207       );
  1207       );
  1208 
  1208 
  1209 const Template34Points: array[0..25] of TSDL_Rect =
  1209 const Template34Points: array[0..25] of TSDL_Rect =
  1210       (
  1210       (
  1211        (x:  362; y: 1424; w:  400; h:    1),
  1211        (x:  362; y: 1424; w:  400; h:    1),
  1233        (x: 3140; y:  988; w:  212; h:   50),
  1233        (x: 3140; y:  988; w:  212; h:   50),
  1234        (x: 3064; y: 1146; w:  128; h:  146),
  1234        (x: 3064; y: 1146; w:  128; h:  146),
  1235        (x: 3230; y: 1424; w:   20; h:    1),
  1235        (x: 3230; y: 1424; w:   20; h:    1),
  1236        (x: NTPX; y:    0; w:    1; h:    1)
  1236        (x: NTPX; y:    0; w:    1; h:    1)
  1237       );
  1237       );
  1238       Template34FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1238       Template34FPoints: array[0..0] of TPoint =
  1239       (
  1239       (
  1240        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1240        (x: 2047; y:    0)
  1241       );
  1241       );
  1242 
  1242 
  1243 const Template35Points: array[0..48] of TSDL_Rect =
  1243 const Template35Points: array[0..48] of TSDL_Rect =
  1244       (
  1244       (
  1245        (x:  564; y: 1424; w:   20; h:    1),
  1245        (x:  564; y: 1424; w:   20; h:    1),
  1290        (x: 3486; y: 1034; w:  178; h:  122),
  1290        (x: 3486; y: 1034; w:  178; h:  122),
  1291        (x: 3372; y: 1220; w:   34; h:  124),
  1291        (x: 3372; y: 1220; w:   34; h:  124),
  1292        (x: 3498; y: 1424; w:   52; h:    2),
  1292        (x: 3498; y: 1424; w:   52; h:    2),
  1293        (x: NTPX; y:    0; w:    1; h:    1)
  1293        (x: NTPX; y:    0; w:    1; h:    1)
  1294       );
  1294       );
  1295       Template35FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1295       Template35FPoints: array[0..0] of TPoint =
  1296       (
  1296       (
  1297        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1297        (x: 2047; y:    0)
  1298       );
  1298       );
  1299 
  1299 
  1300 ///////////////////////// CAVERNS ///////////////////////////////////
  1300 ///////////////////////// CAVERNS ///////////////////////////////////
  1301 const Template36Points: array[0..18] of TSDL_Rect =
  1301 const Template36Points: array[0..18] of TSDL_Rect =
  1302       (
  1302       (
  1318        (x: 1584; y:  796; w:  440; h:  250),
  1318        (x: 1584; y:  796; w:  440; h:  250),
  1319        (x:  892; y:  852; w:  324; h:  184),
  1319        (x:  892; y:  852; w:  324; h:  184),
  1320        (x:  576; y:  976; w:   16; h:   28),
  1320        (x:  576; y:  976; w:   16; h:   28),
  1321        (x: NTPX; y:    0; w:    1; h:    1)
  1321        (x: NTPX; y:    0; w:    1; h:    1)
  1322       );
  1322       );
  1323       Template36FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1323       Template36FPoints: array[0..0] of TPoint =
  1324       (
  1324       (
  1325        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1325        (x: 2047; y:    0)
  1326       );
  1326       );
  1327 ////////////////////////////// ... Silly ...  ////////////////////////////////
  1327 ////////////////////////////// ... Silly ...  ////////////////////////////////
  1328 /// Ok. Tiy does not care for these.  Perhaps they could be saved.
  1328 /// Ok. Tiy does not care for these.  Perhaps they could be saved.
  1329 /// For now, just rare.
  1329 /// For now, just rare.
  1330 //////////////////////////////////////////////////////////////////////////////
  1330 //////////////////////////////////////////////////////////////////////////////
  1359        (x: 1830; y: 1150; w: 25; h: 25),
  1359        (x: 1830; y: 1150; w: 25; h: 25),
  1360        (x: 2260; y: 1000; w: 25; h: 25),
  1360        (x: 2260; y: 1000; w: 25; h: 25),
  1361        (x: 2250; y: 1200; w: 25; h: 25),
  1361        (x: 2250; y: 1200; w: 25; h: 25),
  1362        (x: NTPX; y:    0; w:  1; h:  1)
  1362        (x: NTPX; y:    0; w:  1; h:  1)
  1363       );
  1363       );
  1364       Template37FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1364       Template37FPoints: array[0..0] of TPoint =
  1365       (
  1365       (
  1366        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1366        (x: 2047; y:    0)
  1367       );
  1367       );
  1368 // attempt to make a series of moderate hills/valleys - was before I really figured out the whole probabilities thing
  1368 // attempt to make a series of moderate hills/valleys - was before I really figured out the whole probabilities thing
  1369 const Template38Points: array[0..16] of TSDL_Rect =
  1369 const Template38Points: array[0..16] of TSDL_Rect =
  1370       (
  1370       (
  1371        (x:  100; y: 2100; w:   1; h:    1),
  1371        (x:  100; y: 2100; w:   1; h:    1),
  1384        (x: 3400; y:  600; w: 300; h: 1500),
  1384        (x: 3400; y:  600; w: 300; h: 1500),
  1385        (x: 3700; y: 1800; w: 200; h:  300),
  1385        (x: 3700; y: 1800; w: 200; h:  300),
  1386        (x: 3700; y: 2100; w:   1; h:    1),
  1386        (x: 3700; y: 2100; w:   1; h:    1),
  1387        (x: NTPX; y:    0; w:   1; h:    1)
  1387        (x: NTPX; y:    0; w:   1; h:    1)
  1388       );
  1388       );
  1389       Template38FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1389       Template38FPoints: array[0..0] of TPoint =
  1390       (
  1390       (
  1391        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1391        (x: 2047; y:    0)
  1392       );
  1392       );
  1393 
  1393 
  1394 // 8 tiny islands
  1394 // 8 tiny islands
  1395 const Template39Points: array[0..39] of TSDL_Rect =
  1395 const Template39Points: array[0..39] of TSDL_Rect =
  1396       (
  1396       (
  1433        (x: 1350; y: 350; w:  10; h: 150),
  1433        (x: 1350; y: 350; w:  10; h: 150),
  1434        (x: 1430; y: 350; w:  10; h: 150),
  1434        (x: 1430; y: 350; w:  10; h: 150),
  1435        (x: 1430; y: 520; w:   1; h:   1),
  1435        (x: 1430; y: 520; w:   1; h:   1),
  1436        (x: NTPX; y:   0; w:   1; h:   1)
  1436        (x: NTPX; y:   0; w:   1; h:   1)
  1437       );
  1437       );
  1438       Template39FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1438       Template39FPoints: array[0..0] of TPoint =
  1439       (
  1439       (
  1440        (X: 512; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1440        (x: 512; y:    0)
  1441       );
  1441       );
  1442 const Template40Points: array[0..7] of TSDL_Rect =
  1442 const Template40Points: array[0..7] of TSDL_Rect =
  1443       (
  1443       (
  1444        (x:   90; y: 1050; w:    1; h:   1),
  1444        (x:   90; y: 1050; w:    1; h:   1),
  1445        (x:  100; y:  800; w:  100; h: 200),
  1445        (x:  100; y:  800; w:  100; h: 200),
  1448        (x:  700; y:  600; w:  100; h: 100),
  1448        (x:  700; y:  600; w:  100; h: 100),
  1449        (x:  900; y:  800; w:  100; h: 200),
  1449        (x:  900; y:  800; w:  100; h: 200),
  1450        (x:  900; y: 1050; w:    1; h:   1),
  1450        (x:  900; y: 1050; w:    1; h:   1),
  1451        (x: NTPX; y:    0; w:    1; h:   1)
  1451        (x: NTPX; y:    0; w:    1; h:   1)
  1452       );
  1452       );
  1453       Template40FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1453       Template40FPoints: array[0..0] of TPoint =
  1454       (
  1454       (
  1455        (X: 512; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1455        (x: 512; y:    0)
  1456       );
  1456       );
  1457 // Many islands
  1457 // Many islands
  1458 const Template41Points: array[0..86] of TSDL_Rect =
  1458 const Template41Points: array[0..86] of TSDL_Rect =
  1459       (
  1459       (
  1460        (x:   95; y: 500; w:  26; h:  26),
  1460        (x:   95; y: 500; w:  26; h:  26),
  1543        (x: 3875; y: 100; w:  75; h:  75),
  1543        (x: 3875; y: 100; w:  75; h:  75),
  1544        (x: 3925; y:  50; w:  75; h:  50),
  1544        (x: 3925; y:  50; w:  75; h:  50),
  1545        (x: 4050; y: 125; w:  50; h:  75),
  1545        (x: 4050; y: 125; w:  50; h:  75),
  1546        (x: NTPX; y:   0; w:   1; h:   1)
  1546        (x: NTPX; y:   0; w:   1; h:   1)
  1547       );
  1547       );
  1548       Template41FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1548       Template41FPoints: array[0..0] of TPoint =
  1549       (
  1549       (
  1550        (X: 2047; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1550        (x: 2047; y:    0)
  1551       );
  1551       );
  1552 // 2 tiny islands
  1552 // 2 tiny islands
  1553 const Template42Points: array[0..13] of TSDL_Rect =
  1553 const Template42Points: array[0..13] of TSDL_Rect =
  1554       (
  1554       (
  1555        (x:   90; y: 520; w:   1; h:   1),
  1555        (x:   90; y: 520; w:   1; h:   1),
  1565        (x: 1350; y: 200; w:  10; h:  50),
  1565        (x: 1350; y: 200; w:  10; h:  50),
  1566        (x: 1430; y:  50; w:  10; h:  50),
  1566        (x: 1430; y:  50; w:  10; h:  50),
  1567        (x: 1430; y: 520; w:   1; h:   1),
  1567        (x: 1430; y: 520; w:   1; h:   1),
  1568        (x: NTPX; y:   0; w:   1; h:   1)
  1568        (x: NTPX; y:   0; w:   1; h:   1)
  1569       );
  1569       );
  1570       Template42FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1570       Template42FPoints: array[0..0] of TPoint =
  1571       (
  1571       (
  1572        (X: 512; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1572        (x: 512; y:    0)
  1573       );
  1573       );
  1574 // Many islands
  1574 // Many islands
  1575 const Template43Points: array[0..173] of TSDL_Rect =
  1575 const Template43Points: array[0..173] of TSDL_Rect =
  1576       (
  1576       (
  1577        (x:   95; y: 500; w:  26; h:  26),
  1577        (x:   95; y: 500; w:  26; h:  26),
  1747        (x: 3875; y:2148; w:  75; h:  75),
  1747        (x: 3875; y:2148; w:  75; h:  75),
  1748        (x: 3925; y:2098; w:  75; h:  50),
  1748        (x: 3925; y:2098; w:  75; h:  50),
  1749        (x: 4050; y:2173; w:  50; h:  75),
  1749        (x: 4050; y:2173; w:  50; h:  75),
  1750        (x: NTPX; y:2048; w:   1; h:   1)
  1750        (x: NTPX; y:2048; w:   1; h:   1)
  1751       );
  1751       );
  1752       Template43FPoints: array[0..{$IFDEF PAS2C}1{$ELSE}0{$ENDIF}] of TPoint =
  1752       Template43FPoints: array[0..0] of TPoint =
  1753       (
  1753       (
  1754        (X: 4095; Y:    0){$IFDEF PAS2C},(X:0;Y:9){$ENDIF}
  1754        (x: 4095; y:    0)
  1755       );
  1755       );
  1756 
  1756 
  1757 // 3 large caverns
  1757 // 3 large caverns
  1758 const Template44Points: array[0..14] of TSDL_Rect =
  1758 const Template44Points: array[0..14] of TSDL_Rect =
  1759       (
  1759       (
  1810 var EdgeTemplates: array[0..45] of TEdgeTemplate =
  1810 var EdgeTemplates: array[0..45] of TEdgeTemplate =
  1811       (
  1811       (
  1812        (BasePoints: @Template0Points;
  1812        (BasePoints: @Template0Points;
  1813         BasePointsCount: Succ(High(Template0Points));
  1813         BasePointsCount: Succ(High(Template0Points));
  1814         FillPoints: @Template0FPoints;
  1814         FillPoints: @Template0FPoints;
  1815         FillPointsCount: Succ(High(Template0FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1815         FillPointsCount: Succ(High(Template0FPoints));
  1816         BezierizeCount: 3;
  1816         BezierizeCount: 3;
  1817         RandPassesCount: 8;
  1817         RandPassesCount: 8;
  1818         TemplateHeight: 1424; TemplateWidth: 3072;
  1818         TemplateHeight: 1424; TemplateWidth: 3072;
  1819         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1819         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1820         hasGirders: true;
  1820         hasGirders: true;
  1821         MaxHedgeHogs: 18;
  1821         MaxHedgeHogs: 18;
  1822        ),
  1822        ),
  1823        (BasePoints: @Template1Points;
  1823        (BasePoints: @Template1Points;
  1824         BasePointsCount: Succ(High(Template1Points));
  1824         BasePointsCount: Succ(High(Template1Points));
  1825         FillPoints: @Template1FPoints;
  1825         FillPoints: @Template1FPoints;
  1826         FillPointsCount: Succ(High(Template1FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1826         FillPointsCount: Succ(High(Template1FPoints));
  1827         BezierizeCount: 3;
  1827         BezierizeCount: 3;
  1828         RandPassesCount: 7;
  1828         RandPassesCount: 7;
  1829         TemplateHeight: 1424; TemplateWidth: 3072;
  1829         TemplateHeight: 1424; TemplateWidth: 3072;
  1830         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1830         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1831         hasGirders: true;
  1831         hasGirders: true;
  1832         MaxHedgeHogs: 18;
  1832         MaxHedgeHogs: 18;
  1833        ),
  1833        ),
  1834        (BasePoints: @Template2Points;
  1834        (BasePoints: @Template2Points;
  1835         BasePointsCount: Succ(High(Template2Points));
  1835         BasePointsCount: Succ(High(Template2Points));
  1836         FillPoints: @Template2FPoints;
  1836         FillPoints: @Template2FPoints;
  1837         FillPointsCount: Succ(High(Template2FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1837         FillPointsCount: Succ(High(Template2FPoints));
  1838         BezierizeCount: 2;
  1838         BezierizeCount: 2;
  1839         RandPassesCount: 6;
  1839         RandPassesCount: 6;
  1840         TemplateHeight: 1424; TemplateWidth: 3072;
  1840         TemplateHeight: 1424; TemplateWidth: 3072;
  1841         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1841         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1842         hasGirders: true;
  1842         hasGirders: true;
  1843         MaxHedgeHogs: 18;
  1843         MaxHedgeHogs: 18;
  1844        ),
  1844        ),
  1845        (BasePoints: @Template3Points;
  1845        (BasePoints: @Template3Points;
  1846         BasePointsCount: Succ(High(Template3Points));
  1846         BasePointsCount: Succ(High(Template3Points));
  1847         FillPoints: @Template3FPoints;
  1847         FillPoints: @Template3FPoints;
  1848         FillPointsCount: Succ(High(Template3FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1848         FillPointsCount: Succ(High(Template3FPoints));
  1849         BezierizeCount: 3;
  1849         BezierizeCount: 3;
  1850         RandPassesCount: 4;
  1850         RandPassesCount: 4;
  1851         TemplateHeight: 1424; TemplateWidth: 3072;
  1851         TemplateHeight: 1424; TemplateWidth: 3072;
  1852         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1852         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1853         hasGirders: true;
  1853         hasGirders: true;
  1854         MaxHedgeHogs: 18;
  1854         MaxHedgeHogs: 18;
  1855        ),
  1855        ),
  1856        (BasePoints: @Template4Points;
  1856        (BasePoints: @Template4Points;
  1857         BasePointsCount: Succ(High(Template4Points));
  1857         BasePointsCount: Succ(High(Template4Points));
  1858         FillPoints: @Template4FPoints;
  1858         FillPoints: @Template4FPoints;
  1859         FillPointsCount: Succ(High(Template4FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1859         FillPointsCount: Succ(High(Template4FPoints));
  1860         BezierizeCount: 3;
  1860         BezierizeCount: 3;
  1861         RandPassesCount: 4;
  1861         RandPassesCount: 4;
  1862         TemplateHeight: 1424; TemplateWidth: 3072;
  1862         TemplateHeight: 1424; TemplateWidth: 3072;
  1863         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1863         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1864         hasGirders: true;
  1864         hasGirders: true;
  1865         MaxHedgeHogs: 18;
  1865         MaxHedgeHogs: 18;
  1866        ),
  1866        ),
  1867        (BasePoints: @Template5Points;
  1867        (BasePoints: @Template5Points;
  1868         BasePointsCount: Succ(High(Template5Points));
  1868         BasePointsCount: Succ(High(Template5Points));
  1869         FillPoints: @Template5FPoints;
  1869         FillPoints: @Template5FPoints;
  1870         FillPointsCount: Succ(High(Template5FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1870         FillPointsCount: Succ(High(Template5FPoints));
  1871         BezierizeCount: 2;
  1871         BezierizeCount: 2;
  1872         RandPassesCount: 8;
  1872         RandPassesCount: 8;
  1873         TemplateHeight: 1424; TemplateWidth: 3072;
  1873         TemplateHeight: 1424; TemplateWidth: 3072;
  1874         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1874         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1875         hasGirders: true;
  1875         hasGirders: true;
  1876         MaxHedgeHogs: 18;
  1876         MaxHedgeHogs: 18;
  1877        ),
  1877        ),
  1878        (BasePoints: @Template6Points;
  1878        (BasePoints: @Template6Points;
  1879         BasePointsCount: Succ(High(Template6Points));
  1879         BasePointsCount: Succ(High(Template6Points));
  1880         FillPoints: @Template6FPoints;
  1880         FillPoints: @Template6FPoints;
  1881         FillPointsCount: Succ(High(Template6FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1881         FillPointsCount: Succ(High(Template6FPoints));
  1882         BezierizeCount: 2;
  1882         BezierizeCount: 2;
  1883         RandPassesCount: 5;
  1883         RandPassesCount: 5;
  1884         TemplateHeight: 1424; TemplateWidth: 3072;
  1884         TemplateHeight: 1424; TemplateWidth: 3072;
  1885         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1885         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1886         hasGirders: true;
  1886         hasGirders: true;
  1887         MaxHedgeHogs: 18;
  1887         MaxHedgeHogs: 18;
  1888        ),
  1888        ),
  1889        (BasePoints: @Template7Points;
  1889        (BasePoints: @Template7Points;
  1890         BasePointsCount: Succ(High(Template7Points));
  1890         BasePointsCount: Succ(High(Template7Points));
  1891         FillPoints: @Template7FPoints;
  1891         FillPoints: @Template7FPoints;
  1892         FillPointsCount: Succ(High(Template7FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1892         FillPointsCount: Succ(High(Template7FPoints));
  1893         BezierizeCount: 4;
  1893         BezierizeCount: 4;
  1894         RandPassesCount: 4;
  1894         RandPassesCount: 4;
  1895         TemplateHeight: 1424; TemplateWidth: 3072;
  1895         TemplateHeight: 1424; TemplateWidth: 3072;
  1896         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1896         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1897         hasGirders: true;
  1897         hasGirders: true;
  1898         MaxHedgeHogs: 18;
  1898         MaxHedgeHogs: 18;
  1899        ),
  1899        ),
  1900        (BasePoints: @Template8Points;
  1900        (BasePoints: @Template8Points;
  1901         BasePointsCount: Succ(High(Template8Points));
  1901         BasePointsCount: Succ(High(Template8Points));
  1902         FillPoints: @Template8FPoints;
  1902         FillPoints: @Template8FPoints;
  1903         FillPointsCount: Succ(High(Template8FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1903         FillPointsCount: Succ(High(Template8FPoints));
  1904         BezierizeCount: 2;
  1904         BezierizeCount: 2;
  1905         RandPassesCount: 7;
  1905         RandPassesCount: 7;
  1906         TemplateHeight: 1424; TemplateWidth: 3072;
  1906         TemplateHeight: 1424; TemplateWidth: 3072;
  1907         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1907         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1908         hasGirders: true;
  1908         hasGirders: true;
  1909         MaxHedgeHogs: 18;
  1909         MaxHedgeHogs: 18;
  1910        ),
  1910        ),
  1911        (BasePoints: @Template9Points;
  1911        (BasePoints: @Template9Points;
  1912         BasePointsCount: Succ(High(Template9Points));
  1912         BasePointsCount: Succ(High(Template9Points));
  1913         FillPoints: @Template9FPoints;
  1913         FillPoints: @Template9FPoints;
  1914         FillPointsCount: Succ(High(Template9FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1914         FillPointsCount: Succ(High(Template9FPoints));
  1915         BezierizeCount: 1;
  1915         BezierizeCount: 1;
  1916         RandPassesCount: 5;
  1916         RandPassesCount: 5;
  1917         TemplateHeight: 1424; TemplateWidth: 3072;
  1917         TemplateHeight: 1424; TemplateWidth: 3072;
  1918         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1918         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1919         hasGirders: true;
  1919         hasGirders: true;
  1920         MaxHedgeHogs: 18;
  1920         MaxHedgeHogs: 18;
  1921        ),
  1921        ),
  1922        (BasePoints: @Template10Points;
  1922        (BasePoints: @Template10Points;
  1923         BasePointsCount: Succ(High(Template10Points));
  1923         BasePointsCount: Succ(High(Template10Points));
  1924         FillPoints: @Template10FPoints;
  1924         FillPoints: @Template10FPoints;
  1925         FillPointsCount: Succ(High(Template10FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1925         FillPointsCount: Succ(High(Template10FPoints));
  1926         BezierizeCount: 2;
  1926         BezierizeCount: 2;
  1927         RandPassesCount: 6;
  1927         RandPassesCount: 6;
  1928         TemplateHeight: 1424; TemplateWidth: 3072;
  1928         TemplateHeight: 1424; TemplateWidth: 3072;
  1929         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1929         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1930         hasGirders: true;
  1930         hasGirders: true;
  1931         MaxHedgeHogs: 18;
  1931         MaxHedgeHogs: 18;
  1932        ),
  1932        ),
  1933        (BasePoints: @Template11Points;
  1933        (BasePoints: @Template11Points;
  1934         BasePointsCount: Succ(High(Template11Points));
  1934         BasePointsCount: Succ(High(Template11Points));
  1935         FillPoints: @Template11FPoints;
  1935         FillPoints: @Template11FPoints;
  1936         FillPointsCount: Succ(High(Template11FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1936         FillPointsCount: Succ(High(Template11FPoints));
  1937         BezierizeCount: 1;
  1937         BezierizeCount: 1;
  1938         RandPassesCount: 8;
  1938         RandPassesCount: 8;
  1939         TemplateHeight: 1424; TemplateWidth: 3072;
  1939         TemplateHeight: 1424; TemplateWidth: 3072;
  1940         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1940         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1941         hasGirders: true;
  1941         hasGirders: true;
  1942         MaxHedgeHogs: 18;
  1942         MaxHedgeHogs: 18;
  1943        ),
  1943        ),
  1944        (BasePoints: @Template12Points;
  1944        (BasePoints: @Template12Points;
  1945         BasePointsCount: Succ(High(Template12Points));
  1945         BasePointsCount: Succ(High(Template12Points));
  1946         FillPoints: @Template12FPoints;
  1946         FillPoints: @Template12FPoints;
  1947         FillPointsCount: Succ(High(Template12FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1947         FillPointsCount: Succ(High(Template12FPoints));
  1948         BezierizeCount: 3;
  1948         BezierizeCount: 3;
  1949         RandPassesCount: 8;
  1949         RandPassesCount: 8;
  1950         TemplateHeight: 1424; TemplateWidth: 3072;
  1950         TemplateHeight: 1424; TemplateWidth: 3072;
  1951         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1951         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1952         hasGirders: true;
  1952         hasGirders: true;
  1953         MaxHedgeHogs: 18;
  1953         MaxHedgeHogs: 18;
  1954        ),
  1954        ),
  1955        (BasePoints: @Template13Points;
  1955        (BasePoints: @Template13Points;
  1956         BasePointsCount: Succ(High(Template13Points));
  1956         BasePointsCount: Succ(High(Template13Points));
  1957         FillPoints: @Template13FPoints;
  1957         FillPoints: @Template13FPoints;
  1958         FillPointsCount: Succ(High(Template13FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1958         FillPointsCount: Succ(High(Template13FPoints));
  1959         BezierizeCount: 3;
  1959         BezierizeCount: 3;
  1960         RandPassesCount: 5;
  1960         RandPassesCount: 5;
  1961         TemplateHeight: 1424; TemplateWidth: 3072;
  1961         TemplateHeight: 1424; TemplateWidth: 3072;
  1962         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1962         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1963         hasGirders: true;
  1963         hasGirders: true;
  1964         MaxHedgeHogs: 18;
  1964         MaxHedgeHogs: 18;
  1965        ),
  1965        ),
  1966        (BasePoints: @Template14Points;
  1966        (BasePoints: @Template14Points;
  1967         BasePointsCount: Succ(High(Template14Points));
  1967         BasePointsCount: Succ(High(Template14Points));
  1968         FillPoints: @Template14FPoints;
  1968         FillPoints: @Template14FPoints;
  1969         FillPointsCount: Succ(High(Template14FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1969         FillPointsCount: Succ(High(Template14FPoints));
  1970         BezierizeCount: 3;
  1970         BezierizeCount: 3;
  1971         RandPassesCount: 7;
  1971         RandPassesCount: 7;
  1972         TemplateHeight: 1424; TemplateWidth: 3072;
  1972         TemplateHeight: 1424; TemplateWidth: 3072;
  1973         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1973         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1974         hasGirders: true;
  1974         hasGirders: true;
  1975         MaxHedgeHogs: 18;
  1975         MaxHedgeHogs: 18;
  1976        ),
  1976        ),
  1977        (BasePoints: @Template15Points;
  1977        (BasePoints: @Template15Points;
  1978         BasePointsCount: Succ(High(Template15Points));
  1978         BasePointsCount: Succ(High(Template15Points));
  1979         FillPoints: @Template15FPoints;
  1979         FillPoints: @Template15FPoints;
  1980         FillPointsCount: Succ(High(Template15FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1980         FillPointsCount: Succ(High(Template15FPoints));
  1981         BezierizeCount: 2;
  1981         BezierizeCount: 2;
  1982         RandPassesCount: 6;
  1982         RandPassesCount: 6;
  1983         TemplateHeight: 1424; TemplateWidth: 3072;
  1983         TemplateHeight: 1424; TemplateWidth: 3072;
  1984         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1984         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1985         hasGirders: true;
  1985         hasGirders: true;
  1986         MaxHedgeHogs: 18;
  1986         MaxHedgeHogs: 18;
  1987        ),
  1987        ),
  1988        (BasePoints: @Template16Points;
  1988        (BasePoints: @Template16Points;
  1989         BasePointsCount: Succ(High(Template16Points));
  1989         BasePointsCount: Succ(High(Template16Points));
  1990         FillPoints: @Template16FPoints;
  1990         FillPoints: @Template16FPoints;
  1991         FillPointsCount: Succ(High(Template16FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  1991         FillPointsCount: Succ(High(Template16FPoints));
  1992         BezierizeCount: 2;
  1992         BezierizeCount: 2;
  1993         RandPassesCount: 6;
  1993         RandPassesCount: 6;
  1994         TemplateHeight: 1424; TemplateWidth: 3072;
  1994         TemplateHeight: 1424; TemplateWidth: 3072;
  1995         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1995         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1996         hasGirders: true;
  1996         hasGirders: true;
  1997         MaxHedgeHogs: 18;
  1997         MaxHedgeHogs: 18;
  1998        ),
  1998        ),
  1999        (BasePoints: @Template17Points;
  1999        (BasePoints: @Template17Points;
  2000         BasePointsCount: Succ(High(Template17Points));
  2000         BasePointsCount: Succ(High(Template17Points));
  2001         FillPoints: @Template17FPoints;
  2001         FillPoints: @Template17FPoints;
  2002         FillPointsCount: Succ(High(Template17FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2002         FillPointsCount: Succ(High(Template17FPoints));
  2003         BezierizeCount: 3;
  2003         BezierizeCount: 3;
  2004         RandPassesCount: 7;
  2004         RandPassesCount: 7;
  2005         TemplateHeight: 1424; TemplateWidth: 3072;
  2005         TemplateHeight: 1424; TemplateWidth: 3072;
  2006         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2006         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2007         hasGirders: true;
  2007         hasGirders: true;
  2008         MaxHedgeHogs: 18;
  2008         MaxHedgeHogs: 18;
  2009        ),
  2009        ),
  2010        (BasePoints: @Template18Points;
  2010        (BasePoints: @Template18Points;
  2011         BasePointsCount: Succ(High(Template18Points));
  2011         BasePointsCount: Succ(High(Template18Points));
  2012         FillPoints: @Template18FPoints;
  2012         FillPoints: @Template18FPoints;
  2013         FillPointsCount: Succ(High(Template18FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2013         FillPointsCount: Succ(High(Template18FPoints));
  2014         BezierizeCount: 3;
  2014         BezierizeCount: 3;
  2015         RandPassesCount: 8;
  2015         RandPassesCount: 8;
  2016         TemplateHeight: 1424; TemplateWidth: 4096;
  2016         TemplateHeight: 1424; TemplateWidth: 4096;
  2017         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2017         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2018         hasGirders: true;
  2018         hasGirders: true;
  2019         MaxHedgeHogs: 36;
  2019         MaxHedgeHogs: 36;
  2020        ),
  2020        ),
  2021        (BasePoints: @Template19Points;
  2021        (BasePoints: @Template19Points;
  2022         BasePointsCount: Succ(High(Template19Points));
  2022         BasePointsCount: Succ(High(Template19Points));
  2023         FillPoints: @Template19FPoints;
  2023         FillPoints: @Template19FPoints;
  2024         FillPointsCount: Succ(High(Template19FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2024         FillPointsCount: Succ(High(Template19FPoints));
  2025         BezierizeCount: 3;
  2025         BezierizeCount: 3;
  2026         RandPassesCount: 7;
  2026         RandPassesCount: 7;
  2027         TemplateHeight: 1424; TemplateWidth: 4096;
  2027         TemplateHeight: 1424; TemplateWidth: 4096;
  2028         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2028         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2029         hasGirders: true;
  2029         hasGirders: true;
  2030         MaxHedgeHogs: 36;
  2030         MaxHedgeHogs: 36;
  2031        ),
  2031        ),
  2032        (BasePoints: @Template20Points;
  2032        (BasePoints: @Template20Points;
  2033         BasePointsCount: Succ(High(Template20Points));
  2033         BasePointsCount: Succ(High(Template20Points));
  2034         FillPoints: @Template20FPoints;
  2034         FillPoints: @Template20FPoints;
  2035         FillPointsCount: Succ(High(Template20FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2035         FillPointsCount: Succ(High(Template20FPoints));
  2036         BezierizeCount: 2;
  2036         BezierizeCount: 2;
  2037         RandPassesCount: 6;
  2037         RandPassesCount: 6;
  2038         TemplateHeight: 1424; TemplateWidth: 4096;
  2038         TemplateHeight: 1424; TemplateWidth: 4096;
  2039         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2039         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2040         hasGirders: true;
  2040         hasGirders: true;
  2041         MaxHedgeHogs: 36;
  2041         MaxHedgeHogs: 36;
  2042        ),
  2042        ),
  2043        (BasePoints: @Template21Points;
  2043        (BasePoints: @Template21Points;
  2044         BasePointsCount: Succ(High(Template21Points));
  2044         BasePointsCount: Succ(High(Template21Points));
  2045         FillPoints: @Template21FPoints;
  2045         FillPoints: @Template21FPoints;
  2046         FillPointsCount: Succ(High(Template21FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2046         FillPointsCount: Succ(High(Template21FPoints));
  2047         BezierizeCount: 3;
  2047         BezierizeCount: 3;
  2048         RandPassesCount: 4;
  2048         RandPassesCount: 4;
  2049         TemplateHeight: 1424; TemplateWidth: 4096;
  2049         TemplateHeight: 1424; TemplateWidth: 4096;
  2050         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2050         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2051         hasGirders: true;
  2051         hasGirders: true;
  2052         MaxHedgeHogs: 36;
  2052         MaxHedgeHogs: 36;
  2053        ),
  2053        ),
  2054        (BasePoints: @Template22Points;
  2054        (BasePoints: @Template22Points;
  2055         BasePointsCount: Succ(High(Template22Points));
  2055         BasePointsCount: Succ(High(Template22Points));
  2056         FillPoints: @Template22FPoints;
  2056         FillPoints: @Template22FPoints;
  2057         FillPointsCount: Succ(High(Template22FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2057         FillPointsCount: Succ(High(Template22FPoints));
  2058         BezierizeCount: 3;
  2058         BezierizeCount: 3;
  2059         RandPassesCount: 4;
  2059         RandPassesCount: 4;
  2060         TemplateHeight: 1424; TemplateWidth: 4096;
  2060         TemplateHeight: 1424; TemplateWidth: 4096;
  2061         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2061         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2062         hasGirders: true;
  2062         hasGirders: true;
  2063         MaxHedgeHogs: 36;
  2063         MaxHedgeHogs: 36;
  2064        ),
  2064        ),
  2065        (BasePoints: @Template23Points;
  2065        (BasePoints: @Template23Points;
  2066         BasePointsCount: Succ(High(Template23Points));
  2066         BasePointsCount: Succ(High(Template23Points));
  2067         FillPoints: @Template23FPoints;
  2067         FillPoints: @Template23FPoints;
  2068         FillPointsCount: Succ(High(Template23FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2068         FillPointsCount: Succ(High(Template23FPoints));
  2069         BezierizeCount: 2;
  2069         BezierizeCount: 2;
  2070         RandPassesCount: 8;
  2070         RandPassesCount: 8;
  2071         TemplateHeight: 1424; TemplateWidth: 4096;
  2071         TemplateHeight: 1424; TemplateWidth: 4096;
  2072         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2072         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2073         hasGirders: true;
  2073         hasGirders: true;
  2074         MaxHedgeHogs: 36;
  2074         MaxHedgeHogs: 36;
  2075        ),
  2075        ),
  2076        (BasePoints: @Template24Points;
  2076        (BasePoints: @Template24Points;
  2077         BasePointsCount: Succ(High(Template24Points));
  2077         BasePointsCount: Succ(High(Template24Points));
  2078         FillPoints: @Template24FPoints;
  2078         FillPoints: @Template24FPoints;
  2079         FillPointsCount: Succ(High(Template24FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2079         FillPointsCount: Succ(High(Template24FPoints));
  2080         BezierizeCount: 2;
  2080         BezierizeCount: 2;
  2081         RandPassesCount: 5;
  2081         RandPassesCount: 5;
  2082         TemplateHeight: 1424; TemplateWidth: 4096;
  2082         TemplateHeight: 1424; TemplateWidth: 4096;
  2083         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2083         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2084         hasGirders: true;
  2084         hasGirders: true;
  2085         MaxHedgeHogs: 36;
  2085         MaxHedgeHogs: 36;
  2086        ),
  2086        ),
  2087        (BasePoints: @Template25Points;
  2087        (BasePoints: @Template25Points;
  2088         BasePointsCount: Succ(High(Template25Points));
  2088         BasePointsCount: Succ(High(Template25Points));
  2089         FillPoints: @Template25FPoints;
  2089         FillPoints: @Template25FPoints;
  2090         FillPointsCount: Succ(High(Template25FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2090         FillPointsCount: Succ(High(Template25FPoints));
  2091         BezierizeCount: 4;
  2091         BezierizeCount: 4;
  2092         RandPassesCount: 4;
  2092         RandPassesCount: 4;
  2093         TemplateHeight: 1424; TemplateWidth: 4096;
  2093         TemplateHeight: 1424; TemplateWidth: 4096;
  2094         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2094         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2095         hasGirders: true;
  2095         hasGirders: true;
  2096         MaxHedgeHogs: 36;
  2096         MaxHedgeHogs: 36;
  2097        ),
  2097        ),
  2098        (BasePoints: @Template26Points;
  2098        (BasePoints: @Template26Points;
  2099         BasePointsCount: Succ(High(Template26Points));
  2099         BasePointsCount: Succ(High(Template26Points));
  2100         FillPoints: @Template26FPoints;
  2100         FillPoints: @Template26FPoints;
  2101         FillPointsCount: Succ(High(Template26FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2101         FillPointsCount: Succ(High(Template26FPoints));
  2102         BezierizeCount: 2;
  2102         BezierizeCount: 2;
  2103         RandPassesCount: 7;
  2103         RandPassesCount: 7;
  2104         TemplateHeight: 1424; TemplateWidth: 4096;
  2104         TemplateHeight: 1424; TemplateWidth: 4096;
  2105         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2105         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2106         hasGirders: true;
  2106         hasGirders: true;
  2107         MaxHedgeHogs: 36;
  2107         MaxHedgeHogs: 36;
  2108        ),
  2108        ),
  2109        (BasePoints: @Template27Points;
  2109        (BasePoints: @Template27Points;
  2110         BasePointsCount: Succ(High(Template27Points));
  2110         BasePointsCount: Succ(High(Template27Points));
  2111         FillPoints: @Template27FPoints;
  2111         FillPoints: @Template27FPoints;
  2112         FillPointsCount: Succ(High(Template27FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2112         FillPointsCount: Succ(High(Template27FPoints));
  2113         BezierizeCount: 1;
  2113         BezierizeCount: 1;
  2114         RandPassesCount: 5;
  2114         RandPassesCount: 5;
  2115         TemplateHeight: 1424; TemplateWidth: 4096;
  2115         TemplateHeight: 1424; TemplateWidth: 4096;
  2116         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2116         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2117         hasGirders: true;
  2117         hasGirders: true;
  2118         MaxHedgeHogs: 36;
  2118         MaxHedgeHogs: 36;
  2119        ),
  2119        ),
  2120        (BasePoints: @Template28Points;
  2120        (BasePoints: @Template28Points;
  2121         BasePointsCount: Succ(High(Template28Points));
  2121         BasePointsCount: Succ(High(Template28Points));
  2122         FillPoints: @Template28FPoints;
  2122         FillPoints: @Template28FPoints;
  2123         FillPointsCount: Succ(High(Template28FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2123         FillPointsCount: Succ(High(Template28FPoints));
  2124         BezierizeCount: 2;
  2124         BezierizeCount: 2;
  2125         RandPassesCount: 6;
  2125         RandPassesCount: 6;
  2126         TemplateHeight: 1424; TemplateWidth: 4096;
  2126         TemplateHeight: 1424; TemplateWidth: 4096;
  2127         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2127         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2128         hasGirders: true;
  2128         hasGirders: true;
  2129         MaxHedgeHogs: 36;
  2129         MaxHedgeHogs: 36;
  2130        ),
  2130        ),
  2131        (BasePoints: @Template29Points;
  2131        (BasePoints: @Template29Points;
  2132         BasePointsCount: Succ(High(Template29Points));
  2132         BasePointsCount: Succ(High(Template29Points));
  2133         FillPoints: @Template29FPoints;
  2133         FillPoints: @Template29FPoints;
  2134         FillPointsCount: Succ(High(Template29FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2134         FillPointsCount: Succ(High(Template29FPoints));
  2135         BezierizeCount: 1;
  2135         BezierizeCount: 1;
  2136         RandPassesCount: 8;
  2136         RandPassesCount: 8;
  2137         TemplateHeight: 1424; TemplateWidth: 4096;
  2137         TemplateHeight: 1424; TemplateWidth: 4096;
  2138         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2138         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2139         hasGirders: true;
  2139         hasGirders: true;
  2140         MaxHedgeHogs: 36;
  2140         MaxHedgeHogs: 36;
  2141        ),
  2141        ),
  2142        (BasePoints: @Template30Points;
  2142        (BasePoints: @Template30Points;
  2143         BasePointsCount: Succ(High(Template30Points));
  2143         BasePointsCount: Succ(High(Template30Points));
  2144         FillPoints: @Template30FPoints;
  2144         FillPoints: @Template30FPoints;
  2145         FillPointsCount: Succ(High(Template30FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2145         FillPointsCount: Succ(High(Template30FPoints));
  2146         BezierizeCount: 3;
  2146         BezierizeCount: 3;
  2147         RandPassesCount: 8;
  2147         RandPassesCount: 8;
  2148         TemplateHeight: 1424; TemplateWidth: 4096;
  2148         TemplateHeight: 1424; TemplateWidth: 4096;
  2149         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2149         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2150         hasGirders: true;
  2150         hasGirders: true;
  2151         MaxHedgeHogs: 36;
  2151         MaxHedgeHogs: 36;
  2152        ),
  2152        ),
  2153        (BasePoints: @Template31Points;
  2153        (BasePoints: @Template31Points;
  2154         BasePointsCount: Succ(High(Template31Points));
  2154         BasePointsCount: Succ(High(Template31Points));
  2155         FillPoints: @Template31FPoints;
  2155         FillPoints: @Template31FPoints;
  2156         FillPointsCount: Succ(High(Template31FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2156         FillPointsCount: Succ(High(Template31FPoints));
  2157         BezierizeCount: 3;
  2157         BezierizeCount: 3;
  2158         RandPassesCount: 5;
  2158         RandPassesCount: 5;
  2159         TemplateHeight: 1424; TemplateWidth: 4096;
  2159         TemplateHeight: 1424; TemplateWidth: 4096;
  2160         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2160         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2161         hasGirders: true;
  2161         hasGirders: true;
  2162         MaxHedgeHogs: 36;
  2162         MaxHedgeHogs: 36;
  2163        ),
  2163        ),
  2164        (BasePoints: @Template32Points;
  2164        (BasePoints: @Template32Points;
  2165         BasePointsCount: Succ(High(Template32Points));
  2165         BasePointsCount: Succ(High(Template32Points));
  2166         FillPoints: @Template32FPoints;
  2166         FillPoints: @Template32FPoints;
  2167         FillPointsCount: Succ(High(Template32FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2167         FillPointsCount: Succ(High(Template32FPoints));
  2168         BezierizeCount: 3;
  2168         BezierizeCount: 3;
  2169         RandPassesCount: 7;
  2169         RandPassesCount: 7;
  2170         TemplateHeight: 1424; TemplateWidth: 4096;
  2170         TemplateHeight: 1424; TemplateWidth: 4096;
  2171         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2171         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2172         hasGirders: true;
  2172         hasGirders: true;
  2173         MaxHedgeHogs: 36;
  2173         MaxHedgeHogs: 36;
  2174        ),
  2174        ),
  2175        (BasePoints: @Template33Points;
  2175        (BasePoints: @Template33Points;
  2176         BasePointsCount: Succ(High(Template33Points));
  2176         BasePointsCount: Succ(High(Template33Points));
  2177         FillPoints: @Template33FPoints;
  2177         FillPoints: @Template33FPoints;
  2178         FillPointsCount: Succ(High(Template33FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2178         FillPointsCount: Succ(High(Template33FPoints));
  2179         BezierizeCount: 2;
  2179         BezierizeCount: 2;
  2180         RandPassesCount: 6;
  2180         RandPassesCount: 6;
  2181         TemplateHeight: 1424; TemplateWidth: 4096;
  2181         TemplateHeight: 1424; TemplateWidth: 4096;
  2182         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2182         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2183         hasGirders: true;
  2183         hasGirders: true;
  2184         MaxHedgeHogs: 36;
  2184         MaxHedgeHogs: 36;
  2185        ),
  2185        ),
  2186        (BasePoints: @Template34Points;
  2186        (BasePoints: @Template34Points;
  2187         BasePointsCount: Succ(High(Template34Points));
  2187         BasePointsCount: Succ(High(Template34Points));
  2188         FillPoints: @Template34FPoints;
  2188         FillPoints: @Template34FPoints;
  2189         FillPointsCount: Succ(High(Template34FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2189         FillPointsCount: Succ(High(Template34FPoints));
  2190         BezierizeCount: 2;
  2190         BezierizeCount: 2;
  2191         RandPassesCount: 6;
  2191         RandPassesCount: 6;
  2192         TemplateHeight: 1424; TemplateWidth: 4096;
  2192         TemplateHeight: 1424; TemplateWidth: 4096;
  2193         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2193         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2194         hasGirders: true;
  2194         hasGirders: true;
  2195         MaxHedgeHogs: 36;
  2195         MaxHedgeHogs: 36;
  2196        ),
  2196        ),
  2197        (BasePoints: @Template35Points;
  2197        (BasePoints: @Template35Points;
  2198         BasePointsCount: Succ(High(Template35Points));
  2198         BasePointsCount: Succ(High(Template35Points));
  2199         FillPoints: @Template35FPoints;
  2199         FillPoints: @Template35FPoints;
  2200         FillPointsCount: Succ(High(Template35FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2200         FillPointsCount: Succ(High(Template35FPoints));
  2201         BezierizeCount: 3;
  2201         BezierizeCount: 3;
  2202         RandPassesCount: 7;
  2202         RandPassesCount: 7;
  2203         TemplateHeight: 1424; TemplateWidth: 4096;
  2203         TemplateHeight: 1424; TemplateWidth: 4096;
  2204         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2204         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2205         hasGirders: true;
  2205         hasGirders: true;
  2206         MaxHedgeHogs: 36;
  2206         MaxHedgeHogs: 36;
  2207        ),
  2207        ),
  2208        (BasePoints: @Template36Points;
  2208        (BasePoints: @Template36Points;
  2209         BasePointsCount: Succ(High(Template36Points));
  2209         BasePointsCount: Succ(High(Template36Points));
  2210         FillPoints: @Template36FPoints;
  2210         FillPoints: @Template36FPoints;
  2211         FillPointsCount: Succ(High(Template36FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2211         FillPointsCount: Succ(High(Template36FPoints));
  2212         BezierizeCount: 4;
  2212         BezierizeCount: 4;
  2213         RandPassesCount: 12;
  2213         RandPassesCount: 12;
  2214         TemplateHeight: 1024; TemplateWidth: 4096;
  2214         TemplateHeight: 1024; TemplateWidth: 4096;
  2215         canMirror: true; canFlip: false; isNegative: true; canInvert: false;
  2215         canMirror: true; canFlip: false; isNegative: true; canInvert: false;
  2216         hasGirders: false;
  2216         hasGirders: false;
  2217         MaxHedgeHogs: 32;
  2217         MaxHedgeHogs: 32;
  2218        ),
  2218        ),
  2219        (BasePoints: @Template37Points;
  2219        (BasePoints: @Template37Points;
  2220         BasePointsCount: Succ(High(Template37Points));
  2220         BasePointsCount: Succ(High(Template37Points));
  2221         FillPoints: @Template37FPoints;
  2221         FillPoints: @Template37FPoints;
  2222         FillPointsCount: Succ(High(Template37FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2222         FillPointsCount: Succ(High(Template37FPoints));
  2223         BezierizeCount: 3;
  2223         BezierizeCount: 3;
  2224         RandPassesCount: 3;
  2224         RandPassesCount: 3;
  2225         TemplateHeight: 2048; TemplateWidth: 4096;
  2225         TemplateHeight: 2048; TemplateWidth: 4096;
  2226         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2226         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2227         hasGirders: true;
  2227         hasGirders: true;
  2228         MaxHedgeHogs: 48;
  2228         MaxHedgeHogs: 48;
  2229        ),
  2229        ),
  2230        (BasePoints: @Template38Points;
  2230        (BasePoints: @Template38Points;
  2231         BasePointsCount: Succ(High(Template38Points));
  2231         BasePointsCount: Succ(High(Template38Points));
  2232         FillPoints: @Template38FPoints;
  2232         FillPoints: @Template38FPoints;
  2233         FillPointsCount: Succ(High(Template38FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2233         FillPointsCount: Succ(High(Template38FPoints));
  2234         BezierizeCount: 4;
  2234         BezierizeCount: 4;
  2235         RandPassesCount: 4;
  2235         RandPassesCount: 4;
  2236         TemplateHeight: 2048; TemplateWidth: 4096;
  2236         TemplateHeight: 2048; TemplateWidth: 4096;
  2237         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2237         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2238         hasGirders: true;
  2238         hasGirders: true;
  2239         MaxHedgeHogs: 48;
  2239         MaxHedgeHogs: 48;
  2240        ),
  2240        ),
  2241        (BasePoints: @Template39Points;
  2241        (BasePoints: @Template39Points;
  2242         BasePointsCount: Succ(High(Template39Points));
  2242         BasePointsCount: Succ(High(Template39Points));
  2243         FillPoints: @Template39FPoints;
  2243         FillPoints: @Template39FPoints;
  2244         FillPointsCount: Succ(High(Template39FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2244         FillPointsCount: Succ(High(Template39FPoints));
  2245         BezierizeCount: 3;
  2245         BezierizeCount: 3;
  2246         RandPassesCount: 3;
  2246         RandPassesCount: 3;
  2247         TemplateHeight: 512; TemplateWidth: 1536;
  2247         TemplateHeight: 512; TemplateWidth: 1536;
  2248         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2248         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2249         hasGirders: false;
  2249         hasGirders: false;
  2250         MaxHedgeHogs: 8;
  2250         MaxHedgeHogs: 8;
  2251        ),
  2251        ),
  2252        (BasePoints: @Template40Points;
  2252        (BasePoints: @Template40Points;
  2253         BasePointsCount: Succ(High(Template40Points));
  2253         BasePointsCount: Succ(High(Template40Points));
  2254         FillPoints: @Template40FPoints;
  2254         FillPoints: @Template40FPoints;
  2255         FillPointsCount: Succ(High(Template40FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2255         FillPointsCount: Succ(High(Template40FPoints));
  2256         BezierizeCount: 3;
  2256         BezierizeCount: 3;
  2257         RandPassesCount: 3;
  2257         RandPassesCount: 3;
  2258         TemplateHeight: 1024; TemplateWidth: 1024;
  2258         TemplateHeight: 1024; TemplateWidth: 1024;
  2259         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2259         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2260         hasGirders: false;
  2260         hasGirders: false;
  2261         MaxHedgeHogs: 8;
  2261         MaxHedgeHogs: 8;
  2262        ),
  2262        ),
  2263        (BasePoints: @Template41Points;
  2263        (BasePoints: @Template41Points;
  2264         BasePointsCount: Succ(High(Template41Points));
  2264         BasePointsCount: Succ(High(Template41Points));
  2265         FillPoints: @Template41FPoints;
  2265         FillPoints: @Template41FPoints;
  2266         FillPointsCount: Succ(High(Template41FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2266         FillPointsCount: Succ(High(Template41FPoints));
  2267         BezierizeCount: 2;
  2267         BezierizeCount: 2;
  2268         RandPassesCount: 9;
  2268         RandPassesCount: 9;
  2269         TemplateHeight: 2048; TemplateWidth: 4096;
  2269         TemplateHeight: 2048; TemplateWidth: 4096;
  2270         canMirror: true; canFlip: true; isNegative: false; canInvert: false;
  2270         canMirror: true; canFlip: true; isNegative: false; canInvert: false;
  2271         hasGirders: true;
  2271         hasGirders: true;
  2272         MaxHedgeHogs: 48;
  2272         MaxHedgeHogs: 48;
  2273        ),
  2273        ),
  2274        (BasePoints: @Template42Points;
  2274        (BasePoints: @Template42Points;
  2275         BasePointsCount: Succ(High(Template42Points));
  2275         BasePointsCount: Succ(High(Template42Points));
  2276         FillPoints: @Template42FPoints;
  2276         FillPoints: @Template42FPoints;
  2277         FillPointsCount: Succ(High(Template42FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2277         FillPointsCount: Succ(High(Template42FPoints));
  2278         BezierizeCount: 3;
  2278         BezierizeCount: 3;
  2279         RandPassesCount: 3;
  2279         RandPassesCount: 3;
  2280         TemplateHeight: 512; TemplateWidth: 1536;
  2280         TemplateHeight: 512; TemplateWidth: 1536;
  2281         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2281         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2282         hasGirders: false;
  2282         hasGirders: false;
  2283         MaxHedgeHogs: 8;
  2283         MaxHedgeHogs: 8;
  2284        ),
  2284        ),
  2285        (BasePoints: @Template43Points;
  2285        (BasePoints: @Template43Points;
  2286         BasePointsCount: Succ(High(Template43Points));
  2286         BasePointsCount: Succ(High(Template43Points));
  2287         FillPoints: @Template43FPoints;
  2287         FillPoints: @Template43FPoints;
  2288         FillPointsCount: Succ(High(Template43FPoints)){$IFDEF PAS2C}-1{$ENDIF};
  2288         FillPointsCount: Succ(High(Template43FPoints));
  2289         BezierizeCount: 2;
  2289         BezierizeCount: 2;
  2290         RandPassesCount: 9;
  2290         RandPassesCount: 9;
  2291         TemplateHeight: 4096; TemplateWidth: 4096;
  2291         TemplateHeight: 4096; TemplateWidth: 4096;
  2292         canMirror: true; canFlip: true; isNegative: false; canInvert: false;
  2292         canMirror: true; canFlip: true; isNegative: false; canInvert: false;
  2293         hasGirders: true;
  2293         hasGirders: true;