Files
CnC_Remastered_Collection/code/redalert/cdata.cpp
T
2020-07-05 10:19:33 -07:00

2810 lines
86 KiB
C++

//
// Copyright 2020 Electronic Arts Inc.
//
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is free
// software: you can redistribute it and/or modify it under the terms of
// the GNU General Public License as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
// TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed
// in the hope that it will be useful, but with permitted additional restrictions
// under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT
// distributed with this program. You should have received a copy of the
// GNU General Public License along with permitted additional restrictions
// with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection
/* $Header: /CounterStrike/CDATA.CPP 1 3/03/97 10:24a Joe_bostic $ */
/***********************************************************************************************
*** 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 ***
***********************************************************************************************
* *
* Project Name : Command & Conquer *
* *
* File Name : CDATA.CPP *
* *
* Programmer : Joe L. Bostic *
* *
* Start Date : May 16, 1994 *
* *
* Last Update : July 6, 1996 [JLB] *
* *
*---------------------------------------------------------------------------------------------*
* Functions: *
* TemplateTypeClass::As_Reference -- Fetches a reference to the template specified. *
* TemplateTypeClass::Create_And_Place -- Creates and places a template object on the map. *
* TemplateTypeClass::Create_One_Of -- Creates an object of this template type. *
* TemplateTypeClass::Display -- Displays a generic representation of template. *
* TemplateTypeClass::From_Name -- Determine template from ASCII name. *
* TemplateTypeClass::Init -- Loads graphic data for templates. *
* TemplateTypeClass::Land_Type -- Determines land type from template and icon number. *
* TemplateTypeClass::Occupy_List -- Determines occupation list. *
* TemplateTypeClass::One_Time -- Performs one-time initialization *
* TemplateTypeClass::Prep_For_Add -- Prepares to add template to scenario. *
* TemplateTypeClass::TemplateTypeClass -- Constructor for template type objects. *
* TemplateTypeClass::operator delete -- Deletes a template type object. *
* TemplateTypeClass::operator new -- Allocates a template type from special heap. *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#include "function.h"
#include "image.h"
static TemplateTypeClass const PRoad01(
TEMPLATE_PROAD01,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD01",
TXT_CLEAR
);
static TemplateTypeClass const PRoad01a(
TEMPLATE_PROAD01a,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD01A",
TXT_CLEAR
);
static TemplateTypeClass const PRoad01b(
TEMPLATE_PROAD01b,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD01B",
TXT_CLEAR
);
static TemplateTypeClass const PRoad02(
TEMPLATE_PROAD02,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD02",
TXT_CLEAR
);
static TemplateTypeClass const PRoad02a(
TEMPLATE_PROAD02a,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD02A",
TXT_CLEAR
);
static TemplateTypeClass const PRoad02b(
TEMPLATE_PROAD02b,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD02B",
TXT_CLEAR
);
static TemplateTypeClass const PRoad03(
TEMPLATE_PROAD03,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD03",
TXT_CLEAR
);
static TemplateTypeClass const PRoad04(
TEMPLATE_PROAD04,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD04",
TXT_CLEAR
);
static TemplateTypeClass const PRoad05(
TEMPLATE_PROAD05,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD05",
TXT_CLEAR
);
static TemplateTypeClass const PRoad06(
TEMPLATE_PROAD06,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD06",
TXT_CLEAR
);
static TemplateTypeClass const PRoad07(
TEMPLATE_PROAD07,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD07",
TXT_CLEAR
);
static TemplateTypeClass const PRoad08(
TEMPLATE_PROAD08,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD08",
TXT_CLEAR
);
static TemplateTypeClass const PRoad09(
TEMPLATE_PROAD09,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD09",
TXT_CLEAR
);
static TemplateTypeClass const PRoad10(
TEMPLATE_PROAD10,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD10",
TXT_CLEAR
);
static TemplateTypeClass const PRoad11(
TEMPLATE_PROAD11,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD11",
TXT_CLEAR
);
static TemplateTypeClass const PRoad12(
TEMPLATE_PROAD12,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD12",
TXT_CLEAR
);
static TemplateTypeClass const PRoad13(
TEMPLATE_PROAD13,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD13",
TXT_CLEAR
);
static TemplateTypeClass const PRoad14(
TEMPLATE_PROAD14,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD14",
TXT_CLEAR
);
static TemplateTypeClass const PRoad15(
TEMPLATE_PROAD15,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD15",
TXT_CLEAR
);
static TemplateTypeClass const PRoad16(
TEMPLATE_PROAD16,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD16",
TXT_CLEAR
);
static TemplateTypeClass const PRoad17(
TEMPLATE_PROAD17,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD17",
TXT_CLEAR
);
static TemplateTypeClass const PRoad18(
TEMPLATE_PROAD18,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD18",
TXT_CLEAR
);
static TemplateTypeClass const PRoad19(
TEMPLATE_PROAD19,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD19",
TXT_CLEAR
);
static TemplateTypeClass const PRoad20(
TEMPLATE_PROAD20,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD20",
TXT_CLEAR
);
static TemplateTypeClass const PRoad21(
TEMPLATE_PROAD21,
THEATERF_TEMPERATE | THEATERF_SNOW | THEATERF_INTERIOR,
"PROAD21",
TXT_CLEAR
);
static TemplateTypeClass const Empty(
TEMPLATE_CLEAR1,
THEATERF_TEMPERATE|THEATERF_SNOW|THEATERF_INTERIOR,
"CLEAR01",
TXT_CLEAR
);
static TemplateTypeClass const Clear(
TEMPLATE_CLEAR1,
THEATERF_TEMPERATE|THEATERF_SNOW|THEATERF_INTERIOR,
"CLEAR01",
TXT_CLEAR
);
static TemplateTypeClass const Road01(
TEMPLATE_ROAD01,
THEATERF_TEMPERATE|THEATERF_SNOW,
"CLEAR01",
TXT_ROAD
);
static TemplateTypeClass const Road02(
TEMPLATE_ROAD02,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC02",
TXT_ROAD
);
static TemplateTypeClass const Road03(
TEMPLATE_ROAD03,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC03",
TXT_ROAD
);
static TemplateTypeClass const Road04(
TEMPLATE_ROAD04,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC04",
TXT_ROAD
);
static TemplateTypeClass const Road05(
TEMPLATE_ROAD05,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC05",
TXT_ROAD
);
static TemplateTypeClass const Road06(
TEMPLATE_ROAD06,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC06",
TXT_ROAD
);
static TemplateTypeClass const Road07(
TEMPLATE_ROAD07,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC07",
TXT_ROAD
);
static TemplateTypeClass const Road08(
TEMPLATE_ROAD08,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC08",
TXT_ROAD
);
static TemplateTypeClass const Road09(
TEMPLATE_ROAD09,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC09",
TXT_ROAD
);
static TemplateTypeClass const Road10(
TEMPLATE_ROAD10,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC10",
TXT_ROAD
);
static TemplateTypeClass const Road11(
TEMPLATE_ROAD11,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC11",
TXT_ROAD
);
static TemplateTypeClass const Road12(
TEMPLATE_ROAD12,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC12",
TXT_ROAD
);
static TemplateTypeClass const Road13(
TEMPLATE_ROAD13,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC13",
TXT_ROAD
);
static TemplateTypeClass const Road14(
TEMPLATE_ROAD14,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC14",
TXT_ROAD
);
static TemplateTypeClass const Road15(
TEMPLATE_ROAD15,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC15",
TXT_ROAD
);
static TemplateTypeClass const Road16(
TEMPLATE_ROAD16,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC16",
TXT_ROAD
);
static TemplateTypeClass const Road17(
TEMPLATE_ROAD17,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC17",
TXT_ROAD
);
static TemplateTypeClass const Road18(
TEMPLATE_ROAD18,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC18",
TXT_ROAD
);
static TemplateTypeClass const Road19(
TEMPLATE_ROAD19,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC19",
TXT_ROAD
);
static TemplateTypeClass const Road20(
TEMPLATE_ROAD20,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC20",
TXT_ROAD
);
static TemplateTypeClass const Road21(
TEMPLATE_ROAD21,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC21",
TXT_ROAD
);
static TemplateTypeClass const Road22(
TEMPLATE_ROAD22,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC22",
TXT_ROAD
);
static TemplateTypeClass const Road23(
TEMPLATE_ROAD23,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC23",
TXT_ROAD
);
static TemplateTypeClass const Road24(
TEMPLATE_ROAD24,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC24",
TXT_ROAD
);
static TemplateTypeClass const Road25(
TEMPLATE_ROAD25,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC01",
TXT_ROAD
);
static TemplateTypeClass const Road26(
TEMPLATE_ROAD26,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC02",
TXT_ROAD
);
static TemplateTypeClass const Road27(
TEMPLATE_ROAD27,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC02",
TXT_ROAD
);
static TemplateTypeClass const Road28(
TEMPLATE_ROAD28,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC03",
TXT_ROAD
);
static TemplateTypeClass const Road29(
TEMPLATE_ROAD29,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC04",
TXT_ROAD
);
static TemplateTypeClass const Road30(
TEMPLATE_ROAD30,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC05",
TXT_ROAD
);
static TemplateTypeClass const Road31(
TEMPLATE_ROAD31,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC06",
TXT_ROAD
);
static TemplateTypeClass const Road32(
TEMPLATE_ROAD32,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC07",
TXT_ROAD
);
static TemplateTypeClass const Road33(
TEMPLATE_ROAD33,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC08",
TXT_ROAD
);
static TemplateTypeClass const Road34(
TEMPLATE_ROAD34,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC09",
TXT_ROAD
);
static TemplateTypeClass const Road35(
TEMPLATE_ROAD35,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC10",
TXT_ROAD
);
static TemplateTypeClass const Road36(
TEMPLATE_ROAD36,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC11",
TXT_ROAD
);
static TemplateTypeClass const Road37(
TEMPLATE_ROAD37,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC12",
TXT_ROAD
);
static TemplateTypeClass const Road38(
TEMPLATE_ROAD38,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC13",
TXT_ROAD
);
static TemplateTypeClass const Road39(
TEMPLATE_ROAD39,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC14",
TXT_ROAD
);
static TemplateTypeClass const Road40(
TEMPLATE_ROAD40,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC15",
TXT_ROAD
);
static TemplateTypeClass const Road41(
TEMPLATE_ROAD41,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC16",
TXT_ROAD
);
static TemplateTypeClass const Road42(
TEMPLATE_ROAD42,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC17",
TXT_ROAD
);
static TemplateTypeClass const Road43(
TEMPLATE_ROAD43,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADC18",
TXT_ROAD
);
static TemplateTypeClass const Water(
TEMPLATE_WATER,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WATER01",
TXT_WATER
);
static TemplateTypeClass const Water2(
TEMPLATE_WATER2,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WATER02",
TXT_WATER
);
static TemplateTypeClass const Shore01(
TEMPLATE_SHORE01,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE01",
TXT_SHORE
);
static TemplateTypeClass const Shore02(
TEMPLATE_SHORE02,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE02",
TXT_SHORE
);
static TemplateTypeClass const Shore03(
TEMPLATE_SHORE03,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE03",
TXT_SHORE
);
static TemplateTypeClass const Shore04(
TEMPLATE_SHORE04,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE04",
TXT_SHORE
);
static TemplateTypeClass const Shore05(
TEMPLATE_SHORE05,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE05",
TXT_SHORE
);
static TemplateTypeClass const Shore06(
TEMPLATE_SHORE06,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE06",
TXT_SHORE
);
static TemplateTypeClass const Shore07(
TEMPLATE_SHORE07,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE07",
TXT_SHORE
);
static TemplateTypeClass const Shore08(
TEMPLATE_SHORE08,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE08",
TXT_SHORE
);
static TemplateTypeClass const Shore09(
TEMPLATE_SHORE09,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE09",
TXT_SHORE
);
static TemplateTypeClass const Shore10(
TEMPLATE_SHORE10,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE10",
TXT_SHORE
);
static TemplateTypeClass const Shore11(
TEMPLATE_SHORE11,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE11",
TXT_SHORE
);
static TemplateTypeClass const Shore12(
TEMPLATE_SHORE12,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE12",
TXT_SHORE
);
static TemplateTypeClass const Shore13(
TEMPLATE_SHORE13,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE13",
TXT_SHORE
);
static TemplateTypeClass const Shore14(
TEMPLATE_SHORE14,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE14",
TXT_SHORE
);
static TemplateTypeClass const Shore15(
TEMPLATE_SHORE15,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE15",
TXT_SHORE
);
static TemplateTypeClass const Shore16(
TEMPLATE_SHORE16,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE16",
TXT_SHORE
);
static TemplateTypeClass const Shore17(
TEMPLATE_SHORE17,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE17",
TXT_SHORE
);
static TemplateTypeClass const Shore18(
TEMPLATE_SHORE18,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE18",
TXT_SHORE
);
static TemplateTypeClass const Shore19(
TEMPLATE_SHORE19,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE19",
TXT_SHORE
);
static TemplateTypeClass const Shore20(
TEMPLATE_SHORE20,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE20",
TXT_SHORE
);
static TemplateTypeClass const Shore21(
TEMPLATE_SHORE21,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE21",
TXT_SHORE
);
static TemplateTypeClass const Shore22(
TEMPLATE_SHORE22,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE22",
TXT_SHORE
);
static TemplateTypeClass const Shore23(
TEMPLATE_SHORE23,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE23",
TXT_SHORE
);
static TemplateTypeClass const Shore24(
TEMPLATE_SHORE24,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE24",
TXT_SHORE
);
static TemplateTypeClass const Shore25(
TEMPLATE_SHORE25,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE25",
TXT_SHORE
);
static TemplateTypeClass const Shore26(
TEMPLATE_SHORE26,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE26",
TXT_SHORE
);
static TemplateTypeClass const Shore27(
TEMPLATE_SHORE27,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE27",
TXT_SHORE
);
static TemplateTypeClass const Shore28(
TEMPLATE_SHORE28,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE28",
TXT_SHORE
);
static TemplateTypeClass const Shore29(
TEMPLATE_SHORE29,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE29",
TXT_SHORE
);
static TemplateTypeClass const Shore30(
TEMPLATE_SHORE30,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE30",
TXT_SHORE
);
static TemplateTypeClass const Shore31(
TEMPLATE_SHORE31,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE31",
TXT_SHORE
);
static TemplateTypeClass const Shore32(
TEMPLATE_SHORE32,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE32",
TXT_SHORE
);
static TemplateTypeClass const Shore33(
TEMPLATE_SHORE33,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE33",
TXT_SHORE
);
static TemplateTypeClass const Shore34(
TEMPLATE_SHORE34,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE4",
TXT_SHORE
);
static TemplateTypeClass const Shore35(
TEMPLATE_SHORE35,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE35",
TXT_SHORE
);
static TemplateTypeClass const Shore36(
TEMPLATE_SHORE36,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE36",
TXT_SHORE
);
static TemplateTypeClass const Shore37(
TEMPLATE_SHORE37,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE37",
TXT_SHORE
);
static TemplateTypeClass const Shore38(
TEMPLATE_SHORE38,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE38",
TXT_SHORE
);
static TemplateTypeClass const Shore39(
TEMPLATE_SHORE39,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE39",
TXT_SHORE
);
static TemplateTypeClass const Shore40(
TEMPLATE_SHORE40,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE40",
TXT_SHORE
);
static TemplateTypeClass const Shore41(
TEMPLATE_SHORE41,
THEATERF_TEMPERATE|THEATERF_SNOW,
"SHORE41",
TXT_SHORE
);
// jmarshall
static TemplateTypeClass const Bridge1x(
TEMPLATE_BRIDGE1X,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge1(
TEMPLATE_BRIDGE1,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge1h(
TEMPLATE_BRIDGE1H,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge1d(
TEMPLATE_BRIDGE1D,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge2x(
TEMPLATE_BRIDGE2X,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge2(
TEMPLATE_BRIDGE2,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge2h(
TEMPLATE_BRIDGE2H,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge2d(
TEMPLATE_BRIDGE2D,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge1ax(
TEMPLATE_BRIDGE_1AX,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge1a(
TEMPLATE_BRIDGE_1A,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge1b(
TEMPLATE_BRIDGE_1B,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge1c(
TEMPLATE_BRIDGE_1C,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge2ax(
TEMPLATE_BRIDGE_2AX,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge2a(
TEMPLATE_BRIDGE_2A,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge2b(
TEMPLATE_BRIDGE_2B,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge2c(
TEMPLATE_BRIDGE_2C,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge3a(
TEMPLATE_BRIDGE_3A,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge3b(
TEMPLATE_BRIDGE_3B,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge3c(
TEMPLATE_BRIDGE_3C,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge3d(
TEMPLATE_BRIDGE_3D,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge3e(
TEMPLATE_BRIDGE_3E,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const Bridge3f(
TEMPLATE_BRIDGE_3F,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_BRIDGE
);
static TemplateTypeClass const ShoreCliff01(
TEMPLATE_SHORECLIFF01,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF01",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff02(
TEMPLATE_SHORECLIFF02,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF02",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff03(
TEMPLATE_SHORECLIFF03,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF03",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff04(
TEMPLATE_SHORECLIFF04,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF04",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff05(
TEMPLATE_SHORECLIFF05,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF05",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff06(
TEMPLATE_SHORECLIFF06,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF06",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff07(
TEMPLATE_SHORECLIFF07,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF07",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff08(
TEMPLATE_SHORECLIFF08,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF08",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff09(
TEMPLATE_SHORECLIFF09,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF09",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff10(
TEMPLATE_SHORECLIFF10,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF10",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff11(
TEMPLATE_SHORECLIFF11,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF11",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff12(
TEMPLATE_SHORECLIFF12,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF12",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff13(
TEMPLATE_SHORECLIFF13,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF13",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff14(
TEMPLATE_SHORECLIFF14,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF14",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff15(
TEMPLATE_SHORECLIFF15,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF15",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff16(
TEMPLATE_SHORECLIFF16,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF16",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff17(
TEMPLATE_SHORECLIFF17,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF17",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff18(
TEMPLATE_SHORECLIFF18,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF18",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff19(
TEMPLATE_SHORECLIFF19,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF19",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff20(
TEMPLATE_SHORECLIFF20,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF20",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff21(
TEMPLATE_SHORECLIFF21,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF21",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff22(
TEMPLATE_SHORECLIFF22,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF22",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff23(
TEMPLATE_SHORECLIFF23,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF23",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff24(
TEMPLATE_SHORECLIFF24,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF24",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff25(
TEMPLATE_SHORECLIFF25,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF25",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff26(
TEMPLATE_SHORECLIFF26,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF26",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff27(
TEMPLATE_SHORECLIFF27,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF27",
TXT_SHORE
);
static TemplateTypeClass const ShoreCliff28(
TEMPLATE_SHORECLIFF28,
THEATERF_TEMPERATE|THEATERF_SNOW,
"WCLIFF28",
TXT_SHORE
);
static TemplateTypeClass const Rough01(
TEMPLATE_ROUGH01,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH01",
TXT_ROCK
);
static TemplateTypeClass const Rough02(
TEMPLATE_ROUGH02,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH02",
TXT_ROCK
);
static TemplateTypeClass const Rough03(
TEMPLATE_ROUGH03,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH03",
TXT_ROCK
);
static TemplateTypeClass const Rough04(
TEMPLATE_ROUGH04,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH04",
TXT_ROCK
);
static TemplateTypeClass const Rough05(
TEMPLATE_ROUGH05,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH05",
TXT_ROCK
);
static TemplateTypeClass const Rough06(
TEMPLATE_ROUGH06,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH06",
TXT_ROCK
);
static TemplateTypeClass const Rough07(
TEMPLATE_ROUGH07,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH07",
TXT_ROCK
);
static TemplateTypeClass const Rough08(
TEMPLATE_ROUGH08,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH08",
TXT_ROCK
);
static TemplateTypeClass const Rough09(
TEMPLATE_ROUGH09,
THEATERF_TEMPERATE|THEATERF_SNOW,
"ROUGH10",
TXT_ROCK
);
static TemplateTypeClass const Rough10(
TEMPLATE_ROADS1,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADS01",
TXT_ROCK
);
static TemplateTypeClass const Rough11(
TEMPLATE_ROADS2,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADS02",
TXT_ROCK
);
static TemplateTypeClass const RiverCliff01(
TEMPLATE_ROADS3,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADS03",
TXT_RIVER
);
static TemplateTypeClass const RiverCliff02(
TEMPLATE_ROADS4,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADS04",
TXT_RIVER
);
static TemplateTypeClass const RiverCliff03(
TEMPLATE_ROADS5,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADS05",
TXT_RIVER
);
static TemplateTypeClass const RiverCliff04(
TEMPLATE_ROADS6,
THEATERF_TEMPERATE|THEATERF_SNOW,
"DROADS06",
TXT_RIVER
);
static TemplateTypeClass const F01(
TEMPLATE_F01,
THEATERF_TEMPERATE|THEATERF_SNOW,
"F01",
TXT_RIVER
);
static TemplateTypeClass const F02(
TEMPLATE_F02,
THEATERF_TEMPERATE|THEATERF_SNOW,
"F02",
TXT_RIVER
);
static TemplateTypeClass const F03(
TEMPLATE_F03,
THEATERF_TEMPERATE|THEATERF_SNOW,
"F03",
TXT_RIVER
);
static TemplateTypeClass const F04(
TEMPLATE_F04,
THEATERF_TEMPERATE|THEATERF_SNOW,
"F04",
TXT_RIVER
);
static TemplateTypeClass const F05(
TEMPLATE_F05,
THEATERF_TEMPERATE|THEATERF_SNOW,
"F05",
TXT_RIVER
);
static TemplateTypeClass const F06(
TEMPLATE_F06,
THEATERF_TEMPERATE|THEATERF_SNOW,
"F06",
TXT_RIVER
);
static TemplateTypeClass const ARRO0001(
TEMPLATE_ARRO0001,
THEATERF_INTERIOR,
"ARRO0001",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0002(
TEMPLATE_ARRO0002,
THEATERF_INTERIOR,
"ARRO0002",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0003(
TEMPLATE_ARRO0003,
THEATERF_INTERIOR,
"ARRO0003",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0004(
TEMPLATE_ARRO0004,
THEATERF_INTERIOR,
"ARRO0004",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0005(
TEMPLATE_ARRO0005,
THEATERF_INTERIOR,
"ARRO0005",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0006(
TEMPLATE_ARRO0006,
THEATERF_INTERIOR,
"ARRO0006",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0007(
TEMPLATE_ARRO0007,
THEATERF_INTERIOR,
"ARRO0007",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0008(
TEMPLATE_ARRO0008,
THEATERF_INTERIOR,
"ARRO0008",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0009(
TEMPLATE_ARRO0009,
THEATERF_INTERIOR,
"ARRO0009",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0010(
TEMPLATE_ARRO0010,
THEATERF_INTERIOR,
"ARRO0010",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0011(
TEMPLATE_ARRO0011,
THEATERF_INTERIOR,
"ARRO0011",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0012(
TEMPLATE_ARRO0012,
THEATERF_INTERIOR,
"ARRO0012",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0013(
TEMPLATE_ARRO0013,
THEATERF_INTERIOR,
"ARRO0013",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0014(
TEMPLATE_ARRO0014,
THEATERF_INTERIOR,
"ARRO0014",
TXT_INTERIOR
);
static TemplateTypeClass const ARRO0015(
TEMPLATE_ARRO0015,
THEATERF_INTERIOR,
"ARRO0015",
TXT_INTERIOR
);
static TemplateTypeClass const FLOR0001(
TEMPLATE_FLOR0001,
THEATERF_INTERIOR,
"FLOR0001",
TXT_INTERIOR
);
static TemplateTypeClass const FLOR0002(
TEMPLATE_FLOR0002,
THEATERF_INTERIOR,
"FLOR0002",
TXT_INTERIOR
);
static TemplateTypeClass const FLOR0003(
TEMPLATE_FLOR0003,
THEATERF_INTERIOR,
"FLOR0003",
TXT_INTERIOR
);
static TemplateTypeClass const FLOR0004(
TEMPLATE_FLOR0004,
THEATERF_INTERIOR,
"FLOR0004",
TXT_INTERIOR
);
static TemplateTypeClass const FLOR0005(
TEMPLATE_FLOR0005,
THEATERF_INTERIOR,
"FLOR0005",
TXT_INTERIOR
);
static TemplateTypeClass const FLOR0006(
TEMPLATE_FLOR0006,
THEATERF_INTERIOR,
"FLOR0006",
TXT_INTERIOR
);
static TemplateTypeClass const FLOR0007(
TEMPLATE_FLOR0007,
THEATERF_INTERIOR,
"FLOR0007",
TXT_INTERIOR
);
static TemplateTypeClass const GFLR0001(
TEMPLATE_GFLR0001,
THEATERF_INTERIOR,
"GFLR0001",
TXT_INTERIOR
);
static TemplateTypeClass const GFLR0002(
TEMPLATE_GFLR0002,
THEATERF_INTERIOR,
"GFLR0002",
TXT_INTERIOR
);
static TemplateTypeClass const GFLR0003(
TEMPLATE_GFLR0003,
THEATERF_INTERIOR,
"GFLR0003",
TXT_INTERIOR
);
static TemplateTypeClass const GFLR0004(
TEMPLATE_GFLR0004,
THEATERF_INTERIOR,
"GFLR0004",
TXT_INTERIOR
);
static TemplateTypeClass const GFLR0005(
TEMPLATE_GFLR0005,
THEATERF_INTERIOR,
"GFLR0005",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0001(
TEMPLATE_GSTR0001,
THEATERF_INTERIOR,
"GSTR0001",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0002(
TEMPLATE_GSTR0002,
THEATERF_INTERIOR,
"GSTR0002",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0003(
TEMPLATE_GSTR0003,
THEATERF_INTERIOR,
"GSTR0003",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0004(
TEMPLATE_GSTR0004,
THEATERF_INTERIOR,
"GSTR0004",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0005(
TEMPLATE_GSTR0005,
THEATERF_INTERIOR,
"GSTR0005",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0006(
TEMPLATE_GSTR0006,
THEATERF_INTERIOR,
"GSTR0006",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0007(
TEMPLATE_GSTR0007,
THEATERF_INTERIOR,
"GSTR0007",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0008(
TEMPLATE_GSTR0008,
THEATERF_INTERIOR,
"GSTR0008",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0009(
TEMPLATE_GSTR0009,
THEATERF_INTERIOR,
"GSTR0009",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0010(
TEMPLATE_GSTR0010,
THEATERF_INTERIOR,
"GSTR0010",
TXT_INTERIOR
);
static TemplateTypeClass const GSTR0011(
TEMPLATE_GSTR0011,
THEATERF_INTERIOR,
"GSTR0011",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0001(
TEMPLATE_LWAL0001,
THEATERF_INTERIOR,
"LWAL0001",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0002(
TEMPLATE_LWAL0002,
THEATERF_INTERIOR,
"LWAL0002",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0003(
TEMPLATE_LWAL0003,
THEATERF_INTERIOR,
"LWAL0003",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0004(
TEMPLATE_LWAL0004,
THEATERF_INTERIOR,
"LWAL0004",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0005(
TEMPLATE_LWAL0005,
THEATERF_INTERIOR,
"LWAL0005",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0006(
TEMPLATE_LWAL0006,
THEATERF_INTERIOR,
"LWAL0006",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0007(
TEMPLATE_LWAL0007,
THEATERF_INTERIOR,
"LWAL0007",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0008(
TEMPLATE_LWAL0008,
THEATERF_INTERIOR,
"LWAL0008",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0009(
TEMPLATE_LWAL0009,
THEATERF_INTERIOR,
"LWAL0009",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0010(
TEMPLATE_LWAL0010,
THEATERF_INTERIOR,
"LWAL0010",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0011(
TEMPLATE_LWAL0011,
THEATERF_INTERIOR,
"LWAL0011",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0012(
TEMPLATE_LWAL0012,
THEATERF_INTERIOR,
"LWAL0012",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0013(
TEMPLATE_LWAL0013,
THEATERF_INTERIOR,
"LWAL0013",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0014(
TEMPLATE_LWAL0014,
THEATERF_INTERIOR,
"LWAL0014",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0015(
TEMPLATE_LWAL0015,
THEATERF_INTERIOR,
"LWAL0015",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0016(
TEMPLATE_LWAL0016,
THEATERF_INTERIOR,
"LWAL0016",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0017(
TEMPLATE_LWAL0017,
THEATERF_INTERIOR,
"LWAL0017",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0018(
TEMPLATE_LWAL0018,
THEATERF_INTERIOR,
"LWAL0018",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0019(
TEMPLATE_LWAL0019,
THEATERF_INTERIOR,
"LWAL0019",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0020(
TEMPLATE_LWAL0020,
THEATERF_INTERIOR,
"LWAL0020",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0021(
TEMPLATE_LWAL0021,
THEATERF_INTERIOR,
"LWAL0021",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0022(
TEMPLATE_LWAL0022,
THEATERF_INTERIOR,
"LWAL0022",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0023(
TEMPLATE_LWAL0023,
THEATERF_INTERIOR,
"LWAL0023",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0024(
TEMPLATE_LWAL0024,
THEATERF_INTERIOR,
"LWAL0024",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0025(
TEMPLATE_LWAL0025,
THEATERF_INTERIOR,
"LWAL0025",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0026(
TEMPLATE_LWAL0026,
THEATERF_INTERIOR,
"LWAL0026",
TXT_INTERIOR
);
static TemplateTypeClass const LWAL0027(
TEMPLATE_LWAL0027,
THEATERF_INTERIOR,
"LWAL0027",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0001(
TEMPLATE_STRP0001,
THEATERF_INTERIOR,
"STRP0001",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0002(
TEMPLATE_STRP0002,
THEATERF_INTERIOR,
"STRP0002",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0003(
TEMPLATE_STRP0003,
THEATERF_INTERIOR,
"STRP0003",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0004(
TEMPLATE_STRP0004,
THEATERF_INTERIOR,
"STRP0004",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0005(
TEMPLATE_STRP0005,
THEATERF_INTERIOR,
"STRP0005",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0006(
TEMPLATE_STRP0006,
THEATERF_INTERIOR,
"STRP0006",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0007(
TEMPLATE_STRP0007,
THEATERF_INTERIOR,
"STRP0007",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0008(
TEMPLATE_STRP0008,
THEATERF_INTERIOR,
"STRP0008",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0009(
TEMPLATE_STRP0009,
THEATERF_INTERIOR,
"STRP0009",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0010(
TEMPLATE_STRP0010,
THEATERF_INTERIOR,
"STRP0010",
TXT_INTERIOR
);
static TemplateTypeClass const STRP0011(
TEMPLATE_STRP0011,
THEATERF_INTERIOR,
"STRP0011",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0001(
TEMPLATE_WALL0001,
THEATERF_INTERIOR,
"WALL0001",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0002(
TEMPLATE_WALL0002,
THEATERF_INTERIOR,
"WALL0002",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0003(
TEMPLATE_WALL0003,
THEATERF_INTERIOR,
"WALL0003",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0004(
TEMPLATE_WALL0004,
THEATERF_INTERIOR,
"WALL0004",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0005(
TEMPLATE_WALL0005,
THEATERF_INTERIOR,
"WALL0005",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0006(
TEMPLATE_WALL0006,
THEATERF_INTERIOR,
"WALL0006",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0007(
TEMPLATE_WALL0007,
THEATERF_INTERIOR,
"WALL0007",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0008(
TEMPLATE_WALL0008,
THEATERF_INTERIOR,
"WALL0008",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0009(
TEMPLATE_WALL0009,
THEATERF_INTERIOR,
"WALL0009",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0010(
TEMPLATE_WALL0010,
THEATERF_INTERIOR,
"WALL0010",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0011(
TEMPLATE_WALL0011,
THEATERF_INTERIOR,
"WALL0011",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0012(
TEMPLATE_WALL0012,
THEATERF_INTERIOR,
"WALL0012",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0013(
TEMPLATE_WALL0013,
THEATERF_INTERIOR,
"WALL0013",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0014(
TEMPLATE_WALL0014,
THEATERF_INTERIOR,
"WALL0014",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0015(
TEMPLATE_WALL0015,
THEATERF_INTERIOR,
"WALL0015",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0016(
TEMPLATE_WALL0016,
THEATERF_INTERIOR,
"WALL0016",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0017(
TEMPLATE_WALL0017,
THEATERF_INTERIOR,
"WALL0017",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0018(
TEMPLATE_WALL0018,
THEATERF_INTERIOR,
"WALL0018",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0019(
TEMPLATE_WALL0019,
THEATERF_INTERIOR,
"WALL0019",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0020(
TEMPLATE_WALL0020,
THEATERF_INTERIOR,
"WALL0020",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0021(
TEMPLATE_WALL0021,
THEATERF_INTERIOR,
"WALL0021",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0022(
TEMPLATE_WALL0022,
THEATERF_INTERIOR,
"WALL0022",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0023(
TEMPLATE_WALL0023,
THEATERF_INTERIOR,
"WALL0023",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0024(
TEMPLATE_WALL0024,
THEATERF_INTERIOR,
"WALL0024",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0025(
TEMPLATE_WALL0025,
THEATERF_INTERIOR,
"WALL0025",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0026(
TEMPLATE_WALL0026,
THEATERF_INTERIOR,
"WALL0026",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0027(
TEMPLATE_WALL0027,
THEATERF_INTERIOR,
"WALL0027",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0028(
TEMPLATE_WALL0028,
THEATERF_INTERIOR,
"WALL0028",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0029(
TEMPLATE_WALL0029,
THEATERF_INTERIOR,
"WALL0029",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0030(
TEMPLATE_WALL0030,
THEATERF_INTERIOR,
"WALL0030",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0031(
TEMPLATE_WALL0031,
THEATERF_INTERIOR,
"WALL0031",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0032(
TEMPLATE_WALL0032,
THEATERF_INTERIOR,
"WALL0032",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0033(
TEMPLATE_WALL0033,
THEATERF_INTERIOR,
"WALL0033",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0034(
TEMPLATE_WALL0034,
THEATERF_INTERIOR,
"WALL0034",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0035(
TEMPLATE_WALL0035,
THEATERF_INTERIOR,
"WALL0035",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0036(
TEMPLATE_WALL0036,
THEATERF_INTERIOR,
"WALL0036",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0037(
TEMPLATE_WALL0037,
THEATERF_INTERIOR,
"WALL0037",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0038(
TEMPLATE_WALL0038,
THEATERF_INTERIOR,
"WALL0038",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0039(
TEMPLATE_WALL0039,
THEATERF_INTERIOR,
"WALL0039",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0040(
TEMPLATE_WALL0040,
THEATERF_INTERIOR,
"WALL0040",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0041(
TEMPLATE_WALL0041,
THEATERF_INTERIOR,
"WALL0041",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0042(
TEMPLATE_WALL0042,
THEATERF_INTERIOR,
"WALL0042",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0043(
TEMPLATE_WALL0043,
THEATERF_INTERIOR,
"WALL0043",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0044(
TEMPLATE_WALL0044,
THEATERF_INTERIOR,
"WALL0044",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0045(
TEMPLATE_WALL0045,
THEATERF_INTERIOR,
"WALL0045",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0046(
TEMPLATE_WALL0046,
THEATERF_INTERIOR,
"WALL0046",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0047(
TEMPLATE_WALL0047,
THEATERF_INTERIOR,
"WALL0047",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0048(
TEMPLATE_WALL0048,
THEATERF_INTERIOR,
"WALL0048",
TXT_INTERIOR
);
static TemplateTypeClass const WALL0049(
TEMPLATE_WALL0049,
THEATERF_INTERIOR,
"WALL0049",
TXT_INTERIOR
);
//static TemplateTypeClass const Xtra0001(
// TEMPLATE_XTRA0001,
// THEATERF_INTERIOR,
// "XTRA0001",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0002(
// TEMPLATE_XTRA0002,
// THEATERF_INTERIOR,
// "XTRA0002",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0003(
// TEMPLATE_XTRA0003,
// THEATERF_INTERIOR,
// "XTRA0003",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0004(
// TEMPLATE_XTRA0004,
// THEATERF_INTERIOR,
// "XTRA0004",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0005(
// TEMPLATE_XTRA0005,
// THEATERF_INTERIOR,
// "XTRA0005",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0006(
// TEMPLATE_XTRA0006,
// THEATERF_INTERIOR,
// "XTRA0006",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0007(
// TEMPLATE_XTRA0007,
// THEATERF_INTERIOR,
// "XTRA0007",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0008(
// TEMPLATE_XTRA0008,
// THEATERF_INTERIOR,
// "XTRA0008",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0009(
// TEMPLATE_XTRA0009,
// THEATERF_INTERIOR,
// "XTRA0009",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0010(
// TEMPLATE_XTRA0010,
// THEATERF_INTERIOR,
// "XTRA0010",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0011(
// TEMPLATE_XTRA0011,
// THEATERF_INTERIOR,
// "XTRA0011",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0012(
// TEMPLATE_XTRA0012,
// THEATERF_INTERIOR,
// "XTRA0012",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0013(
// TEMPLATE_XTRA0013,
// THEATERF_INTERIOR,
// "XTRA0013",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0014(
// TEMPLATE_XTRA0014,
// THEATERF_INTERIOR,
// "XTRA0014",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0015(
// TEMPLATE_XTRA0015,
// THEATERF_INTERIOR,
// "XTRA0015",
// TXT_INTERIOR
//);
//static TemplateTypeClass const Xtra0016(
// TEMPLATE_XTRA0016,
// THEATERF_INTERIOR,
// "XTRA0016",
// TXT_INTERIOR
//);
#ifdef FIXIT_ANTS
static TemplateTypeClass const AntHill(
TEMPLATE_HILL01,
THEATERF_TEMPERATE,
"HILL01",
TXT_ROCK
);
#endif
/***********************************************************************************************
* TemplateTypeClass::TemplateTypeClass -- Constructor for template type objects. *
* *
* This is the constructor for the template types. *
* *
* INPUT: see below... *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 07/29/1994 JLB : Created. *
*=============================================================================================*/
TemplateTypeClass::TemplateTypeClass(
TemplateType iconset,
int theater,
char const * ininame,
int fullname) :
ObjectTypeClass(
RTTI_TEMPLATETYPE,
int(iconset),
false,
true,
false,
false,
true,
true,
false,
fullname,
ininame),
Type(iconset),
Theater(theater),
Width(0),
Height(0)
{
}
/***********************************************************************************************
* TemplateTypeClass::operator new -- Allocates a template type from special heap. *
* *
* This allocates a template type object from the special heap used for that purpose. *
* *
* INPUT: none *
* *
* OUTPUT: Returns with a pointer to the newly allocated template type object. If no object *
* could be allocated, then NULL is returned. *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 07/06/1996 JLB : Created. *
*=============================================================================================*/
void * TemplateTypeClass::operator new(size_t)
{
return(TemplateTypes.Alloc());
}
/***********************************************************************************************
* TemplateTypeClass::operator delete -- Deletes a template type object. *
* *
* This routine will return a template type object back to the special heap it was *
* allocated from. *
* *
* INPUT: ptr -- Pointer to the template type object to free. *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 07/06/1996 JLB : Created. *
*=============================================================================================*/
void TemplateTypeClass::operator delete(void * ptr)
{
TemplateTypes.Free((TemplateTypeClass *)ptr);
}
void TemplateTypeClass::Init_Heap(void)
{
/*
** These template type class objects must be allocated in the exact order that they
** are specified in the TemplateType enumeration. This is necessary because the heap
** allocation block index serves double duty as the type number index.
*/
(void)new TemplateTypeClass(Clear); // TEMPLATE_CLEAR1
(void)new TemplateTypeClass(Water); // TEMPLATE_WATER
(void)new TemplateTypeClass(Water2); // TEMPLATE_WATER2
(void)new TemplateTypeClass(PRoad01);
(void)new TemplateTypeClass(PRoad01a);
(void)new TemplateTypeClass(PRoad01b);;
(void)new TemplateTypeClass(PRoad02);
(void)new TemplateTypeClass(PRoad02a);
(void)new TemplateTypeClass(PRoad02b);
(void)new TemplateTypeClass(PRoad03);
(void)new TemplateTypeClass(PRoad04);
(void)new TemplateTypeClass(PRoad05);
(void)new TemplateTypeClass(PRoad06);
(void)new TemplateTypeClass(PRoad07);
(void)new TemplateTypeClass(PRoad08);
(void)new TemplateTypeClass(PRoad09);
(void)new TemplateTypeClass(PRoad10);
(void)new TemplateTypeClass(PRoad11);
(void)new TemplateTypeClass(PRoad12);
(void)new TemplateTypeClass(PRoad13);
(void)new TemplateTypeClass(PRoad14);
(void)new TemplateTypeClass(PRoad15);
(void)new TemplateTypeClass(PRoad16);
(void)new TemplateTypeClass(PRoad17);
(void)new TemplateTypeClass(PRoad18);
(void)new TemplateTypeClass(PRoad19);
(void)new TemplateTypeClass(PRoad20);
(void)new TemplateTypeClass(PRoad21);
(void)new TemplateTypeClass(Shore01); // TEMPLATE_SHORE1
(void)new TemplateTypeClass(Shore02); // TEMPLATE_SHORE2
(void)new TemplateTypeClass(Shore03); // TEMPLATE_SHORE3
(void)new TemplateTypeClass(Shore04); // TEMPLATE_SHORE4
(void)new TemplateTypeClass(Shore05); // TEMPLATE_SHORE5
(void)new TemplateTypeClass(Shore06); // TEMPLATE_SHORE6
(void)new TemplateTypeClass(Shore07); // TEMPLATE_SHORE7
(void)new TemplateTypeClass(Shore08); // TEMPLATE_SHORE8
(void)new TemplateTypeClass(Shore09); // TEMPLATE_SHORE9
(void)new TemplateTypeClass(Shore10); // TEMPLATE_SHORE10
(void)new TemplateTypeClass(Shore11); // TEMPLATE_SHORE11
(void)new TemplateTypeClass(Shore12); // TEMPLATE_SHORE12
(void)new TemplateTypeClass(Shore13); // TEMPLATE_SHORE13
(void)new TemplateTypeClass(Shore14); // TEMPLATE_SHORE14
(void)new TemplateTypeClass(Shore15); // TEMPLATE_SHORE15
(void)new TemplateTypeClass(Shore16); // TEMPLATE_SHORE16
(void)new TemplateTypeClass(Shore17); // TEMPLATE_SHORE17
(void)new TemplateTypeClass(Shore18); // TEMPLATE_SHORE18
(void)new TemplateTypeClass(Shore19); // TEMPLATE_SHORE19
(void)new TemplateTypeClass(Shore20); // TEMPLATE_SHORE20
(void)new TemplateTypeClass(Shore21); // TEMPLATE_SHORE21
(void)new TemplateTypeClass(Shore22); // TEMPLATE_SHORE22
(void)new TemplateTypeClass(Shore23); // TEMPLATE_SHORE23
(void)new TemplateTypeClass(Shore24); // TEMPLATE_SHORE24
(void)new TemplateTypeClass(Shore25); // TEMPLATE_SHORE25
(void)new TemplateTypeClass(Shore26); // TEMPLATE_SHORE26
(void)new TemplateTypeClass(Shore27); // TEMPLATE_SHORE27
(void)new TemplateTypeClass(Shore28); // TEMPLATE_SHORE28
(void)new TemplateTypeClass(Shore29); // TEMPLATE_SHORE29
(void)new TemplateTypeClass(Shore30); // TEMPLATE_SHORE30
(void)new TemplateTypeClass(Shore31); // TEMPLATE_SHORE31
(void)new TemplateTypeClass(Shore32); // TEMPLATE_SHORE32
(void)new TemplateTypeClass(Shore33); // TEMPLATE_SHORE33
(void)new TemplateTypeClass(Shore34); // TEMPLATE_SHORE34
(void)new TemplateTypeClass(Shore35); // TEMPLATE_SHORE35
(void)new TemplateTypeClass(Shore36); // TEMPLATE_SHORE36
(void)new TemplateTypeClass(Shore37); // TEMPLATE_SHORE37
(void)new TemplateTypeClass(Shore38); // TEMPLATE_SHORE38
(void)new TemplateTypeClass(Shore39); // TEMPLATE_SHORE39
(void)new TemplateTypeClass(Shore40); // TEMPLATE_SHORE40
(void)new TemplateTypeClass(Shore41); // TEMPLATE_SHORE41
(void)new TemplateTypeClass(ShoreCliff01); // TEMPLATE_SHORECLIFF01
(void)new TemplateTypeClass(ShoreCliff02); // TEMPLATE_SHORECLIFF02
(void)new TemplateTypeClass(ShoreCliff03); // TEMPLATE_SHORECLIFF03
(void)new TemplateTypeClass(ShoreCliff04); // TEMPLATE_SHORECLIFF04
(void)new TemplateTypeClass(ShoreCliff05); // TEMPLATE_SHORECLIFF05
(void)new TemplateTypeClass(ShoreCliff06); // TEMPLATE_SHORECLIFF06
(void)new TemplateTypeClass(ShoreCliff07); // TEMPLATE_SHORECLIFF07
(void)new TemplateTypeClass(ShoreCliff08); // TEMPLATE_SHORECLIFF08
(void)new TemplateTypeClass(ShoreCliff09); // TEMPLATE_SHORECLIFF09
(void)new TemplateTypeClass(ShoreCliff10); // TEMPLATE_SHORECLIFF10
(void)new TemplateTypeClass(ShoreCliff11); // TEMPLATE_SHORECLIFF11
(void)new TemplateTypeClass(ShoreCliff12); // TEMPLATE_SHORECLIFF12
(void)new TemplateTypeClass(ShoreCliff13); // TEMPLATE_SHORECLIFF13
(void)new TemplateTypeClass(ShoreCliff14); // TEMPLATE_SHORECLIFF14
(void)new TemplateTypeClass(ShoreCliff15); // TEMPLATE_SHORECLIFF15
(void)new TemplateTypeClass(ShoreCliff16); // TEMPLATE_SHORECLIFF16
(void)new TemplateTypeClass(ShoreCliff17); // TEMPLATE_SHORECLIFF17
(void)new TemplateTypeClass(ShoreCliff18); // TEMPLATE_SHORECLIFF18
(void)new TemplateTypeClass(ShoreCliff19); // TEMPLATE_SHORECLIFF19
(void)new TemplateTypeClass(ShoreCliff20); // TEMPLATE_SHORECLIFF20
(void)new TemplateTypeClass(ShoreCliff21); // TEMPLATE_SHORECLIFF21
(void)new TemplateTypeClass(ShoreCliff22); // TEMPLATE_SHORECLIFF22
(void)new TemplateTypeClass(ShoreCliff23); // TEMPLATE_SHORECLIFF23
(void)new TemplateTypeClass(ShoreCliff24); // TEMPLATE_SHORECLIFF24
(void)new TemplateTypeClass(ShoreCliff25); // TEMPLATE_SHORECLIFF25
(void)new TemplateTypeClass(ShoreCliff26); // TEMPLATE_SHORECLIFF26
(void)new TemplateTypeClass(ShoreCliff27); // TEMPLATE_SHORECLIFF27
(void)new TemplateTypeClass(ShoreCliff28); // TEMPLATE_SHORECLIFF28
(void)new TemplateTypeClass(Bridge1); // TEMPLATE_BRIDGE1
(void)new TemplateTypeClass(Bridge1d); // TEMPLATE_BRIDGE1D
(void)new TemplateTypeClass(Bridge2); // TEMPLATE_BRIDGE2
(void)new TemplateTypeClass(Bridge2d); // TEMPLATE_BRIDGE2D
(void)new TemplateTypeClass(Road01); // TEMPLATE_ROAD1
(void)new TemplateTypeClass(Road02); // TEMPLATE_ROAD2
(void)new TemplateTypeClass(Road03); // TEMPLATE_ROAD3
(void)new TemplateTypeClass(Road04); // TEMPLATE_ROAD4
(void)new TemplateTypeClass(Road05); // TEMPLATE_ROAD5
(void)new TemplateTypeClass(Road06); // TEMPLATE_ROAD6
(void)new TemplateTypeClass(Road07); // TEMPLATE_ROAD7
(void)new TemplateTypeClass(Road08); // TEMPLATE_ROAD8
(void)new TemplateTypeClass(Road09); // TEMPLATE_ROAD9
(void)new TemplateTypeClass(Road10); // TEMPLATE_ROAD10
(void)new TemplateTypeClass(Road11); // TEMPLATE_ROAD11
(void)new TemplateTypeClass(Road12); // TEMPLATE_ROAD12
(void)new TemplateTypeClass(Road13); // TEMPLATE_ROAD13
(void)new TemplateTypeClass(Road14); // TEMPLATE_ROAD14
(void)new TemplateTypeClass(Road15); // TEMPLATE_ROAD15
(void)new TemplateTypeClass(Road16); // TEMPLATE_ROAD16
(void)new TemplateTypeClass(Road17); // TEMPLATE_ROAD17
(void)new TemplateTypeClass(Road18); // TEMPLATE_ROAD18
(void)new TemplateTypeClass(Road19); // TEMPLATE_ROAD19
(void)new TemplateTypeClass(Road20); // TEMPLATE_ROAD20
(void)new TemplateTypeClass(Road21); // TEMPLATE_ROAD21
(void)new TemplateTypeClass(Road22); // TEMPLATE_ROAD22
(void)new TemplateTypeClass(Road23); // TEMPLATE_ROAD23
(void)new TemplateTypeClass(Road24); // TEMPLATE_ROAD24
(void)new TemplateTypeClass(Road25); // TEMPLATE_ROAD25
(void)new TemplateTypeClass(Road26); // TEMPLATE_ROAD26
(void)new TemplateTypeClass(Road27); // TEMPLATE_ROAD27
(void)new TemplateTypeClass(Road28); // TEMPLATE_ROAD28
(void)new TemplateTypeClass(Road29); // TEMPLATE_ROAD29
(void)new TemplateTypeClass(Road30); // TEMPLATE_ROAD30
(void)new TemplateTypeClass(Road31); // TEMPLATE_ROAD31
(void)new TemplateTypeClass(Road32); // TEMPLATE_ROAD32
(void)new TemplateTypeClass(Road33); // TEMPLATE_ROAD33
(void)new TemplateTypeClass(Road34); // TEMPLATE_ROAD34
(void)new TemplateTypeClass(Road35); // TEMPLATE_ROAD35
(void)new TemplateTypeClass(Road36); // TEMPLATE_ROAD36
(void)new TemplateTypeClass(Road37); // TEMPLATE_ROAD37
(void)new TemplateTypeClass(Road38); // TEMPLATE_ROAD38
(void)new TemplateTypeClass(Road39); // TEMPLATE_ROAD39
(void)new TemplateTypeClass(Road40); // TEMPLATE_ROAD40
(void)new TemplateTypeClass(Road41); // TEMPLATE_ROAD41
(void)new TemplateTypeClass(Road42); // TEMPLATE_ROAD42
(void)new TemplateTypeClass(Road43); // TEMPLATE_ROAD43
(void)new TemplateTypeClass(Rough01); // TEMPLATE_ROUGH01
(void)new TemplateTypeClass(Rough02); // TEMPLATE_ROUGH02
(void)new TemplateTypeClass(Rough03); // TEMPLATE_ROUGH03
(void)new TemplateTypeClass(Rough04); // TEMPLATE_ROUGH04
(void)new TemplateTypeClass(Rough05); // TEMPLATE_ROUGH05
(void)new TemplateTypeClass(Rough06); // TEMPLATE_ROUGH06
(void)new TemplateTypeClass(Rough07); // TEMPLATE_ROUGH07
(void)new TemplateTypeClass(Rough08); // TEMPLATE_ROUGH08
(void)new TemplateTypeClass(Rough09); // TEMPLATE_ROUGH09
(void)new TemplateTypeClass(Rough10); // TEMPLATE_ROUGH10
(void)new TemplateTypeClass(Rough11); // TEMPLATE_ROUGH11
// (void)new TemplateTypeClass(River14); // TEMPLATE_RIVER14
// (void)new TemplateTypeClass(River15); // TEMPLATE_RIVER15
(void)new TemplateTypeClass(RiverCliff01); // TEMPLATE_RIVERCLIFF01
(void)new TemplateTypeClass(RiverCliff02); // TEMPLATE_RIVERCLIFF02
(void)new TemplateTypeClass(RiverCliff03); // TEMPLATE_RIVERCLIFF03
(void)new TemplateTypeClass(RiverCliff04); // TEMPLATE_RIVERCLIFF04
(void)new TemplateTypeClass(Bridge1a); // TEMPLATE_BRIDGE_1A
(void)new TemplateTypeClass(Bridge1b); // TEMPLATE_BRIDGE_1B
(void)new TemplateTypeClass(Bridge1c); // TEMPLATE_BRIDGE_1C
(void)new TemplateTypeClass(Bridge2a); // TEMPLATE_BRIDGE_2A
(void)new TemplateTypeClass(Bridge2b); // TEMPLATE_BRIDGE_2B
(void)new TemplateTypeClass(Bridge2c); // TEMPLATE_BRIDGE_2C
(void)new TemplateTypeClass(Bridge3a); // TEMPLATE_BRIDGE_3A
(void)new TemplateTypeClass(Bridge3b); // TEMPLATE_BRIDGE_3B
(void)new TemplateTypeClass(Bridge3c); // TEMPLATE_BRIDGE_3C
(void)new TemplateTypeClass(Bridge3d); // TEMPLATE_BRIDGE_3D
(void)new TemplateTypeClass(Bridge3e); // TEMPLATE_BRIDGE_3E
(void)new TemplateTypeClass(Bridge3f); // TEMPLATE_BRIDGE_3F
(void)new TemplateTypeClass(F01); // TEMPLATE_F01
(void)new TemplateTypeClass(F02); // TEMPLATE_F02
(void)new TemplateTypeClass(F03); // TEMPLATE_F03
(void)new TemplateTypeClass(F04); // TEMPLATE_F04
(void)new TemplateTypeClass(F05); // TEMPLATE_F05
(void)new TemplateTypeClass(F06); // TEMPLATE_F06
(void)new TemplateTypeClass(ARRO0001); // TEMPLATE_ARRO0001
(void)new TemplateTypeClass(ARRO0002); // TEMPLATE_ARRO0002
(void)new TemplateTypeClass(ARRO0003); // TEMPLATE_ARRO0003
(void)new TemplateTypeClass(ARRO0004); // TEMPLATE_ARRO0004
(void)new TemplateTypeClass(ARRO0005); // TEMPLATE_ARRO0005
(void)new TemplateTypeClass(ARRO0006); // TEMPLATE_ARRO0006
(void)new TemplateTypeClass(ARRO0007); // TEMPLATE_ARRO0007
(void)new TemplateTypeClass(ARRO0008); // TEMPLATE_ARRO0008
(void)new TemplateTypeClass(ARRO0009); // TEMPLATE_ARRO0009
(void)new TemplateTypeClass(ARRO0010); // TEMPLATE_ARRO0010
(void)new TemplateTypeClass(ARRO0011); // TEMPLATE_ARRO0011
(void)new TemplateTypeClass(ARRO0012); // TEMPLATE_ARRO0012
(void)new TemplateTypeClass(ARRO0013); // TEMPLATE_ARRO0013
(void)new TemplateTypeClass(ARRO0014); // TEMPLATE_ARRO0014
(void)new TemplateTypeClass(ARRO0015); // TEMPLATE_ARRO0015
(void)new TemplateTypeClass(FLOR0001); // TEMPLATE_FLOR0001
(void)new TemplateTypeClass(FLOR0002); // TEMPLATE_FLOR0002
(void)new TemplateTypeClass(FLOR0003); // TEMPLATE_FLOR0003
(void)new TemplateTypeClass(FLOR0004); // TEMPLATE_FLOR0004
(void)new TemplateTypeClass(FLOR0005); // TEMPLATE_FLOR0005
(void)new TemplateTypeClass(FLOR0006); // TEMPLATE_FLOR0006
(void)new TemplateTypeClass(FLOR0007); // TEMPLATE_FLOR0007
(void)new TemplateTypeClass(GFLR0001); // TEMPLATE_GFLR0001
(void)new TemplateTypeClass(GFLR0002); // TEMPLATE_GFLR0002
(void)new TemplateTypeClass(GFLR0003); // TEMPLATE_GFLR0003
(void)new TemplateTypeClass(GFLR0004); // TEMPLATE_GFLR0004
(void)new TemplateTypeClass(GFLR0005); // TEMPLATE_GFLR0005
(void)new TemplateTypeClass(GSTR0001); // TEMPLATE_GSTR0001
(void)new TemplateTypeClass(GSTR0002); // TEMPLATE_GSTR0002
(void)new TemplateTypeClass(GSTR0003); // TEMPLATE_GSTR0003
(void)new TemplateTypeClass(GSTR0004); // TEMPLATE_GSTR0004
(void)new TemplateTypeClass(GSTR0005); // TEMPLATE_GSTR0005
(void)new TemplateTypeClass(GSTR0006); // TEMPLATE_GSTR0006
(void)new TemplateTypeClass(GSTR0007); // TEMPLATE_GSTR0007
(void)new TemplateTypeClass(GSTR0008); // TEMPLATE_GSTR0008
(void)new TemplateTypeClass(GSTR0009); // TEMPLATE_GSTR0009
(void)new TemplateTypeClass(GSTR0010); // TEMPLATE_GSTR0010
(void)new TemplateTypeClass(GSTR0011); // TEMPLATE_GSTR0011
(void)new TemplateTypeClass(LWAL0001); // TEMPLATE_LWAL0001
(void)new TemplateTypeClass(LWAL0002); // TEMPLATE_LWAL0002
(void)new TemplateTypeClass(LWAL0003); // TEMPLATE_LWAL0003
(void)new TemplateTypeClass(LWAL0004); // TEMPLATE_LWAL0004
(void)new TemplateTypeClass(LWAL0005); // TEMPLATE_LWAL0005
(void)new TemplateTypeClass(LWAL0006); // TEMPLATE_LWAL0006
(void)new TemplateTypeClass(LWAL0007); // TEMPLATE_LWAL0007
(void)new TemplateTypeClass(LWAL0008); // TEMPLATE_LWAL0008
(void)new TemplateTypeClass(LWAL0009); // TEMPLATE_LWAL0009
(void)new TemplateTypeClass(LWAL0010); // TEMPLATE_LWAL0010
(void)new TemplateTypeClass(LWAL0011); // TEMPLATE_LWAL0011
(void)new TemplateTypeClass(LWAL0012); // TEMPLATE_LWAL0012
(void)new TemplateTypeClass(LWAL0013); // TEMPLATE_LWAL0013
(void)new TemplateTypeClass(LWAL0014); // TEMPLATE_LWAL0014
(void)new TemplateTypeClass(LWAL0015); // TEMPLATE_LWAL0015
(void)new TemplateTypeClass(LWAL0016); // TEMPLATE_LWAL0016
(void)new TemplateTypeClass(LWAL0017); // TEMPLATE_LWAL0017
(void)new TemplateTypeClass(LWAL0018); // TEMPLATE_LWAL0018
(void)new TemplateTypeClass(LWAL0019); // TEMPLATE_LWAL0019
(void)new TemplateTypeClass(LWAL0020); // TEMPLATE_LWAL0020
(void)new TemplateTypeClass(LWAL0021); // TEMPLATE_LWAL0021
(void)new TemplateTypeClass(LWAL0022); // TEMPLATE_LWAL0022
(void)new TemplateTypeClass(LWAL0023); // TEMPLATE_LWAL0023
(void)new TemplateTypeClass(LWAL0024); // TEMPLATE_LWAL0024
(void)new TemplateTypeClass(LWAL0025); // TEMPLATE_LWAL0025
(void)new TemplateTypeClass(LWAL0026); // TEMPLATE_LWAL0026
(void)new TemplateTypeClass(LWAL0027); // TEMPLATE_LWAL0027
(void)new TemplateTypeClass(STRP0001); // TEMPLATE_STRP0001
(void)new TemplateTypeClass(STRP0002); // TEMPLATE_STRP0002
(void)new TemplateTypeClass(STRP0003); // TEMPLATE_STRP0003
(void)new TemplateTypeClass(STRP0004); // TEMPLATE_STRP0004
(void)new TemplateTypeClass(STRP0005); // TEMPLATE_STRP0005
(void)new TemplateTypeClass(STRP0006); // TEMPLATE_STRP0006
(void)new TemplateTypeClass(STRP0007); // TEMPLATE_STRP0007
(void)new TemplateTypeClass(STRP0008); // TEMPLATE_STRP0008
(void)new TemplateTypeClass(STRP0009); // TEMPLATE_STRP0009
(void)new TemplateTypeClass(STRP0010); // TEMPLATE_STRP0010
(void)new TemplateTypeClass(STRP0011); // TEMPLATE_STRP0011
(void)new TemplateTypeClass(WALL0001); // TEMPLATE_WALL0001
(void)new TemplateTypeClass(WALL0002); // TEMPLATE_WALL0002
(void)new TemplateTypeClass(WALL0003); // TEMPLATE_WALL0003
(void)new TemplateTypeClass(WALL0004); // TEMPLATE_WALL0004
(void)new TemplateTypeClass(WALL0005); // TEMPLATE_WALL0005
(void)new TemplateTypeClass(WALL0006); // TEMPLATE_WALL0006
(void)new TemplateTypeClass(WALL0007); // TEMPLATE_WALL0007
(void)new TemplateTypeClass(WALL0008); // TEMPLATE_WALL0008
(void)new TemplateTypeClass(WALL0009); // TEMPLATE_WALL0009
(void)new TemplateTypeClass(WALL0010); // TEMPLATE_WALL0010
(void)new TemplateTypeClass(WALL0011); // TEMPLATE_WALL0011
(void)new TemplateTypeClass(WALL0012); // TEMPLATE_WALL0012
(void)new TemplateTypeClass(WALL0013); // TEMPLATE_WALL0013
(void)new TemplateTypeClass(WALL0014); // TEMPLATE_WALL0014
(void)new TemplateTypeClass(WALL0015); // TEMPLATE_WALL0015
(void)new TemplateTypeClass(WALL0016); // TEMPLATE_WALL0016
(void)new TemplateTypeClass(WALL0017); // TEMPLATE_WALL0017
(void)new TemplateTypeClass(WALL0018); // TEMPLATE_WALL0018
(void)new TemplateTypeClass(WALL0019); // TEMPLATE_WALL0019
(void)new TemplateTypeClass(WALL0020); // TEMPLATE_WALL0020
(void)new TemplateTypeClass(WALL0021); // TEMPLATE_WALL0021
(void)new TemplateTypeClass(WALL0022); // TEMPLATE_WALL0022
(void)new TemplateTypeClass(WALL0023); // TEMPLATE_WALL0023
(void)new TemplateTypeClass(WALL0024); // TEMPLATE_WALL0024
(void)new TemplateTypeClass(WALL0025); // TEMPLATE_WALL0025
(void)new TemplateTypeClass(WALL0026); // TEMPLATE_WALL0026
(void)new TemplateTypeClass(WALL0027); // TEMPLATE_WALL0027
(void)new TemplateTypeClass(WALL0028); // TEMPLATE_WALL0028
(void)new TemplateTypeClass(WALL0029); // TEMPLATE_WALL0029
(void)new TemplateTypeClass(WALL0030); // TEMPLATE_WALL0030
(void)new TemplateTypeClass(WALL0031); // TEMPLATE_WALL0031
(void)new TemplateTypeClass(WALL0032); // TEMPLATE_WALL0032
(void)new TemplateTypeClass(WALL0033); // TEMPLATE_WALL0033
(void)new TemplateTypeClass(WALL0034); // TEMPLATE_WALL0034
(void)new TemplateTypeClass(WALL0035); // TEMPLATE_WALL0035
(void)new TemplateTypeClass(WALL0036); // TEMPLATE_WALL0036
(void)new TemplateTypeClass(WALL0037); // TEMPLATE_WALL0037
(void)new TemplateTypeClass(WALL0038); // TEMPLATE_WALL0038
(void)new TemplateTypeClass(WALL0039); // TEMPLATE_WALL0039
(void)new TemplateTypeClass(WALL0040); // TEMPLATE_WALL0040
(void)new TemplateTypeClass(WALL0041); // TEMPLATE_WALL0041
(void)new TemplateTypeClass(WALL0042); // TEMPLATE_WALL0042
(void)new TemplateTypeClass(WALL0043); // TEMPLATE_WALL0043
(void)new TemplateTypeClass(WALL0044); // TEMPLATE_WALL0044
(void)new TemplateTypeClass(WALL0045); // TEMPLATE_WALL0045
(void)new TemplateTypeClass(WALL0046); // TEMPLATE_WALL0046
(void)new TemplateTypeClass(WALL0047); // TEMPLATE_WALL0047
(void)new TemplateTypeClass(WALL0048); // TEMPLATE_WALL0048
(void)new TemplateTypeClass(WALL0049); // TEMPLATE_WALL0049
(void)new TemplateTypeClass(Bridge1h); // TEMPLATE_BRIDGE1H
(void)new TemplateTypeClass(Bridge2h); // TEMPLATE_BRIDGE2H
(void)new TemplateTypeClass(Bridge1ax); // TEMPLATE_BRIDGE_1AX
(void)new TemplateTypeClass(Bridge2ax); // TEMPLATE_BRIDGE_2AX
(void)new TemplateTypeClass(Bridge1x); // TEMPLATE_BRIDGE1X
(void)new TemplateTypeClass(Bridge2x); // TEMPLATE_BRIDGE2X
(void)new TemplateTypeClass(AntHill); // TEMPLATE_ROAD36
}
/***********************************************************************************************
* TemplateTypeClass::Land_Type -- Determines land type from template and icon number. *
* *
* This routine will convert the specified icon number into the appropriate land type. The *
* land type can be determined from the embedded colors in the "control template" section *
* of the original art file. This control information is encoded into the icon data file *
* to be retrieved and interpreted as the program sees fit. The engine only recognizes *
* the first 16 colors as control colors, so the control map color value serves as an *
* index into a simple lookup table. *
* *
* INPUT: icon -- The icon number within this template that is to be examined and used *
* to determine the land type. *
* *
* OUTPUT: Returns with the land type that corresponds to the icon number specified. *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 12/12/1995 JLB : Created. *
*=============================================================================================*/
LandType TemplateTypeClass::Land_Type(int icon) const
{
IsoTile* icontrol = (IsoTile *)Get_Image_Data();
if (icontrol != NULL) {
IsoTileImageHeader* image = icontrol->GetTileInfo(icon);
if (image != NULL) {
static LandType _land[16] = {
LAND_CLEAR,
LAND_ROUGH ,
LAND_ROAD,
LAND_WATER,
LAND_ROCK,
LAND_WALL,
LAND_TIBERIUM,
LAND_WEEDS,
LAND_BEACH,
LAND_WATER,
LAND_CLEAR,
LAND_ROAD,
LAND_COUNT,
};
return(_land[image->TileType % LAND_COUNT]);
}
}
return(LAND_CLEAR);
}
/***********************************************************************************************
* TemplateTypeClass::From_Name -- Determine template from ASCII name. *
* *
* This routine is used to determine the template number given only *
* an ASCII representation. The scenario loader uses this routine *
* to construct the map from the INI control file. *
* *
* INPUT: name -- Pointer to the ASCII name of the template. *
* *
* OUTPUT: Returns with the template number. If the name had no match, *
* then returns with TEMPLATE_NONE. *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 05/23/1994 JLB : Created. *
*=============================================================================================*/
TemplateType TemplateTypeClass::From_Name(char const * name)
{
if (name != NULL) {
for (TemplateType index = TEMPLATE_FIRST; index < TEMPLATE_COUNT; index++) {
if (stricmp(As_Reference(index).IniName, name) == 0) {
return(index);
}
}
}
return(TEMPLATE_NONE);
}
/***********************************************************************************************
* TemplateTypeClass::Occupy_List -- Determines occupation list. *
* *
* This routine is used to examine the template map and build an *
* occupation list. This list is used to render a template cursor as *
* well as placement of icon numbers. *
* *
* INPUT: placement -- Is this for placement legality checking only? The normal condition *
* is for marking occupation flags. *
* *
* OUTPUT: Returns with a pointer to the template occupation list. *
* *
* WARNINGS: The return pointer is valid only until the next time that *
* this routine is called. *
* *
* HISTORY: *
* 05/23/1994 JLB : Created. *
* 12/12/1995 JLB : Optimized for direct access to iconset data. *
*=============================================================================================*/
short const * TemplateTypeClass::Occupy_List(bool) const
{
static short _occupy[13*8+5];
short * ptr;
IsoTile * iconset = (IsoTile *)Get_Image_Data();
//unsigned char const * map = iconset->Map_Data();
ptr = &_occupy[0];
for (int index = 0; index < iconset->NumTiles(); index++) {
//if (*map++ != 0xFF) {
// *ptr++ = (index % Width) + ((index / Width)*MAP_CELL_W);
//}
IsoTileImageHeader* tileimg = iconset->GetTileInfo(index);
if (tileimg == NULL)
continue;
*ptr++ = (index % Width) + ((index / Width) * MAP_CELL_W);
}
*ptr = REFRESH_EOL;
return((short const *)&_occupy[0]);
}
/***********************************************************************************************
* TemplateTypeClass::Init -- Loads graphic data for templates. *
* *
* This routine loads the template graphic data for all the template *
* type supported for the specified theater. This routine is called *
* whenever the theater for the scenario is first determined. *
* *
* INPUT: theater -- The theater that the template data is to be *
* loaded for. *
* *
* OUTPUT: none *
* *
* WARNINGS: This routine goes to disk! *
* *
* HISTORY: *
* 05/23/1994 JLB : Created. *
* 06/02/1994 JLB : Only handles iconset loading now (as it should). *
*=============================================================================================*/
void TemplateTypeClass::Init(TheaterType theater)
{
char fullname[_MAX_FNAME+_MAX_EXT]; // Fully constructed iconset name.
void const * ptr; // Working loaded iconset pointer.
void *terrainPalette = (void *)MFCD::Retrieve(Theaters[theater].IsoPalette);
for (TemplateType index = TEMPLATE_FIRST; index < TEMPLATE_COUNT; index++) {
TemplateTypeClass& tplate = As_Reference(index);
// jmarshall - stupid hack
if (index >= TEMPLATE_BRIDGE_1A)
break;
// jmarshall - stupid hack
((void const *&)tplate.ImageData) = NULL;
if (tplate.Theater & (1<<theater)) {
_makepath(fullname, NULL, NULL, tplate.IniName, Theaters[theater].Suffix);
ptr = MFCD::Retrieve(fullname);
((void const *&)tplate.ImageData) = ptr;
#ifdef WIN32
Register_Icon_Set((void*)ptr, TRUE); //Register icon set for video memory caching
#endif
((unsigned char &)tplate.Width) = Get_IconSet_MapWidth(ptr);
((unsigned char &)tplate.Height) = Get_IconSet_MapHeight(ptr);
// Try and load HD assets first.
Image_t *hdImage = Load_StampHD(theater, fullname, tplate.ImageData);
if (hdImage)
{
Get_Stamp_Size(tplate.ImageData, hdImage->renderwidth, hdImage->renderheight);
((void const*&)tplate.HDImageData) = hdImage;
}
else
{
// If no HD assets, load the legacy assets into a texture.
char tmp[512];
sprintf(tmp, "icon_%s", fullname);
((void const*&)tplate.HDImageData) = Load_Stamp(fullname, tplate.ImageData, terrainPalette);
}
}
}
}
#ifdef SCENARIO_EDITOR
/***********************************************************************************************
* TemplateTypeClass::Display -- Displays a generic representation of template. *
* *
* This routine is used to display a generic view of the template *
* object. This is necessary for selection in the scenario editor. *
* *
* INPUT: x,y -- The coordinates to center the display about. *
* *
* window-- The window to base the coordinates upon. *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 05/23/1994 JLB : Created. *
*=============================================================================================*/
void TemplateTypeClass::Display(int x, int y, WindowNumberType window, HousesType ) const
{
int w,h;
int index;
bool scale; // Should the template be half sized?
Image_t* img = Get_HDImage_Data();
if (img == NULL)
return;
w = Bound(img->width, 1, 13);
h = Bound(img->height, 1, 8);
//scale = (w > 3 || h > 3);
//if (scale) {
// x -= (w * ICON_PIXEL_W) / 4;
// y -= (h * ICON_PIXEL_H) / 4;
//} else {
// x -= (w * ICON_PIXEL_W) / 2;
// y -= (h * ICON_PIXEL_H) / 2;
//}
//x += WindowList[window][WINDOWX];
//y += WindowList[window][WINDOWY];
//IconsetClass const * iconset = (IconsetClass const *)Get_Image_Data();
//unsigned char const * map = iconset->Map_Data();
for (index = 0; index < img->isoTileInfo->NumTiles(); index++) {
IsoTileImageHeader* isoImage = img->isoTileInfo->GetTileInfo(index);
if (isoImage == NULL)
continue;
GL_RenderForeGroundImage(img, x + isoImage->TileX, y + isoImage->TileY, ICON_PIXEL_W, ICON_PIXEL_H, 0, index);
}
}
/***********************************************************************************************
* TemplateTypeClass::Prep_For_Add -- Prepares to add template to scenario. *
* *
* This routine prepares a list of template objects so that the *
* scenario editor can use this list to display a dialog box. The *
* selection of a template object will allow its placement upon the *
* map. *
* *
* INPUT: none *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 05/23/1994 JLB : Created. *
* 05/28/1994 JLB : Only handles real templates now. *
* 06/04/1994 JLB : Uses map editing interface functions. *
*=============================================================================================*/
void TemplateTypeClass::Prep_For_Add(void)
{
for (TemplateType index = TEMPLATE_CLEAR1; index < TEMPLATE_COUNT; index++) {
// jmarshall - stupid hack
if (index >= TEMPLATE_BRIDGE_1A)
break;
// jmarshall - stupid hack
// jmarshall: get hdimage data.
if (As_Reference(index).Get_HDImage_Data()) {
Map.Add_To_List(&As_Reference(index));
}
}
}
#endif
/***********************************************************************************************
* TemplateTypeClass::Create_And_Place -- Creates and places a template object on the map. *
* *
* This support routine is used by the scenario editor to add a template object to the map *
* and to the game. *
* *
* INPUT: cell -- The cell to place the template object. *
* *
* OUTPUT: bool; Was the template object placed successfully? *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 05/28/1994 JLB : Created. *
*=============================================================================================*/
bool TemplateTypeClass::Create_And_Place(CELL cell, HousesType ) const
{
if (new TemplateClass(Type, cell)) {
return(true);
}
return(false);
}
/***********************************************************************************************
* TemplateTypeClass::Create_One_Of -- Creates an object of this template type. *
* *
* This routine will create an object of this type. For certain template objects, such *
* as walls, it is actually created as a building. The "building" wall is converted into *
* a template at the moment of placing down on the map. *
* *
* INPUT: none *
* *
* OUTPUT: Returns with a pointer to the appropriate object for this template type. *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 06/18/1994 JLB : Created. *
*=============================================================================================*/
ObjectClass * TemplateTypeClass::Create_One_Of(HouseClass *) const
{
return(new TemplateClass(Type, -1));
}
/***********************************************************************************************
* TemplateTypeClass::One_Time -- Performs one-time initialization *
* *
* INPUT: none *
* *
* OUTPUT: none *
* *
* WARNINGS: none *
* *
* HISTORY: *
* 08/12/1994 JLB : Created. *
*=============================================================================================*/
void TemplateTypeClass::One_Time(void)
{
}
/***********************************************************************************************
* TemplateTypeClass::As_Reference -- Fetches a reference to the template specified. *
* *
* This will return a reference to the TemplateTypeClass requested. *
* *
* INPUT: type -- The template type to fetch a reference to. *
* *
* OUTPUT: Returns with a reference to the template type class specified. *
* *
* WARNINGS: Be sure to pass a valid type parameter. This routine doesn't check it for *
* legality. *
* *
* HISTORY: *
* 07/03/1996 JLB : Created. *
*=============================================================================================*/
TemplateTypeClass & TemplateTypeClass::As_Reference(TemplateType type)
{
return(*TemplateTypes.Ptr(type));
}
COORDINATE TemplateTypeClass::Coord_Fixup(COORDINATE coord) const
{
return Coord_Whole(coord);
}