CnC_Remastered_Collection

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

CDATA.CPP (101001B)


      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: /CounterStrike/CDATA.CPP 1     3/03/97 10:24a 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 6, 1996 [JLB]                                           *
     30  *                                                                                             *
     31  *---------------------------------------------------------------------------------------------*
     32  * Functions:                                                                                  *
     33  *   TemplateTypeClass::As_Reference -- Fetches a reference to the template specified.         *
     34  *   TemplateTypeClass::Create_And_Place -- Creates and places a template object on the map.   *
     35  *   TemplateTypeClass::Create_One_Of -- Creates an object of this template type.              *
     36  *   TemplateTypeClass::Display -- Displays a generic representation of template.              *
     37  *   TemplateTypeClass::From_Name -- Determine template from ASCII name.                       *
     38  *   TemplateTypeClass::Init -- Loads graphic data for templates.                              *
     39  *   TemplateTypeClass::Land_Type -- Determines land type from template and icon number.       *
     40  *   TemplateTypeClass::Occupy_List -- Determines occupation list.                             *
     41  *   TemplateTypeClass::One_Time -- Performs one-time initialization                           *
     42  *   TemplateTypeClass::Prep_For_Add -- Prepares to add template to scenario.                  *
     43  *   TemplateTypeClass::TemplateTypeClass -- Constructor for template type objects.            *
     44  *   TemplateTypeClass::operator delete -- Deletes a template type object.                     *
     45  *   TemplateTypeClass::operator new -- Allocates a template type from special heap.           *
     46  * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
     47 
     48 #include	"function.h"
     49 
     50 
     51 static TemplateTypeClass const Empty(
     52 	TEMPLATE_CLEAR1,
     53 	THEATERF_TEMPERATE|THEATERF_SNOW|THEATERF_INTERIOR,
     54 	"CLEAR1",
     55 	TXT_CLEAR
     56 );
     57 static TemplateTypeClass const Clear(
     58 	TEMPLATE_CLEAR1,
     59 	THEATERF_TEMPERATE|THEATERF_SNOW|THEATERF_INTERIOR,
     60 	"CLEAR1",
     61 	TXT_CLEAR
     62 );
     63 static TemplateTypeClass const Road01(
     64 	TEMPLATE_ROAD01,
     65 	THEATERF_TEMPERATE|THEATERF_SNOW,
     66 	"D01",
     67 	TXT_ROAD
     68 );
     69 static TemplateTypeClass const Road02(
     70 	TEMPLATE_ROAD02,
     71 	THEATERF_TEMPERATE|THEATERF_SNOW,
     72 	"D02",
     73 	TXT_ROAD
     74 );
     75 static TemplateTypeClass const Road03(
     76 	TEMPLATE_ROAD03,
     77 	THEATERF_TEMPERATE|THEATERF_SNOW,
     78 	"D03",
     79 	TXT_ROAD
     80 );
     81 static TemplateTypeClass const Road04(
     82 	TEMPLATE_ROAD04,
     83 	THEATERF_TEMPERATE|THEATERF_SNOW,
     84 	"D04",
     85 	TXT_ROAD
     86 );
     87 static TemplateTypeClass const Road05(
     88 	TEMPLATE_ROAD05,
     89 	THEATERF_TEMPERATE|THEATERF_SNOW,
     90 	"D05",
     91 	TXT_ROAD
     92 );
     93 static TemplateTypeClass const Road06(
     94 	TEMPLATE_ROAD06,
     95 	THEATERF_TEMPERATE|THEATERF_SNOW,
     96 	"D06",
     97 	TXT_ROAD
     98 );
     99 static TemplateTypeClass const Road07(
    100 	TEMPLATE_ROAD07,
    101 	THEATERF_TEMPERATE|THEATERF_SNOW,
    102 	"D07",
    103 	TXT_ROAD
    104 );
    105 static TemplateTypeClass const Road08(
    106 	TEMPLATE_ROAD08,
    107 	THEATERF_TEMPERATE|THEATERF_SNOW,
    108 	"D08",
    109 	TXT_ROAD
    110 );
    111 static TemplateTypeClass const Road09(
    112 	TEMPLATE_ROAD09,
    113 	THEATERF_TEMPERATE|THEATERF_SNOW,
    114 	"D09",
    115 	TXT_ROAD
    116 );
    117 static TemplateTypeClass const Road10(
    118 	TEMPLATE_ROAD10,
    119 	THEATERF_TEMPERATE|THEATERF_SNOW,
    120 	"D10",
    121 	TXT_ROAD
    122 );
    123 static TemplateTypeClass const Road11(
    124 	TEMPLATE_ROAD11,
    125 	THEATERF_TEMPERATE|THEATERF_SNOW,
    126 	"D11",
    127 	TXT_ROAD
    128 );
    129 static TemplateTypeClass const Road12(
    130 	TEMPLATE_ROAD12,
    131 	THEATERF_TEMPERATE|THEATERF_SNOW,
    132 	"D12",
    133 	TXT_ROAD
    134 );
    135 static TemplateTypeClass const Road13(
    136 	TEMPLATE_ROAD13,
    137 	THEATERF_TEMPERATE|THEATERF_SNOW,
    138 	"D13",
    139 	TXT_ROAD
    140 );
    141 static TemplateTypeClass const Road14(
    142 	TEMPLATE_ROAD14,
    143 	THEATERF_TEMPERATE|THEATERF_SNOW,
    144 	"D14",
    145 	TXT_ROAD
    146 );
    147 static TemplateTypeClass const Road15(
    148 	TEMPLATE_ROAD15,
    149 	THEATERF_TEMPERATE|THEATERF_SNOW,
    150 	"D15",
    151 	TXT_ROAD
    152 );
    153 static TemplateTypeClass const Road16(
    154 	TEMPLATE_ROAD16,
    155 	THEATERF_TEMPERATE|THEATERF_SNOW,
    156 	"D16",
    157 	TXT_ROAD
    158 );
    159 static TemplateTypeClass const Road17(
    160 	TEMPLATE_ROAD17,
    161 	THEATERF_TEMPERATE|THEATERF_SNOW,
    162 	"D17",
    163 	TXT_ROAD
    164 );
    165 static TemplateTypeClass const Road18(
    166 	TEMPLATE_ROAD18,
    167 	THEATERF_TEMPERATE|THEATERF_SNOW,
    168 	"D18",
    169 	TXT_ROAD
    170 );
    171 static TemplateTypeClass const Road19(
    172 	TEMPLATE_ROAD19,
    173 	THEATERF_TEMPERATE|THEATERF_SNOW,
    174 	"D19",
    175 	TXT_ROAD
    176 );
    177 static TemplateTypeClass const Road20(
    178 	TEMPLATE_ROAD20,
    179 	THEATERF_TEMPERATE|THEATERF_SNOW,
    180 	"D20",
    181 	TXT_ROAD
    182 );
    183 static TemplateTypeClass const Road21(
    184 	TEMPLATE_ROAD21,
    185 	THEATERF_TEMPERATE|THEATERF_SNOW,
    186 	"D21",
    187 	TXT_ROAD
    188 );
    189 static TemplateTypeClass const Road22(
    190 	TEMPLATE_ROAD22,
    191 	THEATERF_TEMPERATE|THEATERF_SNOW,
    192 	"D22",
    193 	TXT_ROAD
    194 );
    195 static TemplateTypeClass const Road23(
    196 	TEMPLATE_ROAD23,
    197 	THEATERF_TEMPERATE|THEATERF_SNOW,
    198 	"D23",
    199 	TXT_ROAD
    200 );
    201 static TemplateTypeClass const Road24(
    202 	TEMPLATE_ROAD24,
    203 	THEATERF_TEMPERATE|THEATERF_SNOW,
    204 	"D24",
    205 	TXT_ROAD
    206 );
    207 static TemplateTypeClass const Road25(
    208 	TEMPLATE_ROAD25,
    209 	THEATERF_TEMPERATE|THEATERF_SNOW,
    210 	"D25",
    211 	TXT_ROAD
    212 );
    213 static TemplateTypeClass const Road26(
    214 	TEMPLATE_ROAD26,
    215 	THEATERF_TEMPERATE|THEATERF_SNOW,
    216 	"D26",
    217 	TXT_ROAD
    218 );
    219 static TemplateTypeClass const Road27(
    220 	TEMPLATE_ROAD27,
    221 	THEATERF_TEMPERATE|THEATERF_SNOW,
    222 	"D27",
    223 	TXT_ROAD
    224 );
    225 static TemplateTypeClass const Road28(
    226 	TEMPLATE_ROAD28,
    227 	THEATERF_TEMPERATE|THEATERF_SNOW,
    228 	"D28",
    229 	TXT_ROAD
    230 );
    231 static TemplateTypeClass const Road29(
    232 	TEMPLATE_ROAD29,
    233 	THEATERF_TEMPERATE|THEATERF_SNOW,
    234 	"D29",
    235 	TXT_ROAD
    236 );
    237 static TemplateTypeClass const Road30(
    238 	TEMPLATE_ROAD30,
    239 	THEATERF_TEMPERATE|THEATERF_SNOW,
    240 	"D30",
    241 	TXT_ROAD
    242 );
    243 static TemplateTypeClass const Road31(
    244 	TEMPLATE_ROAD31,
    245 	THEATERF_TEMPERATE|THEATERF_SNOW,
    246 	"D31",
    247 	TXT_ROAD
    248 );
    249 static TemplateTypeClass const Road32(
    250 	TEMPLATE_ROAD32,
    251 	THEATERF_TEMPERATE|THEATERF_SNOW,
    252 	"D32",
    253 	TXT_ROAD
    254 );
    255 static TemplateTypeClass const Road33(
    256 	TEMPLATE_ROAD33,
    257 	THEATERF_TEMPERATE|THEATERF_SNOW,
    258 	"D33",
    259 	TXT_ROAD
    260 );
    261 static TemplateTypeClass const Road34(
    262 	TEMPLATE_ROAD34,
    263 	THEATERF_TEMPERATE|THEATERF_SNOW,
    264 	"D34",
    265 	TXT_ROAD
    266 );
    267 static TemplateTypeClass const Road35(
    268 	TEMPLATE_ROAD35,
    269 	THEATERF_TEMPERATE|THEATERF_SNOW,
    270 	"D35",
    271 	TXT_ROAD
    272 );
    273 static TemplateTypeClass const Road36(
    274 	TEMPLATE_ROAD36,
    275 	THEATERF_TEMPERATE|THEATERF_SNOW,
    276 	"D36",
    277 	TXT_ROAD
    278 );
    279 static TemplateTypeClass const Road37(
    280 	TEMPLATE_ROAD37,
    281 	THEATERF_TEMPERATE|THEATERF_SNOW,
    282 	"D37",
    283 	TXT_ROAD
    284 );
    285 static TemplateTypeClass const Road38(
    286 	TEMPLATE_ROAD38,
    287 	THEATERF_TEMPERATE|THEATERF_SNOW,
    288 	"D38",
    289 	TXT_ROAD
    290 );
    291 static TemplateTypeClass const Road39(
    292 	TEMPLATE_ROAD39,
    293 	THEATERF_TEMPERATE|THEATERF_SNOW,
    294 	"D39",
    295 	TXT_ROAD
    296 );
    297 static TemplateTypeClass const Road40(
    298 	TEMPLATE_ROAD40,
    299 	THEATERF_TEMPERATE|THEATERF_SNOW,
    300 	"D40",
    301 	TXT_ROAD
    302 );
    303 static TemplateTypeClass const Road41(
    304 	TEMPLATE_ROAD41,
    305 	THEATERF_TEMPERATE|THEATERF_SNOW,
    306 	"D41",
    307 	TXT_ROAD
    308 );
    309 static TemplateTypeClass const Road42(
    310 	TEMPLATE_ROAD42,
    311 	THEATERF_TEMPERATE|THEATERF_SNOW,
    312 	"D42",
    313 	TXT_ROAD
    314 );
    315 static TemplateTypeClass const Road43(
    316 	TEMPLATE_ROAD43,
    317 	THEATERF_TEMPERATE|THEATERF_SNOW,
    318 	"D43",
    319 	TXT_ROAD
    320 );
    321 static TemplateTypeClass const Road44(
    322 	TEMPLATE_ROAD44,
    323 	THEATERF_TEMPERATE|THEATERF_SNOW,
    324 	"D44",
    325 	TXT_ROAD
    326 );
    327 static TemplateTypeClass const Road45(
    328 	TEMPLATE_ROAD45,
    329 	THEATERF_TEMPERATE|THEATERF_SNOW,
    330 	"D45",
    331 	TXT_ROAD
    332 );
    333 static TemplateTypeClass const Water(
    334 	TEMPLATE_WATER,
    335 	THEATERF_TEMPERATE|THEATERF_SNOW,
    336 	"W1",
    337 	TXT_WATER
    338 );
    339 static TemplateTypeClass const Water2(
    340 	TEMPLATE_WATER2,
    341 	THEATERF_TEMPERATE|THEATERF_SNOW,
    342 	"W2",
    343 	TXT_WATER
    344 );
    345 static TemplateTypeClass const Shore01(
    346 	TEMPLATE_SHORE01,
    347 	THEATERF_TEMPERATE|THEATERF_SNOW,
    348 	"SH01",
    349 	TXT_SHORE
    350 );
    351 static TemplateTypeClass const Shore02(
    352 	TEMPLATE_SHORE02,
    353 	THEATERF_TEMPERATE|THEATERF_SNOW,
    354 	"SH02",
    355 	TXT_SHORE
    356 );
    357 static TemplateTypeClass const Shore03(
    358 	TEMPLATE_SHORE03,
    359 	THEATERF_TEMPERATE|THEATERF_SNOW,
    360 	"SH03",
    361 	TXT_SHORE
    362 );
    363 static TemplateTypeClass const Shore04(
    364 	TEMPLATE_SHORE04,
    365 	THEATERF_TEMPERATE|THEATERF_SNOW,
    366 	"SH04",
    367 	TXT_SHORE
    368 );
    369 static TemplateTypeClass const Shore05(
    370 	TEMPLATE_SHORE05,
    371 	THEATERF_TEMPERATE|THEATERF_SNOW,
    372 	"SH05",
    373 	TXT_SHORE
    374 );
    375 static TemplateTypeClass const Shore06(
    376 	TEMPLATE_SHORE06,
    377 	THEATERF_TEMPERATE|THEATERF_SNOW,
    378 	"SH06",
    379 	TXT_SHORE
    380 );
    381 static TemplateTypeClass const Shore07(
    382 	TEMPLATE_SHORE07,
    383 	THEATERF_TEMPERATE|THEATERF_SNOW,
    384 	"SH07",
    385 	TXT_SHORE
    386 );
    387 static TemplateTypeClass const Shore08(
    388 	TEMPLATE_SHORE08,
    389 	THEATERF_TEMPERATE|THEATERF_SNOW,
    390 	"SH08",
    391 	TXT_SHORE
    392 );
    393 static TemplateTypeClass const Shore09(
    394 	TEMPLATE_SHORE09,
    395 	THEATERF_TEMPERATE|THEATERF_SNOW,
    396 	"SH09",
    397 	TXT_SHORE
    398 );
    399 static TemplateTypeClass const Shore10(
    400 	TEMPLATE_SHORE10,
    401 	THEATERF_TEMPERATE|THEATERF_SNOW,
    402 	"SH10",
    403 	TXT_SHORE
    404 );
    405 static TemplateTypeClass const Shore11(
    406 	TEMPLATE_SHORE11,
    407 	THEATERF_TEMPERATE|THEATERF_SNOW,
    408 	"SH11",
    409 	TXT_SHORE
    410 );
    411 static TemplateTypeClass const Shore12(
    412 	TEMPLATE_SHORE12,
    413 	THEATERF_TEMPERATE|THEATERF_SNOW,
    414 	"SH12",
    415 	TXT_SHORE
    416 );
    417 static TemplateTypeClass const Shore13(
    418 	TEMPLATE_SHORE13,
    419 	THEATERF_TEMPERATE|THEATERF_SNOW,
    420 	"SH13",
    421 	TXT_SHORE
    422 );
    423 static TemplateTypeClass const Shore14(
    424 	TEMPLATE_SHORE14,
    425 	THEATERF_TEMPERATE|THEATERF_SNOW,
    426 	"SH14",
    427 	TXT_SHORE
    428 );
    429 static TemplateTypeClass const Shore15(
    430 	TEMPLATE_SHORE15,
    431 	THEATERF_TEMPERATE|THEATERF_SNOW,
    432 	"SH15",
    433 	TXT_SHORE
    434 );
    435 static TemplateTypeClass const Shore16(
    436 	TEMPLATE_SHORE16,
    437 	THEATERF_TEMPERATE|THEATERF_SNOW,
    438 	"SH16",
    439 	TXT_SHORE
    440 );
    441 static TemplateTypeClass const Shore17(
    442 	TEMPLATE_SHORE17,
    443 	THEATERF_TEMPERATE|THEATERF_SNOW,
    444 	"SH17",
    445 	TXT_SHORE
    446 );
    447 static TemplateTypeClass const Shore18(
    448 	TEMPLATE_SHORE18,
    449 	THEATERF_TEMPERATE|THEATERF_SNOW,
    450 	"SH18",
    451 	TXT_SHORE
    452 );
    453 static TemplateTypeClass const Shore19(
    454 	TEMPLATE_SHORE19,
    455 	THEATERF_TEMPERATE|THEATERF_SNOW,
    456 	"SH19",
    457 	TXT_SHORE
    458 );
    459 static TemplateTypeClass const Shore20(
    460 	TEMPLATE_SHORE20,
    461 	THEATERF_TEMPERATE|THEATERF_SNOW,
    462 	"SH20",
    463 	TXT_SHORE
    464 );
    465 static TemplateTypeClass const Shore21(
    466 	TEMPLATE_SHORE21,
    467 	THEATERF_TEMPERATE|THEATERF_SNOW,
    468 	"SH21",
    469 	TXT_SHORE
    470 );
    471 static TemplateTypeClass const Shore22(
    472 	TEMPLATE_SHORE22,
    473 	THEATERF_TEMPERATE|THEATERF_SNOW,
    474 	"SH22",
    475 	TXT_SHORE
    476 );
    477 static TemplateTypeClass const Shore23(
    478 	TEMPLATE_SHORE23,
    479 	THEATERF_TEMPERATE|THEATERF_SNOW,
    480 	"SH23",
    481 	TXT_SHORE
    482 );
    483 static TemplateTypeClass const Shore24(
    484 	TEMPLATE_SHORE24,
    485 	THEATERF_TEMPERATE|THEATERF_SNOW,
    486 	"SH24",
    487 	TXT_SHORE
    488 );
    489 static TemplateTypeClass const Shore25(
    490 	TEMPLATE_SHORE25,
    491 	THEATERF_TEMPERATE|THEATERF_SNOW,
    492 	"SH25",
    493 	TXT_SHORE
    494 );
    495 static TemplateTypeClass const Shore26(
    496 	TEMPLATE_SHORE26,
    497 	THEATERF_TEMPERATE|THEATERF_SNOW,
    498 	"SH26",
    499 	TXT_SHORE
    500 );
    501 static TemplateTypeClass const Shore27(
    502 	TEMPLATE_SHORE27,
    503 	THEATERF_TEMPERATE|THEATERF_SNOW,
    504 	"SH27",
    505 	TXT_SHORE
    506 );
    507 static TemplateTypeClass const Shore28(
    508 	TEMPLATE_SHORE28,
    509 	THEATERF_TEMPERATE|THEATERF_SNOW,
    510 	"SH28",
    511 	TXT_SHORE
    512 );
    513 static TemplateTypeClass const Shore29(
    514 	TEMPLATE_SHORE29,
    515 	THEATERF_TEMPERATE|THEATERF_SNOW,
    516 	"SH29",
    517 	TXT_SHORE
    518 );
    519 static TemplateTypeClass const Shore30(
    520 	TEMPLATE_SHORE30,
    521 	THEATERF_TEMPERATE|THEATERF_SNOW,
    522 	"SH30",
    523 	TXT_SHORE
    524 );
    525 static TemplateTypeClass const Shore31(
    526 	TEMPLATE_SHORE31,
    527 	THEATERF_TEMPERATE|THEATERF_SNOW,
    528 	"SH31",
    529 	TXT_SHORE
    530 );
    531 static TemplateTypeClass const Shore32(
    532 	TEMPLATE_SHORE32,
    533 	THEATERF_TEMPERATE|THEATERF_SNOW,
    534 	"SH32",
    535 	TXT_SHORE
    536 );
    537 static TemplateTypeClass const Shore33(
    538 	TEMPLATE_SHORE33,
    539 	THEATERF_TEMPERATE|THEATERF_SNOW,
    540 	"SH33",
    541 	TXT_SHORE
    542 );
    543 static TemplateTypeClass const Shore34(
    544 	TEMPLATE_SHORE34,
    545 	THEATERF_TEMPERATE|THEATERF_SNOW,
    546 	"SH34",
    547 	TXT_SHORE
    548 );
    549 static TemplateTypeClass const Shore35(
    550 	TEMPLATE_SHORE35,
    551 	THEATERF_TEMPERATE|THEATERF_SNOW,
    552 	"SH35",
    553 	TXT_SHORE
    554 );
    555 static TemplateTypeClass const Shore36(
    556 	TEMPLATE_SHORE36,
    557 	THEATERF_TEMPERATE|THEATERF_SNOW,
    558 	"SH36",
    559 	TXT_SHORE
    560 );
    561 static TemplateTypeClass const Shore37(
    562 	TEMPLATE_SHORE37,
    563 	THEATERF_TEMPERATE|THEATERF_SNOW,
    564 	"SH37",
    565 	TXT_SHORE
    566 );
    567 static TemplateTypeClass const Shore38(
    568 	TEMPLATE_SHORE38,
    569 	THEATERF_TEMPERATE|THEATERF_SNOW,
    570 	"SH38",
    571 	TXT_SHORE
    572 );
    573 static TemplateTypeClass const Shore39(
    574 	TEMPLATE_SHORE39,
    575 	THEATERF_TEMPERATE|THEATERF_SNOW,
    576 	"SH39",
    577 	TXT_SHORE
    578 );
    579 static TemplateTypeClass const Shore40(
    580 	TEMPLATE_SHORE40,
    581 	THEATERF_TEMPERATE|THEATERF_SNOW,
    582 	"SH40",
    583 	TXT_SHORE
    584 );
    585 static TemplateTypeClass const Shore41(
    586 	TEMPLATE_SHORE41,
    587 	THEATERF_TEMPERATE|THEATERF_SNOW,
    588 	"SH41",
    589 	TXT_SHORE
    590 );
    591 static TemplateTypeClass const Shore42(
    592 	TEMPLATE_SHORE42,
    593 	THEATERF_TEMPERATE|THEATERF_SNOW,
    594 	"SH42",
    595 	TXT_SHORE
    596 );
    597 static TemplateTypeClass const Shore43(
    598 	TEMPLATE_SHORE43,
    599 	THEATERF_TEMPERATE|THEATERF_SNOW,
    600 	"SH43",
    601 	TXT_SHORE
    602 );
    603 static TemplateTypeClass const Shore44(
    604 	TEMPLATE_SHORE44,
    605 	THEATERF_TEMPERATE|THEATERF_SNOW,
    606 	"SH44",
    607 	TXT_SHORE
    608 );
    609 static TemplateTypeClass const Shore45(
    610 	TEMPLATE_SHORE45,
    611 	THEATERF_TEMPERATE|THEATERF_SNOW,
    612 	"SH45",
    613 	TXT_SHORE
    614 );
    615 static TemplateTypeClass const Shore46(
    616 	TEMPLATE_SHORE46,
    617 	THEATERF_TEMPERATE|THEATERF_SNOW,
    618 	"SH46",
    619 	TXT_SHORE
    620 );
    621 static TemplateTypeClass const Shore47(
    622 	TEMPLATE_SHORE47,
    623 	THEATERF_TEMPERATE|THEATERF_SNOW,
    624 	"SH47",
    625 	TXT_SHORE
    626 );
    627 static TemplateTypeClass const Shore48(
    628 	TEMPLATE_SHORE48,
    629 	THEATERF_TEMPERATE|THEATERF_SNOW,
    630 	"SH48",
    631 	TXT_SHORE
    632 );
    633 static TemplateTypeClass const Shore49(
    634 	TEMPLATE_SHORE49,
    635 	THEATERF_TEMPERATE|THEATERF_SNOW,
    636 	"SH49",
    637 	TXT_SHORE
    638 );
    639 static TemplateTypeClass const Shore50(
    640 	TEMPLATE_SHORE50,
    641 	THEATERF_TEMPERATE|THEATERF_SNOW,
    642 	"SH50",
    643 	TXT_SHORE
    644 );
    645 static TemplateTypeClass const Shore51(
    646 	TEMPLATE_SHORE51,
    647 	THEATERF_TEMPERATE|THEATERF_SNOW,
    648 	"SH51",
    649 	TXT_SHORE
    650 );
    651 static TemplateTypeClass const Shore52(
    652 	TEMPLATE_SHORE52,
    653 	THEATERF_TEMPERATE|THEATERF_SNOW,
    654 	"SH52",
    655 	TXT_SHORE
    656 );
    657 static TemplateTypeClass const Shore53(
    658 	TEMPLATE_SHORE53,
    659 	THEATERF_TEMPERATE|THEATERF_SNOW,
    660 	"SH53",
    661 	TXT_SHORE
    662 );
    663 static TemplateTypeClass const Shore54(
    664 	TEMPLATE_SHORE54,
    665 	THEATERF_TEMPERATE|THEATERF_SNOW,
    666 	"SH54",
    667 	TXT_SHORE
    668 );
    669 static TemplateTypeClass const Shore55(
    670 	TEMPLATE_SHORE55,
    671 	THEATERF_TEMPERATE|THEATERF_SNOW,
    672 	"SH55",
    673 	TXT_SHORE
    674 );
    675 static TemplateTypeClass const Shore56(
    676 	TEMPLATE_SHORE56,
    677 	THEATERF_TEMPERATE|THEATERF_SNOW,
    678 	"SH56",
    679 	TXT_SHORE
    680 );
    681 static TemplateTypeClass const Boulder1(
    682 	TEMPLATE_BOULDER1,
    683 	THEATERF_TEMPERATE|THEATERF_SNOW,
    684 	"B1",
    685 	TXT_SLOPE
    686 );
    687 static TemplateTypeClass const Boulder2(
    688 	TEMPLATE_BOULDER2,
    689 	THEATERF_TEMPERATE|THEATERF_SNOW,
    690 	"B2",
    691 	TXT_SLOPE
    692 );
    693 static TemplateTypeClass const Boulder3(
    694 	TEMPLATE_BOULDER3,
    695 	THEATERF_TEMPERATE|THEATERF_SNOW,
    696 	"B3",
    697 	TXT_SLOPE
    698 );
    699 static TemplateTypeClass const Boulder4(
    700 	TEMPLATE_BOULDER4,
    701 	THEATERF_TEMPERATE|THEATERF_SNOW,
    702 	"B4",
    703 	TXT_SLOPE
    704 );
    705 static TemplateTypeClass const Boulder5(
    706 	TEMPLATE_BOULDER5,
    707 	THEATERF_TEMPERATE|THEATERF_SNOW,
    708 	"B5",
    709 	TXT_SLOPE
    710 );
    711 static TemplateTypeClass const Boulder6(
    712 	TEMPLATE_BOULDER6,
    713 	THEATERF_TEMPERATE|THEATERF_SNOW,
    714 	"B6",
    715 	TXT_SLOPE
    716 );
    717 static TemplateTypeClass const Slope01(
    718 	TEMPLATE_SLOPE01,
    719 	THEATERF_TEMPERATE|THEATERF_SNOW,
    720 	"S01",
    721 	TXT_SLOPE
    722 );
    723 static TemplateTypeClass const Slope02(
    724 	TEMPLATE_SLOPE02,
    725 	THEATERF_TEMPERATE|THEATERF_SNOW,
    726 	"S02",
    727 	TXT_SLOPE
    728 );
    729 static TemplateTypeClass const Slope03(
    730 	TEMPLATE_SLOPE03,
    731 	THEATERF_TEMPERATE|THEATERF_SNOW,
    732 	"S03",
    733 	TXT_SLOPE
    734 );
    735 static TemplateTypeClass const Slope04(
    736 	TEMPLATE_SLOPE04,
    737 	THEATERF_TEMPERATE|THEATERF_SNOW,
    738 	"S04",
    739 	TXT_SLOPE
    740 );
    741 static TemplateTypeClass const Slope05(
    742 	TEMPLATE_SLOPE05,
    743 	THEATERF_TEMPERATE|THEATERF_SNOW,
    744 	"S05",
    745 	TXT_SLOPE
    746 );
    747 static TemplateTypeClass const Slope06(
    748 	TEMPLATE_SLOPE06,
    749 	THEATERF_TEMPERATE|THEATERF_SNOW,
    750 	"S06",
    751 	TXT_SLOPE
    752 );
    753 static TemplateTypeClass const Slope07(
    754 	TEMPLATE_SLOPE07,
    755 	THEATERF_TEMPERATE|THEATERF_SNOW,
    756 	"S07",
    757 	TXT_SLOPE
    758 );
    759 static TemplateTypeClass const Slope08(
    760 	TEMPLATE_SLOPE08,
    761 	THEATERF_TEMPERATE|THEATERF_SNOW,
    762 	"S08",
    763 	TXT_SLOPE
    764 );
    765 static TemplateTypeClass const Slope09(
    766 	TEMPLATE_SLOPE09,
    767 	THEATERF_TEMPERATE|THEATERF_SNOW,
    768 	"S09",
    769 	TXT_SLOPE
    770 );
    771 static TemplateTypeClass const Slope10(
    772 	TEMPLATE_SLOPE10,
    773 	THEATERF_TEMPERATE|THEATERF_SNOW,
    774 	"S10",
    775 	TXT_SLOPE
    776 );
    777 static TemplateTypeClass const Slope11(
    778 	TEMPLATE_SLOPE11,
    779 	THEATERF_TEMPERATE|THEATERF_SNOW,
    780 	"S11",
    781 	TXT_SLOPE
    782 );
    783 static TemplateTypeClass const Slope12(
    784 	TEMPLATE_SLOPE12,
    785 	THEATERF_TEMPERATE|THEATERF_SNOW,
    786 	"S12",
    787 	TXT_SLOPE
    788 );
    789 static TemplateTypeClass const Slope13(
    790 	TEMPLATE_SLOPE13,
    791 	THEATERF_TEMPERATE|THEATERF_SNOW,
    792 	"S13",
    793 	TXT_SLOPE
    794 );
    795 static TemplateTypeClass const Slope14(
    796 	TEMPLATE_SLOPE14,
    797 	THEATERF_TEMPERATE|THEATERF_SNOW,
    798 	"S14",
    799 	TXT_SLOPE
    800 );
    801 static TemplateTypeClass const Slope15(
    802 	TEMPLATE_SLOPE15,
    803 	THEATERF_TEMPERATE|THEATERF_SNOW,
    804 	"S15",
    805 	TXT_SLOPE
    806 );
    807 static TemplateTypeClass const Slope16(
    808 	TEMPLATE_SLOPE16,
    809 	THEATERF_TEMPERATE|THEATERF_SNOW,
    810 	"S16",
    811 	TXT_SLOPE
    812 );
    813 static TemplateTypeClass const Slope17(
    814 	TEMPLATE_SLOPE17,
    815 	THEATERF_TEMPERATE|THEATERF_SNOW,
    816 	"S17",
    817 	TXT_SLOPE
    818 );
    819 static TemplateTypeClass const Slope18(
    820 	TEMPLATE_SLOPE18,
    821 	THEATERF_TEMPERATE|THEATERF_SNOW,
    822 	"S18",
    823 	TXT_SLOPE
    824 );
    825 static TemplateTypeClass const Slope19(
    826 	TEMPLATE_SLOPE19,
    827 	THEATERF_TEMPERATE|THEATERF_SNOW,
    828 	"S19",
    829 	TXT_SLOPE
    830 );
    831 static TemplateTypeClass const Slope20(
    832 	TEMPLATE_SLOPE20,
    833 	THEATERF_TEMPERATE|THEATERF_SNOW,
    834 	"S20",
    835 	TXT_SLOPE
    836 );
    837 static TemplateTypeClass const Slope21(
    838 	TEMPLATE_SLOPE21,
    839 	THEATERF_TEMPERATE|THEATERF_SNOW,
    840 	"S21",
    841 	TXT_SLOPE
    842 );
    843 static TemplateTypeClass const Slope22(
    844 	TEMPLATE_SLOPE22,
    845 	THEATERF_TEMPERATE|THEATERF_SNOW,
    846 	"S22",
    847 	TXT_SLOPE
    848 );
    849 static TemplateTypeClass const Slope23(
    850 	TEMPLATE_SLOPE23,
    851 	THEATERF_TEMPERATE|THEATERF_SNOW,
    852 	"S23",
    853 	TXT_SLOPE
    854 );
    855 static TemplateTypeClass const Slope24(
    856 	TEMPLATE_SLOPE24,
    857 	THEATERF_TEMPERATE|THEATERF_SNOW,
    858 	"S24",
    859 	TXT_SLOPE
    860 );
    861 static TemplateTypeClass const Slope25(
    862 	TEMPLATE_SLOPE25,
    863 	THEATERF_TEMPERATE|THEATERF_SNOW,
    864 	"S25",
    865 	TXT_SLOPE
    866 );
    867 static TemplateTypeClass const Slope26(
    868 	TEMPLATE_SLOPE26,
    869 	THEATERF_TEMPERATE|THEATERF_SNOW,
    870 	"S26",
    871 	TXT_SLOPE
    872 );
    873 static TemplateTypeClass const Slope27(
    874 	TEMPLATE_SLOPE27,
    875 	THEATERF_TEMPERATE|THEATERF_SNOW,
    876 	"S27",
    877 	TXT_SLOPE
    878 );
    879 static TemplateTypeClass const Slope28(
    880 	TEMPLATE_SLOPE28,
    881 	THEATERF_TEMPERATE|THEATERF_SNOW,
    882 	"S28",
    883 	TXT_SLOPE
    884 );
    885 static TemplateTypeClass const Slope29(
    886 	TEMPLATE_SLOPE29,
    887 	THEATERF_TEMPERATE|THEATERF_SNOW,
    888 	"S29",
    889 	TXT_SLOPE
    890 );
    891 static TemplateTypeClass const Slope30(
    892 	TEMPLATE_SLOPE30,
    893 	THEATERF_TEMPERATE|THEATERF_SNOW,
    894 	"S30",
    895 	TXT_SLOPE
    896 );
    897 static TemplateTypeClass const Slope31(
    898 	TEMPLATE_SLOPE31,
    899 	THEATERF_TEMPERATE|THEATERF_SNOW,
    900 	"S31",
    901 	TXT_SLOPE
    902 );
    903 static TemplateTypeClass const Slope32(
    904 	TEMPLATE_SLOPE32,
    905 	THEATERF_TEMPERATE|THEATERF_SNOW,
    906 	"S32",
    907 	TXT_SLOPE
    908 );
    909 static TemplateTypeClass const Slope33(
    910 	TEMPLATE_SLOPE33,
    911 	THEATERF_TEMPERATE|THEATERF_SNOW,
    912 	"S33",
    913 	TXT_SLOPE
    914 );
    915 static TemplateTypeClass const Slope34(
    916 	TEMPLATE_SLOPE34,
    917 	THEATERF_TEMPERATE|THEATERF_SNOW,
    918 	"S34",
    919 	TXT_SLOPE
    920 );
    921 static TemplateTypeClass const Slope35(
    922 	TEMPLATE_SLOPE35,
    923 	THEATERF_TEMPERATE|THEATERF_SNOW,
    924 	"S35",
    925 	TXT_SLOPE
    926 );
    927 static TemplateTypeClass const Slope36(
    928 	TEMPLATE_SLOPE36,
    929 	THEATERF_TEMPERATE|THEATERF_SNOW,
    930 	"S36",
    931 	TXT_SLOPE
    932 );
    933 static TemplateTypeClass const Slope37(
    934 	TEMPLATE_SLOPE37,
    935 	THEATERF_TEMPERATE|THEATERF_SNOW,
    936 	"S37",
    937 	TXT_SLOPE
    938 );
    939 static TemplateTypeClass const Slope38(
    940 	TEMPLATE_SLOPE38,
    941 	THEATERF_TEMPERATE|THEATERF_SNOW,
    942 	"S38",
    943 	TXT_SLOPE
    944 );
    945 static TemplateTypeClass const Patch01(
    946 	TEMPLATE_PATCH01,
    947 	THEATERF_TEMPERATE|THEATERF_SNOW,
    948 	"P01",
    949 	TXT_PATCH
    950 );
    951 static TemplateTypeClass const Patch02(
    952 	TEMPLATE_PATCH02,
    953 	THEATERF_TEMPERATE|THEATERF_SNOW,
    954 	"P02",
    955 	TXT_PATCH
    956 );
    957 static TemplateTypeClass const Patch03(
    958 	TEMPLATE_PATCH03,
    959 	THEATERF_TEMPERATE|THEATERF_SNOW,
    960 	"P03",
    961 	TXT_PATCH
    962 );
    963 static TemplateTypeClass const Patch04(
    964 	TEMPLATE_PATCH04,
    965 	THEATERF_TEMPERATE|THEATERF_SNOW,
    966 	"P04",
    967 	TXT_PATCH
    968 );
    969 static TemplateTypeClass const Patch07(
    970 	TEMPLATE_PATCH07,
    971 	THEATERF_TEMPERATE|THEATERF_SNOW,
    972 	"P07",
    973 	TXT_PATCH
    974 );
    975 static TemplateTypeClass const Patch08(
    976 	TEMPLATE_PATCH08,
    977 	THEATERF_TEMPERATE|THEATERF_SNOW,
    978 	"P08",
    979 	TXT_PATCH
    980 );
    981 static TemplateTypeClass const Patch13(
    982 	TEMPLATE_PATCH13,
    983 	THEATERF_TEMPERATE|THEATERF_SNOW,
    984 	"P13",
    985 	TXT_PATCH
    986 );
    987 static TemplateTypeClass const Patch14(
    988 	TEMPLATE_PATCH14,
    989 	THEATERF_TEMPERATE|THEATERF_SNOW,
    990 	"P14",
    991 	TXT_PATCH
    992 );
    993 static TemplateTypeClass const Patch15(
    994 	TEMPLATE_PATCH15,
    995 	THEATERF_TEMPERATE|THEATERF_SNOW,
    996 	"P15",
    997 	TXT_PATCH
    998 );
    999 static TemplateTypeClass const River01(
   1000 	TEMPLATE_RIVER01,
   1001 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1002 	"RV01",
   1003 	TXT_RIVER
   1004 );
   1005 static TemplateTypeClass const River02(
   1006 	TEMPLATE_RIVER02,
   1007 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1008 	"RV02",
   1009 	TXT_RIVER
   1010 );
   1011 static TemplateTypeClass const River03(
   1012 	TEMPLATE_RIVER03,
   1013 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1014 	"RV03",
   1015 	TXT_RIVER
   1016 );
   1017 static TemplateTypeClass const River04(
   1018 	TEMPLATE_RIVER04,
   1019 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1020 	"RV04",
   1021 	TXT_RIVER
   1022 );
   1023 static TemplateTypeClass const River05(
   1024 	TEMPLATE_RIVER05,
   1025 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1026 	"RV05",
   1027 	TXT_RIVER
   1028 );
   1029 static TemplateTypeClass const River06(
   1030 	TEMPLATE_RIVER06,
   1031 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1032 	"RV06",
   1033 	TXT_RIVER
   1034 );
   1035 static TemplateTypeClass const River07(
   1036 	TEMPLATE_RIVER07,
   1037 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1038 	"RV07",
   1039 	TXT_RIVER
   1040 );
   1041 static TemplateTypeClass const River08(
   1042 	TEMPLATE_RIVER08,
   1043 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1044 	"RV08",
   1045 	TXT_RIVER
   1046 );
   1047 static TemplateTypeClass const River09(
   1048 	TEMPLATE_RIVER09,
   1049 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1050 	"RV09",
   1051 	TXT_RIVER
   1052 );
   1053 static TemplateTypeClass const River10(
   1054 	TEMPLATE_RIVER10,
   1055 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1056 	"RV10",
   1057 	TXT_RIVER
   1058 );
   1059 static TemplateTypeClass const River11(
   1060 	TEMPLATE_RIVER11,
   1061 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1062 	"RV11",
   1063 	TXT_RIVER
   1064 );
   1065 static TemplateTypeClass const River12(
   1066 	TEMPLATE_RIVER12,
   1067 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1068 	"RV12",
   1069 	TXT_RIVER
   1070 );
   1071 static TemplateTypeClass const River13(
   1072 	TEMPLATE_RIVER13,
   1073 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1074 	"RV13",
   1075 	TXT_RIVER
   1076 );
   1077 static TemplateTypeClass const River14(
   1078 	TEMPLATE_RIVER14,
   1079 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1080 	"RV14",
   1081 	TXT_RIVER
   1082 );
   1083 static TemplateTypeClass const River15(
   1084 	TEMPLATE_RIVER15,
   1085 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1086 	"RV15",
   1087 	TXT_RIVER
   1088 );
   1089 static TemplateTypeClass const Ford1(
   1090 	TEMPLATE_FORD1,
   1091 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1092 	"FORD1",
   1093 	TXT_RIVER
   1094 );
   1095 static TemplateTypeClass const Ford2(
   1096 	TEMPLATE_FORD2,
   1097 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1098 	"FORD2",
   1099 	TXT_RIVER
   1100 );
   1101 static TemplateTypeClass const Falls1(
   1102 	TEMPLATE_FALLS1,
   1103 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1104 	"FALLS1",
   1105 	TXT_RIVER
   1106 );
   1107 static TemplateTypeClass const Falls1a(
   1108 	TEMPLATE_FALLS1A,
   1109 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1110 	"FALLS1A",
   1111 	TXT_RIVER
   1112 );
   1113 static TemplateTypeClass const Falls2(
   1114 	TEMPLATE_FALLS2,
   1115 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1116 	"FALLS2",
   1117 	TXT_RIVER
   1118 );
   1119 static TemplateTypeClass const Falls2a(
   1120 	TEMPLATE_FALLS2A,
   1121 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1122 	"FALLS2A",
   1123 	TXT_RIVER
   1124 );
   1125 static TemplateTypeClass const Bridge1x(
   1126 	TEMPLATE_BRIDGE1X,
   1127 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1128 	"BRIDGE1X",
   1129 	TXT_BRIDGE
   1130 );
   1131 static TemplateTypeClass const Bridge1(
   1132 	TEMPLATE_BRIDGE1,
   1133 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1134 	"BRIDGE1",
   1135 	TXT_BRIDGE
   1136 );
   1137 static TemplateTypeClass const Bridge1h(
   1138 	TEMPLATE_BRIDGE1H,
   1139 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1140 	"BRIDGE1H",
   1141 	TXT_BRIDGE
   1142 );
   1143 static TemplateTypeClass const Bridge1d(
   1144 	TEMPLATE_BRIDGE1D,
   1145 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1146 	"BRIDGE1D",
   1147 	TXT_BRIDGE
   1148 );
   1149 static TemplateTypeClass const Bridge2x(
   1150 	TEMPLATE_BRIDGE2X,
   1151 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1152 	"BRIDGE2X",
   1153 	TXT_BRIDGE
   1154 );
   1155 static TemplateTypeClass const Bridge2(
   1156 	TEMPLATE_BRIDGE2,
   1157 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1158 	"BRIDGE2",
   1159 	TXT_BRIDGE
   1160 );
   1161 static TemplateTypeClass const Bridge2h(
   1162 	TEMPLATE_BRIDGE2H,
   1163 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1164 	"BRIDGE2H",
   1165 	TXT_BRIDGE
   1166 );
   1167 static TemplateTypeClass const Bridge2d(
   1168 	TEMPLATE_BRIDGE2D,
   1169 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1170 	"BRIDGE2D",
   1171 	TXT_BRIDGE
   1172 );
   1173 static TemplateTypeClass const Bridge1ax(
   1174 	TEMPLATE_BRIDGE_1AX,
   1175 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1176 	"BR1X",
   1177 	TXT_BRIDGE
   1178 );
   1179 static TemplateTypeClass const Bridge1a(
   1180 	TEMPLATE_BRIDGE_1A,
   1181 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1182 	"BR1A",
   1183 	TXT_BRIDGE
   1184 );
   1185 static TemplateTypeClass const Bridge1b(
   1186 	TEMPLATE_BRIDGE_1B,
   1187 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1188 	"BR1B",
   1189 	TXT_BRIDGE
   1190 );
   1191 static TemplateTypeClass const Bridge1c(
   1192 	TEMPLATE_BRIDGE_1C,
   1193 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1194 	"BR1C",
   1195 	TXT_BRIDGE
   1196 );
   1197 static TemplateTypeClass const Bridge2ax(
   1198 	TEMPLATE_BRIDGE_2AX,
   1199 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1200 	"BR2X",
   1201 	TXT_BRIDGE
   1202 );
   1203 static TemplateTypeClass const Bridge2a(
   1204 	TEMPLATE_BRIDGE_2A,
   1205 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1206 	"BR2A",
   1207 	TXT_BRIDGE
   1208 );
   1209 static TemplateTypeClass const Bridge2b(
   1210 	TEMPLATE_BRIDGE_2B,
   1211 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1212 	"BR2B",
   1213 	TXT_BRIDGE
   1214 );
   1215 static TemplateTypeClass const Bridge2c(
   1216 	TEMPLATE_BRIDGE_2C,
   1217 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1218 	"BR2C",
   1219 	TXT_BRIDGE
   1220 );
   1221 static TemplateTypeClass const Bridge3a(
   1222 	TEMPLATE_BRIDGE_3A,
   1223 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1224 	"BR3A",
   1225 	TXT_BRIDGE
   1226 );
   1227 static TemplateTypeClass const Bridge3b(
   1228 	TEMPLATE_BRIDGE_3B,
   1229 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1230 	"BR3B",
   1231 	TXT_BRIDGE
   1232 );
   1233 static TemplateTypeClass const Bridge3c(
   1234 	TEMPLATE_BRIDGE_3C,
   1235 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1236 	"BR3C",
   1237 	TXT_BRIDGE
   1238 );
   1239 static TemplateTypeClass const Bridge3d(
   1240 	TEMPLATE_BRIDGE_3D,
   1241 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1242 	"BR3D",
   1243 	TXT_BRIDGE
   1244 );
   1245 static TemplateTypeClass const Bridge3e(
   1246 	TEMPLATE_BRIDGE_3E,
   1247 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1248 	"BR3E",
   1249 	TXT_BRIDGE
   1250 );
   1251 static TemplateTypeClass const Bridge3f(
   1252 	TEMPLATE_BRIDGE_3F,
   1253 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1254 	"BR3F",
   1255 	TXT_BRIDGE
   1256 );
   1257 static TemplateTypeClass const ShoreCliff01(
   1258 	TEMPLATE_SHORECLIFF01,
   1259 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1260 	"WC01",
   1261 	TXT_SHORE
   1262 );
   1263 static TemplateTypeClass const ShoreCliff02(
   1264 	TEMPLATE_SHORECLIFF02,
   1265 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1266 	"WC02",
   1267 	TXT_SHORE
   1268 );
   1269 static TemplateTypeClass const ShoreCliff03(
   1270 	TEMPLATE_SHORECLIFF03,
   1271 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1272 	"WC03",
   1273 	TXT_SHORE
   1274 );
   1275 static TemplateTypeClass const ShoreCliff04(
   1276 	TEMPLATE_SHORECLIFF04,
   1277 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1278 	"WC04",
   1279 	TXT_SHORE
   1280 );
   1281 static TemplateTypeClass const ShoreCliff05(
   1282 	TEMPLATE_SHORECLIFF05,
   1283 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1284 	"WC05",
   1285 	TXT_SHORE
   1286 );
   1287 static TemplateTypeClass const ShoreCliff06(
   1288 	TEMPLATE_SHORECLIFF06,
   1289 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1290 	"WC06",
   1291 	TXT_SHORE
   1292 );
   1293 static TemplateTypeClass const ShoreCliff07(
   1294 	TEMPLATE_SHORECLIFF07,
   1295 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1296 	"WC07",
   1297 	TXT_SHORE
   1298 );
   1299 static TemplateTypeClass const ShoreCliff08(
   1300 	TEMPLATE_SHORECLIFF08,
   1301 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1302 	"WC08",
   1303 	TXT_SHORE
   1304 );
   1305 static TemplateTypeClass const ShoreCliff09(
   1306 	TEMPLATE_SHORECLIFF09,
   1307 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1308 	"WC09",
   1309 	TXT_SHORE
   1310 );
   1311 static TemplateTypeClass const ShoreCliff10(
   1312 	TEMPLATE_SHORECLIFF10,
   1313 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1314 	"WC10",
   1315 	TXT_SHORE
   1316 );
   1317 static TemplateTypeClass const ShoreCliff11(
   1318 	TEMPLATE_SHORECLIFF11,
   1319 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1320 	"WC11",
   1321 	TXT_SHORE
   1322 );
   1323 static TemplateTypeClass const ShoreCliff12(
   1324 	TEMPLATE_SHORECLIFF12,
   1325 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1326 	"WC12",
   1327 	TXT_SHORE
   1328 );
   1329 static TemplateTypeClass const ShoreCliff13(
   1330 	TEMPLATE_SHORECLIFF13,
   1331 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1332 	"WC13",
   1333 	TXT_SHORE
   1334 );
   1335 static TemplateTypeClass const ShoreCliff14(
   1336 	TEMPLATE_SHORECLIFF14,
   1337 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1338 	"WC14",
   1339 	TXT_SHORE
   1340 );
   1341 static TemplateTypeClass const ShoreCliff15(
   1342 	TEMPLATE_SHORECLIFF15,
   1343 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1344 	"WC15",
   1345 	TXT_SHORE
   1346 );
   1347 static TemplateTypeClass const ShoreCliff16(
   1348 	TEMPLATE_SHORECLIFF16,
   1349 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1350 	"WC16",
   1351 	TXT_SHORE
   1352 );
   1353 static TemplateTypeClass const ShoreCliff17(
   1354 	TEMPLATE_SHORECLIFF17,
   1355 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1356 	"WC17",
   1357 	TXT_SHORE
   1358 );
   1359 static TemplateTypeClass const ShoreCliff18(
   1360 	TEMPLATE_SHORECLIFF18,
   1361 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1362 	"WC18",
   1363 	TXT_SHORE
   1364 );
   1365 static TemplateTypeClass const ShoreCliff19(
   1366 	TEMPLATE_SHORECLIFF19,
   1367 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1368 	"WC19",
   1369 	TXT_SHORE
   1370 );
   1371 static TemplateTypeClass const ShoreCliff20(
   1372 	TEMPLATE_SHORECLIFF20,
   1373 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1374 	"WC20",
   1375 	TXT_SHORE
   1376 );
   1377 static TemplateTypeClass const ShoreCliff21(
   1378 	TEMPLATE_SHORECLIFF21,
   1379 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1380 	"WC21",
   1381 	TXT_SHORE
   1382 );
   1383 static TemplateTypeClass const ShoreCliff22(
   1384 	TEMPLATE_SHORECLIFF22,
   1385 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1386 	"WC22",
   1387 	TXT_SHORE
   1388 );
   1389 static TemplateTypeClass const ShoreCliff23(
   1390 	TEMPLATE_SHORECLIFF23,
   1391 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1392 	"WC23",
   1393 	TXT_SHORE
   1394 );
   1395 static TemplateTypeClass const ShoreCliff24(
   1396 	TEMPLATE_SHORECLIFF24,
   1397 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1398 	"WC24",
   1399 	TXT_SHORE
   1400 );
   1401 static TemplateTypeClass const ShoreCliff25(
   1402 	TEMPLATE_SHORECLIFF25,
   1403 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1404 	"WC25",
   1405 	TXT_SHORE
   1406 );
   1407 static TemplateTypeClass const ShoreCliff26(
   1408 	TEMPLATE_SHORECLIFF26,
   1409 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1410 	"WC26",
   1411 	TXT_SHORE
   1412 );
   1413 static TemplateTypeClass const ShoreCliff27(
   1414 	TEMPLATE_SHORECLIFF27,
   1415 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1416 	"WC27",
   1417 	TXT_SHORE
   1418 );
   1419 static TemplateTypeClass const ShoreCliff28(
   1420 	TEMPLATE_SHORECLIFF28,
   1421 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1422 	"WC28",
   1423 	TXT_SHORE
   1424 );
   1425 static TemplateTypeClass const ShoreCliff29(
   1426 	TEMPLATE_SHORECLIFF29,
   1427 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1428 	"WC29",
   1429 	TXT_SHORE
   1430 );
   1431 static TemplateTypeClass const ShoreCliff30(
   1432 	TEMPLATE_SHORECLIFF30,
   1433 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1434 	"WC30",
   1435 	TXT_SHORE
   1436 );
   1437 static TemplateTypeClass const ShoreCliff31(
   1438 	TEMPLATE_SHORECLIFF31,
   1439 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1440 	"WC31",
   1441 	TXT_SHORE
   1442 );
   1443 static TemplateTypeClass const ShoreCliff32(
   1444 	TEMPLATE_SHORECLIFF32,
   1445 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1446 	"WC32",
   1447 	TXT_SHORE
   1448 );
   1449 static TemplateTypeClass const ShoreCliff33(
   1450 	TEMPLATE_SHORECLIFF33,
   1451 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1452 	"WC33",
   1453 	TXT_SHORE
   1454 );
   1455 static TemplateTypeClass const ShoreCliff34(
   1456 	TEMPLATE_SHORECLIFF34,
   1457 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1458 	"WC34",
   1459 	TXT_SHORE
   1460 );
   1461 static TemplateTypeClass const ShoreCliff35(
   1462 	TEMPLATE_SHORECLIFF35,
   1463 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1464 	"WC35",
   1465 	TXT_SHORE
   1466 );
   1467 static TemplateTypeClass const ShoreCliff36(
   1468 	TEMPLATE_SHORECLIFF36,
   1469 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1470 	"WC36",
   1471 	TXT_SHORE
   1472 );
   1473 static TemplateTypeClass const ShoreCliff37(
   1474 	TEMPLATE_SHORECLIFF37,
   1475 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1476 	"WC37",
   1477 	TXT_SHORE
   1478 );
   1479 static TemplateTypeClass const ShoreCliff38(
   1480 	TEMPLATE_SHORECLIFF38,
   1481 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1482 	"WC38",
   1483 	TXT_SHORE
   1484 );
   1485 static TemplateTypeClass const Rough01(
   1486 	TEMPLATE_ROUGH01,
   1487 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1488 	"RF01",
   1489 	TXT_ROCK
   1490 );
   1491 static TemplateTypeClass const Rough02(
   1492 	TEMPLATE_ROUGH02,
   1493 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1494 	"RF02",
   1495 	TXT_ROCK
   1496 );
   1497 static TemplateTypeClass const Rough03(
   1498 	TEMPLATE_ROUGH03,
   1499 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1500 	"RF03",
   1501 	TXT_ROCK
   1502 );
   1503 static TemplateTypeClass const Rough04(
   1504 	TEMPLATE_ROUGH04,
   1505 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1506 	"RF04",
   1507 	TXT_ROCK
   1508 );
   1509 static TemplateTypeClass const Rough05(
   1510 	TEMPLATE_ROUGH05,
   1511 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1512 	"RF05",
   1513 	TXT_ROCK
   1514 );
   1515 static TemplateTypeClass const Rough06(
   1516 	TEMPLATE_ROUGH06,
   1517 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1518 	"RF06",
   1519 	TXT_ROCK
   1520 );
   1521 static TemplateTypeClass const Rough07(
   1522 	TEMPLATE_ROUGH07,
   1523 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1524 	"RF07",
   1525 	TXT_ROCK
   1526 );
   1527 static TemplateTypeClass const Rough08(
   1528 	TEMPLATE_ROUGH08,
   1529 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1530 	"RF08",
   1531 	TXT_ROCK
   1532 );
   1533 static TemplateTypeClass const Rough09(
   1534 	TEMPLATE_ROUGH09,
   1535 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1536 	"RF09",
   1537 	TXT_ROCK
   1538 );
   1539 static TemplateTypeClass const Rough10(
   1540 	TEMPLATE_ROUGH10,
   1541 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1542 	"RF10",
   1543 	TXT_ROCK
   1544 );
   1545 static TemplateTypeClass const Rough11(
   1546 	TEMPLATE_ROUGH11,
   1547 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1548 	"RF11",
   1549 	TXT_ROCK
   1550 );
   1551 static TemplateTypeClass const RiverCliff01(
   1552 	TEMPLATE_RIVERCLIFF01,
   1553 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1554 	"RC01",
   1555 	TXT_RIVER
   1556 );
   1557 static TemplateTypeClass const RiverCliff02(
   1558 	TEMPLATE_RIVERCLIFF02,
   1559 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1560 	"RC02",
   1561 	TXT_RIVER
   1562 );
   1563 static TemplateTypeClass const RiverCliff03(
   1564 	TEMPLATE_RIVERCLIFF03,
   1565 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1566 	"RC03",
   1567 	TXT_RIVER
   1568 );
   1569 static TemplateTypeClass const RiverCliff04(
   1570 	TEMPLATE_RIVERCLIFF04,
   1571 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1572 	"RC04",
   1573 	TXT_RIVER
   1574 );
   1575 
   1576 static TemplateTypeClass const F01(
   1577 	TEMPLATE_F01,
   1578 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1579 	"F01",
   1580 	TXT_RIVER
   1581 );
   1582 static TemplateTypeClass const F02(
   1583 	TEMPLATE_F02,
   1584 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1585 	"F02",
   1586 	TXT_RIVER
   1587 );
   1588 static TemplateTypeClass const F03(
   1589 	TEMPLATE_F03,
   1590 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1591 	"F03",
   1592 	TXT_RIVER
   1593 );
   1594 static TemplateTypeClass const F04(
   1595 	TEMPLATE_F04,
   1596 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1597 	"F04",
   1598 	TXT_RIVER
   1599 );
   1600 static TemplateTypeClass const F05(
   1601 	TEMPLATE_F05,
   1602 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1603 	"F05",
   1604 	TXT_RIVER
   1605 );
   1606 static TemplateTypeClass const F06(
   1607 	TEMPLATE_F06,
   1608 	THEATERF_TEMPERATE|THEATERF_SNOW,
   1609 	"F06",
   1610 	TXT_RIVER
   1611 );
   1612 
   1613 static TemplateTypeClass const ARRO0001(
   1614 	TEMPLATE_ARRO0001,
   1615 	THEATERF_INTERIOR,
   1616 	"ARRO0001",
   1617 	TXT_INTERIOR
   1618 );
   1619 static TemplateTypeClass const ARRO0002(
   1620 	TEMPLATE_ARRO0002,
   1621 	THEATERF_INTERIOR,
   1622 	"ARRO0002",
   1623 	TXT_INTERIOR
   1624 );
   1625 static TemplateTypeClass const ARRO0003(
   1626 	TEMPLATE_ARRO0003,
   1627 	THEATERF_INTERIOR,
   1628 	"ARRO0003",
   1629 	TXT_INTERIOR
   1630 );
   1631 static TemplateTypeClass const ARRO0004(
   1632 	TEMPLATE_ARRO0004,
   1633 	THEATERF_INTERIOR,
   1634 	"ARRO0004",
   1635 	TXT_INTERIOR
   1636 );
   1637 static TemplateTypeClass const ARRO0005(
   1638 	TEMPLATE_ARRO0005,
   1639 	THEATERF_INTERIOR,
   1640 	"ARRO0005",
   1641 	TXT_INTERIOR
   1642 );
   1643 static TemplateTypeClass const ARRO0006(
   1644 	TEMPLATE_ARRO0006,
   1645 	THEATERF_INTERIOR,
   1646 	"ARRO0006",
   1647 	TXT_INTERIOR
   1648 );
   1649 static TemplateTypeClass const ARRO0007(
   1650 	TEMPLATE_ARRO0007,
   1651 	THEATERF_INTERIOR,
   1652 	"ARRO0007",
   1653 	TXT_INTERIOR
   1654 );
   1655 static TemplateTypeClass const ARRO0008(
   1656 	TEMPLATE_ARRO0008,
   1657 	THEATERF_INTERIOR,
   1658 	"ARRO0008",
   1659 	TXT_INTERIOR
   1660 );
   1661 static TemplateTypeClass const ARRO0009(
   1662 	TEMPLATE_ARRO0009,
   1663 	THEATERF_INTERIOR,
   1664 	"ARRO0009",
   1665 	TXT_INTERIOR
   1666 );
   1667 static TemplateTypeClass const ARRO0010(
   1668 	TEMPLATE_ARRO0010,
   1669 	THEATERF_INTERIOR,
   1670 	"ARRO0010",
   1671 	TXT_INTERIOR
   1672 );
   1673 static TemplateTypeClass const ARRO0011(
   1674 	TEMPLATE_ARRO0011,
   1675 	THEATERF_INTERIOR,
   1676 	"ARRO0011",
   1677 	TXT_INTERIOR
   1678 );
   1679 static TemplateTypeClass const ARRO0012(
   1680 	TEMPLATE_ARRO0012,
   1681 	THEATERF_INTERIOR,
   1682 	"ARRO0012",
   1683 	TXT_INTERIOR
   1684 );
   1685 static TemplateTypeClass const ARRO0013(
   1686 	TEMPLATE_ARRO0013,
   1687 	THEATERF_INTERIOR,
   1688 	"ARRO0013",
   1689 	TXT_INTERIOR
   1690 );
   1691 static TemplateTypeClass const ARRO0014(
   1692 	TEMPLATE_ARRO0014,
   1693 	THEATERF_INTERIOR,
   1694 	"ARRO0014",
   1695 	TXT_INTERIOR
   1696 );
   1697 static TemplateTypeClass const ARRO0015(
   1698 	TEMPLATE_ARRO0015,
   1699 	THEATERF_INTERIOR,
   1700 	"ARRO0015",
   1701 	TXT_INTERIOR
   1702 );
   1703 static TemplateTypeClass const FLOR0001(
   1704 	TEMPLATE_FLOR0001,
   1705 	THEATERF_INTERIOR,
   1706 	"FLOR0001",
   1707 	TXT_INTERIOR
   1708 );
   1709 static TemplateTypeClass const FLOR0002(
   1710 	TEMPLATE_FLOR0002,
   1711 	THEATERF_INTERIOR,
   1712 	"FLOR0002",
   1713 	TXT_INTERIOR
   1714 );
   1715 static TemplateTypeClass const FLOR0003(
   1716 	TEMPLATE_FLOR0003,
   1717 	THEATERF_INTERIOR,
   1718 	"FLOR0003",
   1719 	TXT_INTERIOR
   1720 );
   1721 static TemplateTypeClass const FLOR0004(
   1722 	TEMPLATE_FLOR0004,
   1723 	THEATERF_INTERIOR,
   1724 	"FLOR0004",
   1725 	TXT_INTERIOR
   1726 );
   1727 static TemplateTypeClass const FLOR0005(
   1728 	TEMPLATE_FLOR0005,
   1729 	THEATERF_INTERIOR,
   1730 	"FLOR0005",
   1731 	TXT_INTERIOR
   1732 );
   1733 static TemplateTypeClass const FLOR0006(
   1734 	TEMPLATE_FLOR0006,
   1735 	THEATERF_INTERIOR,
   1736 	"FLOR0006",
   1737 	TXT_INTERIOR
   1738 );
   1739 static TemplateTypeClass const FLOR0007(
   1740 	TEMPLATE_FLOR0007,
   1741 	THEATERF_INTERIOR,
   1742 	"FLOR0007",
   1743 	TXT_INTERIOR
   1744 );
   1745 static TemplateTypeClass const GFLR0001(
   1746 	TEMPLATE_GFLR0001,
   1747 	THEATERF_INTERIOR,
   1748 	"GFLR0001",
   1749 	TXT_INTERIOR
   1750 );
   1751 static TemplateTypeClass const GFLR0002(
   1752 	TEMPLATE_GFLR0002,
   1753 	THEATERF_INTERIOR,
   1754 	"GFLR0002",
   1755 	TXT_INTERIOR
   1756 );
   1757 static TemplateTypeClass const GFLR0003(
   1758 	TEMPLATE_GFLR0003,
   1759 	THEATERF_INTERIOR,
   1760 	"GFLR0003",
   1761 	TXT_INTERIOR
   1762 );
   1763 static TemplateTypeClass const GFLR0004(
   1764 	TEMPLATE_GFLR0004,
   1765 	THEATERF_INTERIOR,
   1766 	"GFLR0004",
   1767 	TXT_INTERIOR
   1768 );
   1769 static TemplateTypeClass const GFLR0005(
   1770 	TEMPLATE_GFLR0005,
   1771 	THEATERF_INTERIOR,
   1772 	"GFLR0005",
   1773 	TXT_INTERIOR
   1774 );
   1775 static TemplateTypeClass const GSTR0001(
   1776 	TEMPLATE_GSTR0001,
   1777 	THEATERF_INTERIOR,
   1778 	"GSTR0001",
   1779 	TXT_INTERIOR
   1780 );
   1781 static TemplateTypeClass const GSTR0002(
   1782 	TEMPLATE_GSTR0002,
   1783 	THEATERF_INTERIOR,
   1784 	"GSTR0002",
   1785 	TXT_INTERIOR
   1786 );
   1787 static TemplateTypeClass const GSTR0003(
   1788 	TEMPLATE_GSTR0003,
   1789 	THEATERF_INTERIOR,
   1790 	"GSTR0003",
   1791 	TXT_INTERIOR
   1792 );
   1793 static TemplateTypeClass const GSTR0004(
   1794 	TEMPLATE_GSTR0004,
   1795 	THEATERF_INTERIOR,
   1796 	"GSTR0004",
   1797 	TXT_INTERIOR
   1798 );
   1799 static TemplateTypeClass const GSTR0005(
   1800 	TEMPLATE_GSTR0005,
   1801 	THEATERF_INTERIOR,
   1802 	"GSTR0005",
   1803 	TXT_INTERIOR
   1804 );
   1805 static TemplateTypeClass const GSTR0006(
   1806 	TEMPLATE_GSTR0006,
   1807 	THEATERF_INTERIOR,
   1808 	"GSTR0006",
   1809 	TXT_INTERIOR
   1810 );
   1811 static TemplateTypeClass const GSTR0007(
   1812 	TEMPLATE_GSTR0007,
   1813 	THEATERF_INTERIOR,
   1814 	"GSTR0007",
   1815 	TXT_INTERIOR
   1816 );
   1817 static TemplateTypeClass const GSTR0008(
   1818 	TEMPLATE_GSTR0008,
   1819 	THEATERF_INTERIOR,
   1820 	"GSTR0008",
   1821 	TXT_INTERIOR
   1822 );
   1823 static TemplateTypeClass const GSTR0009(
   1824 	TEMPLATE_GSTR0009,
   1825 	THEATERF_INTERIOR,
   1826 	"GSTR0009",
   1827 	TXT_INTERIOR
   1828 );
   1829 static TemplateTypeClass const GSTR0010(
   1830 	TEMPLATE_GSTR0010,
   1831 	THEATERF_INTERIOR,
   1832 	"GSTR0010",
   1833 	TXT_INTERIOR
   1834 );
   1835 static TemplateTypeClass const GSTR0011(
   1836 	TEMPLATE_GSTR0011,
   1837 	THEATERF_INTERIOR,
   1838 	"GSTR0011",
   1839 	TXT_INTERIOR
   1840 );
   1841 static TemplateTypeClass const LWAL0001(
   1842 	TEMPLATE_LWAL0001,
   1843 	THEATERF_INTERIOR,
   1844 	"LWAL0001",
   1845 	TXT_INTERIOR
   1846 );
   1847 static TemplateTypeClass const LWAL0002(
   1848 	TEMPLATE_LWAL0002,
   1849 	THEATERF_INTERIOR,
   1850 	"LWAL0002",
   1851 	TXT_INTERIOR
   1852 );
   1853 static TemplateTypeClass const LWAL0003(
   1854 	TEMPLATE_LWAL0003,
   1855 	THEATERF_INTERIOR,
   1856 	"LWAL0003",
   1857 	TXT_INTERIOR
   1858 );
   1859 static TemplateTypeClass const LWAL0004(
   1860 	TEMPLATE_LWAL0004,
   1861 	THEATERF_INTERIOR,
   1862 	"LWAL0004",
   1863 	TXT_INTERIOR
   1864 );
   1865 static TemplateTypeClass const LWAL0005(
   1866 	TEMPLATE_LWAL0005,
   1867 	THEATERF_INTERIOR,
   1868 	"LWAL0005",
   1869 	TXT_INTERIOR
   1870 );
   1871 static TemplateTypeClass const LWAL0006(
   1872 	TEMPLATE_LWAL0006,
   1873 	THEATERF_INTERIOR,
   1874 	"LWAL0006",
   1875 	TXT_INTERIOR
   1876 );
   1877 static TemplateTypeClass const LWAL0007(
   1878 	TEMPLATE_LWAL0007,
   1879 	THEATERF_INTERIOR,
   1880 	"LWAL0007",
   1881 	TXT_INTERIOR
   1882 );
   1883 static TemplateTypeClass const LWAL0008(
   1884 	TEMPLATE_LWAL0008,
   1885 	THEATERF_INTERIOR,
   1886 	"LWAL0008",
   1887 	TXT_INTERIOR
   1888 );
   1889 static TemplateTypeClass const LWAL0009(
   1890 	TEMPLATE_LWAL0009,
   1891 	THEATERF_INTERIOR,
   1892 	"LWAL0009",
   1893 	TXT_INTERIOR
   1894 );
   1895 static TemplateTypeClass const LWAL0010(
   1896 	TEMPLATE_LWAL0010,
   1897 	THEATERF_INTERIOR,
   1898 	"LWAL0010",
   1899 	TXT_INTERIOR
   1900 );
   1901 static TemplateTypeClass const LWAL0011(
   1902 	TEMPLATE_LWAL0011,
   1903 	THEATERF_INTERIOR,
   1904 	"LWAL0011",
   1905 	TXT_INTERIOR
   1906 );
   1907 static TemplateTypeClass const LWAL0012(
   1908 	TEMPLATE_LWAL0012,
   1909 	THEATERF_INTERIOR,
   1910 	"LWAL0012",
   1911 	TXT_INTERIOR
   1912 );
   1913 static TemplateTypeClass const LWAL0013(
   1914 	TEMPLATE_LWAL0013,
   1915 	THEATERF_INTERIOR,
   1916 	"LWAL0013",
   1917 	TXT_INTERIOR
   1918 );
   1919 static TemplateTypeClass const LWAL0014(
   1920 	TEMPLATE_LWAL0014,
   1921 	THEATERF_INTERIOR,
   1922 	"LWAL0014",
   1923 	TXT_INTERIOR
   1924 );
   1925 static TemplateTypeClass const LWAL0015(
   1926 	TEMPLATE_LWAL0015,
   1927 	THEATERF_INTERIOR,
   1928 	"LWAL0015",
   1929 	TXT_INTERIOR
   1930 );
   1931 static TemplateTypeClass const LWAL0016(
   1932 	TEMPLATE_LWAL0016,
   1933 	THEATERF_INTERIOR,
   1934 	"LWAL0016",
   1935 	TXT_INTERIOR
   1936 );
   1937 static TemplateTypeClass const LWAL0017(
   1938 	TEMPLATE_LWAL0017,
   1939 	THEATERF_INTERIOR,
   1940 	"LWAL0017",
   1941 	TXT_INTERIOR
   1942 );
   1943 static TemplateTypeClass const LWAL0018(
   1944 	TEMPLATE_LWAL0018,
   1945 	THEATERF_INTERIOR,
   1946 	"LWAL0018",
   1947 	TXT_INTERIOR
   1948 );
   1949 static TemplateTypeClass const LWAL0019(
   1950 	TEMPLATE_LWAL0019,
   1951 	THEATERF_INTERIOR,
   1952 	"LWAL0019",
   1953 	TXT_INTERIOR
   1954 );
   1955 static TemplateTypeClass const LWAL0020(
   1956 	TEMPLATE_LWAL0020,
   1957 	THEATERF_INTERIOR,
   1958 	"LWAL0020",
   1959 	TXT_INTERIOR
   1960 );
   1961 static TemplateTypeClass const LWAL0021(
   1962 	TEMPLATE_LWAL0021,
   1963 	THEATERF_INTERIOR,
   1964 	"LWAL0021",
   1965 	TXT_INTERIOR
   1966 );
   1967 static TemplateTypeClass const LWAL0022(
   1968 	TEMPLATE_LWAL0022,
   1969 	THEATERF_INTERIOR,
   1970 	"LWAL0022",
   1971 	TXT_INTERIOR
   1972 );
   1973 static TemplateTypeClass const LWAL0023(
   1974 	TEMPLATE_LWAL0023,
   1975 	THEATERF_INTERIOR,
   1976 	"LWAL0023",
   1977 	TXT_INTERIOR
   1978 );
   1979 static TemplateTypeClass const LWAL0024(
   1980 	TEMPLATE_LWAL0024,
   1981 	THEATERF_INTERIOR,
   1982 	"LWAL0024",
   1983 	TXT_INTERIOR
   1984 );
   1985 static TemplateTypeClass const LWAL0025(
   1986 	TEMPLATE_LWAL0025,
   1987 	THEATERF_INTERIOR,
   1988 	"LWAL0025",
   1989 	TXT_INTERIOR
   1990 );
   1991 static TemplateTypeClass const LWAL0026(
   1992 	TEMPLATE_LWAL0026,
   1993 	THEATERF_INTERIOR,
   1994 	"LWAL0026",
   1995 	TXT_INTERIOR
   1996 );
   1997 static TemplateTypeClass const LWAL0027(
   1998 	TEMPLATE_LWAL0027,
   1999 	THEATERF_INTERIOR,
   2000 	"LWAL0027",
   2001 	TXT_INTERIOR
   2002 );
   2003 static TemplateTypeClass const STRP0001(
   2004 	TEMPLATE_STRP0001,
   2005 	THEATERF_INTERIOR,
   2006 	"STRP0001",
   2007 	TXT_INTERIOR
   2008 );
   2009 static TemplateTypeClass const STRP0002(
   2010 	TEMPLATE_STRP0002,
   2011 	THEATERF_INTERIOR,
   2012 	"STRP0002",
   2013 	TXT_INTERIOR
   2014 );
   2015 static TemplateTypeClass const STRP0003(
   2016 	TEMPLATE_STRP0003,
   2017 	THEATERF_INTERIOR,
   2018 	"STRP0003",
   2019 	TXT_INTERIOR
   2020 );
   2021 static TemplateTypeClass const STRP0004(
   2022 	TEMPLATE_STRP0004,
   2023 	THEATERF_INTERIOR,
   2024 	"STRP0004",
   2025 	TXT_INTERIOR
   2026 );
   2027 static TemplateTypeClass const STRP0005(
   2028 	TEMPLATE_STRP0005,
   2029 	THEATERF_INTERIOR,
   2030 	"STRP0005",
   2031 	TXT_INTERIOR
   2032 );
   2033 static TemplateTypeClass const STRP0006(
   2034 	TEMPLATE_STRP0006,
   2035 	THEATERF_INTERIOR,
   2036 	"STRP0006",
   2037 	TXT_INTERIOR
   2038 );
   2039 static TemplateTypeClass const STRP0007(
   2040 	TEMPLATE_STRP0007,
   2041 	THEATERF_INTERIOR,
   2042 	"STRP0007",
   2043 	TXT_INTERIOR
   2044 );
   2045 static TemplateTypeClass const STRP0008(
   2046 	TEMPLATE_STRP0008,
   2047 	THEATERF_INTERIOR,
   2048 	"STRP0008",
   2049 	TXT_INTERIOR
   2050 );
   2051 static TemplateTypeClass const STRP0009(
   2052 	TEMPLATE_STRP0009,
   2053 	THEATERF_INTERIOR,
   2054 	"STRP0009",
   2055 	TXT_INTERIOR
   2056 );
   2057 static TemplateTypeClass const STRP0010(
   2058 	TEMPLATE_STRP0010,
   2059 	THEATERF_INTERIOR,
   2060 	"STRP0010",
   2061 	TXT_INTERIOR
   2062 );
   2063 static TemplateTypeClass const STRP0011(
   2064 	TEMPLATE_STRP0011,
   2065 	THEATERF_INTERIOR,
   2066 	"STRP0011",
   2067 	TXT_INTERIOR
   2068 );
   2069 static TemplateTypeClass const WALL0001(
   2070 	TEMPLATE_WALL0001,
   2071 	THEATERF_INTERIOR,
   2072 	"WALL0001",
   2073 	TXT_INTERIOR
   2074 );
   2075 static TemplateTypeClass const WALL0002(
   2076 	TEMPLATE_WALL0002,
   2077 	THEATERF_INTERIOR,
   2078 	"WALL0002",
   2079 	TXT_INTERIOR
   2080 );
   2081 static TemplateTypeClass const WALL0003(
   2082 	TEMPLATE_WALL0003,
   2083 	THEATERF_INTERIOR,
   2084 	"WALL0003",
   2085 	TXT_INTERIOR
   2086 );
   2087 static TemplateTypeClass const WALL0004(
   2088 	TEMPLATE_WALL0004,
   2089 	THEATERF_INTERIOR,
   2090 	"WALL0004",
   2091 	TXT_INTERIOR
   2092 );
   2093 static TemplateTypeClass const WALL0005(
   2094 	TEMPLATE_WALL0005,
   2095 	THEATERF_INTERIOR,
   2096 	"WALL0005",
   2097 	TXT_INTERIOR
   2098 );
   2099 static TemplateTypeClass const WALL0006(
   2100 	TEMPLATE_WALL0006,
   2101 	THEATERF_INTERIOR,
   2102 	"WALL0006",
   2103 	TXT_INTERIOR
   2104 );
   2105 static TemplateTypeClass const WALL0007(
   2106 	TEMPLATE_WALL0007,
   2107 	THEATERF_INTERIOR,
   2108 	"WALL0007",
   2109 	TXT_INTERIOR
   2110 );
   2111 static TemplateTypeClass const WALL0008(
   2112 	TEMPLATE_WALL0008,
   2113 	THEATERF_INTERIOR,
   2114 	"WALL0008",
   2115 	TXT_INTERIOR
   2116 );
   2117 static TemplateTypeClass const WALL0009(
   2118 	TEMPLATE_WALL0009,
   2119 	THEATERF_INTERIOR,
   2120 	"WALL0009",
   2121 	TXT_INTERIOR
   2122 );
   2123 static TemplateTypeClass const WALL0010(
   2124 	TEMPLATE_WALL0010,
   2125 	THEATERF_INTERIOR,
   2126 	"WALL0010",
   2127 	TXT_INTERIOR
   2128 );
   2129 static TemplateTypeClass const WALL0011(
   2130 	TEMPLATE_WALL0011,
   2131 	THEATERF_INTERIOR,
   2132 	"WALL0011",
   2133 	TXT_INTERIOR
   2134 );
   2135 static TemplateTypeClass const WALL0012(
   2136 	TEMPLATE_WALL0012,
   2137 	THEATERF_INTERIOR,
   2138 	"WALL0012",
   2139 	TXT_INTERIOR
   2140 );
   2141 static TemplateTypeClass const WALL0013(
   2142 	TEMPLATE_WALL0013,
   2143 	THEATERF_INTERIOR,
   2144 	"WALL0013",
   2145 	TXT_INTERIOR
   2146 );
   2147 static TemplateTypeClass const WALL0014(
   2148 	TEMPLATE_WALL0014,
   2149 	THEATERF_INTERIOR,
   2150 	"WALL0014",
   2151 	TXT_INTERIOR
   2152 );
   2153 static TemplateTypeClass const WALL0015(
   2154 	TEMPLATE_WALL0015,
   2155 	THEATERF_INTERIOR,
   2156 	"WALL0015",
   2157 	TXT_INTERIOR
   2158 );
   2159 static TemplateTypeClass const WALL0016(
   2160 	TEMPLATE_WALL0016,
   2161 	THEATERF_INTERIOR,
   2162 	"WALL0016",
   2163 	TXT_INTERIOR
   2164 );
   2165 static TemplateTypeClass const WALL0017(
   2166 	TEMPLATE_WALL0017,
   2167 	THEATERF_INTERIOR,
   2168 	"WALL0017",
   2169 	TXT_INTERIOR
   2170 );
   2171 static TemplateTypeClass const WALL0018(
   2172 	TEMPLATE_WALL0018,
   2173 	THEATERF_INTERIOR,
   2174 	"WALL0018",
   2175 	TXT_INTERIOR
   2176 );
   2177 static TemplateTypeClass const WALL0019(
   2178 	TEMPLATE_WALL0019,
   2179 	THEATERF_INTERIOR,
   2180 	"WALL0019",
   2181 	TXT_INTERIOR
   2182 );
   2183 static TemplateTypeClass const WALL0020(
   2184 	TEMPLATE_WALL0020,
   2185 	THEATERF_INTERIOR,
   2186 	"WALL0020",
   2187 	TXT_INTERIOR
   2188 );
   2189 static TemplateTypeClass const WALL0021(
   2190 	TEMPLATE_WALL0021,
   2191 	THEATERF_INTERIOR,
   2192 	"WALL0021",
   2193 	TXT_INTERIOR
   2194 );
   2195 static TemplateTypeClass const WALL0022(
   2196 	TEMPLATE_WALL0022,
   2197 	THEATERF_INTERIOR,
   2198 	"WALL0022",
   2199 	TXT_INTERIOR
   2200 );
   2201 static TemplateTypeClass const WALL0023(
   2202 	TEMPLATE_WALL0023,
   2203 	THEATERF_INTERIOR,
   2204 	"WALL0023",
   2205 	TXT_INTERIOR
   2206 );
   2207 static TemplateTypeClass const WALL0024(
   2208 	TEMPLATE_WALL0024,
   2209 	THEATERF_INTERIOR,
   2210 	"WALL0024",
   2211 	TXT_INTERIOR
   2212 );
   2213 static TemplateTypeClass const WALL0025(
   2214 	TEMPLATE_WALL0025,
   2215 	THEATERF_INTERIOR,
   2216 	"WALL0025",
   2217 	TXT_INTERIOR
   2218 );
   2219 static TemplateTypeClass const WALL0026(
   2220 	TEMPLATE_WALL0026,
   2221 	THEATERF_INTERIOR,
   2222 	"WALL0026",
   2223 	TXT_INTERIOR
   2224 );
   2225 static TemplateTypeClass const WALL0027(
   2226 	TEMPLATE_WALL0027,
   2227 	THEATERF_INTERIOR,
   2228 	"WALL0027",
   2229 	TXT_INTERIOR
   2230 );
   2231 static TemplateTypeClass const WALL0028(
   2232 	TEMPLATE_WALL0028,
   2233 	THEATERF_INTERIOR,
   2234 	"WALL0028",
   2235 	TXT_INTERIOR
   2236 );
   2237 static TemplateTypeClass const WALL0029(
   2238 	TEMPLATE_WALL0029,
   2239 	THEATERF_INTERIOR,
   2240 	"WALL0029",
   2241 	TXT_INTERIOR
   2242 );
   2243 static TemplateTypeClass const WALL0030(
   2244 	TEMPLATE_WALL0030,
   2245 	THEATERF_INTERIOR,
   2246 	"WALL0030",
   2247 	TXT_INTERIOR
   2248 );
   2249 static TemplateTypeClass const WALL0031(
   2250 	TEMPLATE_WALL0031,
   2251 	THEATERF_INTERIOR,
   2252 	"WALL0031",
   2253 	TXT_INTERIOR
   2254 );
   2255 static TemplateTypeClass const WALL0032(
   2256 	TEMPLATE_WALL0032,
   2257 	THEATERF_INTERIOR,
   2258 	"WALL0032",
   2259 	TXT_INTERIOR
   2260 );
   2261 static TemplateTypeClass const WALL0033(
   2262 	TEMPLATE_WALL0033,
   2263 	THEATERF_INTERIOR,
   2264 	"WALL0033",
   2265 	TXT_INTERIOR
   2266 );
   2267 static TemplateTypeClass const WALL0034(
   2268 	TEMPLATE_WALL0034,
   2269 	THEATERF_INTERIOR,
   2270 	"WALL0034",
   2271 	TXT_INTERIOR
   2272 );
   2273 static TemplateTypeClass const WALL0035(
   2274 	TEMPLATE_WALL0035,
   2275 	THEATERF_INTERIOR,
   2276 	"WALL0035",
   2277 	TXT_INTERIOR
   2278 );
   2279 static TemplateTypeClass const WALL0036(
   2280 	TEMPLATE_WALL0036,
   2281 	THEATERF_INTERIOR,
   2282 	"WALL0036",
   2283 	TXT_INTERIOR
   2284 );
   2285 static TemplateTypeClass const WALL0037(
   2286 	TEMPLATE_WALL0037,
   2287 	THEATERF_INTERIOR,
   2288 	"WALL0037",
   2289 	TXT_INTERIOR
   2290 );
   2291 static TemplateTypeClass const WALL0038(
   2292 	TEMPLATE_WALL0038,
   2293 	THEATERF_INTERIOR,
   2294 	"WALL0038",
   2295 	TXT_INTERIOR
   2296 );
   2297 static TemplateTypeClass const WALL0039(
   2298 	TEMPLATE_WALL0039,
   2299 	THEATERF_INTERIOR,
   2300 	"WALL0039",
   2301 	TXT_INTERIOR
   2302 );
   2303 static TemplateTypeClass const WALL0040(
   2304 	TEMPLATE_WALL0040,
   2305 	THEATERF_INTERIOR,
   2306 	"WALL0040",
   2307 	TXT_INTERIOR
   2308 );
   2309 static TemplateTypeClass const WALL0041(
   2310 	TEMPLATE_WALL0041,
   2311 	THEATERF_INTERIOR,
   2312 	"WALL0041",
   2313 	TXT_INTERIOR
   2314 );
   2315 static TemplateTypeClass const WALL0042(
   2316 	TEMPLATE_WALL0042,
   2317 	THEATERF_INTERIOR,
   2318 	"WALL0042",
   2319 	TXT_INTERIOR
   2320 );
   2321 static TemplateTypeClass const WALL0043(
   2322 	TEMPLATE_WALL0043,
   2323 	THEATERF_INTERIOR,
   2324 	"WALL0043",
   2325 	TXT_INTERIOR
   2326 );
   2327 static TemplateTypeClass const WALL0044(
   2328 	TEMPLATE_WALL0044,
   2329 	THEATERF_INTERIOR,
   2330 	"WALL0044",
   2331 	TXT_INTERIOR
   2332 );
   2333 static TemplateTypeClass const WALL0045(
   2334 	TEMPLATE_WALL0045,
   2335 	THEATERF_INTERIOR,
   2336 	"WALL0045",
   2337 	TXT_INTERIOR
   2338 );
   2339 static TemplateTypeClass const WALL0046(
   2340 	TEMPLATE_WALL0046,
   2341 	THEATERF_INTERIOR,
   2342 	"WALL0046",
   2343 	TXT_INTERIOR
   2344 );
   2345 static TemplateTypeClass const WALL0047(
   2346 	TEMPLATE_WALL0047,
   2347 	THEATERF_INTERIOR,
   2348 	"WALL0047",
   2349 	TXT_INTERIOR
   2350 );
   2351 static TemplateTypeClass const WALL0048(
   2352 	TEMPLATE_WALL0048,
   2353 	THEATERF_INTERIOR,
   2354 	"WALL0048",
   2355 	TXT_INTERIOR
   2356 );
   2357 static TemplateTypeClass const WALL0049(
   2358 	TEMPLATE_WALL0049,
   2359 	THEATERF_INTERIOR,
   2360 	"WALL0049",
   2361 	TXT_INTERIOR
   2362 );
   2363 
   2364 static TemplateTypeClass const Xtra0001(
   2365 	TEMPLATE_XTRA0001,
   2366 	THEATERF_INTERIOR,
   2367 	"XTRA0001",
   2368 	TXT_INTERIOR
   2369 );
   2370 static TemplateTypeClass const Xtra0002(
   2371 	TEMPLATE_XTRA0002,
   2372 	THEATERF_INTERIOR,
   2373 	"XTRA0002",
   2374 	TXT_INTERIOR
   2375 );
   2376 static TemplateTypeClass const Xtra0003(
   2377 	TEMPLATE_XTRA0003,
   2378 	THEATERF_INTERIOR,
   2379 	"XTRA0003",
   2380 	TXT_INTERIOR
   2381 );
   2382 static TemplateTypeClass const Xtra0004(
   2383 	TEMPLATE_XTRA0004,
   2384 	THEATERF_INTERIOR,
   2385 	"XTRA0004",
   2386 	TXT_INTERIOR
   2387 );
   2388 static TemplateTypeClass const Xtra0005(
   2389 	TEMPLATE_XTRA0005,
   2390 	THEATERF_INTERIOR,
   2391 	"XTRA0005",
   2392 	TXT_INTERIOR
   2393 );
   2394 static TemplateTypeClass const Xtra0006(
   2395 	TEMPLATE_XTRA0006,
   2396 	THEATERF_INTERIOR,
   2397 	"XTRA0006",
   2398 	TXT_INTERIOR
   2399 );
   2400 static TemplateTypeClass const Xtra0007(
   2401 	TEMPLATE_XTRA0007,
   2402 	THEATERF_INTERIOR,
   2403 	"XTRA0007",
   2404 	TXT_INTERIOR
   2405 );
   2406 static TemplateTypeClass const Xtra0008(
   2407 	TEMPLATE_XTRA0008,
   2408 	THEATERF_INTERIOR,
   2409 	"XTRA0008",
   2410 	TXT_INTERIOR
   2411 );
   2412 static TemplateTypeClass const Xtra0009(
   2413 	TEMPLATE_XTRA0009,
   2414 	THEATERF_INTERIOR,
   2415 	"XTRA0009",
   2416 	TXT_INTERIOR
   2417 );
   2418 static TemplateTypeClass const Xtra0010(
   2419 	TEMPLATE_XTRA0010,
   2420 	THEATERF_INTERIOR,
   2421 	"XTRA0010",
   2422 	TXT_INTERIOR
   2423 );
   2424 static TemplateTypeClass const Xtra0011(
   2425 	TEMPLATE_XTRA0011,
   2426 	THEATERF_INTERIOR,
   2427 	"XTRA0011",
   2428 	TXT_INTERIOR
   2429 );
   2430 static TemplateTypeClass const Xtra0012(
   2431 	TEMPLATE_XTRA0012,
   2432 	THEATERF_INTERIOR,
   2433 	"XTRA0012",
   2434 	TXT_INTERIOR
   2435 );
   2436 static TemplateTypeClass const Xtra0013(
   2437 	TEMPLATE_XTRA0013,
   2438 	THEATERF_INTERIOR,
   2439 	"XTRA0013",
   2440 	TXT_INTERIOR
   2441 );
   2442 static TemplateTypeClass const Xtra0014(
   2443 	TEMPLATE_XTRA0014,
   2444 	THEATERF_INTERIOR,
   2445 	"XTRA0014",
   2446 	TXT_INTERIOR
   2447 );
   2448 static TemplateTypeClass const Xtra0015(
   2449 	TEMPLATE_XTRA0015,
   2450 	THEATERF_INTERIOR,
   2451 	"XTRA0015",
   2452 	TXT_INTERIOR
   2453 );
   2454 static TemplateTypeClass const Xtra0016(
   2455 	TEMPLATE_XTRA0016,
   2456 	THEATERF_INTERIOR,
   2457 	"XTRA0016",
   2458 	TXT_INTERIOR
   2459 );
   2460 
   2461 #ifdef FIXIT_ANTS
   2462 static TemplateTypeClass const AntHill(
   2463 	TEMPLATE_HILL01,
   2464 	THEATERF_TEMPERATE,
   2465 	"HILL01",
   2466 	TXT_ROCK
   2467 );
   2468 #endif
   2469 
   2470 /***********************************************************************************************
   2471  * TemplateTypeClass::TemplateTypeClass -- Constructor for template type objects.              *
   2472  *                                                                                             *
   2473  *    This is the constructor for the template types.                                          *
   2474  *                                                                                             *
   2475  * INPUT:   see below...                                                                       *
   2476  *                                                                                             *
   2477  * OUTPUT:  none                                                                               *
   2478  *                                                                                             *
   2479  * WARNINGS:   none                                                                            *
   2480  *                                                                                             *
   2481  * HISTORY:                                                                                    *
   2482  *   07/29/1994 JLB : Created.                                                                 *
   2483  *=============================================================================================*/
   2484 TemplateTypeClass::TemplateTypeClass(
   2485 	TemplateType iconset,
   2486 	int theater,
   2487 	char const * ininame,
   2488 	int fullname) :
   2489 		ObjectTypeClass(
   2490 			RTTI_TEMPLATETYPE,
   2491 			int(iconset),
   2492 			false,
   2493 			true,
   2494 			false,
   2495 			false,
   2496 			true,
   2497 			true,
   2498 			false,
   2499 			fullname,
   2500 			ininame),
   2501 	Type(iconset),
   2502 	Theater(theater),
   2503 	Width(0),
   2504 	Height(0)
   2505 {
   2506 }
   2507 
   2508 
   2509 /***********************************************************************************************
   2510  * TemplateTypeClass::operator new -- Allocates a template type from special heap.             *
   2511  *                                                                                             *
   2512  *    This allocates a template type object from the special heap used for that purpose.       *
   2513  *                                                                                             *
   2514  * INPUT:   none                                                                               *
   2515  *                                                                                             *
   2516  * OUTPUT:  Returns with a pointer to the newly allocated template type object. If no object   *
   2517  *          could be allocated, then NULL is returned.                                         *
   2518  *                                                                                             *
   2519  * WARNINGS:   none                                                                            *
   2520  *                                                                                             *
   2521  * HISTORY:                                                                                    *
   2522  *   07/06/1996 JLB : Created.                                                                 *
   2523  *=============================================================================================*/
   2524 void * TemplateTypeClass::operator new(size_t)
   2525 {
   2526 	return(TemplateTypes.Alloc());
   2527 }
   2528 
   2529 
   2530 /***********************************************************************************************
   2531  * TemplateTypeClass::operator delete -- Deletes a template type object.                       *
   2532  *                                                                                             *
   2533  *    This routine will return a template type object back to the special heap it was          *
   2534  *    allocated from.                                                                          *
   2535  *                                                                                             *
   2536  * INPUT:   ptr   -- Pointer to the template type object to free.                              *
   2537  *                                                                                             *
   2538  * OUTPUT:  none                                                                               *
   2539  *                                                                                             *
   2540  * WARNINGS:   none                                                                            *
   2541  *                                                                                             *
   2542  * HISTORY:                                                                                    *
   2543  *   07/06/1996 JLB : Created.                                                                 *
   2544  *=============================================================================================*/
   2545 void TemplateTypeClass::operator delete(void * ptr)
   2546 {
   2547 	TemplateTypes.Free((TemplateTypeClass *)ptr);
   2548 }
   2549 
   2550 
   2551 static void _Watcom_Ugh_Hack(void)
   2552 {
   2553 	(void)new TemplateTypeClass(Road37);			//	TEMPLATE_ROAD37
   2554 	(void)new TemplateTypeClass(Road38);			//	TEMPLATE_ROAD38
   2555 	(void)new TemplateTypeClass(Road39);			//	TEMPLATE_ROAD39
   2556 	(void)new TemplateTypeClass(Road40);			//	TEMPLATE_ROAD40
   2557 	(void)new TemplateTypeClass(Road41);			//	TEMPLATE_ROAD41
   2558 	(void)new TemplateTypeClass(Road42);			//	TEMPLATE_ROAD42
   2559 	(void)new TemplateTypeClass(Road43);			//	TEMPLATE_ROAD43
   2560 	(void)new TemplateTypeClass(Rough01);			// TEMPLATE_ROUGH01
   2561 	(void)new TemplateTypeClass(Rough02);			// TEMPLATE_ROUGH02
   2562 	(void)new TemplateTypeClass(Rough03);			// TEMPLATE_ROUGH03
   2563 	(void)new TemplateTypeClass(Rough04);			// TEMPLATE_ROUGH04
   2564 	(void)new TemplateTypeClass(Rough05);			// TEMPLATE_ROUGH05
   2565 	(void)new TemplateTypeClass(Rough06);			// TEMPLATE_ROUGH06
   2566 	(void)new TemplateTypeClass(Rough07);			// TEMPLATE_ROUGH07
   2567 	(void)new TemplateTypeClass(Rough08);			// TEMPLATE_ROUGH08
   2568 	(void)new TemplateTypeClass(Rough09);			// TEMPLATE_ROUGH09
   2569 	(void)new TemplateTypeClass(Rough10);			// TEMPLATE_ROUGH10
   2570 	(void)new TemplateTypeClass(Rough11);			// TEMPLATE_ROUGH11
   2571 	(void)new TemplateTypeClass(Road44);			//	TEMPLATE_ROAD44
   2572 	(void)new TemplateTypeClass(Road45);			//	TEMPLATE_ROAD45
   2573 	(void)new TemplateTypeClass(River14);			//	TEMPLATE_RIVER14
   2574 	(void)new TemplateTypeClass(River15);			//	TEMPLATE_RIVER15
   2575 	(void)new TemplateTypeClass(RiverCliff01);	//	TEMPLATE_RIVERCLIFF01
   2576 	(void)new TemplateTypeClass(RiverCliff02);	//	TEMPLATE_RIVERCLIFF02
   2577 	(void)new TemplateTypeClass(RiverCliff03);	//	TEMPLATE_RIVERCLIFF03
   2578 	(void)new TemplateTypeClass(RiverCliff04);	//	TEMPLATE_RIVERCLIFF04
   2579 	(void)new TemplateTypeClass(Bridge1a);			//	TEMPLATE_BRIDGE_1A
   2580 	(void)new TemplateTypeClass(Bridge1b);			//	TEMPLATE_BRIDGE_1B
   2581 	(void)new TemplateTypeClass(Bridge1c);			//	TEMPLATE_BRIDGE_1C
   2582 	(void)new TemplateTypeClass(Bridge2a);			//	TEMPLATE_BRIDGE_2A
   2583 	(void)new TemplateTypeClass(Bridge2b);			//	TEMPLATE_BRIDGE_2B
   2584 	(void)new TemplateTypeClass(Bridge2c);			//	TEMPLATE_BRIDGE_2C
   2585 	(void)new TemplateTypeClass(Bridge3a);			//	TEMPLATE_BRIDGE_3A
   2586 	(void)new TemplateTypeClass(Bridge3b);			//	TEMPLATE_BRIDGE_3B
   2587 	(void)new TemplateTypeClass(Bridge3c);			//	TEMPLATE_BRIDGE_3C
   2588 	(void)new TemplateTypeClass(Bridge3d);			//	TEMPLATE_BRIDGE_3D
   2589 	(void)new TemplateTypeClass(Bridge3e);			//	TEMPLATE_BRIDGE_3E
   2590 	(void)new TemplateTypeClass(Bridge3f);			//	TEMPLATE_BRIDGE_3F
   2591 	(void)new TemplateTypeClass(F01);				//	TEMPLATE_F01
   2592 	(void)new TemplateTypeClass(F02);				//	TEMPLATE_F02
   2593 	(void)new TemplateTypeClass(F03);				//	TEMPLATE_F03
   2594 	(void)new TemplateTypeClass(F04);				//	TEMPLATE_F04
   2595 	(void)new TemplateTypeClass(F05);				//	TEMPLATE_F05
   2596 	(void)new TemplateTypeClass(F06);				//	TEMPLATE_F06
   2597 	(void)new TemplateTypeClass(ARRO0001);			//	TEMPLATE_ARRO0001
   2598 	(void)new TemplateTypeClass(ARRO0002);			//	TEMPLATE_ARRO0002
   2599 	(void)new TemplateTypeClass(ARRO0003);			//	TEMPLATE_ARRO0003
   2600 	(void)new TemplateTypeClass(ARRO0004);			//	TEMPLATE_ARRO0004
   2601 	(void)new TemplateTypeClass(ARRO0005);			//	TEMPLATE_ARRO0005
   2602 	(void)new TemplateTypeClass(ARRO0006);			//	TEMPLATE_ARRO0006
   2603 	(void)new TemplateTypeClass(ARRO0007);			//	TEMPLATE_ARRO0007
   2604 	(void)new TemplateTypeClass(ARRO0008);			//	TEMPLATE_ARRO0008
   2605 	(void)new TemplateTypeClass(ARRO0009);			//	TEMPLATE_ARRO0009
   2606 	(void)new TemplateTypeClass(ARRO0010);			//	TEMPLATE_ARRO0010
   2607 	(void)new TemplateTypeClass(ARRO0011);			//	TEMPLATE_ARRO0011
   2608 	(void)new TemplateTypeClass(ARRO0012);			//	TEMPLATE_ARRO0012
   2609 	(void)new TemplateTypeClass(ARRO0013);			//	TEMPLATE_ARRO0013
   2610 	(void)new TemplateTypeClass(ARRO0014);			//	TEMPLATE_ARRO0014
   2611 	(void)new TemplateTypeClass(ARRO0015);			//	TEMPLATE_ARRO0015
   2612 	(void)new TemplateTypeClass(FLOR0001);			//	TEMPLATE_FLOR0001
   2613 	(void)new TemplateTypeClass(FLOR0002);			//	TEMPLATE_FLOR0002
   2614 	(void)new TemplateTypeClass(FLOR0003);			//	TEMPLATE_FLOR0003
   2615 	(void)new TemplateTypeClass(FLOR0004);			//	TEMPLATE_FLOR0004
   2616 	(void)new TemplateTypeClass(FLOR0005);			//	TEMPLATE_FLOR0005
   2617 	(void)new TemplateTypeClass(FLOR0006);			//	TEMPLATE_FLOR0006
   2618 	(void)new TemplateTypeClass(FLOR0007);			//	TEMPLATE_FLOR0007
   2619 	(void)new TemplateTypeClass(GFLR0001);			//	TEMPLATE_GFLR0001
   2620 	(void)new TemplateTypeClass(GFLR0002);			//	TEMPLATE_GFLR0002
   2621 	(void)new TemplateTypeClass(GFLR0003);			//	TEMPLATE_GFLR0003
   2622 	(void)new TemplateTypeClass(GFLR0004);			//	TEMPLATE_GFLR0004
   2623 	(void)new TemplateTypeClass(GFLR0005);			//	TEMPLATE_GFLR0005
   2624 	(void)new TemplateTypeClass(GSTR0001);			//	TEMPLATE_GSTR0001
   2625 	(void)new TemplateTypeClass(GSTR0002);			//	TEMPLATE_GSTR0002
   2626 	(void)new TemplateTypeClass(GSTR0003);			//	TEMPLATE_GSTR0003
   2627 	(void)new TemplateTypeClass(GSTR0004);			//	TEMPLATE_GSTR0004
   2628 	(void)new TemplateTypeClass(GSTR0005);			//	TEMPLATE_GSTR0005
   2629 	(void)new TemplateTypeClass(GSTR0006);			//	TEMPLATE_GSTR0006
   2630 	(void)new TemplateTypeClass(GSTR0007);			//	TEMPLATE_GSTR0007
   2631 	(void)new TemplateTypeClass(GSTR0008);			//	TEMPLATE_GSTR0008
   2632 	(void)new TemplateTypeClass(GSTR0009);			//	TEMPLATE_GSTR0009
   2633 	(void)new TemplateTypeClass(GSTR0010);			//	TEMPLATE_GSTR0010
   2634 	(void)new TemplateTypeClass(GSTR0011);			//	TEMPLATE_GSTR0011
   2635 	(void)new TemplateTypeClass(LWAL0001);			//	TEMPLATE_LWAL0001
   2636 	(void)new TemplateTypeClass(LWAL0002);			//	TEMPLATE_LWAL0002
   2637 	(void)new TemplateTypeClass(LWAL0003);			//	TEMPLATE_LWAL0003
   2638 	(void)new TemplateTypeClass(LWAL0004);			//	TEMPLATE_LWAL0004
   2639 	(void)new TemplateTypeClass(LWAL0005);			//	TEMPLATE_LWAL0005
   2640 	(void)new TemplateTypeClass(LWAL0006);			//	TEMPLATE_LWAL0006
   2641 	(void)new TemplateTypeClass(LWAL0007);			//	TEMPLATE_LWAL0007
   2642 	(void)new TemplateTypeClass(LWAL0008);			//	TEMPLATE_LWAL0008
   2643 	(void)new TemplateTypeClass(LWAL0009);			//	TEMPLATE_LWAL0009
   2644 	(void)new TemplateTypeClass(LWAL0010);			//	TEMPLATE_LWAL0010
   2645 	(void)new TemplateTypeClass(LWAL0011);			//	TEMPLATE_LWAL0011
   2646 	(void)new TemplateTypeClass(LWAL0012);			//	TEMPLATE_LWAL0012
   2647 	(void)new TemplateTypeClass(LWAL0013);			//	TEMPLATE_LWAL0013
   2648 	(void)new TemplateTypeClass(LWAL0014);			//	TEMPLATE_LWAL0014
   2649 	(void)new TemplateTypeClass(LWAL0015);			//	TEMPLATE_LWAL0015
   2650 	(void)new TemplateTypeClass(LWAL0016);			//	TEMPLATE_LWAL0016
   2651 	(void)new TemplateTypeClass(LWAL0017);			//	TEMPLATE_LWAL0017
   2652 	(void)new TemplateTypeClass(LWAL0018);			//	TEMPLATE_LWAL0018
   2653 	(void)new TemplateTypeClass(LWAL0019);			//	TEMPLATE_LWAL0019
   2654 	(void)new TemplateTypeClass(LWAL0020);			//	TEMPLATE_LWAL0020
   2655 	(void)new TemplateTypeClass(LWAL0021);			//	TEMPLATE_LWAL0021
   2656 	(void)new TemplateTypeClass(LWAL0022);			//	TEMPLATE_LWAL0022
   2657 	(void)new TemplateTypeClass(LWAL0023);			//	TEMPLATE_LWAL0023
   2658 	(void)new TemplateTypeClass(LWAL0024);			//	TEMPLATE_LWAL0024
   2659 	(void)new TemplateTypeClass(LWAL0025);			//	TEMPLATE_LWAL0025
   2660 	(void)new TemplateTypeClass(LWAL0026);			//	TEMPLATE_LWAL0026
   2661 	(void)new TemplateTypeClass(LWAL0027);			//	TEMPLATE_LWAL0027
   2662 	(void)new TemplateTypeClass(STRP0001);			//	TEMPLATE_STRP0001
   2663 	(void)new TemplateTypeClass(STRP0002);			//	TEMPLATE_STRP0002
   2664 	(void)new TemplateTypeClass(STRP0003);			//	TEMPLATE_STRP0003
   2665 	(void)new TemplateTypeClass(STRP0004);			//	TEMPLATE_STRP0004
   2666 	(void)new TemplateTypeClass(STRP0005);			//	TEMPLATE_STRP0005
   2667 	(void)new TemplateTypeClass(STRP0006);			//	TEMPLATE_STRP0006
   2668 	(void)new TemplateTypeClass(STRP0007);			//	TEMPLATE_STRP0007
   2669 	(void)new TemplateTypeClass(STRP0008);			//	TEMPLATE_STRP0008
   2670 	(void)new TemplateTypeClass(STRP0009);			//	TEMPLATE_STRP0009
   2671 	(void)new TemplateTypeClass(STRP0010);			//	TEMPLATE_STRP0010
   2672 	(void)new TemplateTypeClass(STRP0011);			//	TEMPLATE_STRP0011
   2673 	(void)new TemplateTypeClass(WALL0001);			//	TEMPLATE_WALL0001
   2674 	(void)new TemplateTypeClass(WALL0002);			//	TEMPLATE_WALL0002
   2675 	(void)new TemplateTypeClass(WALL0003);			//	TEMPLATE_WALL0003
   2676 	(void)new TemplateTypeClass(WALL0004);			//	TEMPLATE_WALL0004
   2677 	(void)new TemplateTypeClass(WALL0005);			//	TEMPLATE_WALL0005
   2678 	(void)new TemplateTypeClass(WALL0006);			//	TEMPLATE_WALL0006
   2679 	(void)new TemplateTypeClass(WALL0007);			//	TEMPLATE_WALL0007
   2680 	(void)new TemplateTypeClass(WALL0008);			//	TEMPLATE_WALL0008
   2681 	(void)new TemplateTypeClass(WALL0009);			//	TEMPLATE_WALL0009
   2682 	(void)new TemplateTypeClass(WALL0010);			//	TEMPLATE_WALL0010
   2683 	(void)new TemplateTypeClass(WALL0011);			//	TEMPLATE_WALL0011
   2684 	(void)new TemplateTypeClass(WALL0012);			//	TEMPLATE_WALL0012
   2685 	(void)new TemplateTypeClass(WALL0013);			//	TEMPLATE_WALL0013
   2686 	(void)new TemplateTypeClass(WALL0014);			//	TEMPLATE_WALL0014
   2687 	(void)new TemplateTypeClass(WALL0015);			//	TEMPLATE_WALL0015
   2688 	(void)new TemplateTypeClass(WALL0016);			//	TEMPLATE_WALL0016
   2689 	(void)new TemplateTypeClass(WALL0017);			//	TEMPLATE_WALL0017
   2690 	(void)new TemplateTypeClass(WALL0018);			//	TEMPLATE_WALL0018
   2691 	(void)new TemplateTypeClass(WALL0019);			//	TEMPLATE_WALL0019
   2692 	(void)new TemplateTypeClass(WALL0020);			//	TEMPLATE_WALL0020
   2693 	(void)new TemplateTypeClass(WALL0021);			//	TEMPLATE_WALL0021
   2694 	(void)new TemplateTypeClass(WALL0022);			//	TEMPLATE_WALL0022
   2695 	(void)new TemplateTypeClass(WALL0023);			//	TEMPLATE_WALL0023
   2696 	(void)new TemplateTypeClass(WALL0024);			//	TEMPLATE_WALL0024
   2697 	(void)new TemplateTypeClass(WALL0025);			//	TEMPLATE_WALL0025
   2698 	(void)new TemplateTypeClass(WALL0026);			//	TEMPLATE_WALL0026
   2699 	(void)new TemplateTypeClass(WALL0027);			//	TEMPLATE_WALL0027
   2700 	(void)new TemplateTypeClass(WALL0028);			//	TEMPLATE_WALL0028
   2701 	(void)new TemplateTypeClass(WALL0029);			//	TEMPLATE_WALL0029
   2702 	(void)new TemplateTypeClass(WALL0030);			//	TEMPLATE_WALL0030
   2703 	(void)new TemplateTypeClass(WALL0031);			//	TEMPLATE_WALL0031
   2704 	(void)new TemplateTypeClass(WALL0032);			//	TEMPLATE_WALL0032
   2705 	(void)new TemplateTypeClass(WALL0033);			//	TEMPLATE_WALL0033
   2706 	(void)new TemplateTypeClass(WALL0034);			//	TEMPLATE_WALL0034
   2707 	(void)new TemplateTypeClass(WALL0035);			//	TEMPLATE_WALL0035
   2708 	(void)new TemplateTypeClass(WALL0036);			//	TEMPLATE_WALL0036
   2709 	(void)new TemplateTypeClass(WALL0037);			//	TEMPLATE_WALL0037
   2710 	(void)new TemplateTypeClass(WALL0038);			//	TEMPLATE_WALL0038
   2711 	(void)new TemplateTypeClass(WALL0039);			//	TEMPLATE_WALL0039
   2712 	(void)new TemplateTypeClass(WALL0040);			//	TEMPLATE_WALL0040
   2713 	(void)new TemplateTypeClass(WALL0041);			//	TEMPLATE_WALL0041
   2714 	(void)new TemplateTypeClass(WALL0042);			//	TEMPLATE_WALL0042
   2715 	(void)new TemplateTypeClass(WALL0043);			//	TEMPLATE_WALL0043
   2716 	(void)new TemplateTypeClass(WALL0044);			//	TEMPLATE_WALL0044
   2717 	(void)new TemplateTypeClass(WALL0045);			//	TEMPLATE_WALL0045
   2718 	(void)new TemplateTypeClass(WALL0046);			//	TEMPLATE_WALL0046
   2719 	(void)new TemplateTypeClass(WALL0047);			//	TEMPLATE_WALL0047
   2720 	(void)new TemplateTypeClass(WALL0048);			//	TEMPLATE_WALL0048
   2721 	(void)new TemplateTypeClass(WALL0049);			//	TEMPLATE_WALL0049
   2722 	(void)new TemplateTypeClass(Bridge1h);			//	TEMPLATE_BRIDGE1H
   2723 	(void)new TemplateTypeClass(Bridge2h);			//	TEMPLATE_BRIDGE2H
   2724 
   2725 	(void)new TemplateTypeClass(Bridge1ax);		//	TEMPLATE_BRIDGE_1AX
   2726 	(void)new TemplateTypeClass(Bridge2ax);		//	TEMPLATE_BRIDGE_2AX
   2727 	(void)new TemplateTypeClass(Bridge1x);			//	TEMPLATE_BRIDGE1X
   2728 	(void)new TemplateTypeClass(Bridge2x);			//	TEMPLATE_BRIDGE2X
   2729 
   2730 	(void)new TemplateTypeClass(Xtra0001);			//	TEMPLATE_XTRA0001
   2731 	(void)new TemplateTypeClass(Xtra0002);			//	TEMPLATE_XTRA0002
   2732 	(void)new TemplateTypeClass(Xtra0003);			//	TEMPLATE_XTRA0003
   2733 	(void)new TemplateTypeClass(Xtra0004);			//	TEMPLATE_XTRA0004
   2734 	(void)new TemplateTypeClass(Xtra0005);			//	TEMPLATE_XTRA0005
   2735 	(void)new TemplateTypeClass(Xtra0006);			//	TEMPLATE_XTRA0006
   2736 	(void)new TemplateTypeClass(Xtra0007);			//	TEMPLATE_XTRA0007
   2737 	(void)new TemplateTypeClass(Xtra0008);			//	TEMPLATE_XTRA0008
   2738 	(void)new TemplateTypeClass(Xtra0009);			//	TEMPLATE_XTRA0009
   2739 	(void)new TemplateTypeClass(Xtra0010);			//	TEMPLATE_XTRA0010
   2740 	(void)new TemplateTypeClass(Xtra0011);			//	TEMPLATE_XTRA0011
   2741 	(void)new TemplateTypeClass(Xtra0012);			//	TEMPLATE_XTRA0012
   2742 	(void)new TemplateTypeClass(Xtra0013);			//	TEMPLATE_XTRA0013
   2743 	(void)new TemplateTypeClass(Xtra0014);			//	TEMPLATE_XTRA0014
   2744 	(void)new TemplateTypeClass(Xtra0015);			//	TEMPLATE_XTRA0015
   2745 	(void)new TemplateTypeClass(Xtra0016);			//	TEMPLATE_XTRA0016
   2746 
   2747 #ifdef FIXIT_ANTS
   2748 	(void)new TemplateTypeClass(AntHill);			//	TEMPLATE_ROAD36
   2749 #endif
   2750 }
   2751 
   2752 
   2753 
   2754 void TemplateTypeClass::Init_Heap(void)
   2755 {
   2756 	/*
   2757 	**	These template type class objects must be allocated in the exact order that they
   2758 	**	are specified in the TemplateType enumeration. This is necessary because the heap
   2759 	**	allocation block index serves double duty as the type number index.
   2760 	*/
   2761 	(void)new TemplateTypeClass(Clear);				// TEMPLATE_CLEAR1
   2762 	(void)new TemplateTypeClass(Water);				// TEMPLATE_WATER
   2763 	(void)new TemplateTypeClass(Water2);			// TEMPLATE_WATER2
   2764 	(void)new TemplateTypeClass(Shore01);			// TEMPLATE_SHORE1
   2765 	(void)new TemplateTypeClass(Shore02);			// TEMPLATE_SHORE2
   2766 	(void)new TemplateTypeClass(Shore03);			// TEMPLATE_SHORE3
   2767 	(void)new TemplateTypeClass(Shore04);			// TEMPLATE_SHORE4
   2768 	(void)new TemplateTypeClass(Shore05);			// TEMPLATE_SHORE5
   2769 	(void)new TemplateTypeClass(Shore06);			// TEMPLATE_SHORE6
   2770 	(void)new TemplateTypeClass(Shore07);			// TEMPLATE_SHORE7
   2771 	(void)new TemplateTypeClass(Shore08);			// TEMPLATE_SHORE8
   2772 	(void)new TemplateTypeClass(Shore09);			// TEMPLATE_SHORE9
   2773 	(void)new TemplateTypeClass(Shore10);			// TEMPLATE_SHORE10
   2774 	(void)new TemplateTypeClass(Shore11);			//	TEMPLATE_SHORE11
   2775 	(void)new TemplateTypeClass(Shore12);			// TEMPLATE_SHORE12
   2776 	(void)new TemplateTypeClass(Shore13);			// TEMPLATE_SHORE13
   2777 	(void)new TemplateTypeClass(Shore14);			// TEMPLATE_SHORE14
   2778 	(void)new TemplateTypeClass(Shore15);			// TEMPLATE_SHORE15
   2779 	(void)new TemplateTypeClass(Shore16);			//	TEMPLATE_SHORE16
   2780 	(void)new TemplateTypeClass(Shore17);			//	TEMPLATE_SHORE17
   2781 	(void)new TemplateTypeClass(Shore18);			//	TEMPLATE_SHORE18
   2782 	(void)new TemplateTypeClass(Shore19);			// TEMPLATE_SHORE19
   2783 	(void)new TemplateTypeClass(Shore20);			// TEMPLATE_SHORE20
   2784 	(void)new TemplateTypeClass(Shore21);			// TEMPLATE_SHORE21
   2785 	(void)new TemplateTypeClass(Shore22);			//	TEMPLATE_SHORE22
   2786 	(void)new TemplateTypeClass(Shore23);			// TEMPLATE_SHORE23
   2787 	(void)new TemplateTypeClass(Shore24);			//	TEMPLATE_SHORE24
   2788 	(void)new TemplateTypeClass(Shore25);			//	TEMPLATE_SHORE25
   2789 	(void)new TemplateTypeClass(Shore26);			//	TEMPLATE_SHORE26
   2790 	(void)new TemplateTypeClass(Shore27);			//	TEMPLATE_SHORE27
   2791 	(void)new TemplateTypeClass(Shore28);			//	TEMPLATE_SHORE28
   2792 	(void)new TemplateTypeClass(Shore29);			//	TEMPLATE_SHORE29
   2793 	(void)new TemplateTypeClass(Shore30);			//	TEMPLATE_SHORE30
   2794 	(void)new TemplateTypeClass(Shore31);			//	TEMPLATE_SHORE31
   2795 	(void)new TemplateTypeClass(Shore32);			// TEMPLATE_SHORE32
   2796 	(void)new TemplateTypeClass(Shore33);			// TEMPLATE_SHORE33
   2797 	(void)new TemplateTypeClass(Shore34);			//	TEMPLATE_SHORE34
   2798 	(void)new TemplateTypeClass(Shore35);			//	TEMPLATE_SHORE35
   2799 	(void)new TemplateTypeClass(Shore36);			//	TEMPLATE_SHORE36
   2800 	(void)new TemplateTypeClass(Shore37);			//	TEMPLATE_SHORE37
   2801 	(void)new TemplateTypeClass(Shore38);			//	TEMPLATE_SHORE38
   2802 	(void)new TemplateTypeClass(Shore39);			//	TEMPLATE_SHORE39
   2803 	(void)new TemplateTypeClass(Shore40);			//	TEMPLATE_SHORE40
   2804 	(void)new TemplateTypeClass(Shore41);			//	TEMPLATE_SHORE41
   2805 	(void)new TemplateTypeClass(Shore42);			//	TEMPLATE_SHORE42
   2806 	(void)new TemplateTypeClass(Shore43);			//	TEMPLATE_SHORE43
   2807 	(void)new TemplateTypeClass(Shore44);			//	TEMPLATE_SHORE44
   2808 	(void)new TemplateTypeClass(Shore45);			//	TEMPLATE_SHORE45
   2809 	(void)new TemplateTypeClass(Shore46);			//	TEMPLATE_SHORE46
   2810 	(void)new TemplateTypeClass(Shore47);			//	TEMPLATE_SHORE47
   2811 	(void)new TemplateTypeClass(Shore48);			//	TEMPLATE_SHORE48
   2812 	(void)new TemplateTypeClass(Shore49);			//	TEMPLATE_SHORE49
   2813 	(void)new TemplateTypeClass(Shore50);			//	TEMPLATE_SHORE50
   2814 	(void)new TemplateTypeClass(Shore51);			//	TEMPLATE_SHORE51
   2815 	(void)new TemplateTypeClass(Shore52);			//	TEMPLATE_SHORE52
   2816 	(void)new TemplateTypeClass(Shore53);			//	TEMPLATE_SHORE53
   2817 	(void)new TemplateTypeClass(Shore54);			//	TEMPLATE_SHORE54
   2818 	(void)new TemplateTypeClass(Shore55);			//	TEMPLATE_SHORE55
   2819 	(void)new TemplateTypeClass(Shore56);			//	TEMPLATE_SHORE56
   2820 	(void)new TemplateTypeClass(ShoreCliff01);	//	TEMPLATE_SHORECLIFF01
   2821 	(void)new TemplateTypeClass(ShoreCliff02);	//	TEMPLATE_SHORECLIFF02
   2822 	(void)new TemplateTypeClass(ShoreCliff03);	//	TEMPLATE_SHORECLIFF03
   2823 	(void)new TemplateTypeClass(ShoreCliff04);	//	TEMPLATE_SHORECLIFF04
   2824 	(void)new TemplateTypeClass(ShoreCliff05);	//	TEMPLATE_SHORECLIFF05
   2825 	(void)new TemplateTypeClass(ShoreCliff06);	//	TEMPLATE_SHORECLIFF06
   2826 	(void)new TemplateTypeClass(ShoreCliff07);	//	TEMPLATE_SHORECLIFF07
   2827 	(void)new TemplateTypeClass(ShoreCliff08);	//	TEMPLATE_SHORECLIFF08
   2828 	(void)new TemplateTypeClass(ShoreCliff09);	//	TEMPLATE_SHORECLIFF09
   2829 	(void)new TemplateTypeClass(ShoreCliff10);	//	TEMPLATE_SHORECLIFF10
   2830 	(void)new TemplateTypeClass(ShoreCliff11);	//	TEMPLATE_SHORECLIFF11
   2831 	(void)new TemplateTypeClass(ShoreCliff12);	//	TEMPLATE_SHORECLIFF12
   2832 	(void)new TemplateTypeClass(ShoreCliff13);	//	TEMPLATE_SHORECLIFF13
   2833 	(void)new TemplateTypeClass(ShoreCliff14);	//	TEMPLATE_SHORECLIFF14
   2834 	(void)new TemplateTypeClass(ShoreCliff15);	//	TEMPLATE_SHORECLIFF15
   2835 	(void)new TemplateTypeClass(ShoreCliff16);	//	TEMPLATE_SHORECLIFF16
   2836 	(void)new TemplateTypeClass(ShoreCliff17);	//	TEMPLATE_SHORECLIFF17
   2837 	(void)new TemplateTypeClass(ShoreCliff18);	//	TEMPLATE_SHORECLIFF18
   2838 	(void)new TemplateTypeClass(ShoreCliff19);	//	TEMPLATE_SHORECLIFF19
   2839 	(void)new TemplateTypeClass(ShoreCliff20);	//	TEMPLATE_SHORECLIFF20
   2840 	(void)new TemplateTypeClass(ShoreCliff21);	//	TEMPLATE_SHORECLIFF21
   2841 	(void)new TemplateTypeClass(ShoreCliff22);	//	TEMPLATE_SHORECLIFF22
   2842 	(void)new TemplateTypeClass(ShoreCliff23);	//	TEMPLATE_SHORECLIFF23
   2843 	(void)new TemplateTypeClass(ShoreCliff24);	//	TEMPLATE_SHORECLIFF24
   2844 	(void)new TemplateTypeClass(ShoreCliff25);	//	TEMPLATE_SHORECLIFF25
   2845 	(void)new TemplateTypeClass(ShoreCliff26);	//	TEMPLATE_SHORECLIFF26
   2846 	(void)new TemplateTypeClass(ShoreCliff27);	//	TEMPLATE_SHORECLIFF27
   2847 	(void)new TemplateTypeClass(ShoreCliff28);	//	TEMPLATE_SHORECLIFF28
   2848 	(void)new TemplateTypeClass(ShoreCliff29);	//	TEMPLATE_SHORECLIFF29
   2849 	(void)new TemplateTypeClass(ShoreCliff30);	//	TEMPLATE_SHORECLIFF30
   2850 	(void)new TemplateTypeClass(ShoreCliff31);	//	TEMPLATE_SHORECLIFF31
   2851 	(void)new TemplateTypeClass(ShoreCliff32);	//	TEMPLATE_SHORECLIFF32
   2852 	(void)new TemplateTypeClass(ShoreCliff33);	//	TEMPLATE_SHORECLIFF33
   2853 	(void)new TemplateTypeClass(ShoreCliff34);	//	TEMPLATE_SHORECLIFF34
   2854 	(void)new TemplateTypeClass(ShoreCliff35);	//	TEMPLATE_SHORECLIFF35
   2855 	(void)new TemplateTypeClass(ShoreCliff36);	//	TEMPLATE_SHORECLIFF36
   2856 	(void)new TemplateTypeClass(ShoreCliff37);	//	TEMPLATE_SHORECLIFF37
   2857 	(void)new TemplateTypeClass(ShoreCliff38);	//	TEMPLATE_SHORECLIFF38
   2858 	(void)new TemplateTypeClass(Boulder1);			//	TEMPLATE_BOULDER1
   2859 	(void)new TemplateTypeClass(Boulder2);			//	TEMPLATE_BOULDER2
   2860 	(void)new TemplateTypeClass(Boulder3);			//	TEMPLATE_BOULDER3
   2861 	(void)new TemplateTypeClass(Boulder4);			// TEMPLATE_BOULDER4
   2862 	(void)new TemplateTypeClass(Boulder5);			//	TEMPLATE_BOULDER5
   2863 	(void)new TemplateTypeClass(Boulder6);			//	TEMPLATE_BOULDER6
   2864 	(void)new TemplateTypeClass(Patch01);			//	TEMPLATE_PATCH1
   2865 	(void)new TemplateTypeClass(Patch02);			//	TEMPLATE_PATCH2
   2866 	(void)new TemplateTypeClass(Patch03);			//	TEMPLATE_PATCH3
   2867 	(void)new TemplateTypeClass(Patch04);			//	TEMPLATE_PATCH4
   2868 	(void)new TemplateTypeClass(Patch07);			//	TEMPLATE_PATCH7
   2869 	(void)new TemplateTypeClass(Patch08);			//	TEMPLATE_PATCH8
   2870 	(void)new TemplateTypeClass(Patch13);			//	TEMPLATE_PATCH13
   2871 	(void)new TemplateTypeClass(Patch14);			//	TEMPLATE_PATCH14
   2872 	(void)new TemplateTypeClass(Patch15);			//	TEMPLATE_PATCH15
   2873 	(void)new TemplateTypeClass(River01);			//	TEMPLATE_RIVER1
   2874 	(void)new TemplateTypeClass(River02);			//	TEMPLATE_RIVER2
   2875 	(void)new TemplateTypeClass(River03);			//	TEMPLATE_RIVER3
   2876 	(void)new TemplateTypeClass(River04);			//	TEMPLATE_RIVER4
   2877 	(void)new TemplateTypeClass(River05);			//	TEMPLATE_RIVER5
   2878 	(void)new TemplateTypeClass(River06);			//	TEMPLATE_RIVER6
   2879 	(void)new TemplateTypeClass(River07);			//	TEMPLATE_RIVER7
   2880 	(void)new TemplateTypeClass(River08);			//	TEMPLATE_RIVER8
   2881 	(void)new TemplateTypeClass(River09);			//	TEMPLATE_RIVER9
   2882 	(void)new TemplateTypeClass(River10);			//	TEMPLATE_RIVER10
   2883 	(void)new TemplateTypeClass(River11);			//	TEMPLATE_RIVER11
   2884 	(void)new TemplateTypeClass(River12);			//	TEMPLATE_RIVER12
   2885 	(void)new TemplateTypeClass(River13);			//	TEMPLATE_RIVER13
   2886 	(void)new TemplateTypeClass(Falls1);			//	TEMPLATE_FALLS1
   2887 	(void)new TemplateTypeClass(Falls1a);			//	TEMPLATE_FALLS1A
   2888 	(void)new TemplateTypeClass(Falls2);			//	TEMPLATE_FALLS2
   2889 	(void)new TemplateTypeClass(Falls2a);			//	TEMPLATE_FALLS2A
   2890 	(void)new TemplateTypeClass(Ford1);				//	TEMPLATE_FORD1
   2891 	(void)new TemplateTypeClass(Ford2);				//	TEMPLATE_FORD2
   2892 	(void)new TemplateTypeClass(Bridge1);			//	TEMPLATE_BRIDGE1
   2893 	(void)new TemplateTypeClass(Bridge1d);			//	TEMPLATE_BRIDGE1D
   2894 	(void)new TemplateTypeClass(Bridge2);			//	TEMPLATE_BRIDGE2
   2895 	(void)new TemplateTypeClass(Bridge2d);			//	TEMPLATE_BRIDGE2D
   2896 	(void)new TemplateTypeClass(Slope01);			//	TEMPLATE_SLOPE1
   2897 	(void)new TemplateTypeClass(Slope02);			//	TEMPLATE_SLOPE2
   2898 	(void)new TemplateTypeClass(Slope03);			//	TEMPLATE_SLOPE3
   2899 	(void)new TemplateTypeClass(Slope04);			//	TEMPLATE_SLOPE4
   2900 	(void)new TemplateTypeClass(Slope05);			//	TEMPLATE_SLOPE5
   2901 	(void)new TemplateTypeClass(Slope06);			//	TEMPLATE_SLOPE6
   2902 	(void)new TemplateTypeClass(Slope07);			//	TEMPLATE_SLOPE7
   2903 	(void)new TemplateTypeClass(Slope08);			//	TEMPLATE_SLOPE8
   2904 	(void)new TemplateTypeClass(Slope09);			//	TEMPLATE_SLOPE9
   2905 	(void)new TemplateTypeClass(Slope10);			//	TEMPLATE_SLOPE10
   2906 	(void)new TemplateTypeClass(Slope11);			//	TEMPLATE_SLOPE11
   2907 	(void)new TemplateTypeClass(Slope12);			//	TEMPLATE_SLOPE12
   2908 	(void)new TemplateTypeClass(Slope13);			//	TEMPLATE_SLOPE13
   2909 	(void)new TemplateTypeClass(Slope14);			//	TEMPLATE_SLOPE14
   2910 	(void)new TemplateTypeClass(Slope15);			//	TEMPLATE_SLOPE15
   2911 	(void)new TemplateTypeClass(Slope16);			//	TEMPLATE_SLOPE16
   2912 	(void)new TemplateTypeClass(Slope17);			//	TEMPLATE_SLOPE17
   2913 	(void)new TemplateTypeClass(Slope18);			//	TEMPLATE_SLOPE18
   2914 	(void)new TemplateTypeClass(Slope19);			//	TEMPLATE_SLOPE19
   2915 	(void)new TemplateTypeClass(Slope20);			//	TEMPLATE_SLOPE20
   2916 	(void)new TemplateTypeClass(Slope21);			//	TEMPLATE_SLOPE21
   2917 	(void)new TemplateTypeClass(Slope22);			//	TEMPLATE_SLOPE22
   2918 	(void)new TemplateTypeClass(Slope23);			//	TEMPLATE_SLOPE23
   2919 	(void)new TemplateTypeClass(Slope24);			//	TEMPLATE_SLOPE24
   2920 	(void)new TemplateTypeClass(Slope25);			//	TEMPLATE_SLOPE25
   2921 	(void)new TemplateTypeClass(Slope26);			//	TEMPLATE_SLOPE26
   2922 	(void)new TemplateTypeClass(Slope27);			//	TEMPLATE_SLOPE27
   2923 	(void)new TemplateTypeClass(Slope28);			//	TEMPLATE_SLOPE28
   2924 	(void)new TemplateTypeClass(Slope29);			//	TEMPLATE_SLOPE29
   2925 	(void)new TemplateTypeClass(Slope30);			//	TEMPLATE_SLOPE30
   2926 	(void)new TemplateTypeClass(Slope31);			//	TEMPLATE_SLOPE31
   2927 	(void)new TemplateTypeClass(Slope32);			//	TEMPLATE_SLOPE32
   2928 	(void)new TemplateTypeClass(Slope33);			//	TEMPLATE_SLOPE33
   2929 	(void)new TemplateTypeClass(Slope34);			//	TEMPLATE_SLOPE34
   2930 	(void)new TemplateTypeClass(Slope35);			//	TEMPLATE_SLOPE35
   2931 	(void)new TemplateTypeClass(Slope36);			//	TEMPLATE_SLOPE36
   2932 	(void)new TemplateTypeClass(Slope37);			//	TEMPLATE_SLOPE37
   2933 	(void)new TemplateTypeClass(Slope38);			//	TEMPLATE_SLOPE38
   2934 	(void)new TemplateTypeClass(Road01);			//	TEMPLATE_ROAD1
   2935 	(void)new TemplateTypeClass(Road02);			//	TEMPLATE_ROAD2
   2936 	(void)new TemplateTypeClass(Road03);			//	TEMPLATE_ROAD3
   2937 	(void)new TemplateTypeClass(Road04);			//	TEMPLATE_ROAD4
   2938 	(void)new TemplateTypeClass(Road05);			//	TEMPLATE_ROAD5
   2939 	(void)new TemplateTypeClass(Road06);			//	TEMPLATE_ROAD6
   2940 	(void)new TemplateTypeClass(Road07);			//	TEMPLATE_ROAD7
   2941 	(void)new TemplateTypeClass(Road08);			//	TEMPLATE_ROAD8
   2942 	(void)new TemplateTypeClass(Road09);			//	TEMPLATE_ROAD9
   2943 	(void)new TemplateTypeClass(Road10);			//	TEMPLATE_ROAD10
   2944 	(void)new TemplateTypeClass(Road11);			//	TEMPLATE_ROAD11
   2945 	(void)new TemplateTypeClass(Road12);			//	TEMPLATE_ROAD12
   2946 	(void)new TemplateTypeClass(Road13);			//	TEMPLATE_ROAD13
   2947 	(void)new TemplateTypeClass(Road14);			//	TEMPLATE_ROAD14
   2948 	(void)new TemplateTypeClass(Road15);			//	TEMPLATE_ROAD15
   2949 	(void)new TemplateTypeClass(Road16);			//	TEMPLATE_ROAD16
   2950 	(void)new TemplateTypeClass(Road17);			//	TEMPLATE_ROAD17
   2951 	(void)new TemplateTypeClass(Road18);			//	TEMPLATE_ROAD18
   2952 	(void)new TemplateTypeClass(Road19);			//	TEMPLATE_ROAD19
   2953 	(void)new TemplateTypeClass(Road20);			//	TEMPLATE_ROAD20
   2954 	(void)new TemplateTypeClass(Road21);			//	TEMPLATE_ROAD21
   2955 	(void)new TemplateTypeClass(Road22);			//	TEMPLATE_ROAD22
   2956 	(void)new TemplateTypeClass(Road23);			//	TEMPLATE_ROAD23
   2957 	(void)new TemplateTypeClass(Road24);			//	TEMPLATE_ROAD24
   2958 	(void)new TemplateTypeClass(Road25);			//	TEMPLATE_ROAD25
   2959 	(void)new TemplateTypeClass(Road26);			//	TEMPLATE_ROAD26
   2960 	(void)new TemplateTypeClass(Road27);			//	TEMPLATE_ROAD27
   2961 	(void)new TemplateTypeClass(Road28);			//	TEMPLATE_ROAD28
   2962 	(void)new TemplateTypeClass(Road29);			//	TEMPLATE_ROAD29
   2963 	(void)new TemplateTypeClass(Road30);			//	TEMPLATE_ROAD30
   2964 	(void)new TemplateTypeClass(Road31);			//	TEMPLATE_ROAD31
   2965 	(void)new TemplateTypeClass(Road32);			//	TEMPLATE_ROAD32
   2966 	(void)new TemplateTypeClass(Road33);			//	TEMPLATE_ROAD33
   2967 	(void)new TemplateTypeClass(Road34);			//	TEMPLATE_ROAD34
   2968 	(void)new TemplateTypeClass(Road35);			//	TEMPLATE_ROAD35
   2969 	(void)new TemplateTypeClass(Road36);			//	TEMPLATE_ROAD36
   2970 
   2971 	/*
   2972 	**	Separate out the list of new operator calls. Watcom bombs
   2973 	**	if they are kept together.
   2974 	*/
   2975 	_Watcom_Ugh_Hack();
   2976 }
   2977 
   2978 
   2979 /***********************************************************************************************
   2980  * TemplateTypeClass::Land_Type -- Determines land type from template and icon number.         *
   2981  *                                                                                             *
   2982  *    This routine will convert the specified icon number into the appropriate land type. The  *
   2983  *    land type can be determined from the embedded colors in the "control template" section   *
   2984  *    of the original art file. This control information is encoded into the icon data file    *
   2985  *    to be retrieved and interpreted as the program sees fit. The engine only recognizes      *
   2986  *    the first 16 colors as control colors, so the control map color value serves as an       *
   2987  *    index into a simple lookup table.                                                        *
   2988  *                                                                                             *
   2989  * INPUT:   icon  -- The icon number within this template that is to be examined and used      *
   2990  *                   to determine the land type.                                               *
   2991  *                                                                                             *
   2992  * OUTPUT:  Returns with the land type that corresponds to the icon number specified.          *
   2993  *                                                                                             *
   2994  * WARNINGS:   none                                                                            *
   2995  *                                                                                             *
   2996  * HISTORY:                                                                                    *
   2997  *   12/12/1995 JLB : Created.                                                                 *
   2998  *=============================================================================================*/
   2999 LandType TemplateTypeClass::Land_Type(int icon) const
   3000 {
   3001 	IconsetClass const * icontrol = (IconsetClass const *)Get_Image_Data();
   3002 
   3003 	if (icontrol != NULL) {
   3004 		unsigned char const * map = icontrol->Control_Map();
   3005 		if (map != NULL) {
   3006 			static LandType _land[16] = {
   3007 				LAND_CLEAR,
   3008 				LAND_CLEAR,
   3009 				LAND_CLEAR,
   3010 				LAND_CLEAR,			// Clear
   3011 				LAND_CLEAR,
   3012 				LAND_CLEAR,
   3013 				LAND_BEACH,			// Beach
   3014 				LAND_CLEAR,
   3015 				LAND_ROCK,			// Rock
   3016 				LAND_ROAD,			// Road
   3017 				LAND_WATER,			// Water
   3018 				LAND_RIVER,			//	River
   3019 				LAND_CLEAR,
   3020 				LAND_CLEAR,
   3021 				LAND_ROUGH,			// Rough
   3022 				LAND_CLEAR,
   3023 			};
   3024 
   3025 			return(_land[map[icon % (icontrol->Map_Width() * icontrol->Map_Height())]]);
   3026 		}
   3027 	}
   3028 	return(LAND_CLEAR);
   3029 }
   3030 
   3031 
   3032 /***********************************************************************************************
   3033  * TemplateTypeClass::From_Name -- Determine template from ASCII name.                         *
   3034  *                                                                                             *
   3035  *    This routine is used to determine the template number given only                         *
   3036  *    an ASCII representation. The scenario loader uses this routine                           *
   3037  *    to construct the map from the INI control file.                                          *
   3038  *                                                                                             *
   3039  * INPUT:   name  -- Pointer to the ASCII name of the template.                                *
   3040  *                                                                                             *
   3041  * OUTPUT:  Returns with the template number. If the name had no match,                        *
   3042  *          then returns with TEMPLATE_NONE.                                                   *
   3043  *                                                                                             *
   3044  * WARNINGS:   none                                                                            *
   3045  *                                                                                             *
   3046  * HISTORY:                                                                                    *
   3047  *   05/23/1994 JLB : Created.                                                                 *
   3048  *=============================================================================================*/
   3049 TemplateType TemplateTypeClass::From_Name(char const * name)
   3050 {
   3051 	if (name != NULL) {
   3052 		for (TemplateType index = TEMPLATE_FIRST; index < TEMPLATE_COUNT; index++) {
   3053 			if (stricmp(As_Reference(index).IniName, name) == 0) {
   3054 				return(index);
   3055 			}
   3056 		}
   3057 	}
   3058 	return(TEMPLATE_NONE);
   3059 }
   3060 
   3061 
   3062 /***********************************************************************************************
   3063  * TemplateTypeClass::Occupy_List -- Determines occupation list.                               *
   3064  *                                                                                             *
   3065  *    This routine is used to examine the template map and build an                            *
   3066  *    occupation list. This list is used to render a template cursor as                        *
   3067  *    well as placement of icon numbers.                                                       *
   3068  *                                                                                             *
   3069  * INPUT:   placement   -- Is this for placement legality checking only? The normal condition  *
   3070  *                         is for marking occupation flags.                                    *
   3071  *                                                                                             *
   3072  * OUTPUT:  Returns with a pointer to the template occupation list.                            *
   3073  *                                                                                             *
   3074  * WARNINGS:   The return pointer is valid only until the next time that                       *
   3075  *             this routine is called.                                                         *
   3076  *                                                                                             *
   3077  * HISTORY:                                                                                    *
   3078  *   05/23/1994 JLB : Created.                                                                 *
   3079  *   12/12/1995 JLB : Optimized for direct access to iconset data.                             *
   3080  *=============================================================================================*/
   3081 short const * TemplateTypeClass::Occupy_List(bool) const
   3082 {
   3083 	static short _occupy[13*8+5];
   3084 	short	* ptr;
   3085 
   3086 	IconsetClass const * iconset = (IconsetClass const *)Get_Image_Data();
   3087 	unsigned char const * map = iconset->Map_Data();
   3088 
   3089 	ptr = &_occupy[0];
   3090 	for (int index = 0; index < Width * Height; index++) {
   3091 		if (*map++ != 0xFF) {
   3092 			*ptr++ = (index % Width) + ((index / Width)*MAP_CELL_W);
   3093 		}
   3094 	}
   3095 	*ptr = REFRESH_EOL;
   3096 
   3097 	return((short const *)&_occupy[0]);
   3098 }
   3099 
   3100 
   3101 /***********************************************************************************************
   3102  * TemplateTypeClass::Init -- Loads graphic data for templates.                                *
   3103  *                                                                                             *
   3104  *    This routine loads the template graphic data for all the template                        *
   3105  *    type supported for the specified theater. This routine is called                         *
   3106  *    whenever the theater for the scenario is first determined.                               *
   3107  *                                                                                             *
   3108  * INPUT:   theater  -- The theater that the template data is to be                            *
   3109  *                      loaded for.                                                            *
   3110  *                                                                                             *
   3111  * OUTPUT:  none                                                                               *
   3112  *                                                                                             *
   3113  * WARNINGS:   This routine goes to disk!                                                      *
   3114  *                                                                                             *
   3115  * HISTORY:                                                                                    *
   3116  *   05/23/1994 JLB : Created.                                                                 *
   3117  *   06/02/1994 JLB : Only handles iconset loading now (as it should).                         *
   3118  *=============================================================================================*/
   3119 void TemplateTypeClass::Init(TheaterType theater)
   3120 {
   3121 	char fullname[_MAX_FNAME+_MAX_EXT];	// Fully constructed iconset name.
   3122 	void const * ptr;		// Working loaded iconset pointer.
   3123 
   3124 	for (TemplateType index = TEMPLATE_FIRST; index < TEMPLATE_COUNT; index++) {
   3125 		TemplateTypeClass	const & tplate = As_Reference(index);
   3126 
   3127 		((void const *&)tplate.ImageData) = NULL;
   3128 		if (tplate.Theater & (1<<theater)) {
   3129 			_makepath(fullname, NULL, NULL, tplate.IniName, Theaters[theater].Suffix);
   3130 			ptr = MFCD::Retrieve(fullname);
   3131 			((void const *&)tplate.ImageData) = ptr;
   3132 
   3133 #ifdef WIN32
   3134 			Register_Icon_Set((void*)ptr, TRUE);		//Register icon set for video memory caching
   3135 #endif
   3136 
   3137 			((unsigned char &)tplate.Width) = Get_IconSet_MapWidth(ptr);
   3138 			((unsigned char &)tplate.Height) = Get_IconSet_MapHeight(ptr);
   3139 		}
   3140 	}
   3141 }
   3142 
   3143 
   3144 #ifdef SCENARIO_EDITOR
   3145 /***********************************************************************************************
   3146  * TemplateTypeClass::Display -- Displays a generic representation of template.                *
   3147  *                                                                                             *
   3148  *    This routine is used to display a generic view of the template                           *
   3149  *    object. This is necessary for selection in the scenario editor.                          *
   3150  *                                                                                             *
   3151  * INPUT:   x,y   -- The coordinates to center the display about.                              *
   3152  *                                                                                             *
   3153  *          window-- The window to base the coordinates upon.                                  *
   3154  *                                                                                             *
   3155  * OUTPUT:  none                                                                               *
   3156  *                                                                                             *
   3157  * WARNINGS:   none                                                                            *
   3158  *                                                                                             *
   3159  * HISTORY:                                                                                    *
   3160  *   05/23/1994 JLB : Created.                                                                 *
   3161  *=============================================================================================*/
   3162 void TemplateTypeClass::Display(int x, int y, WindowNumberType window, HousesType ) const
   3163 {
   3164 	int	w,h;
   3165 	int	index;
   3166 	bool	scale;		// Should the template be half sized?
   3167 
   3168 	w = Bound(Width, 1, 13);
   3169 	h = Bound(Height, 1, 8);
   3170 	scale = (w > 3 || h > 3);
   3171 	if (scale) {
   3172 		x -= (w * ICON_PIXEL_W) / 4;
   3173 		y -= (h * ICON_PIXEL_H) / 4;
   3174 	} else {
   3175 		x -= (w * ICON_PIXEL_W) / 2;
   3176 		y -= (h * ICON_PIXEL_H) / 2;
   3177 	}
   3178 	x += WindowList[window][WINDOWX];
   3179 	y += WindowList[window][WINDOWY];
   3180 
   3181 	IconsetClass const * iconset = (IconsetClass const *)Get_Image_Data();
   3182 	unsigned char const * map = iconset->Map_Data();
   3183 
   3184 	for (index = 0; index < w*h; index++) {
   3185 		if (map[index] != 0xFF) {
   3186 			HidPage.Draw_Stamp(iconset, index, 0, 0, NULL, WINDOW_MAIN);
   3187 			if (scale) {
   3188 
   3189 				HidPage.Scale((*LogicPage), 0, 0,
   3190 					x + ((index % w)*(ICON_PIXEL_W/2)),
   3191 					y + ((index / w)*(ICON_PIXEL_H/2)),
   3192 					ICON_PIXEL_W, ICON_PIXEL_H,
   3193 					ICON_PIXEL_W/2, ICON_PIXEL_H/2, (char *)NULL);
   3194 
   3195 			} else {
   3196 				HidPage.Blit((*LogicPage), 0, 0, x + ((index % w)*(ICON_PIXEL_W)),
   3197 					y + ((index / w)*(ICON_PIXEL_H)), ICON_PIXEL_W, ICON_PIXEL_H);
   3198 			}
   3199 		}
   3200 	}
   3201 }
   3202 
   3203 
   3204 /***********************************************************************************************
   3205  * TemplateTypeClass::Prep_For_Add -- Prepares to add template to scenario.                    *
   3206  *                                                                                             *
   3207  *    This routine prepares a list of template objects so that the                             *
   3208  *    scenario editor can use this list to display a dialog box. The                           *
   3209  *    selection of a template object will allow its placement upon the                         *
   3210  *    map.                                                                                     *
   3211  *                                                                                             *
   3212  * INPUT:   none                                                                               *
   3213  *                                                                                             *
   3214  * OUTPUT:  none                                                                               *
   3215  *                                                                                             *
   3216  * WARNINGS:   none                                                                            *
   3217  *                                                                                             *
   3218  * HISTORY:                                                                                    *
   3219  *   05/23/1994 JLB : Created.                                                                 *
   3220  *   05/28/1994 JLB : Only handles real templates now.                                         *
   3221  *   06/04/1994 JLB : Uses map editing interface functions.                                    *
   3222  *=============================================================================================*/
   3223 void TemplateTypeClass::Prep_For_Add(void)
   3224 {
   3225 	for (TemplateType index = TEMPLATE_CLEAR1; index < TEMPLATE_COUNT; index++) {
   3226 		if (As_Reference(index).Get_Image_Data()) {
   3227 			Map.Add_To_List(&As_Reference(index));
   3228 		}
   3229 	}
   3230 }
   3231 #endif
   3232 
   3233 
   3234 /***********************************************************************************************
   3235  * TemplateTypeClass::Create_And_Place -- Creates and places a template object on the map.     *
   3236  *                                                                                             *
   3237  *    This support routine is used by the scenario editor to add a template object to the map  *
   3238  *    and to the game.                                                                         *
   3239  *                                                                                             *
   3240  * INPUT:   cell  -- The cell to place the template object.                                    *
   3241  *                                                                                             *
   3242  * OUTPUT:  bool; Was the template object placed successfully?                                 *
   3243  *                                                                                             *
   3244  * WARNINGS:   none                                                                            *
   3245  *                                                                                             *
   3246  * HISTORY:                                                                                    *
   3247  *   05/28/1994 JLB : Created.                                                                 *
   3248  *=============================================================================================*/
   3249 bool TemplateTypeClass::Create_And_Place(CELL cell, HousesType ) const
   3250 {
   3251 	if (new TemplateClass(Type, cell)) {
   3252 		return(true);
   3253 	}
   3254 	return(false);
   3255 }
   3256 
   3257 
   3258 /***********************************************************************************************
   3259  * TemplateTypeClass::Create_One_Of -- Creates an object of this template type.                *
   3260  *                                                                                             *
   3261  *    This routine will create an object of this type. For certain template objects, such      *
   3262  *    as walls, it is actually created as a building. The "building" wall is converted into    *
   3263  *    a template at the moment of placing down on the map.                                     *
   3264  *                                                                                             *
   3265  * INPUT:   none                                                                               *
   3266  *                                                                                             *
   3267  * OUTPUT:  Returns with a pointer to the appropriate object for this template type.           *
   3268  *                                                                                             *
   3269  * WARNINGS:   none                                                                            *
   3270  *                                                                                             *
   3271  * HISTORY:                                                                                    *
   3272  *   06/18/1994 JLB : Created.                                                                 *
   3273  *=============================================================================================*/
   3274 ObjectClass * TemplateTypeClass::Create_One_Of(HouseClass *) const
   3275 {
   3276 	return(new TemplateClass(Type, -1));
   3277 }
   3278 
   3279 
   3280 /***********************************************************************************************
   3281  * TemplateTypeClass::One_Time -- Performs one-time initialization                             *
   3282  *                                                                                             *
   3283  * INPUT:   none                                                                               *
   3284  *                                                                                             *
   3285  * OUTPUT:  none                                                                               *
   3286  *                                                                                             *
   3287  * WARNINGS:   none                                                                            *
   3288  *                                                                                             *
   3289  * HISTORY:                                                                                    *
   3290  *   08/12/1994 JLB : Created.                                                                 *
   3291  *=============================================================================================*/
   3292 void TemplateTypeClass::One_Time(void)
   3293 {
   3294 }
   3295 
   3296 
   3297 /***********************************************************************************************
   3298  * TemplateTypeClass::As_Reference -- Fetches a reference to the template specified.           *
   3299  *                                                                                             *
   3300  *    This will return a reference to the TemplateTypeClass requested.                         *
   3301  *                                                                                             *
   3302  * INPUT:   type  -- The template type to fetch a reference to.                                *
   3303  *                                                                                             *
   3304  * OUTPUT:  Returns with a reference to the template type class specified.                     *
   3305  *                                                                                             *
   3306  * WARNINGS:   Be sure to pass a valid type parameter. This routine doesn't check it for       *
   3307  *             legality.                                                                       *
   3308  *                                                                                             *
   3309  * HISTORY:                                                                                    *
   3310  *   07/03/1996 JLB : Created.                                                                 *
   3311  *=============================================================================================*/
   3312 TemplateTypeClass & TemplateTypeClass::As_Reference(TemplateType type)
   3313 {
   3314 	return(*TemplateTypes.Ptr(type));
   3315 }
   3316 
   3317 
   3318 COORDINATE TemplateTypeClass::Coord_Fixup(COORDINATE coord) const
   3319 {
   3320 	return Coord_Whole(coord);
   3321 }