hedgewars/uLandTemplates.pas
changeset 7046 acc6b5159cde
parent 7035 823caba67738
child 7480 536f5f3260f1
equal deleted inserted replaced
7045:197bf70f8599 7046:acc6b5159cde
    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..0] of TPoint =
    66       Template0FPoints: array[0..0] of TPoint =
    67       (
    67       (
    68        (x: 1023; y:    0)
    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),
    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..0] of TPoint =
    90       Template1FPoints: array[0..0] of TPoint =
    91       (
    91       (
    92        (x: 1023; y:    0)
    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),
   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..0] of TPoint =
   120       Template2FPoints: array[0..0] of TPoint =
   121       (
   121       (
   122        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   145       Template3FPoints: array[0..0] of TPoint =
   146       (
   146       (
   147        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   176       Template4FPoints: array[0..0] of TPoint =
   177       (
   177       (
   178        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   200       Template5FPoints: array[0..0] of TPoint =
   201       (
   201       (
   202        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   222       Template6FPoints: array[0..0] of TPoint =
   223       (
   223       (
   224        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   236       Template7FPoints: array[0..0] of TPoint =
   237       (
   237       (
   238        (x: 1023; y:    0)
   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       (
   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..0] of TPoint =
   265       Template8FPoints: array[0..0] of TPoint =
   266       (
   266       (
   267        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   305       Template9FPoints: array[0..0] of TPoint =
   306       (
   306       (
   307        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   327       Template10FPoints: array[0..0] of TPoint =
   328       (
   328       (
   329        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   345       Template11FPoints: array[0..0] of TPoint =
   346       (
   346       (
   347        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   367       Template12FPoints: array[0..0] of TPoint =
   368       (
   368       (
   369        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   391       Template13FPoints: array[0..0] of TPoint =
   392       (
   392       (
   393        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   413       Template14FPoints: array[0..0] of TPoint =
   414       (
   414       (
   415        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   445       Template15FPoints: array[0..0] of TPoint =
   446       (
   446       (
   447        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   482       Template16FPoints: array[0..0] of TPoint =
   483       (
   483       (
   484        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   504       Template17FPoints: array[0..0] of TPoint =
   505       (
   505       (
   506        (x: 1023; y:    0)
   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),
   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..0] of TPoint =
   545       Template18FPoints: array[0..0] of TPoint =
   546       (
   546       (
   547        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   598       Template19FPoints: array[0..0] of TPoint =
   599       (
   599       (
   600        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   652       Template20FPoints: array[0..0] of TPoint =
   653       (
   653       (
   654        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   691       Template21FPoints: array[0..0] of TPoint =
   692       (
   692       (
   693        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   738       Template22FPoints: array[0..0] of TPoint =
   739       (
   739       (
   740        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   776       Template23FPoints: array[0..0] of TPoint =
   777       (
   777       (
   778        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   808       Template24FPoints: array[0..0] of TPoint =
   809       (
   809       (
   810        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   836       Template25FPoints: array[0..0] of TPoint =
   837       (
   837       (
   838        (x: 2047; y:    0)
   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       (
   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..0] of TPoint =
   897       Template26FPoints: array[0..0] of TPoint =
   898       (
   898       (
   899        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   948       Template27FPoints: array[0..0] of TPoint =
   949       (
   949       (
   950        (x: 2047; y:    0)
   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),
   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..0] of TPoint =
   986       Template28FPoints: array[0..0] of TPoint =
   987       (
   987       (
   988        (x: 2047; y:    0)
   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),
  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..0] of TPoint =
  1032       Template29FPoints: array[0..0] of TPoint =
  1033       (
  1033       (
  1034        (x: 2047; y:    0)
  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),
  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..0] of TPoint =
  1071       Template30FPoints: array[0..0] of TPoint =
  1072       (
  1072       (
  1073        (x: 2047; y:    0)
  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),
  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..0] of TPoint =
  1112       Template31FPoints: array[0..0] of TPoint =
  1113       (
  1113       (
  1114        (x: 2047; y:    0)
  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),
  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..0] of TPoint =
  1150       Template32FPoints: array[0..0] of TPoint =
  1151       (
  1151       (
  1152          (x: 2047; y:    0)
  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),
  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..0] of TPoint =
  1204       Template33FPoints: array[0..0] of TPoint =
  1205       (
  1205       (
  1206        (x: 2047; y:    0)
  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),
  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..0] of TPoint =
  1238       Template34FPoints: array[0..0] of TPoint =
  1239       (
  1239       (
  1240        (x: 2047; y:    0)
  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),
  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..0] of TPoint =
  1295       Template35FPoints: array[0..0] of TPoint =
  1296       (
  1296       (
  1297        (x: 2047; y:    0)
  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       (
  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..0] of TPoint =
  1323       Template36FPoints: array[0..0] of TPoint =
  1324       (
  1324       (
  1325        (x: 2047; y:    0)
  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 //////////////////////////////////////////////////////////////////////////////
  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..0] of TPoint =
  1364       Template37FPoints: array[0..0] of TPoint =
  1365       (
  1365       (
  1366        (x: 2047; y:    0)
  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),
  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..0] of TPoint =
  1389       Template38FPoints: array[0..0] of TPoint =
  1390       (
  1390       (
  1391        (x: 2047; y:    0)
  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       (
  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..0] of TPoint =
  1438       Template39FPoints: array[0..0] of TPoint =
  1439       (
  1439       (
  1440        (x: 512; y:    0)
  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),
  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..0] of TPoint =
  1453       Template40FPoints: array[0..0] of TPoint =
  1454       (
  1454       (
  1455        (x: 512; y:    0)
  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:   1; h:   1),
  1460        (x:   95; y: 500; w:   1; h:   1),
  1545        (x: 4050; y: 125; w:  25; h:  50),
  1545        (x: 4050; y: 125; w:  25; h:  50),
  1546        (x: NTPX; y:   0; w:   1; h:   1)
  1546        (x: NTPX; y:   0; w:   1; h:   1)
  1547       );
  1547       );
  1548       Template41FPoints: array[0..0] of TPoint =
  1548       Template41FPoints: array[0..0] of TPoint =
  1549       (
  1549       (
  1550        (x: 2047; y:    0)
  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),
  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..0] of TPoint =
  1570       Template42FPoints: array[0..0] of TPoint =
  1571       (
  1571       (
  1572        (x: 512; y:    0)
  1572        (X: 512; Y:    0)
  1573       );
  1573       );
  1574 
  1574 
  1575 ////////////////////////////////////////////////////////////////////////
  1575 ////////////////////////////////////////////////////////////////////////
  1576 var EdgeTemplates: array[0..42] of TEdgeTemplate =
  1576 var EdgeTemplates: array[0..42] of TEdgeTemplate =
  1577       (
  1577       (
  1582         BezierizeCount: 3;
  1582         BezierizeCount: 3;
  1583         RandPassesCount: 8;
  1583         RandPassesCount: 8;
  1584         TemplateHeight: 1424; TemplateWidth: 2848;
  1584         TemplateHeight: 1424; TemplateWidth: 2848;
  1585         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1585         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1586         hasGirders: true;
  1586         hasGirders: true;
  1587         MaxHedgehogs: 18;
  1587         MaxHedgeHogs: 18;
  1588        ),
  1588        ),
  1589        (BasePoints: @Template1Points;
  1589        (BasePoints: @Template1Points;
  1590         BasePointsCount: Succ(High(Template1Points));
  1590         BasePointsCount: Succ(High(Template1Points));
  1591         FillPoints: @Template1FPoints;
  1591         FillPoints: @Template1FPoints;
  1592         FillPointsCount: Succ(High(Template1FPoints));
  1592         FillPointsCount: Succ(High(Template1FPoints));
  1593         BezierizeCount: 3;
  1593         BezierizeCount: 3;
  1594         RandPassesCount: 7;
  1594         RandPassesCount: 7;
  1595         TemplateHeight: 1424; TemplateWidth: 2848;
  1595         TemplateHeight: 1424; TemplateWidth: 2848;
  1596         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1596         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1597         hasGirders: true;
  1597         hasGirders: true;
  1598         MaxHedgehogs: 18;
  1598         MaxHedgeHogs: 18;
  1599        ),
  1599        ),
  1600        (BasePoints: @Template2Points;
  1600        (BasePoints: @Template2Points;
  1601         BasePointsCount: Succ(High(Template2Points));
  1601         BasePointsCount: Succ(High(Template2Points));
  1602         FillPoints: @Template2FPoints;
  1602         FillPoints: @Template2FPoints;
  1603         FillPointsCount: Succ(High(Template2FPoints));
  1603         FillPointsCount: Succ(High(Template2FPoints));
  1604         BezierizeCount: 2;
  1604         BezierizeCount: 2;
  1605         RandPassesCount: 6;
  1605         RandPassesCount: 6;
  1606         TemplateHeight: 1424; TemplateWidth: 2848;
  1606         TemplateHeight: 1424; TemplateWidth: 2848;
  1607         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1607         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1608         hasGirders: true;
  1608         hasGirders: true;
  1609         MaxHedgehogs: 18;
  1609         MaxHedgeHogs: 18;
  1610        ),
  1610        ),
  1611        (BasePoints: @Template3Points;
  1611        (BasePoints: @Template3Points;
  1612         BasePointsCount: Succ(High(Template3Points));
  1612         BasePointsCount: Succ(High(Template3Points));
  1613         FillPoints: @Template3FPoints;
  1613         FillPoints: @Template3FPoints;
  1614         FillPointsCount: Succ(High(Template3FPoints));
  1614         FillPointsCount: Succ(High(Template3FPoints));
  1615         BezierizeCount: 3;
  1615         BezierizeCount: 3;
  1616         RandPassesCount: 4;
  1616         RandPassesCount: 4;
  1617         TemplateHeight: 1424; TemplateWidth: 2848;
  1617         TemplateHeight: 1424; TemplateWidth: 2848;
  1618         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1618         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1619         hasGirders: true;
  1619         hasGirders: true;
  1620         MaxHedgehogs: 18;
  1620         MaxHedgeHogs: 18;
  1621        ),
  1621        ),
  1622        (BasePoints: @Template4Points;
  1622        (BasePoints: @Template4Points;
  1623         BasePointsCount: Succ(High(Template4Points));
  1623         BasePointsCount: Succ(High(Template4Points));
  1624         FillPoints: @Template4FPoints;
  1624         FillPoints: @Template4FPoints;
  1625         FillPointsCount: Succ(High(Template4FPoints));
  1625         FillPointsCount: Succ(High(Template4FPoints));
  1626         BezierizeCount: 3;
  1626         BezierizeCount: 3;
  1627         RandPassesCount: 4;
  1627         RandPassesCount: 4;
  1628         TemplateHeight: 1424; TemplateWidth: 2848;
  1628         TemplateHeight: 1424; TemplateWidth: 2848;
  1629         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1629         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1630         hasGirders: true;
  1630         hasGirders: true;
  1631         MaxHedgehogs: 18;
  1631         MaxHedgeHogs: 18;
  1632        ),
  1632        ),
  1633        (BasePoints: @Template5Points;
  1633        (BasePoints: @Template5Points;
  1634         BasePointsCount: Succ(High(Template5Points));
  1634         BasePointsCount: Succ(High(Template5Points));
  1635         FillPoints: @Template5FPoints;
  1635         FillPoints: @Template5FPoints;
  1636         FillPointsCount: Succ(High(Template5FPoints));
  1636         FillPointsCount: Succ(High(Template5FPoints));
  1637         BezierizeCount: 2;
  1637         BezierizeCount: 2;
  1638         RandPassesCount: 8;
  1638         RandPassesCount: 8;
  1639         TemplateHeight: 1424; TemplateWidth: 2848;
  1639         TemplateHeight: 1424; TemplateWidth: 2848;
  1640         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1640         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1641         hasGirders: true;
  1641         hasGirders: true;
  1642         MaxHedgehogs: 18;
  1642         MaxHedgeHogs: 18;
  1643        ),
  1643        ),
  1644        (BasePoints: @Template6Points;
  1644        (BasePoints: @Template6Points;
  1645         BasePointsCount: Succ(High(Template6Points));
  1645         BasePointsCount: Succ(High(Template6Points));
  1646         FillPoints: @Template6FPoints;
  1646         FillPoints: @Template6FPoints;
  1647         FillPointsCount: Succ(High(Template6FPoints));
  1647         FillPointsCount: Succ(High(Template6FPoints));
  1648         BezierizeCount: 2;
  1648         BezierizeCount: 2;
  1649         RandPassesCount: 5;
  1649         RandPassesCount: 5;
  1650         TemplateHeight: 1424; TemplateWidth: 2848;
  1650         TemplateHeight: 1424; TemplateWidth: 2848;
  1651         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1651         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1652         hasGirders: true;
  1652         hasGirders: true;
  1653         MaxHedgehogs: 18;
  1653         MaxHedgeHogs: 18;
  1654        ),
  1654        ),
  1655        (BasePoints: @Template7Points;
  1655        (BasePoints: @Template7Points;
  1656         BasePointsCount: Succ(High(Template7Points));
  1656         BasePointsCount: Succ(High(Template7Points));
  1657         FillPoints: @Template7FPoints;
  1657         FillPoints: @Template7FPoints;
  1658         FillPointsCount: Succ(High(Template7FPoints));
  1658         FillPointsCount: Succ(High(Template7FPoints));
  1659         BezierizeCount: 4;
  1659         BezierizeCount: 4;
  1660         RandPassesCount: 4;
  1660         RandPassesCount: 4;
  1661         TemplateHeight: 1424; TemplateWidth: 2848;
  1661         TemplateHeight: 1424; TemplateWidth: 2848;
  1662         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1662         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1663         hasGirders: true;
  1663         hasGirders: true;
  1664         MaxHedgehogs: 18;
  1664         MaxHedgeHogs: 18;
  1665        ),
  1665        ),
  1666        (BasePoints: @Template8Points;
  1666        (BasePoints: @Template8Points;
  1667         BasePointsCount: Succ(High(Template8Points));
  1667         BasePointsCount: Succ(High(Template8Points));
  1668         FillPoints: @Template8FPoints;
  1668         FillPoints: @Template8FPoints;
  1669         FillPointsCount: Succ(High(Template8FPoints));
  1669         FillPointsCount: Succ(High(Template8FPoints));
  1670         BezierizeCount: 2;
  1670         BezierizeCount: 2;
  1671         RandPassesCount: 7;
  1671         RandPassesCount: 7;
  1672         TemplateHeight: 1424; TemplateWidth: 2848;
  1672         TemplateHeight: 1424; TemplateWidth: 2848;
  1673         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1673         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1674         hasGirders: true;
  1674         hasGirders: true;
  1675         MaxHedgehogs: 18;
  1675         MaxHedgeHogs: 18;
  1676        ),
  1676        ),
  1677        (BasePoints: @Template9Points;
  1677        (BasePoints: @Template9Points;
  1678         BasePointsCount: Succ(High(Template9Points));
  1678         BasePointsCount: Succ(High(Template9Points));
  1679         FillPoints: @Template9FPoints;
  1679         FillPoints: @Template9FPoints;
  1680         FillPointsCount: Succ(High(Template9FPoints));
  1680         FillPointsCount: Succ(High(Template9FPoints));
  1681         BezierizeCount: 1;
  1681         BezierizeCount: 1;
  1682         RandPassesCount: 5;
  1682         RandPassesCount: 5;
  1683         TemplateHeight: 1424; TemplateWidth: 2848;
  1683         TemplateHeight: 1424; TemplateWidth: 2848;
  1684         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1684         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1685         hasGirders: true;
  1685         hasGirders: true;
  1686         MaxHedgehogs: 18;
  1686         MaxHedgeHogs: 18;
  1687        ),
  1687        ),
  1688        (BasePoints: @Template10Points;
  1688        (BasePoints: @Template10Points;
  1689         BasePointsCount: Succ(High(Template10Points));
  1689         BasePointsCount: Succ(High(Template10Points));
  1690         FillPoints: @Template10FPoints;
  1690         FillPoints: @Template10FPoints;
  1691         FillPointsCount: Succ(High(Template10FPoints));
  1691         FillPointsCount: Succ(High(Template10FPoints));
  1692         BezierizeCount: 2;
  1692         BezierizeCount: 2;
  1693         RandPassesCount: 6;
  1693         RandPassesCount: 6;
  1694         TemplateHeight: 1424; TemplateWidth: 2848;
  1694         TemplateHeight: 1424; TemplateWidth: 2848;
  1695         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1695         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1696         hasGirders: true;
  1696         hasGirders: true;
  1697         MaxHedgehogs: 18;
  1697         MaxHedgeHogs: 18;
  1698        ),
  1698        ),
  1699        (BasePoints: @Template11Points;
  1699        (BasePoints: @Template11Points;
  1700         BasePointsCount: Succ(High(Template11Points));
  1700         BasePointsCount: Succ(High(Template11Points));
  1701         FillPoints: @Template11FPoints;
  1701         FillPoints: @Template11FPoints;
  1702         FillPointsCount: Succ(High(Template11FPoints));
  1702         FillPointsCount: Succ(High(Template11FPoints));
  1703         BezierizeCount: 1;
  1703         BezierizeCount: 1;
  1704         RandPassesCount: 8;
  1704         RandPassesCount: 8;
  1705         TemplateHeight: 1424; TemplateWidth: 2848;
  1705         TemplateHeight: 1424; TemplateWidth: 2848;
  1706         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1706         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1707         hasGirders: true;
  1707         hasGirders: true;
  1708         MaxHedgehogs: 18;
  1708         MaxHedgeHogs: 18;
  1709        ),
  1709        ),
  1710        (BasePoints: @Template12Points;
  1710        (BasePoints: @Template12Points;
  1711         BasePointsCount: Succ(High(Template12Points));
  1711         BasePointsCount: Succ(High(Template12Points));
  1712         FillPoints: @Template12FPoints;
  1712         FillPoints: @Template12FPoints;
  1713         FillPointsCount: Succ(High(Template12FPoints));
  1713         FillPointsCount: Succ(High(Template12FPoints));
  1714         BezierizeCount: 3;
  1714         BezierizeCount: 3;
  1715         RandPassesCount: 8;
  1715         RandPassesCount: 8;
  1716         TemplateHeight: 1424; TemplateWidth: 2848;
  1716         TemplateHeight: 1424; TemplateWidth: 2848;
  1717         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1717         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1718         hasGirders: true;
  1718         hasGirders: true;
  1719         MaxHedgehogs: 18;
  1719         MaxHedgeHogs: 18;
  1720        ),
  1720        ),
  1721        (BasePoints: @Template13Points;
  1721        (BasePoints: @Template13Points;
  1722         BasePointsCount: Succ(High(Template13Points));
  1722         BasePointsCount: Succ(High(Template13Points));
  1723         FillPoints: @Template13FPoints;
  1723         FillPoints: @Template13FPoints;
  1724         FillPointsCount: Succ(High(Template13FPoints));
  1724         FillPointsCount: Succ(High(Template13FPoints));
  1725         BezierizeCount: 3;
  1725         BezierizeCount: 3;
  1726         RandPassesCount: 5;
  1726         RandPassesCount: 5;
  1727         TemplateHeight: 1424; TemplateWidth: 2848;
  1727         TemplateHeight: 1424; TemplateWidth: 2848;
  1728         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1728         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1729         hasGirders: true;
  1729         hasGirders: true;
  1730         MaxHedgehogs: 18;
  1730         MaxHedgeHogs: 18;
  1731        ),
  1731        ),
  1732        (BasePoints: @Template14Points;
  1732        (BasePoints: @Template14Points;
  1733         BasePointsCount: Succ(High(Template14Points));
  1733         BasePointsCount: Succ(High(Template14Points));
  1734         FillPoints: @Template14FPoints;
  1734         FillPoints: @Template14FPoints;
  1735         FillPointsCount: Succ(High(Template14FPoints));
  1735         FillPointsCount: Succ(High(Template14FPoints));
  1736         BezierizeCount: 3;
  1736         BezierizeCount: 3;
  1737         RandPassesCount: 7;
  1737         RandPassesCount: 7;
  1738         TemplateHeight: 1424; TemplateWidth: 2848;
  1738         TemplateHeight: 1424; TemplateWidth: 2848;
  1739         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1739         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1740         hasGirders: true;
  1740         hasGirders: true;
  1741         MaxHedgehogs: 18;
  1741         MaxHedgeHogs: 18;
  1742        ),
  1742        ),
  1743        (BasePoints: @Template15Points;
  1743        (BasePoints: @Template15Points;
  1744         BasePointsCount: Succ(High(Template15Points));
  1744         BasePointsCount: Succ(High(Template15Points));
  1745         FillPoints: @Template15FPoints;
  1745         FillPoints: @Template15FPoints;
  1746         FillPointsCount: Succ(High(Template15FPoints));
  1746         FillPointsCount: Succ(High(Template15FPoints));
  1747         BezierizeCount: 2;
  1747         BezierizeCount: 2;
  1748         RandPassesCount: 6;
  1748         RandPassesCount: 6;
  1749         TemplateHeight: 1424; TemplateWidth: 2848;
  1749         TemplateHeight: 1424; TemplateWidth: 2848;
  1750         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1750         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1751         hasGirders: true;
  1751         hasGirders: true;
  1752         MaxHedgehogs: 18;
  1752         MaxHedgeHogs: 18;
  1753        ),
  1753        ),
  1754        (BasePoints: @Template16Points;
  1754        (BasePoints: @Template16Points;
  1755         BasePointsCount: Succ(High(Template16Points));
  1755         BasePointsCount: Succ(High(Template16Points));
  1756         FillPoints: @Template16FPoints;
  1756         FillPoints: @Template16FPoints;
  1757         FillPointsCount: Succ(High(Template16FPoints));
  1757         FillPointsCount: Succ(High(Template16FPoints));
  1758         BezierizeCount: 2;
  1758         BezierizeCount: 2;
  1759         RandPassesCount: 6;
  1759         RandPassesCount: 6;
  1760         TemplateHeight: 1424; TemplateWidth: 2848;
  1760         TemplateHeight: 1424; TemplateWidth: 2848;
  1761         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1761         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1762         hasGirders: true;
  1762         hasGirders: true;
  1763         MaxHedgehogs: 18;
  1763         MaxHedgeHogs: 18;
  1764        ),
  1764        ),
  1765        (BasePoints: @Template17Points;
  1765        (BasePoints: @Template17Points;
  1766         BasePointsCount: Succ(High(Template17Points));
  1766         BasePointsCount: Succ(High(Template17Points));
  1767         FillPoints: @Template17FPoints;
  1767         FillPoints: @Template17FPoints;
  1768         FillPointsCount: Succ(High(Template17FPoints));
  1768         FillPointsCount: Succ(High(Template17FPoints));
  1769         BezierizeCount: 3;
  1769         BezierizeCount: 3;
  1770         RandPassesCount: 7;
  1770         RandPassesCount: 7;
  1771         TemplateHeight: 1424; TemplateWidth: 2848;
  1771         TemplateHeight: 1424; TemplateWidth: 2848;
  1772         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1772         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1773         hasGirders: true;
  1773         hasGirders: true;
  1774         MaxHedgehogs: 18;
  1774         MaxHedgeHogs: 18;
  1775        ),
  1775        ),
  1776        (BasePoints: @Template18Points;
  1776        (BasePoints: @Template18Points;
  1777         BasePointsCount: Succ(High(Template18Points));
  1777         BasePointsCount: Succ(High(Template18Points));
  1778         FillPoints: @Template18FPoints;
  1778         FillPoints: @Template18FPoints;
  1779         FillPointsCount: Succ(High(Template18FPoints));
  1779         FillPointsCount: Succ(High(Template18FPoints));
  1780         BezierizeCount: 3;
  1780         BezierizeCount: 3;
  1781         RandPassesCount: 8;
  1781         RandPassesCount: 8;
  1782         TemplateHeight: 1424; TemplateWidth: 3900;
  1782         TemplateHeight: 1424; TemplateWidth: 3900;
  1783         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1783         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1784         hasGirders: true;
  1784         hasGirders: true;
  1785         MaxHedgehogs: 36;
  1785         MaxHedgeHogs: 36;
  1786        ),
  1786        ),
  1787        (BasePoints: @Template19Points;
  1787        (BasePoints: @Template19Points;
  1788         BasePointsCount: Succ(High(Template19Points));
  1788         BasePointsCount: Succ(High(Template19Points));
  1789         FillPoints: @Template19FPoints;
  1789         FillPoints: @Template19FPoints;
  1790         FillPointsCount: Succ(High(Template19FPoints));
  1790         FillPointsCount: Succ(High(Template19FPoints));
  1791         BezierizeCount: 3;
  1791         BezierizeCount: 3;
  1792         RandPassesCount: 7;
  1792         RandPassesCount: 7;
  1793         TemplateHeight: 1424; TemplateWidth: 3900;
  1793         TemplateHeight: 1424; TemplateWidth: 3900;
  1794         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1794         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1795         hasGirders: true;
  1795         hasGirders: true;
  1796         MaxHedgehogs: 36;
  1796         MaxHedgeHogs: 36;
  1797        ),
  1797        ),
  1798        (BasePoints: @Template20Points;
  1798        (BasePoints: @Template20Points;
  1799         BasePointsCount: Succ(High(Template20Points));
  1799         BasePointsCount: Succ(High(Template20Points));
  1800         FillPoints: @Template20FPoints;
  1800         FillPoints: @Template20FPoints;
  1801         FillPointsCount: Succ(High(Template20FPoints));
  1801         FillPointsCount: Succ(High(Template20FPoints));
  1802         BezierizeCount: 2;
  1802         BezierizeCount: 2;
  1803         RandPassesCount: 6;
  1803         RandPassesCount: 6;
  1804         TemplateHeight: 1424; TemplateWidth: 3900;
  1804         TemplateHeight: 1424; TemplateWidth: 3900;
  1805         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1805         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1806         hasGirders: true;
  1806         hasGirders: true;
  1807         MaxHedgehogs: 36;
  1807         MaxHedgeHogs: 36;
  1808        ),
  1808        ),
  1809        (BasePoints: @Template21Points;
  1809        (BasePoints: @Template21Points;
  1810         BasePointsCount: Succ(High(Template21Points));
  1810         BasePointsCount: Succ(High(Template21Points));
  1811         FillPoints: @Template21FPoints;
  1811         FillPoints: @Template21FPoints;
  1812         FillPointsCount: Succ(High(Template21FPoints));
  1812         FillPointsCount: Succ(High(Template21FPoints));
  1813         BezierizeCount: 3;
  1813         BezierizeCount: 3;
  1814         RandPassesCount: 4;
  1814         RandPassesCount: 4;
  1815         TemplateHeight: 1424; TemplateWidth: 3900;
  1815         TemplateHeight: 1424; TemplateWidth: 3900;
  1816         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1816         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1817         hasGirders: true;
  1817         hasGirders: true;
  1818         MaxHedgehogs: 36;
  1818         MaxHedgeHogs: 36;
  1819        ),
  1819        ),
  1820        (BasePoints: @Template22Points;
  1820        (BasePoints: @Template22Points;
  1821         BasePointsCount: Succ(High(Template22Points));
  1821         BasePointsCount: Succ(High(Template22Points));
  1822         FillPoints: @Template22FPoints;
  1822         FillPoints: @Template22FPoints;
  1823         FillPointsCount: Succ(High(Template22FPoints));
  1823         FillPointsCount: Succ(High(Template22FPoints));
  1824         BezierizeCount: 3;
  1824         BezierizeCount: 3;
  1825         RandPassesCount: 4;
  1825         RandPassesCount: 4;
  1826         TemplateHeight: 1424; TemplateWidth: 3900;
  1826         TemplateHeight: 1424; TemplateWidth: 3900;
  1827         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1827         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1828         hasGirders: true;
  1828         hasGirders: true;
  1829         MaxHedgehogs: 36;
  1829         MaxHedgeHogs: 36;
  1830        ),
  1830        ),
  1831        (BasePoints: @Template23Points;
  1831        (BasePoints: @Template23Points;
  1832         BasePointsCount: Succ(High(Template23Points));
  1832         BasePointsCount: Succ(High(Template23Points));
  1833         FillPoints: @Template23FPoints;
  1833         FillPoints: @Template23FPoints;
  1834         FillPointsCount: Succ(High(Template23FPoints));
  1834         FillPointsCount: Succ(High(Template23FPoints));
  1835         BezierizeCount: 2;
  1835         BezierizeCount: 2;
  1836         RandPassesCount: 8;
  1836         RandPassesCount: 8;
  1837         TemplateHeight: 1424; TemplateWidth: 3900;
  1837         TemplateHeight: 1424; TemplateWidth: 3900;
  1838         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1838         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1839         hasGirders: true;
  1839         hasGirders: true;
  1840         MaxHedgehogs: 36;
  1840         MaxHedgeHogs: 36;
  1841        ),
  1841        ),
  1842        (BasePoints: @Template24Points;
  1842        (BasePoints: @Template24Points;
  1843         BasePointsCount: Succ(High(Template24Points));
  1843         BasePointsCount: Succ(High(Template24Points));
  1844         FillPoints: @Template24FPoints;
  1844         FillPoints: @Template24FPoints;
  1845         FillPointsCount: Succ(High(Template24FPoints));
  1845         FillPointsCount: Succ(High(Template24FPoints));
  1846         BezierizeCount: 2;
  1846         BezierizeCount: 2;
  1847         RandPassesCount: 5;
  1847         RandPassesCount: 5;
  1848         TemplateHeight: 1424; TemplateWidth: 3900;
  1848         TemplateHeight: 1424; TemplateWidth: 3900;
  1849         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1849         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1850         hasGirders: true;
  1850         hasGirders: true;
  1851         MaxHedgehogs: 36;
  1851         MaxHedgeHogs: 36;
  1852        ),
  1852        ),
  1853        (BasePoints: @Template25Points;
  1853        (BasePoints: @Template25Points;
  1854         BasePointsCount: Succ(High(Template25Points));
  1854         BasePointsCount: Succ(High(Template25Points));
  1855         FillPoints: @Template25FPoints;
  1855         FillPoints: @Template25FPoints;
  1856         FillPointsCount: Succ(High(Template25FPoints));
  1856         FillPointsCount: Succ(High(Template25FPoints));
  1857         BezierizeCount: 4;
  1857         BezierizeCount: 4;
  1858         RandPassesCount: 4;
  1858         RandPassesCount: 4;
  1859         TemplateHeight: 1424; TemplateWidth: 3900;
  1859         TemplateHeight: 1424; TemplateWidth: 3900;
  1860         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1860         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1861         hasGirders: true;
  1861         hasGirders: true;
  1862         MaxHedgehogs: 36;
  1862         MaxHedgeHogs: 36;
  1863        ),
  1863        ),
  1864        (BasePoints: @Template26Points;
  1864        (BasePoints: @Template26Points;
  1865         BasePointsCount: Succ(High(Template26Points));
  1865         BasePointsCount: Succ(High(Template26Points));
  1866         FillPoints: @Template26FPoints;
  1866         FillPoints: @Template26FPoints;
  1867         FillPointsCount: Succ(High(Template26FPoints));
  1867         FillPointsCount: Succ(High(Template26FPoints));
  1868         BezierizeCount: 2;
  1868         BezierizeCount: 2;
  1869         RandPassesCount: 7;
  1869         RandPassesCount: 7;
  1870         TemplateHeight: 1424; TemplateWidth: 3900;
  1870         TemplateHeight: 1424; TemplateWidth: 3900;
  1871         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1871         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1872         hasGirders: true;
  1872         hasGirders: true;
  1873         MaxHedgehogs: 36;
  1873         MaxHedgeHogs: 36;
  1874        ),
  1874        ),
  1875        (BasePoints: @Template27Points;
  1875        (BasePoints: @Template27Points;
  1876         BasePointsCount: Succ(High(Template27Points));
  1876         BasePointsCount: Succ(High(Template27Points));
  1877         FillPoints: @Template27FPoints;
  1877         FillPoints: @Template27FPoints;
  1878         FillPointsCount: Succ(High(Template27FPoints));
  1878         FillPointsCount: Succ(High(Template27FPoints));
  1879         BezierizeCount: 1;
  1879         BezierizeCount: 1;
  1880         RandPassesCount: 5;
  1880         RandPassesCount: 5;
  1881         TemplateHeight: 1424; TemplateWidth: 3900;
  1881         TemplateHeight: 1424; TemplateWidth: 3900;
  1882         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1882         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1883         hasGirders: true;
  1883         hasGirders: true;
  1884         MaxHedgehogs: 36;
  1884         MaxHedgeHogs: 36;
  1885        ),
  1885        ),
  1886        (BasePoints: @Template28Points;
  1886        (BasePoints: @Template28Points;
  1887         BasePointsCount: Succ(High(Template28Points));
  1887         BasePointsCount: Succ(High(Template28Points));
  1888         FillPoints: @Template28FPoints;
  1888         FillPoints: @Template28FPoints;
  1889         FillPointsCount: Succ(High(Template28FPoints));
  1889         FillPointsCount: Succ(High(Template28FPoints));
  1890         BezierizeCount: 2;
  1890         BezierizeCount: 2;
  1891         RandPassesCount: 6;
  1891         RandPassesCount: 6;
  1892         TemplateHeight: 1424; TemplateWidth: 3900;
  1892         TemplateHeight: 1424; TemplateWidth: 3900;
  1893         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1893         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1894         hasGirders: true;
  1894         hasGirders: true;
  1895         MaxHedgehogs: 36;
  1895         MaxHedgeHogs: 36;
  1896        ),
  1896        ),
  1897        (BasePoints: @Template29Points;
  1897        (BasePoints: @Template29Points;
  1898         BasePointsCount: Succ(High(Template29Points));
  1898         BasePointsCount: Succ(High(Template29Points));
  1899         FillPoints: @Template29FPoints;
  1899         FillPoints: @Template29FPoints;
  1900         FillPointsCount: Succ(High(Template29FPoints));
  1900         FillPointsCount: Succ(High(Template29FPoints));
  1901         BezierizeCount: 1;
  1901         BezierizeCount: 1;
  1902         RandPassesCount: 8;
  1902         RandPassesCount: 8;
  1903         TemplateHeight: 1424; TemplateWidth: 3900;
  1903         TemplateHeight: 1424; TemplateWidth: 3900;
  1904         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1904         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1905         hasGirders: true;
  1905         hasGirders: true;
  1906         MaxHedgehogs: 36;
  1906         MaxHedgeHogs: 36;
  1907        ),
  1907        ),
  1908        (BasePoints: @Template30Points;
  1908        (BasePoints: @Template30Points;
  1909         BasePointsCount: Succ(High(Template30Points));
  1909         BasePointsCount: Succ(High(Template30Points));
  1910         FillPoints: @Template30FPoints;
  1910         FillPoints: @Template30FPoints;
  1911         FillPointsCount: Succ(High(Template30FPoints));
  1911         FillPointsCount: Succ(High(Template30FPoints));
  1912         BezierizeCount: 3;
  1912         BezierizeCount: 3;
  1913         RandPassesCount: 8;
  1913         RandPassesCount: 8;
  1914         TemplateHeight: 1424; TemplateWidth: 3900;
  1914         TemplateHeight: 1424; TemplateWidth: 3900;
  1915         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1915         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1916         hasGirders: true;
  1916         hasGirders: true;
  1917         MaxHedgehogs: 36;
  1917         MaxHedgeHogs: 36;
  1918        ),
  1918        ),
  1919        (BasePoints: @Template31Points;
  1919        (BasePoints: @Template31Points;
  1920         BasePointsCount: Succ(High(Template31Points));
  1920         BasePointsCount: Succ(High(Template31Points));
  1921         FillPoints: @Template31FPoints;
  1921         FillPoints: @Template31FPoints;
  1922         FillPointsCount: Succ(High(Template31FPoints));
  1922         FillPointsCount: Succ(High(Template31FPoints));
  1923         BezierizeCount: 3;
  1923         BezierizeCount: 3;
  1924         RandPassesCount: 5;
  1924         RandPassesCount: 5;
  1925         TemplateHeight: 1424; TemplateWidth: 3900;
  1925         TemplateHeight: 1424; TemplateWidth: 3900;
  1926         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1926         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1927         hasGirders: true;
  1927         hasGirders: true;
  1928         MaxHedgehogs: 36;
  1928         MaxHedgeHogs: 36;
  1929        ),
  1929        ),
  1930        (BasePoints: @Template32Points;
  1930        (BasePoints: @Template32Points;
  1931         BasePointsCount: Succ(High(Template32Points));
  1931         BasePointsCount: Succ(High(Template32Points));
  1932         FillPoints: @Template32FPoints;
  1932         FillPoints: @Template32FPoints;
  1933         FillPointsCount: Succ(High(Template32FPoints));
  1933         FillPointsCount: Succ(High(Template32FPoints));
  1934         BezierizeCount: 3;
  1934         BezierizeCount: 3;
  1935         RandPassesCount: 7;
  1935         RandPassesCount: 7;
  1936         TemplateHeight: 1424; TemplateWidth: 3900;
  1936         TemplateHeight: 1424; TemplateWidth: 3900;
  1937         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1937         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1938         hasGirders: true;
  1938         hasGirders: true;
  1939         MaxHedgehogs: 36;
  1939         MaxHedgeHogs: 36;
  1940        ),
  1940        ),
  1941        (BasePoints: @Template33Points;
  1941        (BasePoints: @Template33Points;
  1942         BasePointsCount: Succ(High(Template33Points));
  1942         BasePointsCount: Succ(High(Template33Points));
  1943         FillPoints: @Template33FPoints;
  1943         FillPoints: @Template33FPoints;
  1944         FillPointsCount: Succ(High(Template33FPoints));
  1944         FillPointsCount: Succ(High(Template33FPoints));
  1945         BezierizeCount: 2;
  1945         BezierizeCount: 2;
  1946         RandPassesCount: 6;
  1946         RandPassesCount: 6;
  1947         TemplateHeight: 1424; TemplateWidth: 3900;
  1947         TemplateHeight: 1424; TemplateWidth: 3900;
  1948         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1948         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1949         hasGirders: true;
  1949         hasGirders: true;
  1950         MaxHedgehogs: 36;
  1950         MaxHedgeHogs: 36;
  1951        ),
  1951        ),
  1952        (BasePoints: @Template34Points;
  1952        (BasePoints: @Template34Points;
  1953         BasePointsCount: Succ(High(Template34Points));
  1953         BasePointsCount: Succ(High(Template34Points));
  1954         FillPoints: @Template34FPoints;
  1954         FillPoints: @Template34FPoints;
  1955         FillPointsCount: Succ(High(Template34FPoints));
  1955         FillPointsCount: Succ(High(Template34FPoints));
  1956         BezierizeCount: 2;
  1956         BezierizeCount: 2;
  1957         RandPassesCount: 6;
  1957         RandPassesCount: 6;
  1958         TemplateHeight: 1424; TemplateWidth: 3900;
  1958         TemplateHeight: 1424; TemplateWidth: 3900;
  1959         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1959         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1960         hasGirders: true;
  1960         hasGirders: true;
  1961         MaxHedgehogs: 36;
  1961         MaxHedgeHogs: 36;
  1962        ),
  1962        ),
  1963        (BasePoints: @Template35Points;
  1963        (BasePoints: @Template35Points;
  1964         BasePointsCount: Succ(High(Template35Points));
  1964         BasePointsCount: Succ(High(Template35Points));
  1965         FillPoints: @Template35FPoints;
  1965         FillPoints: @Template35FPoints;
  1966         FillPointsCount: Succ(High(Template35FPoints));
  1966         FillPointsCount: Succ(High(Template35FPoints));
  1967         BezierizeCount: 3;
  1967         BezierizeCount: 3;
  1968         RandPassesCount: 7;
  1968         RandPassesCount: 7;
  1969         TemplateHeight: 1424; TemplateWidth: 3900;
  1969         TemplateHeight: 1424; TemplateWidth: 3900;
  1970         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1970         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1971         hasGirders: true;
  1971         hasGirders: true;
  1972         MaxHedgehogs: 36;
  1972         MaxHedgeHogs: 36;
  1973        ),
  1973        ),
  1974        (BasePoints: @Template36Points;
  1974        (BasePoints: @Template36Points;
  1975         BasePointsCount: Succ(High(Template36Points));
  1975         BasePointsCount: Succ(High(Template36Points));
  1976         FillPoints: @Template36FPoints;
  1976         FillPoints: @Template36FPoints;
  1977         FillPointsCount: Succ(High(Template36FPoints));
  1977         FillPointsCount: Succ(High(Template36FPoints));
  1978         BezierizeCount: 4;
  1978         BezierizeCount: 4;
  1979         RandPassesCount: 12;
  1979         RandPassesCount: 12;
  1980         TemplateHeight: 1024; TemplateWidth: 4096;
  1980         TemplateHeight: 1024; TemplateWidth: 4096;
  1981         canMirror: true; canFlip: false; isNegative: true; canInvert: false;
  1981         canMirror: true; canFlip: false; isNegative: true; canInvert: false;
  1982         hasGirders: false;
  1982         hasGirders: false;
  1983         MaxHedgehogs: 32;
  1983         MaxHedgeHogs: 32;
  1984        ),
  1984        ),
  1985        (BasePoints: @Template37Points;
  1985        (BasePoints: @Template37Points;
  1986         BasePointsCount: Succ(High(Template37Points));
  1986         BasePointsCount: Succ(High(Template37Points));
  1987         FillPoints: @Template37FPoints;
  1987         FillPoints: @Template37FPoints;
  1988         FillPointsCount: Succ(High(Template37FPoints));
  1988         FillPointsCount: Succ(High(Template37FPoints));
  1989         BezierizeCount: 3;
  1989         BezierizeCount: 3;
  1990         RandPassesCount: 3;
  1990         RandPassesCount: 3;
  1991         TemplateHeight: 2048; TemplateWidth: 4096;
  1991         TemplateHeight: 2048; TemplateWidth: 4096;
  1992         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1992         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  1993         hasGirders: true;
  1993         hasGirders: true;
  1994         MaxHedgehogs: 48;
  1994         MaxHedgeHogs: 48;
  1995        ),
  1995        ),
  1996        (BasePoints: @Template38Points;
  1996        (BasePoints: @Template38Points;
  1997         BasePointsCount: Succ(High(Template38Points));
  1997         BasePointsCount: Succ(High(Template38Points));
  1998         FillPoints: @Template38FPoints;
  1998         FillPoints: @Template38FPoints;
  1999         FillPointsCount: Succ(High(Template38FPoints));
  1999         FillPointsCount: Succ(High(Template38FPoints));
  2000         BezierizeCount: 4;
  2000         BezierizeCount: 4;
  2001         RandPassesCount: 4;
  2001         RandPassesCount: 4;
  2002         TemplateHeight: 2048; TemplateWidth: 4096;
  2002         TemplateHeight: 2048; TemplateWidth: 4096;
  2003         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2003         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2004         hasGirders: true;
  2004         hasGirders: true;
  2005         MaxHedgehogs: 48;
  2005         MaxHedgeHogs: 48;
  2006        ),
  2006        ),
  2007        (BasePoints: @Template39Points;
  2007        (BasePoints: @Template39Points;
  2008         BasePointsCount: Succ(High(Template39Points));
  2008         BasePointsCount: Succ(High(Template39Points));
  2009         FillPoints: @Template39FPoints;
  2009         FillPoints: @Template39FPoints;
  2010         FillPointsCount: Succ(High(Template39FPoints));
  2010         FillPointsCount: Succ(High(Template39FPoints));
  2011         BezierizeCount: 3;
  2011         BezierizeCount: 3;
  2012         RandPassesCount: 3;
  2012         RandPassesCount: 3;
  2013         TemplateHeight: 512; TemplateWidth: 1536;
  2013         TemplateHeight: 512; TemplateWidth: 1536;
  2014         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2014         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2015         hasGirders: false;
  2015         hasGirders: false;
  2016         MaxHedgehogs: 8;
  2016         MaxHedgeHogs: 8;
  2017        ),
  2017        ),
  2018        (BasePoints: @Template40Points;
  2018        (BasePoints: @Template40Points;
  2019         BasePointsCount: Succ(High(Template40Points));
  2019         BasePointsCount: Succ(High(Template40Points));
  2020         FillPoints: @Template40FPoints;
  2020         FillPoints: @Template40FPoints;
  2021         FillPointsCount: Succ(High(Template40FPoints));
  2021         FillPointsCount: Succ(High(Template40FPoints));
  2022         BezierizeCount: 3;
  2022         BezierizeCount: 3;
  2023         RandPassesCount: 3;
  2023         RandPassesCount: 3;
  2024         TemplateHeight: 1024; TemplateWidth: 1024;
  2024         TemplateHeight: 1024; TemplateWidth: 1024;
  2025         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2025         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2026         hasGirders: false;
  2026         hasGirders: false;
  2027         MaxHedgehogs: 8;
  2027         MaxHedgeHogs: 8;
  2028        ),
  2028        ),
  2029        (BasePoints: @Template41Points;
  2029        (BasePoints: @Template41Points;
  2030         BasePointsCount: Succ(High(Template41Points));
  2030         BasePointsCount: Succ(High(Template41Points));
  2031         FillPoints: @Template41FPoints;
  2031         FillPoints: @Template41FPoints;
  2032         FillPointsCount: Succ(High(Template41FPoints));
  2032         FillPointsCount: Succ(High(Template41FPoints));
  2033         BezierizeCount: 3;
  2033         BezierizeCount: 3;
  2034         RandPassesCount: 5;
  2034         RandPassesCount: 5;
  2035         TemplateHeight: 2048; TemplateWidth: 4096;
  2035         TemplateHeight: 2048; TemplateWidth: 4096;
  2036         canMirror: true; canFlip: true; isNegative: false; canInvert: false;
  2036         canMirror: true; canFlip: true; isNegative: false; canInvert: false;
  2037         hasGirders: true;
  2037         hasGirders: true;
  2038         MaxHedgehogs: 48;
  2038         MaxHedgeHogs: 48;
  2039        ),
  2039        ),
  2040        (BasePoints: @Template42Points;
  2040        (BasePoints: @Template42Points;
  2041         BasePointsCount: Succ(High(Template42Points));
  2041         BasePointsCount: Succ(High(Template42Points));
  2042         FillPoints: @Template42FPoints;
  2042         FillPoints: @Template42FPoints;
  2043         FillPointsCount: Succ(High(Template42FPoints));
  2043         FillPointsCount: Succ(High(Template42FPoints));
  2044         BezierizeCount: 3;
  2044         BezierizeCount: 3;
  2045         RandPassesCount: 3;
  2045         RandPassesCount: 3;
  2046         TemplateHeight: 512; TemplateWidth: 1536;
  2046         TemplateHeight: 512; TemplateWidth: 1536;
  2047         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2047         canMirror: true; canFlip: false; isNegative: false; canInvert: false;
  2048         hasGirders: false;
  2048         hasGirders: false;
  2049         MaxHedgehogs: 8;
  2049         MaxHedgeHogs: 8;
  2050        )
  2050        )
  2051       );
  2051       );
  2052 const SmallTemplates: array[0..2] of Longword = ( 39, 40, 42 );
  2052 const SmallTemplates: array[0..2] of Longword = ( 39, 40, 42 );
  2053 const MediumTemplates: array[0..17] of Longword =
  2053 const MediumTemplates: array[0..17] of Longword =
  2054       ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 );
  2054       ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 );