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