CnC_Remastered_Collection

Command and Conquer: Red Alert
Log | Files | Refs | README | LICENSE

CDATA.CPP (65038B)


      1 //
      2 // Copyright 2020 Electronic Arts Inc.
      3 //
      4 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is free 
      5 // software: you can redistribute it and/or modify it under the terms of 
      6 // the GNU General Public License as published by the Free Software Foundation, 
      7 // either version 3 of the License, or (at your option) any later version.
      8 
      9 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed 
     10 // in the hope that it will be useful, but with permitted additional restrictions 
     11 // under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 
     12 // distributed with this program. You should have received a copy of the 
     13 // GNU General Public License along with permitted additional restrictions 
     14 // with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
     15 
     16 /* $Header:   F:\projects\c&c\vcs\code\cdata.cpv   2.18   16 Oct 1995 16:50:22   JOE_BOSTIC  $ */
     17 /***********************************************************************************************
     18  ***             C O N F I D E N T I A L  ---  W E S T W O O D   S T U D I O S               ***
     19  ***********************************************************************************************
     20  *                                                                                             *
     21  *                 Project Name : Command & Conquer                                            *
     22  *                                                                                             *
     23  *                    File Name : CDATA.CPP                                                    *
     24  *                                                                                             *
     25  *                   Programmer : Joe L. Bostic                                                *
     26  *                                                                                             *
     27  *                   Start Date : May 16, 1994                                                 *
     28  *                                                                                             *
     29  *                  Last Update : July 29, 1994   [JLB]                                        *
     30  *                                                                                             *
     31  *---------------------------------------------------------------------------------------------*
     32  * Functions:                                                                                  *
     33  *   TemplateTypeClass::Create_And_Place -- Creates and places a template object on the map.   *
     34  *   TemplateTypeClass::Create_One_Of -- Creates an object of this template type.              *
     35  *   TemplateTypeClass::Display -- Displays a generic representation of template.              *
     36  *   TemplateTypeClass::From_Name -- Determine template from ASCII name.                       *
     37  *   TemplateTypeClass::Init -- Loads graphic data for templates.                              *
     38  *   TemplateTypeClass::Occupy_List -- Determines occupation list.                             *
     39  *   TemplateTypeClass::One_Time -- Performs one-time initialization                           *
     40  *   TemplateTypeClass::Prep_For_Add -- Prepares to add template to scenario.                  *
     41  *   TemplateTypeClass::TemplateTypeClass -- Constructor for template type objects.            *
     42  * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
     43 
     44 #include	"function.h"
     45 
     46 
     47 static char const _slope00000001[] = {7,-1};
     48 static char const _slope000000101[] = {6,8,-1};
     49 static char const _slope00000011[] = {6,7,-1};
     50 static char const _slope0000001[] = {6,-1};
     51 static char const _slope000001001[] = {5,8,-1};
     52 static char const _slope000001[] = {5,-1};
     53 static char const _slope000101[] = {3,5,-1};
     54 static char const _slope00011010000100000001000011[] = {3,4,6,11,19,25,25,-1};
     55 static char const _slope00011010010100100001000011[] = {3,4,6,9,11,14,19,24,25,-1};
     56 static char const _slope0001[] = {3,-1};
     57 static char const _slope001001001[] = {2,5,8,-1};
     58 static char const _slope00110000000011[] = {2,3,12,13,-1};
     59 static char const _slope00110010010011[] = {2,3,6,9,12,13,-1};
     60 static char const _slope001111001[] = {2,3,4,5,8,-1};
     61 static char const _slope0011[] = {2,3,-1};
     62 static char const _slope001[] = {2,-1};
     63 static char const _slope01000000000000000000001[] = {1,22,-1};
     64 static char const _slope01000000100000010000001[] = {1,8,15,22,-1};
     65 static char const _slope0111[] = {1,2,3,-1};
     66 static char const _slope01[] = {1,-1};
     67 static char const _slope1001001[] = {0,3,6,-1};
     68 static char const _slope1001[] = {0,3,-1};
     69 static char const _slope1100000000000000001100011[] = {0,1,18,19,23,24,-1};
     70 static char const _slope1100001000001000001100011[] = {0,1,6,12,18,19,23,24,-1};
     71 static char const _slope1101101[] = {0,1,3,4,6,-1};
     72 static char const _slope1101[] = {0,1,3,-1};
     73 static char const _slope111[] = {0,1,2,-1};
     74 static char const _slope111010011[] = {0,1,2,4,7,8,-1};
     75 static char const _slope11101[] = {0,1,2,4,-1};
     76 static char const _slope111111011[] = {0,1,2,3,4,5,7,8,-1};
     77 static char const _slope11111111[] = {0,1,2,3,4,5,6,7,-1};
     78 static char const _slope111111[] = {0,1,2,3,4,5,-1};
     79 static char const _slope1[] = {0,-1};
     80 
     81 static TemplateTypeClass const Empty(
     82 	TEMPLATE_CLEAR1,
     83 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE|THEATERF_JUNGLE,
     84 	"CLEAR1",
     85 	TXT_CLEAR,
     86 	LAND_CLEAR,
     87 	1,1,
     88 	LAND_CLEAR,
     89 	NULL
     90 );
     91 static TemplateTypeClass const Clear(
     92 	TEMPLATE_CLEAR1,
     93 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE|THEATERF_JUNGLE,
     94 	"CLEAR1",
     95 	TXT_CLEAR,
     96 	LAND_CLEAR,
     97 	1,1,
     98 	LAND_CLEAR,
     99 	NULL
    100 );
    101 static TemplateTypeClass const Road1(
    102 	TEMPLATE_ROAD1,
    103 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    104 	"D01",
    105 	TXT_ROAD,
    106 	LAND_CLEAR,
    107 	2,2,
    108 	LAND_CLEAR,
    109 	NULL
    110 );
    111 static TemplateTypeClass const Road2(
    112 	TEMPLATE_ROAD2,
    113 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    114 	"D02",
    115 	TXT_ROAD,
    116 	LAND_CLEAR,
    117 	2,2,
    118 	LAND_CLEAR,
    119 	NULL
    120 );
    121 static TemplateTypeClass const Road3(
    122 	TEMPLATE_ROAD3,
    123 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    124 	"D03",
    125 	TXT_ROAD,
    126 	LAND_CLEAR,
    127 	1,2,
    128 	LAND_CLEAR,
    129 	NULL
    130 );
    131 static TemplateTypeClass const Road4(
    132 	TEMPLATE_ROAD4,
    133 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    134 	"D04",
    135 	TXT_ROAD,
    136 	LAND_CLEAR,
    137 	2,2,
    138 	LAND_CLEAR,
    139 	NULL
    140 );
    141 static TemplateTypeClass const Road5(
    142 	TEMPLATE_ROAD5,
    143 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    144 	"D05",
    145 	TXT_ROAD,
    146 	LAND_CLEAR,
    147 	3,4,
    148 	LAND_CLEAR,
    149 	NULL
    150 );
    151 static TemplateTypeClass const Road6(
    152 	TEMPLATE_ROAD6,
    153 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    154 	"D06",
    155 	TXT_ROAD,
    156 	LAND_CLEAR,
    157 	2,3,
    158 	LAND_CLEAR,
    159 	NULL
    160 );
    161 static TemplateTypeClass const Road7(
    162 	TEMPLATE_ROAD7,
    163 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    164 	"D07",
    165 	TXT_ROAD,
    166 	LAND_CLEAR,
    167 	3,2,
    168 	LAND_CLEAR,
    169 	NULL
    170 );
    171 static TemplateTypeClass const Road8(
    172 	TEMPLATE_ROAD8,
    173 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    174 	"D08",
    175 	TXT_ROAD,
    176 	LAND_CLEAR,
    177 	3,2,
    178 	LAND_CLEAR,
    179 	NULL
    180 );
    181 static TemplateTypeClass const Road9(
    182 	TEMPLATE_ROAD9,
    183 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    184 	"D09",
    185 	TXT_ROAD,
    186 	LAND_CLEAR,
    187 	4,3,
    188 	LAND_CLEAR,
    189 	NULL
    190 );
    191 static TemplateTypeClass const Road10(
    192 	TEMPLATE_ROAD10,
    193 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    194 	"D10",
    195 	TXT_ROAD,
    196 	LAND_CLEAR,
    197 	4,2,
    198 	LAND_CLEAR,
    199 	NULL
    200 );
    201 static TemplateTypeClass const Road11(
    202 	TEMPLATE_ROAD11,
    203 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    204 	"D11",
    205 	TXT_ROAD,
    206 	LAND_CLEAR,
    207 	2,3,
    208 	LAND_CLEAR,
    209 	NULL
    210 );
    211 static TemplateTypeClass const Road12(
    212 	TEMPLATE_ROAD12,
    213 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    214 	"D12",
    215 	TXT_ROAD,
    216 	LAND_CLEAR,
    217 	2,2,
    218 	LAND_CLEAR,
    219 	NULL
    220 );
    221 static TemplateTypeClass const Road13(
    222 	TEMPLATE_ROAD13,
    223 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    224 	"D13",
    225 	TXT_ROAD,
    226 	LAND_CLEAR,
    227 	4,3,
    228 	LAND_CLEAR,
    229 	NULL
    230 );
    231 static TemplateTypeClass const Road14(
    232 	TEMPLATE_ROAD14,
    233 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    234 	"D14",
    235 	TXT_ROAD,
    236 	LAND_CLEAR,
    237 	3,3,
    238 	LAND_CLEAR,
    239 	NULL
    240 );
    241 static TemplateTypeClass const Road15(
    242 	TEMPLATE_ROAD15,
    243 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    244 	"D15",
    245 	TXT_ROAD,
    246 	LAND_CLEAR,
    247 	3,3,
    248 	LAND_CLEAR,
    249 	NULL
    250 );
    251 static TemplateTypeClass const Road16(
    252 	TEMPLATE_ROAD16,
    253 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    254 	"D16",
    255 	TXT_ROAD,
    256 	LAND_CLEAR,
    257 	3,3,
    258 	LAND_CLEAR,
    259 	NULL
    260 );
    261 static TemplateTypeClass const Road17(
    262 	TEMPLATE_ROAD17,
    263 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    264 	"D17",
    265 	TXT_ROAD,
    266 	LAND_CLEAR,
    267 	3,2,
    268 	LAND_CLEAR,
    269 	NULL
    270 );
    271 static TemplateTypeClass const Road18(
    272 	TEMPLATE_ROAD18,
    273 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    274 	"D18",
    275 	TXT_ROAD,
    276 	LAND_CLEAR,
    277 	3,3,
    278 	LAND_CLEAR,
    279 	NULL
    280 );
    281 static TemplateTypeClass const Road19(
    282 	TEMPLATE_ROAD19,
    283 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    284 	"D19",
    285 	TXT_ROAD,
    286 	LAND_CLEAR,
    287 	3,3,
    288 	LAND_CLEAR,
    289 	NULL
    290 );
    291 static TemplateTypeClass const Road20(
    292 	TEMPLATE_ROAD20,
    293 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    294 	"D20",
    295 	TXT_ROAD,
    296 	LAND_CLEAR,
    297 	3,3,
    298 	LAND_CLEAR,
    299 	NULL
    300 );
    301 static TemplateTypeClass const Road21(
    302 	TEMPLATE_ROAD21,
    303 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    304 	"D21",
    305 	TXT_ROAD,
    306 	LAND_CLEAR,
    307 	3,2,
    308 	LAND_CLEAR,
    309 	NULL
    310 );
    311 static TemplateTypeClass const Road22(
    312 	TEMPLATE_ROAD22,
    313 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    314 	"D22",
    315 	TXT_ROAD,
    316 	LAND_CLEAR,
    317 	3,3,
    318 	LAND_CLEAR,
    319 	NULL
    320 );
    321 static TemplateTypeClass const Road23(
    322 	TEMPLATE_ROAD23,
    323 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    324 	"D23",
    325 	TXT_ROAD,
    326 	LAND_CLEAR,
    327 	3,3,
    328 	LAND_CLEAR,
    329 	NULL
    330 );
    331 static TemplateTypeClass const Road24(
    332 	TEMPLATE_ROAD24,
    333 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    334 	"D24",
    335 	TXT_ROAD,
    336 	LAND_CLEAR,
    337 	3,3,
    338 	LAND_CLEAR,
    339 	NULL
    340 );
    341 static TemplateTypeClass const Road25(
    342 	TEMPLATE_ROAD25,
    343 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    344 	"D25",
    345 	TXT_ROAD,
    346 	LAND_CLEAR,
    347 	3,3,
    348 	LAND_CLEAR,
    349 	NULL
    350 );
    351 static TemplateTypeClass const Road26(
    352 	TEMPLATE_ROAD26,
    353 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    354 	"D26",
    355 	TXT_ROAD,
    356 	LAND_CLEAR,
    357 	2,2,
    358 	LAND_CLEAR,
    359 	NULL
    360 );
    361 static TemplateTypeClass const Road27(
    362 	TEMPLATE_ROAD27,
    363 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    364 	"D27",
    365 	TXT_ROAD,
    366 	LAND_CLEAR,
    367 	2,2,
    368 	LAND_CLEAR,
    369 	NULL
    370 );
    371 static TemplateTypeClass const Road28(
    372 	TEMPLATE_ROAD28,
    373 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    374 	"D28",
    375 	TXT_ROAD,
    376 	LAND_CLEAR,
    377 	2,2,
    378 	LAND_CLEAR,
    379 	NULL
    380 );
    381 static TemplateTypeClass const Road29(
    382 	TEMPLATE_ROAD29,
    383 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    384 	"D29",
    385 	TXT_ROAD,
    386 	LAND_CLEAR,
    387 	2,2,
    388 	LAND_CLEAR,
    389 	NULL
    390 );
    391 static TemplateTypeClass const Road30(
    392 	TEMPLATE_ROAD30,
    393 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    394 	"D30",
    395 	TXT_ROAD,
    396 	LAND_CLEAR,
    397 	2,2,
    398 	LAND_CLEAR,
    399 	NULL
    400 );
    401 static TemplateTypeClass const Road31(
    402 	TEMPLATE_ROAD31,
    403 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    404 	"D31",
    405 	TXT_ROAD,
    406 	LAND_CLEAR,
    407 	2,2,
    408 	LAND_CLEAR,
    409 	NULL
    410 );
    411 static TemplateTypeClass const Road32(
    412 	TEMPLATE_ROAD32,
    413 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    414 	"D32",
    415 	TXT_ROAD,
    416 	LAND_CLEAR,
    417 	2,2,
    418 	LAND_CLEAR,
    419 	NULL
    420 );
    421 static TemplateTypeClass const Road33(
    422 	TEMPLATE_ROAD33,
    423 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    424 	"D33",
    425 	TXT_ROAD,
    426 	LAND_CLEAR,
    427 	2,2,
    428 	LAND_CLEAR,
    429 	NULL
    430 );
    431 static TemplateTypeClass const Road34(
    432 	TEMPLATE_ROAD34,
    433 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    434 	"D34",
    435 	TXT_ROAD,
    436 	LAND_CLEAR,
    437 	3,3,
    438 	LAND_CLEAR,
    439 	NULL
    440 );
    441 static TemplateTypeClass const Road35(
    442 	TEMPLATE_ROAD35,
    443 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    444 	"D35",
    445 	TXT_ROAD,
    446 	LAND_CLEAR,
    447 	3,3,
    448 	LAND_CLEAR,
    449 	NULL
    450 );
    451 static TemplateTypeClass const Road36(
    452 	TEMPLATE_ROAD36,
    453 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    454 	"D36",
    455 	TXT_ROAD,
    456 	LAND_CLEAR,
    457 	2,2,
    458 	LAND_CLEAR,
    459 	NULL
    460 );
    461 static TemplateTypeClass const Road37(
    462 	TEMPLATE_ROAD37,
    463 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    464 	"D37",
    465 	TXT_ROAD,
    466 	LAND_CLEAR,
    467 	2,2,
    468 	LAND_CLEAR,
    469 	NULL
    470 );
    471 static TemplateTypeClass const Road38(
    472 	TEMPLATE_ROAD38,
    473 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    474 	"D38",
    475 	TXT_ROAD,
    476 	LAND_CLEAR,
    477 	2,2,
    478 	LAND_CLEAR,
    479 	NULL
    480 );
    481 static TemplateTypeClass const Road39(
    482 	TEMPLATE_ROAD39,
    483 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    484 	"D39",
    485 	TXT_ROAD,
    486 	LAND_CLEAR,
    487 	2,2,
    488 	LAND_CLEAR,
    489 	NULL
    490 );
    491 static TemplateTypeClass const Road40(
    492 	TEMPLATE_ROAD40,
    493 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    494 	"D40",
    495 	TXT_ROAD,
    496 	LAND_CLEAR,
    497 	2,2,
    498 	LAND_CLEAR,
    499 	NULL
    500 );
    501 static TemplateTypeClass const Road41(
    502 	TEMPLATE_ROAD41,
    503 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    504 	"D41",
    505 	TXT_ROAD,
    506 	LAND_CLEAR,
    507 	2,2,
    508 	LAND_CLEAR,
    509 	NULL
    510 );
    511 static TemplateTypeClass const Road42(
    512 	TEMPLATE_ROAD42,
    513 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    514 	"D42",
    515 	TXT_ROAD,
    516 	LAND_CLEAR,
    517 	2,2,
    518 	LAND_CLEAR,
    519 	NULL
    520 );
    521 static TemplateTypeClass const Road43(
    522 	TEMPLATE_ROAD43,
    523 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
    524 	"D43",
    525 	TXT_ROAD,
    526 	LAND_CLEAR,
    527 	2,2,
    528 	LAND_CLEAR,
    529 	NULL
    530 );
    531 static TemplateTypeClass const Water(
    532 	TEMPLATE_WATER,
    533 	THEATERF_WINTER|THEATERF_TEMPERATE|THEATERF_DESERT,
    534 	"W1",
    535 	TXT_WATER,
    536 	LAND_WATER,
    537 	1,1,
    538 	LAND_WATER,
    539 	NULL
    540 );
    541 static TemplateTypeClass const Water2(
    542 	TEMPLATE_WATER2,
    543 	THEATERF_WINTER|THEATERF_TEMPERATE,
    544 	"W2",
    545 	TXT_WATER,
    546 	LAND_WATER,
    547 	2,2,
    548 	LAND_WATER,
    549 	NULL
    550 );
    551 static TemplateTypeClass const Shore1(
    552 	TEMPLATE_SHORE1,
    553 	THEATERF_WINTER|THEATERF_TEMPERATE,
    554 	"SH1",
    555 	TXT_WATER,
    556 	LAND_WATER,
    557 	3,3,
    558 	LAND_BEACH,
    559 	(char const *)_slope111111
    560 );
    561 static TemplateTypeClass const Shore2(
    562 	TEMPLATE_SHORE2,
    563 	THEATERF_WINTER|THEATERF_TEMPERATE,
    564 	"SH2",
    565 	TXT_WATER,
    566 	LAND_ROCK,
    567 	3,3,
    568 	LAND_BEACH,
    569 	(char const *)_slope111
    570 );
    571 static TemplateTypeClass const Shore3(
    572 	TEMPLATE_SHORE3,
    573 	THEATERF_WINTER|THEATERF_TEMPERATE,
    574 	"SH3",
    575 	TXT_WATER,
    576 	LAND_ROCK,
    577 	1,1,
    578 	LAND_WATER,
    579 	NULL
    580 );
    581 static TemplateTypeClass const Shore4(
    582 	TEMPLATE_SHORE4,
    583 	THEATERF_WINTER|THEATERF_TEMPERATE,
    584 	"SH4",
    585 	TXT_WATER,
    586 	LAND_ROCK,
    587 	2,1,
    588 	LAND_WATER,
    589 	NULL
    590 );
    591 static TemplateTypeClass const Shore5(
    592 	TEMPLATE_SHORE5,
    593 	THEATERF_WINTER|THEATERF_TEMPERATE,
    594 	"SH5",
    595 	TXT_WATER,
    596 	LAND_WATER,
    597 	3,3,
    598 	LAND_BEACH,
    599 	(char const *)_slope111111
    600 );
    601 static TemplateTypeClass const Shore6(
    602 	TEMPLATE_SHORE6,
    603 	THEATERF_WINTER|THEATERF_TEMPERATE,
    604 	"SH6",
    605 	TXT_WATER,
    606 	LAND_WATER,
    607 	3,3,
    608 	LAND_BEACH,
    609 	(char const *)_slope111111
    610 );
    611 static TemplateTypeClass const Shore7(
    612 	TEMPLATE_SHORE7,
    613 	THEATERF_WINTER|THEATERF_TEMPERATE,
    614 	"SH7",
    615 	TXT_WATER,
    616 	LAND_WATER,
    617 	2,2,
    618 	LAND_BEACH,
    619 	(char const *)_slope1
    620 );
    621 static TemplateTypeClass const Shore8(
    622 	TEMPLATE_SHORE8,
    623 	THEATERF_WINTER|THEATERF_TEMPERATE,
    624 	"SH8",
    625 	TXT_WATER,
    626 	LAND_WATER,
    627 	3,3,
    628 	LAND_BEACH,
    629 	(char const *)_slope11111111
    630 );
    631 static TemplateTypeClass const Shore9(
    632 	TEMPLATE_SHORE9,
    633 	THEATERF_WINTER|THEATERF_TEMPERATE,
    634 	"SH9",
    635 	TXT_WATER,
    636 	LAND_WATER,
    637 	3,3,
    638 	LAND_BEACH,
    639 	(char const *)_slope111111011
    640 );
    641 static TemplateTypeClass const Shore10(
    642 	TEMPLATE_SHORE10,
    643 	THEATERF_WINTER|THEATERF_TEMPERATE,
    644 	"SH10",
    645 	TXT_WATER,
    646 	LAND_WATER,
    647 	2,2,
    648 	LAND_BEACH,
    649 	(char const *)_slope01
    650 );
    651 static TemplateTypeClass const Shore11(
    652 	TEMPLATE_SHORE11,
    653 	THEATERF_WINTER|THEATERF_TEMPERATE,
    654 	"SH11",
    655 	TXT_WATER,
    656 	LAND_WATER,
    657 	3,3,
    658 	LAND_BEACH,
    659 	(char const *)_slope1001
    660 );
    661 static TemplateTypeClass const Shore12(
    662 	TEMPLATE_SHORE12,
    663 	THEATERF_WINTER|THEATERF_TEMPERATE,
    664 	"SH12",
    665 	TXT_WATER,
    666 	LAND_WATER,
    667 	3,3,
    668 	LAND_BEACH,
    669 	(char const *)_slope000001001
    670 );
    671 static TemplateTypeClass const Shore13(
    672 	TEMPLATE_SHORE13,
    673 	THEATERF_WINTER|THEATERF_TEMPERATE,
    674 	"SH13",
    675 	TXT_WATER,
    676 	LAND_WATER,
    677 	3,3,
    678 	LAND_BEACH,
    679 	(char const *)_slope0000001
    680 );
    681 static TemplateTypeClass const Shore14(
    682 	TEMPLATE_SHORE14,
    683 	THEATERF_WINTER|THEATERF_TEMPERATE,
    684 	"SH14",
    685 	TXT_WATER,
    686 	LAND_ROCK,
    687 	3,3,
    688 	LAND_BEACH,
    689 	(char const *)_slope00000011
    690 );
    691 static TemplateTypeClass const Shore15(
    692 	TEMPLATE_SHORE15,
    693 	THEATERF_WINTER|THEATERF_TEMPERATE,
    694 	"SH15",
    695 	TXT_WATER,
    696 	LAND_ROCK,
    697 	3,3,
    698 	LAND_BEACH,
    699 	(char const *)_slope000000101
    700 );
    701 static TemplateTypeClass const Shore16(
    702 	TEMPLATE_SHORE16,
    703 	THEATERF_WINTER|THEATERF_TEMPERATE,
    704 	"SH16",
    705 	TXT_WATER,
    706 	LAND_ROCK,
    707 	3,2,
    708 	LAND_ROCK,
    709 	NULL
    710 );
    711 static TemplateTypeClass const Shore17(
    712 	TEMPLATE_SHORE17,
    713 	THEATERF_WINTER|THEATERF_TEMPERATE|THEATERF_DESERT,
    714 	"SH17",
    715 	TXT_WATER,
    716 	LAND_WATER,
    717 	2,2,
    718 	LAND_WATER,
    719 	NULL
    720 );
    721 static TemplateTypeClass const Shore18(
    722 	TEMPLATE_SHORE18,
    723 	THEATERF_WINTER|THEATERF_TEMPERATE|THEATERF_DESERT,
    724 	"SH18",
    725 	TXT_WATER,
    726 	LAND_WATER,
    727 	2,2,
    728 	LAND_WATER,
    729 	NULL
    730 );
    731 static TemplateTypeClass const Shore19(
    732 	TEMPLATE_SHORE19,
    733 	THEATERF_DESERT,
    734 	"SH19",
    735 	TXT_WATER,
    736 	LAND_ROCK,
    737 	3,2,
    738 	LAND_ROCK,
    739 	NULL
    740 );
    741 static TemplateTypeClass const Shore20(
    742 	TEMPLATE_SHORE20,
    743 	THEATERF_DESERT,
    744 	"SH20",
    745 	TXT_WATER,
    746 	LAND_ROCK,
    747 	4,1,
    748 	LAND_ROCK,
    749 	NULL
    750 );
    751 static TemplateTypeClass const Shore21(
    752 	TEMPLATE_SHORE21,
    753 	THEATERF_DESERT,
    754 	"SH21",
    755 	TXT_WATER,
    756 	LAND_ROCK,
    757 	3,1,
    758 	LAND_ROCK,
    759 	NULL
    760 );
    761 static TemplateTypeClass const Shore22(
    762 	TEMPLATE_SHORE22,
    763 	THEATERF_DESERT,
    764 	"SH22",
    765 	TXT_WATER,
    766 	LAND_ROCK,
    767 	6,2,
    768 	LAND_ROCK,
    769 	NULL
    770 );
    771 static TemplateTypeClass const Shore23(
    772 	TEMPLATE_SHORE23,
    773 	THEATERF_DESERT,
    774 	"SH23",
    775 	TXT_WATER,
    776 	LAND_ROCK,
    777 	2,2,
    778 	LAND_CLEAR,
    779 	(char const *)_slope01
    780 );
    781 static TemplateTypeClass const Shore24(
    782 	TEMPLATE_SHORE24,
    783 	THEATERF_DESERT,
    784 	"SH24",
    785 	TXT_WATER,
    786 	LAND_ROCK,
    787 	3,3,
    788 	LAND_CLEAR,
    789 	(char const *)_slope000001
    790 );
    791 static TemplateTypeClass const Shore25(
    792 	TEMPLATE_SHORE25,
    793 	THEATERF_DESERT,
    794 	"SH25",
    795 	TXT_WATER,
    796 	LAND_ROCK,
    797 	3,2,
    798 	LAND_CLEAR,
    799 	(char const *)_slope0001
    800 );
    801 static TemplateTypeClass const Shore26(
    802 	TEMPLATE_SHORE26,
    803 	THEATERF_DESERT,
    804 	"SH26",
    805 	TXT_WATER,
    806 	LAND_ROCK,
    807 	3,2,
    808 	LAND_CLEAR,
    809 	NULL
    810 );
    811 static TemplateTypeClass const Shore27(
    812 	TEMPLATE_SHORE27,
    813 	THEATERF_DESERT,
    814 	"SH27",
    815 	TXT_WATER,
    816 	LAND_ROCK,
    817 	4,1,
    818 	LAND_CLEAR,
    819 	NULL
    820 );
    821 static TemplateTypeClass const Shore28(
    822 	TEMPLATE_SHORE28,
    823 	THEATERF_DESERT,
    824 	"SH28",
    825 	TXT_WATER,
    826 	LAND_ROCK,
    827 	3,1,
    828 	LAND_CLEAR,
    829 	NULL
    830 );
    831 static TemplateTypeClass const Shore29(
    832 	TEMPLATE_SHORE29,
    833 	THEATERF_DESERT,
    834 	"SH29",
    835 	TXT_WATER,
    836 	LAND_ROCK,
    837 	6,2,
    838 	LAND_CLEAR,
    839 	(char const *)_slope00000001
    840 );
    841 static TemplateTypeClass const Shore30(
    842 	TEMPLATE_SHORE30,
    843 	THEATERF_DESERT,
    844 	"SH30",
    845 	TXT_WATER,
    846 	LAND_ROCK,
    847 	2,2,
    848 	LAND_CLEAR,
    849 	NULL
    850 );
    851 static TemplateTypeClass const Shore31(
    852 	TEMPLATE_SHORE31,
    853 	THEATERF_DESERT,
    854 	"SH31",
    855 	TXT_WATER,
    856 	LAND_ROCK,
    857 	3,3,
    858 	LAND_CLEAR,
    859 	NULL
    860 );
    861 static TemplateTypeClass const Shore32(
    862 	TEMPLATE_SHORE32,
    863 	THEATERF_TEMPERATE|THEATERF_WINTER,
    864 	"SH32",
    865 	TXT_WATER,
    866 	LAND_CLEAR,
    867 	3,3,
    868 	LAND_WATER,
    869 	(char const *)_slope1
    870 );
    871 static TemplateTypeClass const Shore33(
    872 	TEMPLATE_SHORE33,
    873 	THEATERF_TEMPERATE|THEATERF_WINTER,
    874 	"SH33",
    875 	TXT_WATER,
    876 	LAND_CLEAR,
    877 	3,3,
    878 	LAND_WATER,
    879 	(char const *)_slope001
    880 );
    881 static TemplateTypeClass const Shore34(
    882 	TEMPLATE_SHORE34,
    883 	THEATERF_TEMPERATE|THEATERF_WINTER,
    884 	"SH34",
    885 	TXT_WATER,
    886 	LAND_CLEAR,
    887 	3,3,
    888 	LAND_WATER,
    889 	(char const *)_slope001001001
    890 );
    891 static TemplateTypeClass const Shore35(
    892 	TEMPLATE_SHORE35,
    893 	THEATERF_TEMPERATE|THEATERF_WINTER,
    894 	"SH35",
    895 	TXT_WATER,
    896 	LAND_CLEAR,
    897 	3,3,
    898 	LAND_WATER,
    899 	(char const *)_slope1001001
    900 );
    901 static TemplateTypeClass const Shore36(
    902 	TEMPLATE_SHORE36,
    903 	THEATERF_DESERT,
    904 	"SH36",
    905 	TXT_WATER,
    906 	LAND_CLEAR,
    907 	1,1,
    908 	LAND_CLEAR,
    909 	NULL
    910 );
    911 static TemplateTypeClass const Shore37(
    912 	TEMPLATE_SHORE37,
    913 	THEATERF_DESERT,
    914 	"SH37",
    915 	TXT_WATER,
    916 	LAND_CLEAR,
    917 	1,1,
    918 	LAND_CLEAR,
    919 	NULL
    920 );
    921 static TemplateTypeClass const Shore38(
    922 	TEMPLATE_SHORE38,
    923 	THEATERF_DESERT,
    924 	"SH38",
    925 	TXT_WATER,
    926 	LAND_CLEAR,
    927 	1,1,
    928 	LAND_CLEAR,
    929 	NULL
    930 );
    931 static TemplateTypeClass const Shore39(
    932 	TEMPLATE_SHORE39,
    933 	THEATERF_DESERT,
    934 	"SH39",
    935 	TXT_WATER,
    936 	LAND_CLEAR,
    937 	1,1,
    938 	LAND_CLEAR,
    939 	NULL
    940 );
    941 static TemplateTypeClass const Shore40(
    942 	TEMPLATE_SHORE40,
    943 	THEATERF_DESERT,
    944 	"SH40",
    945 	TXT_WATER,
    946 	LAND_WATER,
    947 	3,3,
    948 	LAND_CLEAR,
    949 	(char const *)_slope1
    950 );
    951 static TemplateTypeClass const Shore41(
    952 	TEMPLATE_SHORE41,
    953 	THEATERF_DESERT,
    954 	"SH41",
    955 	TXT_WATER,
    956 	LAND_CLEAR,
    957 	3,3,
    958 	LAND_WATER,
    959 	(char const *)_slope1101101
    960 );
    961 static TemplateTypeClass const Shore42(
    962 	TEMPLATE_SHORE42,
    963 	THEATERF_DESERT,
    964 	"SH42",
    965 	TXT_WATER,
    966 	LAND_WATER,
    967 	1,2,
    968 	LAND_CLEAR,
    969 	NULL
    970 );
    971 static TemplateTypeClass const Shore43(
    972 	TEMPLATE_SHORE43,
    973 	THEATERF_DESERT,
    974 	"SH43",
    975 	TXT_WATER,
    976 	LAND_WATER,
    977 	1,3,
    978 	LAND_CLEAR,
    979 	NULL
    980 );
    981 static TemplateTypeClass const Shore44(
    982 	TEMPLATE_SHORE44,
    983 	THEATERF_DESERT,
    984 	"SH44",
    985 	TXT_WATER,
    986 	LAND_WATER,
    987 	1,3,
    988 	LAND_CLEAR,
    989 	NULL
    990 );
    991 static TemplateTypeClass const Shore45(
    992 	TEMPLATE_SHORE45,
    993 	THEATERF_DESERT,
    994 	"SH45",
    995 	TXT_WATER,
    996 	LAND_WATER,
    997 	1,2,
    998 	LAND_CLEAR,
    999 	NULL
   1000 );
   1001 static TemplateTypeClass const Shore46(
   1002 	TEMPLATE_SHORE46,
   1003 	THEATERF_DESERT,
   1004 	"SH46",
   1005 	TXT_WATER,
   1006 	LAND_WATER,
   1007 	3,3,
   1008 	LAND_CLEAR,
   1009 	(char const *)_slope1101
   1010 );
   1011 static TemplateTypeClass const Shore47(
   1012 	TEMPLATE_SHORE47,
   1013 	THEATERF_DESERT,
   1014 	"SH47",
   1015 	TXT_WATER,
   1016 	LAND_WATER,
   1017 	3,3,
   1018 	LAND_CLEAR,
   1019 	NULL
   1020 );
   1021 static TemplateTypeClass const Shore48(
   1022 	TEMPLATE_SHORE48,
   1023 	THEATERF_DESERT,
   1024 	"SH48",
   1025 	TXT_WATER,
   1026 	LAND_WATER,
   1027 	3,3,
   1028 	LAND_CLEAR,
   1029 	NULL
   1030 );
   1031 static TemplateTypeClass const Shore49(
   1032 	TEMPLATE_SHORE49,
   1033 	THEATERF_DESERT,
   1034 	"SH49",
   1035 	TXT_WATER,
   1036 	LAND_WATER,
   1037 	3,3,
   1038 	LAND_CLEAR,
   1039 	NULL
   1040 );
   1041 static TemplateTypeClass const Shore50(
   1042 	TEMPLATE_SHORE50,
   1043 	THEATERF_DESERT,
   1044 	"SH50",
   1045 	TXT_WATER,
   1046 	LAND_WATER,
   1047 	4,3,
   1048 	LAND_CLEAR,
   1049 	(char const *)_slope00000001
   1050 );
   1051 static TemplateTypeClass const Shore51(
   1052 	TEMPLATE_SHORE51,
   1053 	THEATERF_DESERT,
   1054 	"SH51",
   1055 	TXT_WATER,
   1056 	LAND_WATER,
   1057 	4,3,
   1058 	LAND_CLEAR,
   1059 	NULL
   1060 );
   1061 static TemplateTypeClass const Shore52(
   1062 	TEMPLATE_SHORE52,
   1063 	THEATERF_DESERT,
   1064 	"SH52",
   1065 	TXT_WATER,
   1066 	LAND_WATER,
   1067 	4,3,
   1068 	LAND_CLEAR,
   1069 	NULL
   1070 );
   1071 static TemplateTypeClass const Shore53(
   1072 	TEMPLATE_SHORE53,
   1073 	THEATERF_DESERT,
   1074 	"SH53",
   1075 	TXT_WATER,
   1076 	LAND_WATER,
   1077 	4,3,
   1078 	LAND_CLEAR,
   1079 	(char const *)_slope11101
   1080 );
   1081 static TemplateTypeClass const Shore54(
   1082 	TEMPLATE_SHORE54,
   1083 	THEATERF_DESERT,
   1084 	"SH54",
   1085 	TXT_WATER,
   1086 	LAND_WATER,
   1087 	3,2,
   1088 	LAND_CLEAR,
   1089 	(char const *)_slope1
   1090 );
   1091 static TemplateTypeClass const Shore55(
   1092 	TEMPLATE_SHORE55,
   1093 	THEATERF_DESERT,
   1094 	"SH55",
   1095 	TXT_WATER,
   1096 	LAND_WATER,
   1097 	3,2,
   1098 	LAND_CLEAR,
   1099 	(char const *)_slope001
   1100 );
   1101 static TemplateTypeClass const Shore56(
   1102 	TEMPLATE_SHORE56,
   1103 	THEATERF_DESERT,
   1104 	"SH56",
   1105 	TXT_WATER,
   1106 	LAND_WATER,
   1107 	3,2,
   1108 	LAND_CLEAR,
   1109 	NULL
   1110 );
   1111 static TemplateTypeClass const Shore57(
   1112 	TEMPLATE_SHORE57,
   1113 	THEATERF_DESERT,
   1114 	"SH57",
   1115 	TXT_WATER,
   1116 	LAND_WATER,
   1117 	3,2,
   1118 	LAND_CLEAR,
   1119 	NULL
   1120 );
   1121 static TemplateTypeClass const Shore58(
   1122 	TEMPLATE_SHORE58,
   1123 	THEATERF_DESERT,
   1124 	"SH58",
   1125 	TXT_WATER,
   1126 	LAND_WATER,
   1127 	2,3,
   1128 	LAND_CLEAR,
   1129 	NULL
   1130 );
   1131 static TemplateTypeClass const Shore59(
   1132 	TEMPLATE_SHORE59,
   1133 	THEATERF_DESERT,
   1134 	"SH59",
   1135 	TXT_WATER,
   1136 	LAND_WATER,
   1137 	2,3,
   1138 	LAND_CLEAR,
   1139 	(char const *)_slope1
   1140 );
   1141 static TemplateTypeClass const Shore60(
   1142 	TEMPLATE_SHORE60,
   1143 	THEATERF_DESERT,
   1144 	"SH60",
   1145 	TXT_WATER,
   1146 	LAND_WATER,
   1147 	2,3,
   1148 	LAND_CLEAR,
   1149 	(char const *)_slope000101
   1150 );
   1151 static TemplateTypeClass const Shore61(
   1152 	TEMPLATE_SHORE61,
   1153 	THEATERF_DESERT,
   1154 	"SH61",
   1155 	TXT_WATER,
   1156 	LAND_WATER,
   1157 	2,3,
   1158 	LAND_CLEAR,
   1159 	(char const *)_slope01
   1160 );
   1161 static TemplateTypeClass const Shore62(
   1162 	TEMPLATE_SHORE62,
   1163 	THEATERF_DESERT,
   1164 	"SH62",
   1165 	TXT_WATER,
   1166 	LAND_WATER,
   1167 	6,1,
   1168 	LAND_CLEAR,
   1169 	NULL
   1170 );
   1171 static TemplateTypeClass const Shore63(
   1172 	TEMPLATE_SHORE63,
   1173 	THEATERF_DESERT,
   1174 	"SH63",
   1175 	TXT_WATER,
   1176 	LAND_WATER,
   1177 	4,1,
   1178 	LAND_CLEAR,
   1179 	NULL
   1180 );
   1181 static TemplateTypeClass const Boulder1(
   1182 	TEMPLATE_BOULDER1,
   1183 	THEATERF_WINTER|THEATERF_TEMPERATE|THEATERF_DESERT,
   1184 	"B1",
   1185 	TXT_SLOPE,
   1186 	LAND_ROCK,
   1187 	1,1,
   1188 	LAND_ROCK,
   1189 	NULL
   1190 );
   1191 static TemplateTypeClass const Boulder2(
   1192 	TEMPLATE_BOULDER2,
   1193 	THEATERF_WINTER|THEATERF_TEMPERATE|THEATERF_DESERT,
   1194 	"B2",
   1195 	TXT_SLOPE,
   1196 	LAND_ROCK,
   1197 	2,1,
   1198 	LAND_ROCK,
   1199 	NULL
   1200 );
   1201 static TemplateTypeClass const Boulder3(
   1202 	TEMPLATE_BOULDER3,
   1203 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1204 	"B3",
   1205 	TXT_SLOPE,
   1206 	LAND_ROCK,
   1207 	3,1,
   1208 	LAND_ROCK,
   1209 	NULL
   1210 );
   1211 static TemplateTypeClass const Boulder4(
   1212 	TEMPLATE_BOULDER4,
   1213 	THEATERF_TEMPERATE,
   1214 	"B4",
   1215 	TXT_SLOPE,
   1216 	LAND_ROCK,
   1217 	1,1,
   1218 	LAND_ROCK,
   1219 	NULL
   1220 );
   1221 static TemplateTypeClass const Boulder5(
   1222 	TEMPLATE_BOULDER5,
   1223 	THEATERF_TEMPERATE,
   1224 	"B5",
   1225 	TXT_SLOPE,
   1226 	LAND_ROCK,
   1227 	1,1,
   1228 	LAND_ROCK,
   1229 	NULL
   1230 );
   1231 static TemplateTypeClass const Boulder6(
   1232 	TEMPLATE_BOULDER6,
   1233 	THEATERF_TEMPERATE,
   1234 	"B6",
   1235 	TXT_SLOPE,
   1236 	LAND_ROCK,
   1237 	1,1,
   1238 	LAND_ROCK,
   1239 	NULL
   1240 );
   1241 static TemplateTypeClass const Slope1(
   1242 	TEMPLATE_SLOPE1,
   1243 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1244 	"S01",
   1245 	TXT_SLOPE,
   1246 	LAND_ROCK,
   1247 	2,2,
   1248 	LAND_CLEAR,
   1249 	(char const *)_slope001
   1250 );
   1251 static TemplateTypeClass const Slope2(
   1252 	TEMPLATE_SLOPE2,
   1253 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1254 	"S02",
   1255 	TXT_SLOPE,
   1256 	LAND_ROCK,
   1257 	2,3,
   1258 	LAND_CLEAR,
   1259 	(char const *)_slope01
   1260 );
   1261 static TemplateTypeClass const Slope3(
   1262 	TEMPLATE_SLOPE3,
   1263 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1264 	"S03",
   1265 	TXT_SLOPE,
   1266 	LAND_ROCK,
   1267 	2,2,
   1268 	LAND_ROCK,
   1269 	NULL
   1270 );
   1271 static TemplateTypeClass const Slope4(
   1272 	TEMPLATE_SLOPE4,
   1273 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1274 	"S04",
   1275 	TXT_SLOPE,
   1276 	LAND_ROCK,
   1277 	2,2,
   1278 	LAND_ROCK,
   1279 	NULL
   1280 );
   1281 static TemplateTypeClass const Slope5(
   1282 	TEMPLATE_SLOPE5,
   1283 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1284 	"S05",
   1285 	TXT_SLOPE,
   1286 	LAND_ROCK,
   1287 	2,2,
   1288 	LAND_ROCK,
   1289 	NULL
   1290 );
   1291 static TemplateTypeClass const Slope6(
   1292 	TEMPLATE_SLOPE6,
   1293 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1294 	"S06",
   1295 	TXT_SLOPE,
   1296 	LAND_ROCK,
   1297 	2,3,
   1298 	LAND_CLEAR,
   1299 	(char const *)_slope1
   1300 );
   1301 static TemplateTypeClass const Slope7(
   1302 	TEMPLATE_SLOPE7,
   1303 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1304 	"S07",
   1305 	TXT_SLOPE,
   1306 	LAND_ROCK,
   1307 	2,2,
   1308 	LAND_ROCK,
   1309 	NULL
   1310 );
   1311 static TemplateTypeClass const Slope8(
   1312 	TEMPLATE_SLOPE8,
   1313 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1314 	"S08",
   1315 	TXT_SLOPE,
   1316 	LAND_ROCK,
   1317 	2,2,
   1318 	LAND_CLEAR,
   1319 	(char const *)_slope01
   1320 );
   1321 static TemplateTypeClass const Slope9(
   1322 	TEMPLATE_SLOPE9,
   1323 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1324 	"S09",
   1325 	TXT_SLOPE,
   1326 	LAND_ROCK,
   1327 	3,2,
   1328 	LAND_CLEAR,
   1329 	(char const *)_slope0001
   1330 );
   1331 static TemplateTypeClass const Slope10(
   1332 	TEMPLATE_SLOPE10,
   1333 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1334 	"S10",
   1335 	TXT_SLOPE,
   1336 	LAND_ROCK,
   1337 	2,2,
   1338 	LAND_ROCK,
   1339 	NULL
   1340 );
   1341 static TemplateTypeClass const Slope11(
   1342 	TEMPLATE_SLOPE11,
   1343 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1344 	"S11",
   1345 	TXT_SLOPE,
   1346 	LAND_ROCK,
   1347 	2,2,
   1348 	LAND_ROCK,
   1349 	NULL
   1350 );
   1351 static TemplateTypeClass const Slope12(
   1352 	TEMPLATE_SLOPE12,
   1353 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1354 	"S12",
   1355 	TXT_SLOPE,
   1356 	LAND_ROCK,
   1357 	2,2,
   1358 	LAND_ROCK,
   1359 	NULL
   1360 );
   1361 static TemplateTypeClass const Slope13(
   1362 	TEMPLATE_SLOPE13,
   1363 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1364 	"S13",
   1365 	TXT_SLOPE,
   1366 	LAND_ROCK,
   1367 	3,2,
   1368 	LAND_CLEAR,
   1369 	(char const *)_slope000001
   1370 );
   1371 static TemplateTypeClass const Slope14(
   1372 	TEMPLATE_SLOPE14,
   1373 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1374 	"S14",
   1375 	TXT_SLOPE,
   1376 	LAND_ROCK,
   1377 	2,2,
   1378 	LAND_CLEAR,
   1379 	(char const *)_slope0111
   1380 );
   1381 static TemplateTypeClass const Slope15(
   1382 	TEMPLATE_SLOPE15,
   1383 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1384 	"S15",
   1385 	TXT_SLOPE,
   1386 	LAND_ROCK,
   1387 	2,2,
   1388 	LAND_CLEAR,
   1389 	(char const *)_slope01
   1390 );
   1391 static TemplateTypeClass const Slope16(
   1392 	TEMPLATE_SLOPE16,
   1393 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1394 	"S16",
   1395 	TXT_SLOPE,
   1396 	LAND_ROCK,
   1397 	2,3,
   1398 	LAND_ROCK,
   1399 	NULL
   1400 );
   1401 static TemplateTypeClass const Slope17(
   1402 	TEMPLATE_SLOPE17,
   1403 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1404 	"S17",
   1405 	TXT_SLOPE,
   1406 	LAND_ROCK,
   1407 	2,2,
   1408 	LAND_ROCK,
   1409 	NULL
   1410 );
   1411 static TemplateTypeClass const Slope18(
   1412 	TEMPLATE_SLOPE18,
   1413 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1414 	"S18",
   1415 	TXT_SLOPE,
   1416 	LAND_ROCK,
   1417 	2,2,
   1418 	LAND_ROCK,
   1419 	NULL
   1420 );
   1421 static TemplateTypeClass const Slope19(
   1422 	TEMPLATE_SLOPE19,
   1423 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1424 	"S19",
   1425 	TXT_SLOPE,
   1426 	LAND_ROCK,
   1427 	2,2,
   1428 	LAND_ROCK,
   1429 	NULL
   1430 );
   1431 static TemplateTypeClass const Slope20(
   1432 	TEMPLATE_SLOPE20,
   1433 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1434 	"S20",
   1435 	TXT_SLOPE,
   1436 	LAND_ROCK,
   1437 	2,3,
   1438 	LAND_CLEAR,
   1439 	(char const *)_slope000001
   1440 );
   1441 static TemplateTypeClass const Slope21(
   1442 	TEMPLATE_SLOPE21,
   1443 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1444 	"S21",
   1445 	TXT_SLOPE,
   1446 	LAND_ROCK,
   1447 	1,2,
   1448 	LAND_ROCK,
   1449 	NULL
   1450 );
   1451 static TemplateTypeClass const Slope22(
   1452 	TEMPLATE_SLOPE22,
   1453 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1454 	"S22",
   1455 	TXT_SLOPE,
   1456 	LAND_ROCK,
   1457 	2,1,
   1458 	LAND_ROCK,
   1459 	NULL
   1460 );
   1461 static TemplateTypeClass const Slope23(
   1462 	TEMPLATE_SLOPE23,
   1463 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1464 	"S23",
   1465 	TXT_SLOPE,
   1466 	LAND_ROCK,
   1467 	3,2,
   1468 	LAND_CLEAR,
   1469 	(char const *)_slope000001
   1470 );
   1471 static TemplateTypeClass const Slope24(
   1472 	TEMPLATE_SLOPE24,
   1473 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1474 	"S24",
   1475 	TXT_SLOPE,
   1476 	LAND_ROCK,
   1477 	2,2,
   1478 	LAND_ROCK,
   1479 	NULL
   1480 );
   1481 static TemplateTypeClass const Slope25(
   1482 	TEMPLATE_SLOPE25,
   1483 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1484 	"S25",
   1485 	TXT_SLOPE,
   1486 	LAND_ROCK,
   1487 	2,2,
   1488 	LAND_ROCK,
   1489 	NULL
   1490 );
   1491 static TemplateTypeClass const Slope26(
   1492 	TEMPLATE_SLOPE26,
   1493 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1494 	"S26",
   1495 	TXT_SLOPE,
   1496 	LAND_ROCK,
   1497 	2,2,
   1498 	LAND_ROCK,
   1499 	NULL
   1500 );
   1501 static TemplateTypeClass const Slope27(
   1502 	TEMPLATE_SLOPE27,
   1503 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1504 	"S27",
   1505 	TXT_SLOPE,
   1506 	LAND_ROCK,
   1507 	3,2,
   1508 	LAND_CLEAR,
   1509 	(char const *)_slope0011
   1510 );
   1511 static TemplateTypeClass const Slope28(
   1512 	TEMPLATE_SLOPE28,
   1513 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1514 	"S28",
   1515 	TXT_SLOPE,
   1516 	LAND_ROCK,
   1517 	2,2,
   1518 	LAND_ROCK,
   1519 	NULL
   1520 );
   1521 static TemplateTypeClass const Slope29(
   1522 	TEMPLATE_SLOPE29,
   1523 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1524 	"S29",
   1525 	TXT_SLOPE,
   1526 	LAND_ROCK,
   1527 	2,2,
   1528 	LAND_ROCK,
   1529 	NULL
   1530 );
   1531 static TemplateTypeClass const Slope30(
   1532 	TEMPLATE_SLOPE30,
   1533 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1534 	"S30",
   1535 	TXT_SLOPE,
   1536 	LAND_ROCK,
   1537 	2,2,
   1538 	LAND_ROCK,
   1539 	NULL
   1540 );
   1541 static TemplateTypeClass const Slope31(
   1542 	TEMPLATE_SLOPE31,
   1543 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1544 	"S31",
   1545 	TXT_SLOPE,
   1546 	LAND_ROCK,
   1547 	2,2,
   1548 	LAND_ROCK,
   1549 	NULL
   1550 );
   1551 static TemplateTypeClass const Slope32(
   1552 	TEMPLATE_SLOPE32,
   1553 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1554 	"S32",
   1555 	TXT_SLOPE,
   1556 	LAND_ROCK,
   1557 	2,2,
   1558 	LAND_ROCK,
   1559 	NULL
   1560 );
   1561 static TemplateTypeClass const Slope33(
   1562 	TEMPLATE_SLOPE33,
   1563 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1564 	"S33",
   1565 	TXT_SLOPE,
   1566 	LAND_ROCK,
   1567 	2,2,
   1568 	LAND_ROCK,
   1569 	NULL
   1570 );
   1571 static TemplateTypeClass const Slope34(
   1572 	TEMPLATE_SLOPE34,
   1573 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1574 	"S34",
   1575 	TXT_SLOPE,
   1576 	LAND_ROCK,
   1577 	2,2,
   1578 	LAND_ROCK,
   1579 	NULL
   1580 );
   1581 static TemplateTypeClass const Slope35(
   1582 	TEMPLATE_SLOPE35,
   1583 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1584 	"S35",
   1585 	TXT_SLOPE,
   1586 	LAND_ROCK,
   1587 	2,2,
   1588 	LAND_ROCK,
   1589 	NULL
   1590 );
   1591 static TemplateTypeClass const Slope36(
   1592 	TEMPLATE_SLOPE36,
   1593 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1594 	"S36",
   1595 	TXT_SLOPE,
   1596 	LAND_ROCK,
   1597 	2,2,
   1598 	LAND_ROCK,
   1599 	NULL
   1600 );
   1601 static TemplateTypeClass const Slope37(
   1602 	TEMPLATE_SLOPE37,
   1603 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1604 	"S37",
   1605 	TXT_SLOPE,
   1606 	LAND_ROCK,
   1607 	2,2,
   1608 	LAND_ROCK,
   1609 	NULL
   1610 );
   1611 static TemplateTypeClass const Slope38(
   1612 	TEMPLATE_SLOPE38,
   1613 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   1614 	"S38",
   1615 	TXT_SLOPE,
   1616 	LAND_ROCK,
   1617 	2,2,
   1618 	LAND_ROCK,
   1619 	NULL
   1620 );
   1621 static TemplateTypeClass const Brush1(
   1622 	TEMPLATE_BRUSH1,
   1623 	THEATERF_DESERT,
   1624 	"BR1",
   1625 	TXT_BRUSH,
   1626 	LAND_ROCK,
   1627 	1,1,
   1628 	LAND_ROCK,
   1629 	NULL
   1630 );
   1631 static TemplateTypeClass const Brush2(
   1632 	TEMPLATE_BRUSH2,
   1633 	THEATERF_DESERT,
   1634 	"BR2",
   1635 	TXT_BRUSH,
   1636 	LAND_ROCK,
   1637 	1,1,
   1638 	LAND_ROCK,
   1639 	NULL
   1640 );
   1641 static TemplateTypeClass const Brush3(
   1642 	TEMPLATE_BRUSH3,
   1643 	THEATERF_DESERT,
   1644 	"BR3",
   1645 	TXT_BRUSH,
   1646 	LAND_ROCK,
   1647 	1,1,
   1648 	LAND_ROCK,
   1649 	NULL
   1650 );
   1651 static TemplateTypeClass const Brush4(
   1652 	TEMPLATE_BRUSH4,
   1653 	THEATERF_DESERT,
   1654 	"BR4",
   1655 	TXT_BRUSH,
   1656 	LAND_ROCK,
   1657 	1,1,
   1658 	LAND_ROCK,
   1659 	NULL
   1660 );
   1661 static TemplateTypeClass const Brush5(
   1662 	TEMPLATE_BRUSH5,
   1663 	THEATERF_DESERT,
   1664 	"BR5",
   1665 	TXT_BRUSH,
   1666 	LAND_ROCK,
   1667 	1,1,
   1668 	LAND_ROCK,
   1669 	NULL
   1670 );
   1671 static TemplateTypeClass const Brush6(
   1672 	TEMPLATE_BRUSH6,
   1673 	THEATERF_DESERT,
   1674 	"BR6",
   1675 	TXT_BRUSH,
   1676 	LAND_ROCK,
   1677 	2,2,
   1678 	LAND_ROCK,
   1679 	NULL
   1680 );
   1681 static TemplateTypeClass const Brush7(
   1682 	TEMPLATE_BRUSH7,
   1683 	THEATERF_DESERT,
   1684 	"BR7",
   1685 	TXT_BRUSH,
   1686 	LAND_ROCK,
   1687 	2,2,
   1688 	LAND_ROCK,
   1689 	NULL
   1690 );
   1691 static TemplateTypeClass const Brush8(
   1692 	TEMPLATE_BRUSH8,
   1693 	THEATERF_DESERT,
   1694 	"BR8",
   1695 	TXT_BRUSH,
   1696 	LAND_ROCK,
   1697 	3,2,
   1698 	LAND_ROCK,
   1699 	NULL
   1700 );
   1701 static TemplateTypeClass const Brush9(
   1702 	TEMPLATE_BRUSH9,
   1703 	THEATERF_DESERT,
   1704 	"BR9",
   1705 	TXT_BRUSH,
   1706 	LAND_ROCK,
   1707 	3,2,
   1708 	LAND_ROCK,
   1709 	NULL
   1710 );
   1711 static TemplateTypeClass const Brush10(
   1712 	TEMPLATE_BRUSH10,
   1713 	THEATERF_DESERT,
   1714 	"BR10",
   1715 	TXT_BRUSH,
   1716 	LAND_ROCK,
   1717 	2,1,
   1718 	LAND_ROCK,
   1719 	NULL
   1720 );
   1721 static TemplateTypeClass const Patch1(
   1722 	TEMPLATE_PATCH1,
   1723 	THEATERF_TEMPERATE|THEATERF_DESERT,
   1724 	"P01",
   1725 	TXT_PATCH,
   1726 	LAND_CLEAR,
   1727 	1,1,
   1728 	LAND_CLEAR,
   1729 	NULL
   1730 );
   1731 static TemplateTypeClass const Patch2(
   1732 	TEMPLATE_PATCH2,
   1733 	THEATERF_TEMPERATE|THEATERF_DESERT,
   1734 	"P02",
   1735 	TXT_PATCH,
   1736 	LAND_ROCK,
   1737 	1,1,
   1738 	LAND_CLEAR,
   1739 	NULL
   1740 );
   1741 static TemplateTypeClass const Patch3(
   1742 	TEMPLATE_PATCH3,
   1743 	THEATERF_TEMPERATE|THEATERF_DESERT,
   1744 	"P03",
   1745 	TXT_PATCH,
   1746 	LAND_CLEAR,
   1747 	1,1,
   1748 	LAND_CLEAR,
   1749 	NULL
   1750 );
   1751 static TemplateTypeClass const Patch4(
   1752 	TEMPLATE_PATCH4,
   1753 	THEATERF_TEMPERATE|THEATERF_DESERT,
   1754 	"P04",
   1755 	TXT_PATCH,
   1756 	LAND_ROCK,
   1757 	1,1,
   1758 	LAND_CLEAR,
   1759 	NULL
   1760 );
   1761 static TemplateTypeClass const Patch5(
   1762 	TEMPLATE_PATCH5,
   1763 	THEATERF_DESERT,
   1764 	"P05",
   1765 	TXT_PATCH,
   1766 	LAND_CLEAR,
   1767 	2,2,
   1768 	LAND_CLEAR,
   1769 	NULL
   1770 );
   1771 static TemplateTypeClass const Patch6(
   1772 	TEMPLATE_PATCH6,
   1773 	THEATERF_DESERT,
   1774 	"P06",
   1775 	TXT_PATCH,
   1776 	LAND_CLEAR,
   1777 	6,4,
   1778 	LAND_CLEAR,
   1779 	NULL
   1780 );
   1781 static TemplateTypeClass const Patch7(
   1782 	TEMPLATE_PATCH7,
   1783 	THEATERF_WINTER|THEATERF_TEMPERATE|THEATERF_DESERT,
   1784 	"P07",
   1785 	TXT_PATCH,
   1786 	LAND_CLEAR,
   1787 	4,2,
   1788 	LAND_CLEAR,
   1789 	NULL
   1790 );
   1791 static TemplateTypeClass const Patch8(
   1792 	TEMPLATE_PATCH8,
   1793 	THEATERF_WINTER|THEATERF_TEMPERATE|THEATERF_DESERT,
   1794 	"P08",
   1795 	TXT_PATCH,
   1796 	LAND_CLEAR,
   1797 	3,2,
   1798 	LAND_CLEAR,
   1799 	NULL
   1800 );
   1801 static TemplateTypeClass const Patch13(
   1802 	TEMPLATE_PATCH13,
   1803 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1804 	"P13",
   1805 	TXT_PATCH,
   1806 	LAND_CLEAR,
   1807 	3,2,
   1808 	LAND_CLEAR,
   1809 	NULL
   1810 );
   1811 static TemplateTypeClass const Patch14(
   1812 	TEMPLATE_PATCH14,
   1813 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1814 	"P14",
   1815 	TXT_PATCH,
   1816 	LAND_CLEAR,
   1817 	2,1,
   1818 	LAND_CLEAR,
   1819 	NULL
   1820 );
   1821 static TemplateTypeClass const Patch15(
   1822 	TEMPLATE_PATCH15,
   1823 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1824 	"P15",
   1825 	TXT_PATCH,
   1826 	LAND_CLEAR,
   1827 	4,2,
   1828 	LAND_CLEAR,
   1829 	NULL
   1830 );
   1831 static TemplateTypeClass const Patch16(
   1832 	TEMPLATE_PATCH16,
   1833 	THEATERF_WINTER,
   1834 	"P16",
   1835 	TXT_PATCH,
   1836 	LAND_CLEAR,
   1837 	2,2,
   1838 	LAND_CLEAR,
   1839 	NULL
   1840 );
   1841 static TemplateTypeClass const Patch17(
   1842 	TEMPLATE_PATCH17,
   1843 	THEATERF_WINTER,
   1844 	"P17",
   1845 	TXT_PATCH,
   1846 	LAND_CLEAR,
   1847 	4,2,
   1848 	LAND_CLEAR,
   1849 	NULL
   1850 );
   1851 static TemplateTypeClass const Patch18(
   1852 	TEMPLATE_PATCH18,
   1853 	THEATERF_WINTER,
   1854 	"P18",
   1855 	TXT_PATCH,
   1856 	LAND_CLEAR,
   1857 	4,3,
   1858 	LAND_CLEAR,
   1859 	NULL
   1860 );
   1861 static TemplateTypeClass const Patch19(
   1862 	TEMPLATE_PATCH19,
   1863 	THEATERF_WINTER,
   1864 	"P19",
   1865 	TXT_PATCH,
   1866 	LAND_CLEAR,
   1867 	4,3,
   1868 	LAND_CLEAR,
   1869 	NULL
   1870 );
   1871 static TemplateTypeClass const Patch20(
   1872 	TEMPLATE_PATCH20,
   1873 	THEATERF_WINTER,
   1874 	"P20",
   1875 	TXT_PATCH,
   1876 	LAND_CLEAR,
   1877 	4,3,
   1878 	LAND_CLEAR,
   1879 	NULL
   1880 );
   1881 static TemplateTypeClass const River1(
   1882 	TEMPLATE_RIVER1,
   1883 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1884 	"RV01",
   1885 	TXT_RIVER,
   1886 	LAND_WATER,
   1887 	5,4,
   1888 	LAND_CLEAR,
   1889 	NULL
   1890 );
   1891 static TemplateTypeClass const River2(
   1892 	TEMPLATE_RIVER2,
   1893 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1894 	"RV02",
   1895 	TXT_RIVER,
   1896 	LAND_WATER,
   1897 	5,3,
   1898 	LAND_ROCK,
   1899 	NULL
   1900 );
   1901 static TemplateTypeClass const River3(
   1902 	TEMPLATE_RIVER3,
   1903 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1904 	"RV03",
   1905 	TXT_RIVER,
   1906 	LAND_WATER,
   1907 	4,4,
   1908 	LAND_CLEAR,
   1909 	(char const *)_slope00000001
   1910 );
   1911 static TemplateTypeClass const River4(
   1912 	TEMPLATE_RIVER4,
   1913 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1914 	"RV04",
   1915 	TXT_RIVER,
   1916 	LAND_WATER,
   1917 	4,4,
   1918 	LAND_ROCK,
   1919 	NULL
   1920 );
   1921 static TemplateTypeClass const River5(
   1922 	TEMPLATE_RIVER5,
   1923 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1924 	"RV05",
   1925 	TXT_RIVER,
   1926 	LAND_WATER,
   1927 	3,3,
   1928 	LAND_ROCK,
   1929 	NULL
   1930 );
   1931 static TemplateTypeClass const River6(
   1932 	TEMPLATE_RIVER6,
   1933 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1934 	"RV06",
   1935 	TXT_RIVER,
   1936 	LAND_WATER,
   1937 	3,2,
   1938 	LAND_ROCK,
   1939 	NULL
   1940 );
   1941 static TemplateTypeClass const River7(
   1942 	TEMPLATE_RIVER7,
   1943 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1944 	"RV07",
   1945 	TXT_RIVER,
   1946 	LAND_WATER,
   1947 	3,2,
   1948 	LAND_ROCK,
   1949 	NULL
   1950 );
   1951 static TemplateTypeClass const River8(
   1952 	TEMPLATE_RIVER8,
   1953 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1954 	"RV08",
   1955 	TXT_RIVER,
   1956 	LAND_WATER,
   1957 	2,2,
   1958 	LAND_ROCK,
   1959 	NULL
   1960 );
   1961 static TemplateTypeClass const River9(
   1962 	TEMPLATE_RIVER9,
   1963 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1964 	"RV09",
   1965 	TXT_RIVER,
   1966 	LAND_WATER,
   1967 	2,2,
   1968 	LAND_ROCK,
   1969 	NULL
   1970 );
   1971 static TemplateTypeClass const River10(
   1972 	TEMPLATE_RIVER10,
   1973 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1974 	"RV10",
   1975 	TXT_RIVER,
   1976 	LAND_WATER,
   1977 	2,2,
   1978 	LAND_ROCK,
   1979 	NULL
   1980 );
   1981 static TemplateTypeClass const River11(
   1982 	TEMPLATE_RIVER11,
   1983 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1984 	"RV11",
   1985 	TXT_RIVER,
   1986 	LAND_WATER,
   1987 	2,2,
   1988 	LAND_ROCK,
   1989 	NULL
   1990 );
   1991 static TemplateTypeClass const River12(
   1992 	TEMPLATE_RIVER12,
   1993 	THEATERF_WINTER|THEATERF_TEMPERATE,
   1994 	"RV12",
   1995 	TXT_RIVER,
   1996 	LAND_WATER,
   1997 	3,4,
   1998 	LAND_ROCK,
   1999 	NULL
   2000 );
   2001 static TemplateTypeClass const River13(
   2002 	TEMPLATE_RIVER13,
   2003 	THEATERF_WINTER|THEATERF_TEMPERATE,
   2004 	"RV13",
   2005 	TXT_RIVER,
   2006 	LAND_WATER,
   2007 	4,4,
   2008 	LAND_ROCK,
   2009 	NULL
   2010 );
   2011 static TemplateTypeClass const River14(
   2012 	TEMPLATE_RIVER14,
   2013 	THEATERF_DESERT,
   2014 	"RV14",
   2015 	TXT_RIVER,
   2016 	LAND_WATER,
   2017 	4,3,
   2018 	LAND_ROCK,
   2019 	NULL
   2020 );
   2021 static TemplateTypeClass const River15(
   2022 	TEMPLATE_RIVER15,
   2023 	THEATERF_DESERT,
   2024 	"RV15",
   2025 	TXT_RIVER,
   2026 	LAND_WATER,
   2027 	4,3,
   2028 	LAND_ROCK,
   2029 	NULL
   2030 );
   2031 static TemplateTypeClass const River16(
   2032 	TEMPLATE_RIVER16,
   2033 	THEATERF_DESERT,
   2034 	"RV16",
   2035 	TXT_RIVER,
   2036 	LAND_WATER,
   2037 	6,4,
   2038 	LAND_ROCK,
   2039 	NULL
   2040 );
   2041 static TemplateTypeClass const River17(
   2042 	TEMPLATE_RIVER17,
   2043 	THEATERF_DESERT,
   2044 	"RV17",
   2045 	TXT_RIVER,
   2046 	LAND_WATER,
   2047 	6,5,
   2048 	LAND_ROCK,
   2049 	NULL
   2050 );
   2051 static TemplateTypeClass const River18(
   2052 	TEMPLATE_RIVER18,
   2053 	THEATERF_DESERT,
   2054 	"RV18",
   2055 	TXT_RIVER,
   2056 	LAND_WATER,
   2057 	4,4,
   2058 	LAND_ROCK,
   2059 	NULL
   2060 );
   2061 static TemplateTypeClass const River19(
   2062 	TEMPLATE_RIVER19,
   2063 	THEATERF_DESERT,
   2064 	"RV19",
   2065 	TXT_RIVER,
   2066 	LAND_WATER,
   2067 	4,4,
   2068 	LAND_ROCK,
   2069 	NULL
   2070 );
   2071 static TemplateTypeClass const River20(
   2072 	TEMPLATE_RIVER20,
   2073 	THEATERF_DESERT,
   2074 	"RV20",
   2075 	TXT_RIVER,
   2076 	LAND_WATER,
   2077 	6,8,
   2078 	LAND_ROCK,
   2079 	NULL
   2080 );
   2081 static TemplateTypeClass const River21(
   2082 	TEMPLATE_RIVER21,
   2083 	THEATERF_DESERT,
   2084 	"RV21",
   2085 	TXT_RIVER,
   2086 	LAND_WATER,
   2087 	5,8,
   2088 	LAND_ROCK,
   2089 	NULL
   2090 );
   2091 static TemplateTypeClass const River22(
   2092 	TEMPLATE_RIVER22,
   2093 	THEATERF_DESERT,
   2094 	"RV22",
   2095 	TXT_RIVER,
   2096 	LAND_WATER,
   2097 	3,3,
   2098 	LAND_ROCK,
   2099 	NULL
   2100 );
   2101 static TemplateTypeClass const River23(
   2102 	TEMPLATE_RIVER23,
   2103 	THEATERF_DESERT,
   2104 	"RV23",
   2105 	TXT_RIVER,
   2106 	LAND_WATER,
   2107 	3,3,
   2108 	LAND_ROCK,
   2109 	NULL
   2110 );
   2111 static TemplateTypeClass const River24(
   2112 	TEMPLATE_RIVER24,
   2113 	THEATERF_DESERT,
   2114 	"RV24",
   2115 	TXT_RIVER,
   2116 	LAND_WATER,
   2117 	3,3,
   2118 	LAND_ROCK,
   2119 	NULL
   2120 );
   2121 static TemplateTypeClass const River25(
   2122 	TEMPLATE_RIVER25,
   2123 	THEATERF_DESERT,
   2124 	"RV25",
   2125 	TXT_RIVER,
   2126 	LAND_WATER,
   2127 	3,3,
   2128 	LAND_ROCK,
   2129 	NULL
   2130 );
   2131 static TemplateTypeClass const Ford1(
   2132 	TEMPLATE_FORD1,
   2133 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   2134 	"FORD1",
   2135 	TXT_RIVER,
   2136 	LAND_WATER,
   2137 	3,3,
   2138 	LAND_CLEAR,
   2139 	(char const *)_slope001111001
   2140 );
   2141 static TemplateTypeClass const Ford2(
   2142 	TEMPLATE_FORD2,
   2143 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   2144 	"FORD2",
   2145 	TXT_RIVER,
   2146 	LAND_WATER,
   2147 	3,3,
   2148 	LAND_CLEAR,
   2149 	(char const *)_slope111010011
   2150 );
   2151 static TemplateTypeClass const Falls1(
   2152 	TEMPLATE_FALLS1,
   2153 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   2154 	"FALLS1",
   2155 	TXT_RIVER,
   2156 	LAND_WATER,
   2157 	3,3,
   2158 	LAND_CLEAR,
   2159 	(char const *)_slope1
   2160 );
   2161 static TemplateTypeClass const Falls2(
   2162 	TEMPLATE_FALLS2,
   2163 	THEATERF_WINTER|THEATERF_DESERT|THEATERF_TEMPERATE,
   2164 	"FALLS2",
   2165 	TXT_RIVER,
   2166 	LAND_WATER,
   2167 	3,2,
   2168 	LAND_CLEAR,
   2169 	NULL
   2170 );
   2171 static TemplateTypeClass const Bridge1(
   2172 	TEMPLATE_BRIDGE1,
   2173 	THEATERF_WINTER|THEATERF_TEMPERATE,
   2174 	"BRIDGE1",
   2175 	TXT_RIVER,
   2176 	LAND_WATER,
   2177 	4,4,
   2178 	LAND_CLEAR,
   2179 	(char const *)_slope00110010010011
   2180 );
   2181 static TemplateTypeClass const Bridge1d(
   2182 	TEMPLATE_BRIDGE1D,
   2183 	THEATERF_WINTER|THEATERF_TEMPERATE,
   2184 	"BRIDGE1D",
   2185 	TXT_RIVER,
   2186 	LAND_WATER,
   2187 	4,4,
   2188 	LAND_CLEAR,
   2189 	(char const *)_slope00110000000011
   2190 );
   2191 static TemplateTypeClass const Bridge2(
   2192 	TEMPLATE_BRIDGE2,
   2193 	THEATERF_WINTER|THEATERF_TEMPERATE,
   2194 	"BRIDGE2",
   2195 	TXT_RIVER,
   2196 	LAND_WATER,
   2197 	5,5,
   2198 	LAND_CLEAR,
   2199 	(char const *)_slope1100001000001000001100011
   2200 );
   2201 static TemplateTypeClass const Bridge2d(
   2202 	TEMPLATE_BRIDGE2D,
   2203 	THEATERF_WINTER|THEATERF_TEMPERATE,
   2204 	"BRIDGE2D",
   2205 	TXT_RIVER,
   2206 	LAND_WATER,
   2207 	5,5,
   2208 	LAND_CLEAR,
   2209 	(char const *)_slope1100000000000000001100011
   2210 );
   2211 static TemplateTypeClass const Bridge3(
   2212 	TEMPLATE_BRIDGE3,
   2213 	THEATERF_DESERT,
   2214 	"BRIDGE3",
   2215 	TXT_RIVER,
   2216 	LAND_WATER,
   2217 	6,5,
   2218 	LAND_CLEAR,
   2219 	(char const *)_slope00011010010100100001000011
   2220 );
   2221 static TemplateTypeClass const Bridge3d(
   2222 	TEMPLATE_BRIDGE3D,
   2223 	THEATERF_DESERT,
   2224 	"BRIDGE3D",
   2225 	TXT_RIVER,
   2226 	LAND_WATER,
   2227 	6,5,
   2228 	LAND_CLEAR,
   2229 	(char const *)_slope00011010000100000001000011
   2230 );
   2231 static TemplateTypeClass const Bridge4(
   2232 	TEMPLATE_BRIDGE4,
   2233 	THEATERF_DESERT,
   2234 	"BRIDGE4",
   2235 	TXT_RIVER,
   2236 	LAND_WATER,
   2237 	6,4,
   2238 	LAND_CLEAR,
   2239 	(char const *)_slope01000000100000010000001
   2240 );
   2241 static TemplateTypeClass const Bridge4d(
   2242 	TEMPLATE_BRIDGE4D,
   2243 	THEATERF_DESERT,
   2244 	"BRIDGE4D",
   2245 	TXT_RIVER,
   2246 	LAND_WATER,
   2247 	6,4,
   2248 	LAND_CLEAR,
   2249 	(char const *)_slope01000000000000000000001
   2250 );
   2251 
   2252 TemplateTypeClass const * const TemplateTypeClass::Pointers[TEMPLATE_COUNT] = {
   2253 	&Clear,			// TEMPLATE_CLEAR1
   2254 	&Water,			// TEMPLATE_WATER
   2255 	&Water2,			// TEMPLATE_WATER2
   2256 	&Shore1,			// TEMPLATE_SHORE1
   2257 	&Shore2,			// TEMPLATE_SHORE2
   2258 	&Shore3,			// TEMPLATE_SHORE3
   2259 	&Shore4,			// TEMPLATE_SHORE4
   2260 	&Shore5,			// TEMPLATE_SHORE5
   2261 	&Shore11,		//	TEMPLATE_SHORE11
   2262 	&Shore12,		// TEMPLATE_SHORE12
   2263 	&Shore13,		// TEMPLATE_SHORE13
   2264 	&Shore14,		// TEMPLATE_SHORE14
   2265 	&Shore15,		// TEMPLATE_SHORE15
   2266 	&Slope1,			//	TEMPLATE_SLOPE1
   2267 	&Slope2,			//	TEMPLATE_SLOPE2
   2268 	&Slope3,			//	TEMPLATE_SLOPE3
   2269 	&Slope4,			//	TEMPLATE_SLOPE4
   2270 	&Slope5,			//	TEMPLATE_SLOPE5
   2271 	&Slope6,			//	TEMPLATE_SLOPE6
   2272 	&Slope7,			//	TEMPLATE_SLOPE7
   2273 	&Slope8,			//	TEMPLATE_SLOPE8
   2274 	&Slope9,			//	TEMPLATE_SLOPE9
   2275 	&Slope10,		//	TEMPLATE_SLOPE10
   2276 	&Slope11,		//	TEMPLATE_SLOPE11
   2277 	&Slope12,		//	TEMPLATE_SLOPE12
   2278 	&Slope13,		//	TEMPLATE_SLOPE13
   2279 	&Slope14,		//	TEMPLATE_SLOPE14
   2280 	&Slope15,		//	TEMPLATE_SLOPE15
   2281 	&Slope16,		//	TEMPLATE_SLOPE16
   2282 	&Slope17,		//	TEMPLATE_SLOPE17
   2283 	&Slope18,		//	TEMPLATE_SLOPE18
   2284 	&Slope19,		//	TEMPLATE_SLOPE19
   2285 	&Slope20,		//	TEMPLATE_SLOPE20
   2286 	&Slope21,		//	TEMPLATE_SLOPE21
   2287 	&Slope22,		//	TEMPLATE_SLOPE22
   2288 	&Slope23,		//	TEMPLATE_SLOPE23
   2289 	&Slope24,		//	TEMPLATE_SLOPE24
   2290 	&Slope25,		//	TEMPLATE_SLOPE25
   2291 	&Slope26,		//	TEMPLATE_SLOPE26
   2292 	&Slope27,		//	TEMPLATE_SLOPE27
   2293 	&Slope28,		//	TEMPLATE_SLOPE28
   2294 	&Slope29,		//	TEMPLATE_SLOPE29
   2295 	&Slope30,		//	TEMPLATE_SLOPE30
   2296 	&Slope31,		//	TEMPLATE_SLOPE31
   2297 	&Slope32,		//	TEMPLATE_SLOPE32
   2298 	&Slope33,		//	TEMPLATE_SLOPE33
   2299 	&Slope34,		//	TEMPLATE_SLOPE34
   2300 	&Slope35,		//	TEMPLATE_SLOPE35
   2301 	&Slope36,		//	TEMPLATE_SLOPE36
   2302 	&Slope37,		//	TEMPLATE_SLOPE37
   2303 	&Slope38,		//	TEMPLATE_SLOPE38
   2304 	&Shore32,		// TEMPLATE_SHORE32
   2305 	&Shore33,		// TEMPLATE_SHORE33
   2306 	&Shore20,		// TEMPLATE_SHORE20
   2307 	&Shore21,		// TEMPLATE_SHORE21
   2308 	&Shore22,		//	TEMPLATE_SHORE22
   2309 	&Shore23,		// TEMPLATE_SHORE23
   2310 	&Brush1,			//	TEMPLATE_BRUSH1
   2311 	&Brush2,			//	TEMPLATE_BRUSH2
   2312 	&Brush3,			//	TEMPLATE_BRUSH3
   2313 	&Brush4,			//	TEMPLATE_BRUSH4
   2314 	&Brush5,			//	TEMPLATE_BRUSH5
   2315 	&Brush6,			//	TEMPLATE_BRUSH6
   2316 	&Brush7,			//	TEMPLATE_BRUSH7
   2317 	&Brush8,			//	TEMPLATE_BRUSH8
   2318 	&Brush9,			//	TEMPLATE_BRUSH9
   2319 	&Brush10,		//	TEMPLATE_BRUSH10
   2320 	&Patch1,			//	TEMPLATE_PATCH1
   2321 	&Patch2,			//	TEMPLATE_PATCH2
   2322 	&Patch3,			//	TEMPLATE_PATCH3
   2323 	&Patch4,			//	TEMPLATE_PATCH4
   2324 	&Patch5,			//	TEMPLATE_PATCH5
   2325 	&Patch6,			//	TEMPLATE_PATCH6
   2326 	&Patch7,			//	TEMPLATE_PATCH7
   2327 	&Patch8,			//	TEMPLATE_PATCH8
   2328 	&Shore16,		//	TEMPLATE_SHORE16
   2329 	&Shore17,		//	TEMPLATE_SHORE17
   2330 	&Shore18,		//	TEMPLATE_SHORE18
   2331 	&Shore19,		// TEMPLATE_SHORE19
   2332 	&Patch13,		//	TEMPLATE_PATCH13
   2333 	&Patch14,		//	TEMPLATE_PATCH14
   2334 	&Patch15,		//	TEMPLATE_PATCH15
   2335 	&Boulder1,		//	TEMPLATE_BOULDER1
   2336 	&Boulder2,		//	TEMPLATE_BOULDER2
   2337 	&Boulder3,		//	TEMPLATE_BOULDER3
   2338 	&Boulder4,		// TEMPLATE_BOULDER4
   2339 	&Boulder5,		//	TEMPLATE_BOULDER5
   2340 	&Boulder6,		//	TEMPLATE_BOULDER6
   2341 	&Shore6,			// TEMPLATE_SHORE6
   2342 	&Shore7,			// TEMPLATE_SHORE7
   2343 	&Shore8,			// TEMPLATE_SHORE8
   2344 	&Shore9,			// TEMPLATE_SHORE9
   2345 	&Shore10,		// TEMPLATE_SHORE10
   2346 
   2347 	&Road1,			//	TEMPLATE_ROAD1
   2348 	&Road2,			//	TEMPLATE_ROAD2
   2349 	&Road3,			//	TEMPLATE_ROAD3
   2350 	&Road4,			//	TEMPLATE_ROAD4
   2351 	&Road5,			//	TEMPLATE_ROAD5
   2352 	&Road6,			//	TEMPLATE_ROAD6
   2353 	&Road7,			//	TEMPLATE_ROAD7
   2354 	&Road8,			//	TEMPLATE_ROAD8
   2355 	&Road9,			//	TEMPLATE_ROAD9
   2356 	&Road10,			//	TEMPLATE_ROAD10
   2357 	&Road11,			//	TEMPLATE_ROAD11
   2358 	&Road12,			//	TEMPLATE_ROAD12
   2359 	&Road13,			//	TEMPLATE_ROAD13
   2360 	&Road14,			//	TEMPLATE_ROAD14
   2361 	&Road15,			//	TEMPLATE_ROAD15
   2362 	&Road16,			//	TEMPLATE_ROAD16
   2363 	&Road17,			//	TEMPLATE_ROAD17
   2364 	&Road18,			//	TEMPLATE_ROAD18
   2365 	&Road19,			//	TEMPLATE_ROAD19
   2366 	&Road20,			//	TEMPLATE_ROAD20
   2367 	&Road21,			//	TEMPLATE_ROAD21
   2368 	&Road22,			//	TEMPLATE_ROAD22
   2369 	&Road23,			//	TEMPLATE_ROAD23
   2370 	&Road24,			//	TEMPLATE_ROAD24
   2371 	&Road25,			//	TEMPLATE_ROAD25
   2372 	&Road26,			//	TEMPLATE_ROAD26
   2373 	&Road27,			//	TEMPLATE_ROAD27
   2374 	&Road28,			//	TEMPLATE_ROAD28
   2375 	&Road29,			//	TEMPLATE_ROAD29
   2376 	&Road30,			//	TEMPLATE_ROAD30
   2377 	&Road31,			//	TEMPLATE_ROAD31
   2378 	&Road32,			//	TEMPLATE_ROAD32
   2379 	&Road33,			//	TEMPLATE_ROAD33
   2380 	&Road34,			//	TEMPLATE_ROAD34
   2381 	&Road35,			//	TEMPLATE_ROAD35
   2382 	&Road36,			//	TEMPLATE_ROAD36
   2383 	&Road37,			//	TEMPLATE_ROAD37
   2384 	&Road38,			//	TEMPLATE_ROAD38
   2385 	&Road39,			//	TEMPLATE_ROAD39
   2386 	&Road40,			//	TEMPLATE_ROAD40
   2387 	&Road41,			//	TEMPLATE_ROAD41
   2388 	&Road42,			//	TEMPLATE_ROAD42
   2389 	&Road43,			//	TEMPLATE_ROAD43
   2390 
   2391 	&River1,			//	TEMPLATE_RIVER1
   2392 	&River2,			//	TEMPLATE_RIVER2
   2393 	&River3,			//	TEMPLATE_RIVER3
   2394 	&River4,			//	TEMPLATE_RIVER4
   2395 	&River5,			//	TEMPLATE_RIVER5
   2396 	&River6,			//	TEMPLATE_RIVER6
   2397 	&River7,			//	TEMPLATE_RIVER7
   2398 	&River8,			//	TEMPLATE_RIVER8
   2399 	&River9,			//	TEMPLATE_RIVER9
   2400 	&River10,		//	TEMPLATE_RIVER10
   2401 	&River11,		//	TEMPLATE_RIVER11
   2402 	&River12,		//	TEMPLATE_RIVER12
   2403 	&River13,		//	TEMPLATE_RIVER13
   2404 	&River14,		//	TEMPLATE_RIVER14
   2405 	&River15,		//	TEMPLATE_RIVER15
   2406 	&River16,		//	TEMPLATE_RIVER16
   2407 	&River17,		//	TEMPLATE_RIVER17
   2408 	&River18,		//	TEMPLATE_RIVER18
   2409 	&River19,		//	TEMPLATE_RIVER19
   2410 	&River20,		//	TEMPLATE_RIVER20
   2411 	&River21,		//	TEMPLATE_RIVER21
   2412 	&River22,		//	TEMPLATE_RIVER22
   2413 	&River23,		//	TEMPLATE_RIVER23
   2414 	&River24,		//	TEMPLATE_RIVER24
   2415 	&River25,		//	TEMPLATE_RIVER25
   2416 	&Ford1,			//	TEMPLATE_FORD1
   2417 	&Ford2,			//	TEMPLATE_FORD2
   2418 	&Falls1,			//	TEMPLATE_FALLS1
   2419 	&Falls2,			//	TEMPLATE_FALLS2
   2420 	&Bridge1,		//	TEMPLATE_BRIDGE1
   2421 	&Bridge1d,		//	TEMPLATE_BRIDGE1D
   2422 	&Bridge2,		//	TEMPLATE_BRIDGE2
   2423 	&Bridge2d,		//	TEMPLATE_BRIDGE2D
   2424 	&Bridge3,		//	TEMPLATE_BRIDGE3
   2425 	&Bridge3d,		//	TEMPLATE_BRIDGE3D
   2426 	&Bridge4,		//	TEMPLATE_BRIDGE4
   2427 	&Bridge4d,		//	TEMPLATE_BRIDGE4D
   2428 
   2429 	&Shore24,		//	TEMPLATE_SHORE24
   2430 	&Shore25,		//	TEMPLATE_SHORE25
   2431 	&Shore26,		//	TEMPLATE_SHORE26
   2432 	&Shore27,		//	TEMPLATE_SHORE27
   2433 	&Shore28,		//	TEMPLATE_SHORE28
   2434 	&Shore29,		//	TEMPLATE_SHORE29
   2435 	&Shore30,		//	TEMPLATE_SHORE30
   2436 	&Shore31,		//	TEMPLATE_SHORE31
   2437 
   2438 	&Patch16,		//	TEMPLATE_PATCH16
   2439 	&Patch17,		//	TEMPLATE_PATCH17
   2440 	&Patch18,		//	TEMPLATE_PATCH18
   2441 	&Patch19,		//	TEMPLATE_PATCH19
   2442 	&Patch20,		//	TEMPLATE_PATCH20
   2443 
   2444 	&Shore34,		//	TEMPLATE_SHORE34
   2445 	&Shore35,		//	TEMPLATE_SHORE35
   2446 	&Shore36,		//	TEMPLATE_SHORE36
   2447 	&Shore37,		//	TEMPLATE_SHORE37
   2448 	&Shore38,		//	TEMPLATE_SHORE38
   2449 	&Shore39,		//	TEMPLATE_SHORE39
   2450 	&Shore40,		//	TEMPLATE_SHORE40
   2451 	&Shore41,		//	TEMPLATE_SHORE41
   2452 	&Shore42,		//	TEMPLATE_SHORE42
   2453 	&Shore43,		//	TEMPLATE_SHORE43
   2454 	&Shore44,		//	TEMPLATE_SHORE44
   2455 	&Shore45,		//	TEMPLATE_SHORE45
   2456 
   2457 	&Shore46,		//	TEMPLATE_SHORE46
   2458 	&Shore47,		//	TEMPLATE_SHORE47
   2459 	&Shore48,		//	TEMPLATE_SHORE48
   2460 	&Shore49,		//	TEMPLATE_SHORE49
   2461 	&Shore50,		//	TEMPLATE_SHORE50
   2462 	&Shore51,		//	TEMPLATE_SHORE51
   2463 	&Shore52,		//	TEMPLATE_SHORE52
   2464 	&Shore53,		//	TEMPLATE_SHORE53
   2465 	&Shore54,		//	TEMPLATE_SHORE54
   2466 	&Shore55,		//	TEMPLATE_SHORE55
   2467 	&Shore56,		//	TEMPLATE_SHORE56
   2468 	&Shore57,		//	TEMPLATE_SHORE57
   2469 	&Shore58,		//	TEMPLATE_SHORE58
   2470 	&Shore59,		//	TEMPLATE_SHORE59
   2471 	&Shore60,		//	TEMPLATE_SHORE60
   2472 	&Shore61,		//	TEMPLATE_SHORE61
   2473 
   2474 	&Shore62,		//	TEMPLATE_SHORE62
   2475 	&Shore63,		//	TEMPLATE_SHORE63
   2476 };
   2477 
   2478 
   2479 /***********************************************************************************************
   2480  * TemplateTypeClass::TemplateTypeClass -- Constructor for template type objects.              *
   2481  *                                                                                             *
   2482  *    This is the constructor for the template types.                                          *
   2483  *                                                                                             *
   2484  * INPUT:   see below...                                                                       *
   2485  *                                                                                             *
   2486  * OUTPUT:  none                                                                               *
   2487  *                                                                                             *
   2488  * WARNINGS:   none                                                                            *
   2489  *                                                                                             *
   2490  * HISTORY:                                                                                    *
   2491  *   07/29/1994 JLB : Created.                                                                 *
   2492  *=============================================================================================*/
   2493 TemplateTypeClass::TemplateTypeClass(TemplateType iconset, int theater,
   2494 	char const *ininame, int fullname, LandType land,
   2495 	int width, int height, LandType altland, char const *alticons ) :
   2496 		ObjectTypeClass(false, false, false, true, false, false, true, true, fullname, ininame, ARMOR_NONE, 0)
   2497 {
   2498 	Theater = theater;
   2499 	AltIcons = alticons;
   2500 	AltLand = altland;
   2501 	Type = iconset;
   2502 	Land = land;
   2503 	Width = width;
   2504 	Height = height;
   2505 }
   2506 
   2507 
   2508 /***********************************************************************************************
   2509  * TemplateTypeClass::From_Name -- Determine template from ASCII name.                         *
   2510  *                                                                                             *
   2511  *    This routine is used to determine the template number given only                         *
   2512  *    an ASCII representation. The scenario loader uses this routine                           *
   2513  *    to construct the map from the INI control file.                                          *
   2514  *                                                                                             *
   2515  * INPUT:   name  -- Pointer to the ASCII name of the template.                                *
   2516  *                                                                                             *
   2517  * OUTPUT:  Returns with the template number. If the name had no match,                        *
   2518  *          then returns with TEMPLATE_NONE.                                                   *
   2519  *                                                                                             *
   2520  * WARNINGS:   none                                                                            *
   2521  *                                                                                             *
   2522  * HISTORY:                                                                                    *
   2523  *   05/23/1994 JLB : Created.                                                                 *
   2524  *=============================================================================================*/
   2525 TemplateType TemplateTypeClass::From_Name(char const *name)
   2526 {
   2527 	if (name) {
   2528 		for (TemplateType index = TEMPLATE_FIRST; index < TEMPLATE_COUNT; index++) {
   2529 			if (stricmp(As_Reference(index).IniName, name) == 0) {
   2530 				return(index);
   2531 			}
   2532 		}
   2533 	}
   2534 	return(TEMPLATE_NONE);
   2535 }
   2536 
   2537 
   2538 /***********************************************************************************************
   2539  * TemplateTypeClass::Occupy_List -- Determines occupation list.                               *
   2540  *                                                                                             *
   2541  *    This routine is used to examine the template map and build an                            *
   2542  *    occupation list. This list is used to render a template cursor as                        *
   2543  *    well as placement of icon numbers.                                                       *
   2544  *                                                                                             *
   2545  * INPUT:   placement   -- Is this for placement legality checking only? The normal condition  *
   2546  *                         is for marking occupation flags.                                    *
   2547  *                                                                                             *
   2548  * OUTPUT:  Returns with a pointer to the template occupation list.                            *
   2549  *                                                                                             *
   2550  * WARNINGS:   The return pointer is valid only until the next time that                       *
   2551  *             this routine is called.                                                         *
   2552  *                                                                                             *
   2553  * HISTORY:                                                                                    *
   2554  *   05/23/1994 JLB : Created.                                                                 *
   2555  *=============================================================================================*/
   2556 short const * TemplateTypeClass::Occupy_List(bool) const
   2557 {
   2558 	static short _occupy[13*8+5];
   2559 	unsigned char	map[13*8];
   2560 	short	*ptr;
   2561 	int	index;
   2562 
   2563 	Mem_Copy(Get_Icon_Set_Map(Get_Image_Data()), map, Width*Height);
   2564 
   2565 	ptr = &_occupy[0];
   2566 	for (index = 0; index < Width*Height; index++) {
   2567 		if (map[index] != 0xFF) {
   2568 			*ptr++ = (index % Width) + ((index / Width)*MAP_CELL_W);
   2569 		}
   2570 	}
   2571 	*ptr = REFRESH_EOL;
   2572 
   2573 	return((short const *)&_occupy[0]);
   2574 }
   2575 
   2576 
   2577 /***********************************************************************************************
   2578  * TemplateTypeClass::Init -- Loads graphic data for templates.                                *
   2579  *                                                                                             *
   2580  *    This routine loads the template graphic data for all the template                        *
   2581  *    type supported for the specified theater. This routine is called                         *
   2582  *    whenever the theater for the scenario is first determined.                               *
   2583  *                                                                                             *
   2584  * INPUT:   theater  -- The theater that the template data is to be                            *
   2585  *                      loaded for.                                                            *
   2586  *                                                                                             *
   2587  * OUTPUT:  none                                                                               *
   2588  *                                                                                             *
   2589  * WARNINGS:   This routine goes to disk!                                                      *
   2590  *                                                                                             *
   2591  * HISTORY:                                                                                    *
   2592  *   05/23/1994 JLB : Created.                                                                 *
   2593  *   06/02/1994 JLB : Only handles iconset loading now (as it should).                         *
   2594  *=============================================================================================*/
   2595 void TemplateTypeClass::Init(TheaterType theater)
   2596 {
   2597 	//if (theater != LastTheater){
   2598 		char fullname[_MAX_FNAME+_MAX_EXT];	// Fully constructed iconset name.
   2599 		void const * ptr;		// Working loaded iconset pointer.
   2600 
   2601 		for (TemplateType index = TEMPLATE_FIRST; index < TEMPLATE_COUNT; index++) {
   2602 			TemplateTypeClass	const & tplate = As_Reference(index);
   2603 
   2604 			((void const *&)tplate.ImageData) = NULL;
   2605 			if (tplate.Theater & (1<<theater)) {
   2606 				_makepath(fullname, NULL, NULL, tplate.IniName, Theaters[theater].Suffix);
   2607 				ptr = MixFileClass::Retrieve(fullname);
   2608 				((void const *&)tplate.ImageData) = ptr;
   2609 // No need for icon caching now. ST - 12/19/2018 11:48AM				
   2610 //				Register_Icon_Set((void*)ptr,TRUE);		//Register icon set for video memory caching
   2611 			}
   2612 		}
   2613 	//}
   2614 }
   2615 
   2616 
   2617 #ifdef SCENARIO_EDITOR
   2618 /***********************************************************************************************
   2619  * TemplateTypeClass::Display -- Displays a generic representation of template.                *
   2620  *                                                                                             *
   2621  *    This routine is used to display a generic view of the template                           *
   2622  *    object. This is necessary for selection in the scenario editor.                          *
   2623  *                                                                                             *
   2624  * INPUT:   x,y   -- The coordinates to center the display about.                              *
   2625  *                                                                                             *
   2626  *          window-- The window to base the coordinates upon.                                  *
   2627  *                                                                                             *
   2628  * OUTPUT:  none                                                                               *
   2629  *                                                                                             *
   2630  * WARNINGS:   none                                                                            *
   2631  *                                                                                             *
   2632  * HISTORY:                                                                                    *
   2633  *   05/23/1994 JLB : Created.                                                                 *
   2634  *=============================================================================================*/
   2635 void TemplateTypeClass::Display(int x, int y, WindowNumberType window, HousesType ) const
   2636 {
   2637 	int	w,h;
   2638 	int	index;
   2639 	unsigned char map[13*8];
   2640 	bool	scale;		// Should the template be half sized?
   2641 
   2642 	w = Bound(Width, 1, 13);
   2643 	h = Bound(Height, 1, 8);
   2644 	scale = (w > 3 || h > 3);
   2645 	if (scale) {
   2646 		x -= (w/2) * (ICON_PIXEL_W/2);
   2647 		y -= (h/2) * (ICON_PIXEL_H/2);
   2648 	} else {
   2649 		x -= (w/2) * ICON_PIXEL_W;
   2650 		y -= (h/2) * ICON_PIXEL_H;
   2651 	}
   2652 	x += WindowList[window][WINDOWX]<<3;
   2653 	y += WindowList[window][WINDOWY];
   2654 
   2655 	Mem_Copy(Get_Icon_Set_Map(Get_Image_Data()), map, Width*Height);
   2656 
   2657 	for (index = 0; index < w*h; index++) {
   2658 		if (map[index] != 0xFF) {
   2659 			HidPage.Draw_Stamp(Get_Image_Data(), index, 0, 0, NULL, WINDOW_MAIN);
   2660 			if (scale) {
   2661 
   2662 				HidPage.Scale((*LogicPage), 0, 0,
   2663 					x + ((index % w)*(ICON_PIXEL_W/2)),
   2664 					y + ((index / w)*(ICON_PIXEL_H/2)),
   2665 					ICON_PIXEL_W, ICON_PIXEL_H,
   2666 					ICON_PIXEL_W/2, ICON_PIXEL_H/2, (char *)NULL);
   2667 
   2668 			} else {
   2669 				HidPage.Blit((*LogicPage), 0, 0, x + ((index % w)*(ICON_PIXEL_W)),
   2670 					y + ((index / w)*(ICON_PIXEL_H)), ICON_PIXEL_W, ICON_PIXEL_H);
   2671 			}
   2672 		}
   2673 	}
   2674 }
   2675 
   2676 
   2677 /***********************************************************************************************
   2678  * TemplateTypeClass::Prep_For_Add -- Prepares to add template to scenario.                    *
   2679  *                                                                                             *
   2680  *    This routine prepares a list of template objects so that the                             *
   2681  *    scenario editor can use this list to display a dialog box. The                           *
   2682  *    selection of a template object will allow its placement upon the                         *
   2683  *    map.                                                                                     *
   2684  *                                                                                             *
   2685  * INPUT:   none                                                                               *
   2686  *                                                                                             *
   2687  * OUTPUT:  none                                                                               *
   2688  *                                                                                             *
   2689  * WARNINGS:   none                                                                            *
   2690  *                                                                                             *
   2691  * HISTORY:                                                                                    *
   2692  *   05/23/1994 JLB : Created.                                                                 *
   2693  *   05/28/1994 JLB : Only handles real templates now.                                         *
   2694  *   06/04/1994 JLB : Uses map editing interface functions.                                    *
   2695  *=============================================================================================*/
   2696 void TemplateTypeClass::Prep_For_Add(void)
   2697 {
   2698 	for (TemplateType index = TEMPLATE_CLEAR1; index < TEMPLATE_COUNT; index++) {
   2699 		if (As_Reference(index).Get_Image_Data()) {
   2700 			Map.Add_To_List(&As_Reference(index));
   2701 		}
   2702 	}
   2703 }
   2704 #endif
   2705 
   2706 
   2707 /***********************************************************************************************
   2708  * TemplateTypeClass::Create_And_Place -- Creates and places a template object on the map.     *
   2709  *                                                                                             *
   2710  *    This support routine is used by the scenario editor to add a template object to the map  *
   2711  *    and to the game.                                                                         *
   2712  *                                                                                             *
   2713  * INPUT:   cell  -- The cell to place the template object.                                    *
   2714  *                                                                                             *
   2715  * OUTPUT:  bool; Was the template object placed successfully?                                 *
   2716  *                                                                                             *
   2717  * WARNINGS:   none                                                                            *
   2718  *                                                                                             *
   2719  * HISTORY:                                                                                    *
   2720  *   05/28/1994 JLB : Created.                                                                 *
   2721  *=============================================================================================*/
   2722 bool TemplateTypeClass::Create_And_Place(CELL cell, HousesType ) const
   2723 {
   2724 	if (new TemplateClass(Type, cell)) {
   2725 		return(true);
   2726 	}
   2727 	return(false);
   2728 }
   2729 
   2730 
   2731 /***********************************************************************************************
   2732  * TemplateTypeClass::Create_One_Of -- Creates an object of this template type.                *
   2733  *                                                                                             *
   2734  *    This routine will create an object of this type. For certain template objects, such      *
   2735  *    as walls, it is actually created as a building. The "building" wall is converted into    *
   2736  *    a template at the moment of placing down on the map.                                     *
   2737  *                                                                                             *
   2738  * INPUT:   none                                                                               *
   2739  *                                                                                             *
   2740  * OUTPUT:  Returns with a pointer to the appropriate object for this template type.           *
   2741  *                                                                                             *
   2742  * WARNINGS:   none                                                                            *
   2743  *                                                                                             *
   2744  * HISTORY:                                                                                    *
   2745  *   06/18/1994 JLB : Created.                                                                 *
   2746  *=============================================================================================*/
   2747 ObjectClass * TemplateTypeClass::Create_One_Of(HouseClass *) const
   2748 {
   2749 	return(new TemplateClass(Type, -1));
   2750 }
   2751 
   2752 
   2753 /***********************************************************************************************
   2754  * TemplateTypeClass::One_Time -- Performs one-time initialization                             *
   2755  *                                                                                             *
   2756  * INPUT:   none                                                                               *
   2757  *                                                                                             *
   2758  * OUTPUT:  none                                                                               *
   2759  *                                                                                             *
   2760  * WARNINGS:   none                                                                            *
   2761  *                                                                                             *
   2762  * HISTORY:                                                                                    *
   2763  *   08/12/1994 JLB : Created.                                                                 *
   2764  *=============================================================================================*/
   2765 void TemplateTypeClass::One_Time(void)
   2766 {
   2767 }
   2768 
   2769 
   2770