C&C Remastered Map Editor

Initial commit of C&C Remastered Map Editor code
This commit is contained in:
PG-SteveT 2020-09-10 11:12:58 -07:00
parent 1f6350fe6e
commit e37e174be1
289 changed files with 80922 additions and 7 deletions

View file

@ -0,0 +1,514 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
namespace MobiusEditor.RedAlert
{
public static class ActionDataTypes
{
public enum ThemeType
{
THEME_QUIET = -3,
THEME_PICK_ANOTHER = -2,
THEME_NONE = -1,
THEME_BIGF,
THEME_CRUS,
THEME_FAC1,
THEME_FAC2,
THEME_HELL,
THEME_RUN1,
THEME_SMSH,
THEME_TREN,
THEME_WORK,
THEME_AWAIT,
THEME_DENSE_R,
THEME_FOGGER1A,
THEME_MUD1A,
THEME_RADIO2,
THEME_ROLLOUT,
THEME_SNAKE,
THEME_TERMINAT,
THEME_TWIN,
THEME_VECTOR1A,
THEME_MAP,
THEME_SCORE,
THEME_INTRO,
THEME_CREDITS,
THEME_2ND_HAND,
THEME_ARAZOID,
THEME_BACKSTAB,
THEME_CHAOS2,
THEME_SHUT_IT,
THEME_TWINMIX1,
THEME_UNDER3,
THEME_VR2,
THEME_BOG,
THEME_FLOAT_V2,
THEME_GLOOM,
THEME_GRNDWIRE,
THEME_RPT,
THEME_SEARCH,
THEME_TRACTION,
THEME_WASTELND,
};
public enum VocType
{
VOC_NONE = -1,
VOC_GIRL_OKAY, // "okay"
VOC_GIRL_YEAH, // "yeah?"
VOC_GUY_OKAY, // "okay"
VOC_GUY_YEAH, // "yeah?"
VOC_MINELAY1, // mine layer sound
VOC_ACKNOWL, // "acknowledged"
VOC_AFFIRM, // "affirmative"
VOC_AWAIT, // "awaiting orders"
VOC_ENG_AFFIRM, // Engineer: "affirmative"
VOC_ENG_ENG, // Engineer: "engineering"
VOC_NO_PROB, // "not a problem"
VOC_READY, // "ready and waiting"
VOC_REPORT, // "reporting"
VOC_RIGHT_AWAY, // "right away sir"
VOC_ROGER, // "roger"
VOC_UGOTIT, // "you got it"
VOC_VEHIC, // "vehicle reporting"
VOC_YESSIR, // "yes sir"
VOC_SCREAM1, // short infantry scream
VOC_SCREAM3, // short infantry scream
VOC_SCREAM4, // short infantry scream
VOC_SCREAM5, // short infantry scream
VOC_SCREAM6, // short infantry scream
VOC_SCREAM7, // short infantry scream
VOC_SCREAM10, // short infantry scream
VOC_SCREAM11, // short infantry scream
VOC_YELL1, // long infantry scream
VOC_CHRONO, // Chronosphere sound.
VOC_CANNON1, // Cannon sound (medium).
VOC_CANNON2, // Cannon sound (short).
VOC_IRON1,
VOC_ENG_MOVEOUT, // Engineer: "movin' out"
VOC_SONAR, // sonar pulse
VOC_SANDBAG, // sand bag crunch
VOC_MINEBLOW,
VOC_CHUTE1, // wind swoosh sound
VOC_DOG_BARK, // dog bark
VOC_DOG_WHINE, // dog whine
VOC_DOG_GROWL2, // strong dog growl
VOC_FIRE_LAUNCH, // fireball launch sound
VOC_FIRE_EXPLODE, // fireball explode sound
VOC_GRENADE_TOSS, // grenade toss
VOC_GUN_5, // 5 round gun burst (slow).
VOC_GUN_7, // 7 round gun burst (fast).
VOC_ENG_YES, // Engineer: "yes sir"
VOC_GUN_RIFLE, // Rifle shot.
VOC_HEAL, // Healing effect.
VOC_DOOR, // Hyrdrolic door.
VOC_INVULNERABLE, // Invulnerability effect.
VOC_KABOOM1, // Long explosion (muffled).
VOC_KABOOM12, // Very long explosion (muffled).
VOC_KABOOM15, // Very long explosion (muffled).
VOC_SPLASH, // Water splash
VOC_KABOOM22, // Long explosion (sharp).
VOC_AACANON3, // AA-Cannon
VOC_TANYA_DIE, // Tanya: scream
VOC_GUN_5F, // 5 round gun burst (fast).
VOC_MISSILE_1, // Missile with high tech effect.
VOC_MISSILE_2, // Long missile launch.
VOC_MISSILE_3, // Short missile launch.
VOC_x6,
VOC_GUN_5R, // 5 round gun burst (rattles).
VOC_BEEP, // Generic beep sound.
VOC_CLICK, // Generic click sound.
VOC_SILENCER, // Silencer.
VOC_CANNON6, // Long muffled cannon shot.
VOC_CANNON7, // Sharp mechanical cannon fire.
VOC_TORPEDO, // Torpedo launch.
VOC_CANNON8, // Sharp cannon fire.
VOC_TESLA_POWER_UP, // Hum charge up.
VOC_TESLA_ZAP, // Tesla zap effect.
VOC_SQUISH, // Squish effect.
VOC_SCOLD, // Scold bleep.
VOC_RADAR_ON, // Powering up electronics.
VOC_RADAR_OFF, // B movie power down effect.
VOC_PLACE_BUILDING_DOWN, // Building slam down sound.
VOC_KABOOM30, // Short explosion (HE).
VOC_KABOOM25, // Short growling explosion.
VOC_x7,
VOC_DOG_HURT, // Dog whine.
VOC_DOG_YES, // Dog 'yes sir'.
VOC_CRUMBLE, // Building crumble.
VOC_MONEY_UP, // Rising money tick.
VOC_MONEY_DOWN, // Falling money tick.
VOC_CONSTRUCTION, // Building construction sound.
VOC_GAME_CLOSED, // Long bleep.
VOC_INCOMING_MESSAGE, // Soft happy warble.
VOC_SYS_ERROR, // Sharp soft warble.
VOC_OPTIONS_CHANGED, // Mid range soft warble.
VOC_GAME_FORMING, // Long warble.
VOC_PLAYER_LEFT, // Chirp sequence.
VOC_PLAYER_JOINED, // Reverse chirp sequence.
VOC_DEPTH_CHARGE, // Distant explosion sound.
VOC_CASHTURN, // Airbrake.
VOC_TANYA_CHEW, // Tanya: "Chew on this"
VOC_TANYA_ROCK, // Tanya: "Let's rock"
VOC_TANYA_LAUGH, // Tanya: "ha ha ha"
VOC_TANYA_SHAKE, // Tanya: "Shake it baby"
VOC_TANYA_CHING, // Tanya: "Cha Ching"
VOC_TANYA_GOT, // Tanya: "That's all you got"
VOC_TANYA_KISS, // Tanya: "Kiss it bye bye"
VOC_TANYA_THERE, // Tanya: "I'm there"
VOC_TANYA_GIVE, // Tanya: "Give it to me"
VOC_TANYA_YEA, // Tanya: "Yea?"
VOC_TANYA_YES, // Tanya: "Yes sir?"
VOC_TANYA_WHATS, // Tanya: "What's up."
VOC_WALLKILL2, // Crushing wall sound.
VOC_x8,
VOC_TRIPLE_SHOT, // Three quick shots in succession.
VOC_SUBSHOW, // Submarine surfacing.
VOC_E_AH, // Einstein "ah"
VOC_E_OK, // Einstein "ok"
VOC_E_YES, // Einstein "yes"
VOC_TRIP_MINE, // mine explosion sound
VOC_SPY_COMMANDER, // Spy: "commander?"
VOC_SPY_YESSIR, // Spy: "yes sir"
VOC_SPY_INDEED, // Spy: "indeed"
VOC_SPY_ONWAY, // Spy: "on my way"
VOC_SPY_KING, // Spy: "for king and country"
VOC_MED_REPORTING, // Medic: "reporting"
VOC_MED_YESSIR, // Medic: "yes sir"
VOC_MED_AFFIRM, // Medic: "affirmative"
VOC_MED_MOVEOUT, // Medic: "movin' out"
VOC_BEEP_SELECT, // map selection beep
VOC_THIEF_YEA, // Thief: "yea?"
VOC_ANTDIE,
VOC_ANTBITE,
VOC_THIEF_MOVEOUT, // Thief: "movin' out"
VOC_THIEF_OKAY, // Thief: "ok"
VOC_x11,
VOC_THIEF_WHAT, // Thief: "what"
VOC_THIEF_AFFIRM, // Thief: "affirmative"
VOC_STAVCMDR,
VOC_STAVCRSE,
VOC_STAVYES,
VOC_STAVMOV,
VOC_BUZZY1,
VOC_RAMBO1,
VOC_RAMBO2,
VOC_RAMBO3,
VOC_MECHYES1,
VOC_MECHHOWDY1,
VOC_MECHRISE1,
VOC_MECHHUH1,
VOC_MECHHEAR1,
VOC_MECHLAFF1,
VOC_MECHBOSS1,
VOC_MECHYEEHAW1,
VOC_MECHHOTDIG1,
VOC_MECHWRENCH1,
VOC_STBURN1,
VOC_STCHRGE1,
VOC_STCRISP1,
VOC_STDANCE1,
VOC_STJUICE1,
VOC_STJUMP1,
VOC_STLIGHT1,
VOC_STPOWER1,
VOC_STSHOCK1,
VOC_STYES1,
VOC_CHRONOTANK1,
VOC_MECH_FIXIT1,
VOC_MAD_CHARGE,
VOC_MAD_EXPLODE,
VOC_SHOCK_TROOP1,
};
public enum VoxType
{
VOX_NONE = -1,
VOX_ACCOMPLISHED, // mission accomplished
VOX_FAIL, // your mission has failed
VOX_NO_FACTORY, // unable to comply, building in progress
VOX_CONSTRUCTION, // construction complete
VOX_UNIT_READY, // unit ready
VOX_NEW_CONSTRUCT, // new construction options
VOX_DEPLOY, // cannot deploy here
VOX_STRUCTURE_DESTROYED, // structure destroyed
VOX_INSUFFICIENT_POWER, // insufficient power
VOX_NO_CASH, // insufficient funds
VOX_CONTROL_EXIT, // battle control terminated
VOX_REINFORCEMENTS, // reinforcements have arrived
VOX_CANCELED, // canceled
VOX_BUILDING, // building
VOX_LOW_POWER, // low power
VOX_NEED_MO_MONEY, // need more funds
VOX_BASE_UNDER_ATTACK, // our base is under attack
VOX_UNABLE_TO_BUILD, // unable to build more
VOX_PRIMARY_SELECTED, // primary building selected
VOX_MADTANK_DEPLOYED, // M.A.D. Tank Deployed
VOX_none4,
VOX_UNIT_LOST, // unit lost
VOX_SELECT_TARGET, // select target
VOX_PREPARE, // enemy approaching
VOX_NEED_MO_CAPACITY, // silos needed
VOX_SUSPENDED, // on hold
VOX_REPAIRING, // repairing
VOX_none5,
VOX_none6,
VOX_AIRCRAFT_LOST,
VOX_none7,
VOX_ALLIED_FORCES_APPROACHING,
VOX_ALLIED_APPROACHING,
VOX_none8,
VOX_none9,
VOX_BUILDING_INFILTRATED,
VOX_CHRONO_CHARGING,
VOX_CHRONO_READY,
VOX_CHRONO_TEST,
VOX_HQ_UNDER_ATTACK,
VOX_CENTER_DEACTIVATED,
VOX_CONVOY_APPROACHING,
VOX_CONVOY_UNIT_LOST,
VOX_EXPLOSIVE_PLACED,
VOX_MONEY_STOLEN,
VOX_SHIP_LOST,
VOX_SATALITE_LAUNCHED,
VOX_SONAR_AVAILABLE,
VOX_none10,
VOX_SOVIET_FORCES_APPROACHING,
VOX_SOVIET_REINFORCEMENTS,
VOX_TRAINING,
VOX_ABOMB_READY,
VOX_ABOMB_LAUNCH,
VOX_ALLIES_N,
VOX_ALLIES_S,
VOX_ALLIES_E,
VOX_ALLIES_W,
VOX_OBJECTIVE1,
VOX_OBJECTIVE2,
VOX_OBJECTIVE3,
VOX_IRON_CHARGING,
VOX_IRON_READY,
VOX_RESCUED,
VOX_OBJECTIVE_NOT,
VOX_SIGNAL_N,
VOX_SIGNAL_S,
VOX_SIGNAL_E,
VOX_SIGNAL_W,
VOX_SPY_PLANE,
VOX_FREED,
VOX_UPGRADE_ARMOR,
VOX_UPGRADE_FIREPOWER,
VOX_UPGRADE_SPEED,
VOX_MISSION_TIMER,
VOX_UNIT_FULL,
VOX_UNIT_REPAIRED,
VOX_TIME_40,
VOX_TIME_30,
VOX_TIME_20,
VOX_TIME_10,
VOX_TIME_5,
VOX_TIME_4,
VOX_TIME_3,
VOX_TIME_2,
VOX_TIME_1,
VOX_TIME_STOP,
VOX_UNIT_SOLD,
VOX_TIMER_STARTED,
VOX_TARGET_RESCUED,
VOX_TARGET_FREED,
VOX_TANYA_RESCUED,
VOX_STRUCTURE_SOLD,
VOX_SOVIET_FORCES_FALLEN,
VOX_SOVIET_SELECTED,
VOX_SOVIET_EMPIRE_FALLEN,
VOX_OPERATION_TERMINATED,
VOX_OBJECTIVE_REACHED,
VOX_OBJECTIVE_NOT_REACHED,
VOX_OBJECTIVE_MET,
VOX_MERCENARY_RESCUED,
VOX_MERCENARY_FREED,
VOX_KOSOYGEN_FREED,
VOX_FLARE_DETECTED,
VOX_COMMANDO_RESCUED,
VOX_COMMANDO_FREED,
VOX_BUILDING_IN_PROGRESS,
VOX_ATOM_PREPPING,
VOX_ALLIED_SELECTED,
VOX_ABOMB_PREPPING,
VOX_ATOM_LAUNCHED,
VOX_ALLIED_FORCES_FALLEN,
VOX_ABOMB_AVAILABLE,
VOX_ALLIED_REINFORCEMENTS,
VOX_SAVE1,
VOX_LOAD1,
};
public enum SpecialWeaponType
{
SPC_NONE = -1,
SPC_SONAR_PULSE, // Momentarily reveals submarines.
SPC_NUCLEAR_BOMB, // Tactical nuclear weapon.
SPC_CHRONOSPHERE, // Paradox device, for teleportation
SPC_PARA_BOMB, // Parachute bomb delivery.
SPC_PARA_INFANTRY, // Parachute reinforcement delivery.
SPC_SPY_MISSION, // Spy plane to take photo recon mission.
SPC_IRON_CURTAIN, // Bestow invulnerability on a unit/building
SPC_GPS, // give allies free unjammable radar.
};
public enum QuarryType
{
QUARRY_NONE,
QUARRY_ANYTHING, // Attack any enemy (same as "hunt").
QUARRY_BUILDINGS, // Attack buildings (in general).
QUARRY_HARVESTERS, // Attack harvesters or refineries.
QUARRY_INFANTRY, // Attack infantry.
QUARRY_VEHICLES, // Attack combat vehicles.
QUARRY_VESSELS, // Attach ships.
QUARRY_FACTORIES, // Attack factories (all types).
QUARRY_DEFENSE, // Attack base defense buildings.
QUARRY_THREAT, // Attack enemies near friendly base.
QUARRY_POWER, // Attack power facilities.
QUARRY_FAKES, // Prefer to attack fake buildings.
};
public enum VQType
{
VQ_NONE = -1,
VQ_AAGUN,
VQ_MIG,
VQ_SFROZEN,
VQ_AIRFIELD,
VQ_BATTLE,
VQ_BMAP,
VQ_BOMBRUN,
VQ_DPTHCHRG,
VQ_GRVESTNE,
VQ_MONTPASS,
VQ_MTNKFACT,
VQ_CRONTEST,
VQ_OILDRUM,
VQ_ALLYEND,
VQ_RADRRAID,
VQ_SHIPYARD,
VQ_SHORBOMB,
VQ_SITDUCK,
VQ_SLNTSRVC,
VQ_SNOWBASE,
VQ_EXECUTE,
VQ_TITLE, // Low res.
VQ_NUKESTOK,
VQ_V2ROCKET,
VQ_SEARCH,
VQ_BINOC,
VQ_ELEVATOR,
VQ_FROZEN,
VQ_MCV,
VQ_SHIPSINK,
VQ_SOVMCV,
VQ_TRINITY,
VQ_ALLYMORF,
VQ_APCESCPE,
VQ_BRDGTILT,
VQ_CRONFAIL,
VQ_STRAFE,
VQ_DESTROYR,
VQ_DOUBLE,
VQ_FLARE,
VQ_SNSTRAFE,
VQ_LANDING,
VQ_ONTHPRWL,
VQ_OVERRUN,
VQ_SNOWBOMB,
VQ_SOVCEMET,
VQ_TAKE_OFF,
VQ_TESLA,
VQ_SOVIET8,
VQ_SPOTTER,
VQ_SCENE1,
VQ_SCENE2,
VQ_SCENE4,
VQ_SOVFINAL,
VQ_ASSESS,
VQ_SOVIET10,
VQ_DUD,
VQ_MCV_LAND,
VQ_MCVBRDGE,
VQ_PERISCOP,
VQ_SHORBOM1,
VQ_SHORBOM2,
VQ_SOVBATL,
VQ_SOVTSTAR,
VQ_AFTRMATH,
VQ_SOVIET11,
VQ_MASASSLT,
VQ_REDINTRO, // High res
VQ_SOVIET1,
VQ_SOVIET2,
VQ_SOVIET3,
VQ_SOVIET4,
VQ_SOVIET5,
VQ_SOVIET6,
VQ_SOVIET7,
VQ_INTRO_MOVIE,
VQ_AVERTED,
VQ_COUNTDWN,
VQ_MOVINGIN,
VQ_ALLIED10,
VQ_ALLIED12,
VQ_ALLIED5,
VQ_ALLIED6,
VQ_ALLIED8,
VQ_TANYA1,
VQ_TANYA2,
VQ_ALLY10B,
VQ_ALLY11,
VQ_ALLY14,
VQ_ALLY9,
VQ_SPY,
VQ_TOOFAR,
VQ_SOVIET12,
VQ_SOVIET13,
VQ_SOVIET9,
VQ_BEACHEAD,
VQ_SOVIET14,
VQ_SIZZLE,
VQ_SIZZLE2,
VQ_ANTEND,
VQ_ANTINTRO,
VQ_RETALIATION_ALLIED1,
VQ_RETALIATION_ALLIED2,
VQ_RETALIATION_ALLIED3,
VQ_RETALIATION_ALLIED4,
VQ_RETALIATION_ALLIED5,
VQ_RETALIATION_ALLIED6,
VQ_RETALIATION_ALLIED7,
VQ_RETALIATION_ALLIED8,
VQ_RETALIATION_ALLIED9,
VQ_RETALIATION_ALLIED10,
VQ_RETALIATION_SOVIET1,
VQ_RETALIATION_SOVIET2,
VQ_RETALIATION_SOVIET3,
VQ_RETALIATION_SOVIET4,
VQ_RETALIATION_SOVIET5,
VQ_RETALIATION_SOVIET6,
VQ_RETALIATION_SOVIET7,
VQ_RETALIATION_SOVIET8,
VQ_RETALIATION_SOVIET9,
VQ_RETALIATION_SOVIET10,
VQ_RETALIATION_WINA,
VQ_RETALIATION_WINS,
VQ_RETALIATION_ANTS,
};
}
}

View file

@ -0,0 +1,76 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class ActionTypes
{
public const string TACTION_NONE = "None";
public const string TACTION_WIN = "Winner is...";
public const string TACTION_LOSE = "Loser is...";
public const string TACTION_BEGIN_PRODUCTION = "Production Begins";
public const string TACTION_CREATE_TEAM = "Create Team...";
public const string TACTION_DESTROY_TEAM = "Destroy All Teams";
public const string TACTION_ALL_HUNT = "All to Hunt...";
public const string TACTION_REINFORCEMENTS = "Reinforcement (team)...";
public const string TACTION_DZ = "Drop Zone Flare (waypoint)...";
public const string TACTION_FIRE_SALE = "Fire Sale...";
public const string TACTION_PLAY_MOVIE = "Play Movie...";
public const string TACTION_TEXT_TRIGGER = "Text Trigger (ID num)...";
public const string TACTION_DESTROY_TRIGGER = "Destroy Trigger...";
public const string TACTION_AUTOCREATE = "Autocreate Begins...";
public const string TACTION_WINLOSE = "";
public const string TACTION_ALLOWWIN = "Allow Win";
public const string TACTION_REVEAL_ALL = "Reveal all map";
public const string TACTION_REVEAL_SOME = "Reveal around waypoint...";
public const string TACTION_REVEAL_ZONE = "Reveal zone of waypoint...";
public const string TACTION_PLAY_SOUND = "Play sound effect...";
public const string TACTION_PLAY_MUSIC = "Play music theme...";
public const string TACTION_PLAY_SPEECH = "Play speech...";
public const string TACTION_FORCE_TRIGGER = "Force Trigger...";
public const string TACTION_START_TIMER = "Timer Start";
public const string TACTION_STOP_TIMER = "Timer Stop";
public const string TACTION_ADD_TIMER = "Timer Extend (1/10th min)...";
public const string TACTION_SUB_TIMER = "Timer Shorten (1/10th min)...";
public const string TACTION_SET_TIMER = "Timer Set (1/10th min)...";
public const string TACTION_SET_GLOBAL = "Global Set...";
public const string TACTION_CLEAR_GLOBAL = "Global Clear...";
public const string TACTION_BASE_BUILDING = "Auto Base Building...";
public const string TACTION_CREEP_SHADOW = "Grow shroud one 'step'";
public const string TACTION_DESTROY_OBJECT = "Destroy attached building";
public const string TACTION_1_SPECIAL = "Add 1-time special weapon...";
public const string TACTION_FULL_SPECIAL = "Add repeating special weapon...";
public const string TACTION_PREFERRED_TARGET = "Preferred target...";
public const string TACTION_LAUNCH_NUKES = "Launch Nukes";
private static readonly string[] Types;
static ActionTypes()
{
Types =
(from field in typeof(ActionTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsLiteral && !field.IsInitOnly && typeof(string).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as string).ToArray();
}
public static IEnumerable<string> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,89 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.ComponentModel;
namespace MobiusEditor.RedAlert
{
public class BasicSection : Model.BasicSection
{
private string win2;
[DefaultValue("x")]
public string Win2 { get => win2; set => SetField(ref win2, value); }
private string win3;
[DefaultValue("x")]
public string Win3 { get => win3; set => SetField(ref win3, value); }
private string win4;
[DefaultValue("x")]
public string Win4 { get => win4; set => SetField(ref win4, value); }
private bool toCarryOver;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool ToCarryOver { get => toCarryOver; set => SetField(ref toCarryOver, value); }
private bool toInherit;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool ToInherit { get => toInherit; set => SetField(ref toInherit, value); }
private bool timerInherit;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool TimerInherit { get => timerInherit; set => SetField(ref timerInherit, value); }
private bool endOfGame;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool EndOfGame { get => endOfGame; set => SetField(ref endOfGame, value); }
private bool civEvac;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool CivEvac { get => civEvac; set => SetField(ref civEvac, value); }
private bool noSpyPlane;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool NoSpyPlane { get => noSpyPlane; set => SetField(ref noSpyPlane, value); }
private bool skipScore;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool SkipScore { get => skipScore; set => SetField(ref skipScore, value); }
private bool oneTimeOnly;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool OneTimeOnly { get => oneTimeOnly; set => SetField(ref oneTimeOnly, value); }
private bool skipMapSelect;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool SkipMapSelect { get => skipMapSelect; set => SetField(ref skipMapSelect, value); }
private bool truckCrate;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool TruckCrate { get => truckCrate; set => SetField(ref truckCrate, value); }
private bool fillSilos;
[TypeConverter(typeof(BooleanTypeConverter))]
[DefaultValue(false)]
public bool FillSilos { get => fillSilos; set => SetField(ref fillSilos, value); }
}
}

View file

@ -0,0 +1,104 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class BuildingTypes
{
public static readonly BuildingType AdvancedTech = new BuildingType(0, "atek", "TEXT_STRUCTURE_RA_ATEK", new bool[2, 2] { { true, true }, { true, true } }, true, "Greece");
public static readonly BuildingType IronCurtain = new BuildingType(1, "iron", "TEXT_STRUCTURE_RA_IRON", new bool[2, 2] { { false, false }, { true, true } }, false, "USSR");
public static readonly BuildingType Weapon = new BuildingType(2, "weap", "TEXT_STRUCTURE_RA_WEAP", new bool[2, 3] { { true, true, true }, { true, true, true } }, true, "Greece", false, false, "weap2");
public static readonly BuildingType Chronosphere = new BuildingType(3, "pdox", "TEXT_STRUCTURE_RA_PDOX", new bool[2, 2] { { true, true }, { true, true } }, false, "Greece");
public static readonly BuildingType Pillbox = new BuildingType(4, "pbox", "TEXT_STRUCTURE_RA_PBOX", new bool[1, 1] { { true } }, false, "Greece");
public static readonly BuildingType CamoPillbox = new BuildingType(5, "hbox", "TEXT_STRUCTURE_RA_HBOX", new bool[1, 1] { { true } }, false, "Greece");
public static readonly BuildingType Command = new BuildingType(6, "dome", "TEXT_STRUCTURE_RA_DOME", new bool[2, 2] { { true, true }, { true, true } }, true, "Greece");
public static readonly BuildingType GapGenerator = new BuildingType(7, "gap", "TEXT_STRUCTURE_RA_GAP", new bool[2, 1] { { false }, { true } }, false, "Greece");
public static readonly BuildingType Turret = new BuildingType(8, "gun", "TEXT_STRUCTURE_RA_GUN", new bool[1, 1] { { true } }, false, "Greece", false, true);
public static readonly BuildingType AAGun = new BuildingType(9, "agun", "TEXT_STRUCTURE_RA_AGUN", new bool[2, 1] { { false }, { true } }, false, "Greece", false, true);
public static readonly BuildingType FlameTurret = new BuildingType(10, "ftur", "TEXT_STRUCTURE_RA_FTUR", new bool[1, 1] { { true } }, false, "USSR");
public static readonly BuildingType Const = new BuildingType(11, "fact", "TEXT_STRUCTURE_RA_FACT", new bool[3, 3] { { true, true, true }, { true, true, true }, { true, true, true } }, true, "Greece");
public static readonly BuildingType Refinery = new BuildingType(12, "proc", "TEXT_STRUCTURE_RA_PROC", new bool[3, 3] { { false, true, false }, { true, true, true }, { true, false, false } }, true, "Greece");
public static readonly BuildingType Storage = new BuildingType(13, "silo", "TEXT_STRUCTURE_RA_SILO", new bool[1, 1] { { true } }, false, "Greece");
public static readonly BuildingType Helipad = new BuildingType(14, "hpad", "TEXT_STRUCTURE_RA_HPAD", new bool[2, 2] { { true, true }, { true, true } }, true, "Greece");
public static readonly BuildingType SAM = new BuildingType(15, "sam", "TEXT_STRUCTURE_RA_SAM", new bool[1, 2] { { true, true } }, false, "USSR");
public static readonly BuildingType AirStrip = new BuildingType(16, "afld", "TEXT_STRUCTURE_RA_AFLD", new bool[2, 3] { { true, true, true }, { true, true, true } }, false, "USSR");
public static readonly BuildingType Power = new BuildingType(17, "powr", "TEXT_STRUCTURE_RA_POWR", new bool[2, 2] { { true, true }, { true, true } }, true, "Greece");
public static readonly BuildingType AdvancedPower = new BuildingType(18, "apwr", "TEXT_STRUCTURE_RA_APWR", new bool[3, 3] { { false, false, false }, { true, true, true }, { true, true, true } }, true, "Greece");
public static readonly BuildingType SovietTech = new BuildingType(19, "stek", "TEXT_STRUCTURE_RA_STEK", new bool[3, 3] { { false, false, false }, { true, true, true }, { true, true, true } }, true, "USSR");
public static readonly BuildingType Hospital = new BuildingType(20, "hosp", "TEXT_STRUCTURE_RA_HOSP", new bool[2, 2] { { true, true }, { true, true } }, true, "Greece");
public static readonly BuildingType Barracks = new BuildingType(21, "barr", "TEXT_STRUCTURE_RA_BARR", new bool[2, 2] { { true, true }, { true, true } }, true, "USSR");
public static readonly BuildingType Tent = new BuildingType(22, "tent", "TEXT_STRUCTURE_RA_TENT", new bool[2, 2] { { true, true }, { true, true } }, true, "Greece");
public static readonly BuildingType Kennel = new BuildingType(23, "kenn", "TEXT_STRUCTURE_RA_KENN", new bool[1, 1] { { true } }, false, "USSR");
public static readonly BuildingType Repair = new BuildingType(24, "fix", "TEXT_STRUCTURE_RA_FIX", new bool[3, 3] { { false, true, false }, { true, true, true }, { false, true, false } }, false, "Greece");
public static readonly BuildingType BioLab = new BuildingType(25, "bio", "TEXT_STRUCTURE_RA_BIO", new bool[2, 2] { { true, true }, { true, true } }, true, "Greece");
public static readonly BuildingType Mission = new BuildingType(26, "miss", "TEXT_STRUCTURE_RA_MISS", new bool[2, 3] { { true, true, true }, { true, true, true } }, true, "Greece");
public static readonly BuildingType ShipYard = new BuildingType(27, "syrd", "TEXT_STRUCTURE_RA_SYRD", new bool[3, 3] { { true, true, true }, { true, true, true }, { true, true, true } }, false, "Greece");
public static readonly BuildingType SubPen = new BuildingType(28, "spen", "TEXT_STRUCTURE_RA_SPEN", new bool[3, 3] { { true, true, true }, { true, true, true }, { true, true, true } }, false, "USSR");
public static readonly BuildingType MissileSilo = new BuildingType(29, "mslo", "TEXT_STRUCTURE_RA_MSLO", new bool[1, 2] { { true, true } }, false, "Greece", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType ForwardCom = new BuildingType(30, "fcom", "TEXT_STRUCTURE_RA_FCOM", new bool[2, 2] { { false, false }, { true, true } }, true, "USSR");
public static readonly BuildingType Tesla = new BuildingType(31, "tsla", "TEXT_STRUCTURE_RA_TSLA", new bool[2, 1] { { false }, { true } }, false, "USSR");
public static readonly BuildingType FakeWeapon = new BuildingType(32, "weap", "TEXT_STRUCTURE_RA_WEAF", new bool[2, 3] { { true, true, true }, { true, true, true } }, true, "Greece", true, false, "weap2");
public static readonly BuildingType FakeConst = new BuildingType(33, "fact", "TEXT_STRUCTURE_RA_FACF", new bool[3, 3] { { true, true, true }, { true, true, true }, { true, true, true } }, true, "Greece", true);
public static readonly BuildingType FakeShipYard = new BuildingType(34, "syrd", "TEXT_STRUCTURE_RA_SYRF", new bool[3, 3] { { true, true, true }, { true, true, true }, { true, true, true } }, false, "Greece", true);
public static readonly BuildingType FakeSubPen = new BuildingType(35, "spen", "TEXT_STRUCTURE_RA_SPEF", new bool[3, 3] { { true, true, true }, { true, true, true }, { true, true, true } }, false, "USSR", true);
public static readonly BuildingType FakeCommand = new BuildingType(36, "dome", "TEXT_STRUCTURE_RA_DOMF", new bool[2, 2] { { true, true }, { true, true } }, true, "Greece", true);
public static readonly BuildingType AVMine = new BuildingType(43, "minv", "TEXT_STRUCTURE_RA_MINV", new bool[1, 1] { { true } }, false, "Greece");
public static readonly BuildingType APMine = new BuildingType(44, "minp", "TEXT_STRUCTURE_RA_MINP", new bool[1, 1] { { true } }, false, "Greece");
public static readonly BuildingType V01 = new BuildingType(45, "v01", "TEXT_STRUCTURE_TITLE_CIV1", new bool[2, 2] { { false, false }, { true, true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V02 = new BuildingType(46, "v02", "TEXT_STRUCTURE_TITLE_CIV2", new bool[2, 2] { { false, false }, { true, true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V03 = new BuildingType(47, "v03", "TEXT_STRUCTURE_TITLE_CIV3", new bool[2, 2] { { false, true }, { true, true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V04 = new BuildingType(48, "v04", "TEXT_STRUCTURE_TITLE_CIV4", new bool[2, 2] { { false, false }, { true, true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V05 = new BuildingType(49, "v05", "TEXT_STRUCTURE_TITLE_CIV5", new bool[1, 2] { { true, true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V06 = new BuildingType(50, "v06", "TEXT_STRUCTURE_TITLE_CIV6", new bool[1, 2] { { true, true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V07 = new BuildingType(51, "v07", "TEXT_STRUCTURE_TITLE_CIV7", new bool[1, 2] { { true, true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V08 = new BuildingType(52, "v08", "TEXT_STRUCTURE_TITLE_CIV8", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V09 = new BuildingType(53, "v09", "TEXT_STRUCTURE_TITLE_CIV9", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V10 = new BuildingType(54, "v10", "TEXT_STRUCTURE_TITLE_CIV10", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V11 = new BuildingType(55, "v11", "TEXT_STRUCTURE_TITLE_CIV11", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V12 = new BuildingType(56, "v12", "TEXT_STRUCTURE_RA_CIVILIAN", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V13 = new BuildingType(57, "v13", "TEXT_STRUCTURE_RA_CIVILIAN", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V14 = new BuildingType(58, "v14", "TEXT_STRUCTURE_TITLE_CIV13", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V15 = new BuildingType(59, "v15", "TEXT_STRUCTURE_TITLE_CIV14", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V16 = new BuildingType(60, "v16", "TEXT_STRUCTURE_TITLE_CIV15", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V17 = new BuildingType(61, "v17", "TEXT_STRUCTURE_TITLE_CIV16", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V18 = new BuildingType(62, "v18", "TEXT_STRUCTURE_TITLE_CIV17", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType V19 = new BuildingType(63, "v19", "TEXT_STRUCTURE_RA_CIVILIAN", new bool[1, 1] { { true } }, false, "Neutral", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly BuildingType Barrel = new BuildingType(82, "barl", "TEXT_STRUCTURE_RA_BARL", new bool[1, 1] { { true } }, false, "Neutral");
public static readonly BuildingType Barrel3 = new BuildingType(83, "brl3", "TEXT_STRUCTURE_RA_BRL3", new bool[1, 1] { { true } }, false, "Neutral");
public static readonly BuildingType Queen = new BuildingType(84, "quee", "TEXT_STRUCTURE_RA_QUEE", new bool[1, 2] { { true, true } }, false, "Special");
public static readonly BuildingType Larva1 = new BuildingType(85, "lar1", "TEXT_STRUCTURE_RA_LAR1", new bool[1, 1] { { true } }, false, "Special");
public static readonly BuildingType Larva2 = new BuildingType(86, "lar2", "TEXT_STRUCTURE_RA_LAR2", new bool[1, 1] { { true } }, false, "Special");
private static readonly BuildingType[] Types;
static BuildingTypes()
{
Types =
(from field in typeof(BuildingTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(BuildingType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as BuildingType).ToArray();
}
public static IEnumerable<BuildingType> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,36 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using System;
using System.Drawing;
using System.IO;
namespace MobiusEditor.RedAlert
{
public static class Constants
{
public static readonly string SaveDirectory = Path.Combine(Globals.RootSaveDirectory, "Red_Alert");
public static readonly Size MaxSize = new Size(128, 128);
public const int MaxAircraft = 100;
public const int MaxVessels = 100;
public const int MaxBuildings = 500;
public const int MaxInfantry = 500;
public const int MaxTerrain = 500;
public const int MaxUnits = 500;
public const int MaxTeams = 60;
public const int MaxTriggers = 200;
}
}

View file

@ -0,0 +1,56 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class DirectionTypes
{
public static readonly DirectionType North = new DirectionType(0, "North", FacingType.North);
public static readonly DirectionType NorthNorthEast = new DirectionType(16, "North-NorthEast");
public static readonly DirectionType NorthEast = new DirectionType(32, "NorthEast", FacingType.NorthEast);
public static readonly DirectionType EastNorthEast = new DirectionType(48, "East-NorthEast");
public static readonly DirectionType East = new DirectionType(64, "East", FacingType.East);
public static readonly DirectionType EastSouthEast = new DirectionType(80, "East-SouthEast");
public static readonly DirectionType SouthEast = new DirectionType(96, "SouthEast", FacingType.SouthEast);
public static readonly DirectionType SouthSouthEast = new DirectionType(112, "South-SouthEast");
public static readonly DirectionType South = new DirectionType(128, "South", FacingType.South);
public static readonly DirectionType SouthSouthWest = new DirectionType(144, "South-SouthWest");
public static readonly DirectionType SouthWest = new DirectionType(160, "SouthWest", FacingType.SouthWest);
public static readonly DirectionType WestSouthWest = new DirectionType(176, "West-SouthWest");
public static readonly DirectionType West = new DirectionType(192, "West", FacingType.West);
public static readonly DirectionType WestNorthWest = new DirectionType(208, "West-NorthWest");
public static readonly DirectionType NorthWest = new DirectionType(224, "NorthWest", FacingType.NorthWest);
public static readonly DirectionType NorthNorthWest = new DirectionType(240, "North-NorthWest");
private static DirectionType[] Types;
static DirectionTypes()
{
Types =
(from field in typeof(DirectionTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(DirectionType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as DirectionType).ToArray();
}
public static IEnumerable<DirectionType> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,72 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class EventTypes
{
public const string TEVENT_NONE = "None";
public const string TEVENT_PLAYER_ENTERED = "Entered by...";
public const string TEVENT_SPIED = "Spied by...";
public const string TEVENT_THIEVED = "Thieved by...";
public const string TEVENT_DISCOVERED = "Discovered by player";
public const string TEVENT_HOUSE_DISCOVERED = "House Discovered...";
public const string TEVENT_ATTACKED = "Attacked by anybody";
public const string TEVENT_DESTROYED = "Destroyed by anybody";
public const string TEVENT_ANY = "Any Event";
public const string TEVENT_UNITS_DESTROYED = "Destroyed, Units, All...";
public const string TEVENT_BUILDINGS_DESTROYED = "Destroyed, Buildings, All...";
public const string TEVENT_ALL_DESTROYED = "Destroyed, All...";
public const string TEVENT_CREDITS = "Credits exceed (x100)...";
public const string TEVENT_TIME = "Elapsed Time (1/10th min)...";
public const string TEVENT_MISSION_TIMER_EXPIRED = "Mission Timer Expired";
public const string TEVENT_NBUILDINGS_DESTROYED = "Destroyed, Buildings, #...";
public const string TEVENT_NUNITS_DESTROYED = "# Destroyed, Units, #...";
public const string TEVENT_NOFACTORIES = "No Factories left";
public const string TEVENT_EVAC_CIVILIAN = "Civilians Evacuated";
public const string TEVENT_BUILD = "Build Building Type...";
public const string TEVENT_BUILD_UNIT = "Build Unit Type...";
public const string TEVENT_BUILD_INFANTRY = "Build Infantry Type...";
public const string TEVENT_BUILD_AIRCRAFT = "Build Aircraft Type...";
public const string TEVENT_LEAVES_MAP = "Leaves map (team)...";
public const string TEVENT_ENTERS_ZONE = "Zone Entry by...";
public const string TEVENT_CROSS_HORIZONTAL = "Crosses Horizontal Line...";
public const string TEVENT_CROSS_VERTICAL = "Crosses Vertical Line...";
public const string TEVENT_GLOBAL_SET = "Global is set...";
public const string TEVENT_GLOBAL_CLEAR = "Global is clear...";
public const string TEVENT_FAKES_DESTROYED = "Destroyed, Fakes, All...";
public const string TEVENT_LOW_POWER = "Low Power...";
public const string TEVENT_ALL_BRIDGES_DESTROYED = "All bridges destroyed";
public const string TEVENT_BUILDING_EXISTS = "Building exists...";
private static readonly string[] Types;
static EventTypes()
{
Types =
(from field in typeof(EventTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsLiteral && !field.IsInitOnly && typeof(string).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as string).ToArray();
}
public static IEnumerable<string> GetTypes()
{
return Types;
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,41 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using System.ComponentModel;
namespace MobiusEditor.RedAlert
{
public class House : Model.House
{
public House(Model.HouseType type)
: base(type)
{
}
[DefaultValue(150)]
public int MaxInfantry { get; set; }
[DefaultValue(150)]
public int MaxVessel { get; set; }
[DefaultValue(99)]
public int TechLevel { get; set; }
[DefaultValue(5)]
public int IQ { get; set; }
[DefaultValue(false)]
public bool PlayerControl { get; set; }
}
}

View file

@ -0,0 +1,65 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class HouseTypes
{
public static readonly HouseType Spain = new HouseType(0, "Spain", "SPAIN");
public static readonly HouseType Greece = new HouseType(1, "Greece", "GREECE");
public static readonly HouseType USSR = new HouseType(2, "USSR", "USSR");
public static readonly HouseType England = new HouseType(3, "England", "ENGLAND");
public static readonly HouseType Ukraine = new HouseType(4, "Ukraine", "UKRAINE");
public static readonly HouseType Germany = new HouseType(5, "Germany", "GERMANY");
public static readonly HouseType France = new HouseType(6, "France", "FRANCE");
public static readonly HouseType Turkey = new HouseType(7, "Turkey", "TURKEY");
public static readonly HouseType Good = new HouseType(8, "GoodGuy", "GOOD");
public static readonly HouseType Bad = new HouseType(9, "BadGuy", "BAD");
public static readonly HouseType Neutral = new HouseType(10, "Neutral");
public static readonly HouseType Special = new HouseType(11, "Special");
public static readonly HouseType Multi1 = new HouseType(12, "Multi1", "MULTI1");
public static readonly HouseType Multi2 = new HouseType(13, "Multi2", "MULTI2");
public static readonly HouseType Multi3 = new HouseType(14, "Multi3", "MULTI3");
public static readonly HouseType Multi4 = new HouseType(15, "Multi4", "MULTI4");
public static readonly HouseType Multi5 = new HouseType(16, "Multi5", "MULTI5");
public static readonly HouseType Multi6 = new HouseType(17, "Multi6", "MULTI6");
public static readonly HouseType Multi7 = new HouseType(18, "Multi7", "MULTI7");
public static readonly HouseType Multi8 = new HouseType(19, "Multi8", "MULTI8");
private static readonly HouseType[] Types;
static HouseTypes()
{
Types =
(from field in typeof(HouseTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(HouseType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as HouseType).ToArray();
}
public static IEnumerable<HouseType> GetTypes()
{
return Types;
}
public static string GetBasePlayer(string player)
{
return (USSR.Equals(player) || Ukraine.Equals(player) || Bad.Equals(player)) ? Good.Name : Bad.Name;
}
}
}

View file

@ -0,0 +1,66 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class InfantryTypes
{
public static readonly InfantryType E1 = new InfantryType(0, "e1", "TEXT_UNIT_RA_E1", "Greece");
public static readonly InfantryType E2 = new InfantryType(1, "e2", "TEXT_UNIT_RA_E2", "USSR");
public static readonly InfantryType E3 = new InfantryType(2, "e3", "TEXT_UNIT_RA_E3", "Greece");
public static readonly InfantryType E4 = new InfantryType(3, "e4", "TEXT_UNIT_RA_E4", "USSR");
public static readonly InfantryType E6 = new InfantryType(4, "e6", "TEXT_UNIT_RA_E6", "USSR");
public static readonly InfantryType E7 = new InfantryType(5, "e7", "TEXT_UNIT_RA_E7", "USSR");
public static readonly InfantryType E8 = new InfantryType(6, "spy", "TEXT_UNIT_RA_SPY", "Greece");
public static readonly InfantryType E9 = new InfantryType(7, "thf", "TEXT_UNIT_RA_THF", "Greece");
public static readonly InfantryType Medic = new InfantryType(8, "medi", "TEXT_UNIT_RA_MEDI", "Greece");
public static readonly InfantryType General = new InfantryType(9, "gnrl", "TEXT_UNIT_RA_GNRL", "Greece");
public static readonly InfantryType Dog = new InfantryType(10, "dog", "TEXT_UNIT_RA_DOG", "USSR");
public static readonly InfantryType C1 = new InfantryType(11, "c1", "TEXT_UNIT_TITLE_CIV1", "Neutral");
public static readonly InfantryType C2 = new InfantryType(12, "c2", "TEXT_UNIT_TITLE_CIV2", "Neutral");
public static readonly InfantryType C3 = new InfantryType(13, "c3", "TEXT_UNIT_TITLE_CIV3", "Neutral");
public static readonly InfantryType C4 = new InfantryType(14, "c4", "TEXT_UNIT_TITLE_CIV4", "Neutral");
public static readonly InfantryType C5 = new InfantryType(15, "c5", "TEXT_UNIT_TITLE_CIV5", "Neutral");
public static readonly InfantryType C6 = new InfantryType(16, "c6", "TEXT_UNIT_TITLE_CIV6", "Neutral");
public static readonly InfantryType C7 = new InfantryType(17, "c7", "TEXT_UNIT_TITLE_CIV7", "Neutral");
public static readonly InfantryType C8 = new InfantryType(18, "c8", "TEXT_UNIT_TITLE_CIV8", "Neutral");
public static readonly InfantryType C9 = new InfantryType(19, "c9", "TEXT_UNIT_TITLE_CIV9", "Neutral");
public static readonly InfantryType C10 = new InfantryType(20, "c10", "TEXT_UNIT_RA_SCIENTIST", "Neutral");
public static readonly InfantryType Einstein = new InfantryType(21, "einstein", "TEXT_UNIT_RA_EINSTEIN", "Neutral");
public static readonly InfantryType Delphi = new InfantryType(22, "delphi", "TEXT_UNIT_RA_DELPHI", "Neutral");
public static readonly InfantryType DrChan = new InfantryType(23, "chan", "TEXT_UNIT_TITLE_CHAN", "Neutral");
public static readonly InfantryType ShockTrooper = new InfantryType(24, "shok", "TEXT_UNIT_RA_SHOK", "USSR");
public static readonly InfantryType Mechanic = new InfantryType(25, "mech", "TEXT_UNIT_RA_MECH", "Greece");
private static readonly InfantryType[] Types;
static InfantryTypes()
{
Types =
(from field in typeof(InfantryTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(InfantryType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as InfantryType).ToArray();
}
public static IEnumerable<InfantryType> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,53 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using System.Collections.Generic;
namespace MobiusEditor.RedAlert
{
public static class MissionTypes
{
private static readonly string[] Types = new string[]
{
"Sleep",
"Attack",
"Move",
"QMove",
"Retreat",
"Guard",
"Sticky",
"Enter",
"Capture",
"Harvest",
"Area Guard",
"Return",
"Stop",
"Ambush",
"Hunt",
"Unload",
"Sabotage",
"Construction",
"Selling",
"Repair",
"Rescue",
"Missile",
"Harmless"
};
public static IEnumerable<string> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,65 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class OverlayTypes
{
public static readonly OverlayType Sandbag = new OverlayType(0, "sbag", "TEXT_STRUCTURE_RA_SBAG", OverlayTypeFlag.Wall);
public static readonly OverlayType Cyclone = new OverlayType(1, "cycl", "TEXT_STRUCTURE_RA_CYCL", OverlayTypeFlag.Wall);
public static readonly OverlayType Brick = new OverlayType(2, "brik", "TEXT_STRUCTURE_RA_BRIK", OverlayTypeFlag.Wall);
public static readonly OverlayType Barbwire = new OverlayType(3, "barb", "TEXT_STRUCTURE_RA_BARB", OverlayTypeFlag.Wall);
public static readonly OverlayType Wood = new OverlayType(4, "wood", "TEXT_STRUCTURE_TD_WOOD", OverlayTypeFlag.Wall);
public static readonly OverlayType Gold1 = new OverlayType(5, "gold01", OverlayTypeFlag.TiberiumOrGold);
public static readonly OverlayType Gold2 = new OverlayType(6, "gold02", OverlayTypeFlag.TiberiumOrGold);
public static readonly OverlayType Gold3 = new OverlayType(7, "gold03", OverlayTypeFlag.TiberiumOrGold);
public static readonly OverlayType Gold4 = new OverlayType(8, "gold04", OverlayTypeFlag.TiberiumOrGold);
public static readonly OverlayType Gems1 = new OverlayType(9, "gem01", OverlayTypeFlag.Gems);
public static readonly OverlayType Gems2 = new OverlayType(10, "gem02", OverlayTypeFlag.Gems);
public static readonly OverlayType Gems3 = new OverlayType(11, "gem03", OverlayTypeFlag.Gems);
public static readonly OverlayType Gems4 = new OverlayType(12, "gem04", OverlayTypeFlag.Gems);
public static readonly OverlayType V12 = new OverlayType(13, "v12", "TEXT_STRUCTURE_RA_CIVILIAN", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly OverlayType V13 = new OverlayType(14, "v13", "TEXT_STRUCTURE_RA_CIVILIAN", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly OverlayType V14 = new OverlayType(15, "v14", "TEXT_STRUCTURE_TITLE_CIV13", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly OverlayType V15 = new OverlayType(16, "v15", "TEXT_STRUCTURE_TITLE_CIV14", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly OverlayType V16 = new OverlayType(17, "v16", "TEXT_STRUCTURE_TITLE_CIV15", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly OverlayType V17 = new OverlayType(18, "v17", "TEXT_STRUCTURE_TITLE_CIV16", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly OverlayType V18 = new OverlayType(19, "v18", "TEXT_STRUCTURE_TITLE_CIV17", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly OverlayType FlagSpot = new OverlayType(20, "fpls", OverlayTypeFlag.Flag);
public static readonly OverlayType WoodCrate = new OverlayType(21, "wcrate", OverlayTypeFlag.Crate);
public static readonly OverlayType SteelCrate = new OverlayType(22, "scrate", OverlayTypeFlag.Crate);
public static readonly OverlayType Fence = new OverlayType(23, "fenc", "TEXT_STRUCTURE_RA_FENC", OverlayTypeFlag.Wall);
public static readonly OverlayType WaterCrate = new OverlayType(24, "wwcrate", OverlayTypeFlag.Crate);
private static OverlayType[] Types;
static OverlayTypes()
{
Types =
(from field in typeof(OverlayTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(OverlayType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as OverlayType).ToArray();
}
public static IEnumerable<OverlayType> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,56 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class SmudgeTypes
{
public static readonly SmudgeType Crater1 = new SmudgeType(0, "cr1");
public static readonly SmudgeType Crater2 = new SmudgeType(1, "cr2");
public static readonly SmudgeType Crater3 = new SmudgeType(2, "cr3");
public static readonly SmudgeType Crater4 = new SmudgeType(3, "cr4");
public static readonly SmudgeType Crater5 = new SmudgeType(4, "cr5");
public static readonly SmudgeType Crater6 = new SmudgeType(5, "cr6");
public static readonly SmudgeType Scorch1 = new SmudgeType(6, "sc1");
public static readonly SmudgeType Scorch2 = new SmudgeType(7, "sc2");
public static readonly SmudgeType Scorch3 = new SmudgeType(8, "sc3");
public static readonly SmudgeType Scorch4 = new SmudgeType(9, "sc4");
public static readonly SmudgeType Scorch5 = new SmudgeType(10, "sc5");
public static readonly SmudgeType Scorch6 = new SmudgeType(11, "sc6");
public static readonly SmudgeType Bib1 = new SmudgeType(12, "bib1", new Size(4, 2), SmudgeTypeFlag.Bib1);
public static readonly SmudgeType Bib2 = new SmudgeType(13, "bib2", new Size(3, 2), SmudgeTypeFlag.Bib2);
public static readonly SmudgeType Bib3 = new SmudgeType(14, "bib3", new Size(2, 2), SmudgeTypeFlag.Bib3);
private static SmudgeType[] Types;
static SmudgeTypes()
{
Types =
(from field in typeof(SmudgeTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(SmudgeType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as SmudgeType).ToArray();
}
public static IEnumerable<SmudgeType> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,47 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using System.Collections.Generic;
namespace MobiusEditor.RedAlert
{
public static class TeamMissionTypes
{
private static readonly string[] Types = new string[]
{
"Attack...",
"Attack Waypoint...",
"Change Formation to...",
"Move to waypoint...",
"Move to Cell...",
"Guard area (1/10th min)...",
"Jump to line #...",
"Attack Tarcom",
"Unload",
"Deploy",
"Follow friendlies",
"Do this...",
"Set global...",
"Invulnerable",
"Load onto Transport",
"Spy on bldg @ waypt...",
"Patrol to waypoint..."
};
public static IEnumerable<string> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,441 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class TemplateTypes
{
public static readonly TemplateType Clear = new TemplateType(0, "clear1", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow, TheaterTypes.Interior }, TemplateTypeFlag.Clear);
public static readonly TemplateType Water = new TemplateType(1, "w1", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, TemplateTypeFlag.Water);
public static readonly TemplateType Water2 = new TemplateType(2, "w2", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, TemplateTypeFlag.Water);
public static readonly TemplateType Shore01 = new TemplateType(3, "sh01", 4, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore02 = new TemplateType(4, "sh02", 5, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore03 = new TemplateType(5, "sh03", 3, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore04 = new TemplateType(6, "sh04", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore05 = new TemplateType(7, "sh05", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore06 = new TemplateType(8, "sh06", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore07 = new TemplateType(9, "sh07", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore08 = new TemplateType(10, "sh08", 1, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore09 = new TemplateType(11, "sh09", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore10 = new TemplateType(12, "sh10", 5, 6, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore11 = new TemplateType(13, "sh11", 4, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore12 = new TemplateType(14, "sh12", 3, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore13 = new TemplateType(15, "sh13", 6, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore14 = new TemplateType(16, "sh14", 4, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore15 = new TemplateType(17, "sh15", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore16 = new TemplateType(18, "sh16", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore17 = new TemplateType(19, "sh17", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore18 = new TemplateType(20, "sh18", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore19 = new TemplateType(21, "sh19", 4, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore20 = new TemplateType(22, "sh20", 5, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore21 = new TemplateType(23, "sh21", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore22 = new TemplateType(24, "sh22", 6, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore23 = new TemplateType(25, "sh23", 5, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore24 = new TemplateType(26, "sh24", 3, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore25 = new TemplateType(27, "sh25", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore26 = new TemplateType(28, "sh26", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore27 = new TemplateType(29, "sh27", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore28 = new TemplateType(30, "sh28", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore29 = new TemplateType(31, "sh29", 1, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore30 = new TemplateType(32, "sh30", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore31 = new TemplateType(33, "sh31", 6, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore32 = new TemplateType(34, "sh32", 4, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore33 = new TemplateType(35, "sh33", 3, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore34 = new TemplateType(36, "sh34", 6, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore35 = new TemplateType(37, "sh35", 4, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore36 = new TemplateType(38, "sh36", 4, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore37 = new TemplateType(39, "sh37", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore38 = new TemplateType(40, "sh38", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore39 = new TemplateType(41, "sh39", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore40 = new TemplateType(42, "sh40", 5, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore41 = new TemplateType(43, "sh41", 4, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore42 = new TemplateType(44, "sh42", 4, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore43 = new TemplateType(45, "sh43", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore44 = new TemplateType(46, "sh44", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore45 = new TemplateType(47, "sh45", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore46 = new TemplateType(48, "sh46", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore47 = new TemplateType(49, "sh47", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore48 = new TemplateType(50, "sh48", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore49 = new TemplateType(51, "sh49", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore50 = new TemplateType(52, "sh50", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore51 = new TemplateType(53, "sh51", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore52 = new TemplateType(54, "sh52", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore53 = new TemplateType(55, "sh53", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore54 = new TemplateType(56, "sh54", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore55 = new TemplateType(57, "sh55", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Shore56 = new TemplateType(58, "sh56", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff01 = new TemplateType(59, "wc01", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff02 = new TemplateType(60, "wc02", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff03 = new TemplateType(61, "wc03", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff04 = new TemplateType(62, "wc04", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff05 = new TemplateType(63, "wc05", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff06 = new TemplateType(64, "wc06", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff07 = new TemplateType(65, "wc07", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff08 = new TemplateType(66, "wc08", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff09 = new TemplateType(67, "wc09", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff10 = new TemplateType(68, "wc10", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff11 = new TemplateType(69, "wc11", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff12 = new TemplateType(70, "wc12", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff13 = new TemplateType(71, "wc13", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff14 = new TemplateType(72, "wc14", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff15 = new TemplateType(73, "wc15", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff16 = new TemplateType(74, "wc16", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff17 = new TemplateType(75, "wc17", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff18 = new TemplateType(76, "wc18", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff19 = new TemplateType(77, "wc19", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff20 = new TemplateType(78, "wc20", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff21 = new TemplateType(79, "wc21", 1, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff22 = new TemplateType(80, "wc22", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff23 = new TemplateType(81, "wc23", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff24 = new TemplateType(82, "wc24", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff25 = new TemplateType(83, "wc25", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff26 = new TemplateType(84, "wc26", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff27 = new TemplateType(85, "wc27", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff28 = new TemplateType(86, "wc28", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff29 = new TemplateType(87, "wc29", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff30 = new TemplateType(88, "wc30", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff31 = new TemplateType(89, "wc31", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff32 = new TemplateType(90, "wc32", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff33 = new TemplateType(91, "wc33", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff34 = new TemplateType(92, "wc34", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff35 = new TemplateType(93, "wc35", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff36 = new TemplateType(94, "wc36", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff37 = new TemplateType(95, "wc37", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ShoreCliff38 = new TemplateType(96, "wc38", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Boulder1 = new TemplateType(97, "b1", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Boulder2 = new TemplateType(98, "b2", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Boulder3 = new TemplateType(99, "b3", 3, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
//public static readonly TemplateType Boulder4 = new TemplateType(100, "b4", 0, 0, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
//public static readonly TemplateType Boulder5 = new TemplateType(101, "b5", 0, 0, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
//public static readonly TemplateType Boulder6 = new TemplateType(102, "b6", 0, 0, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Patch01 = new TemplateType(103, "p01", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Patch02 = new TemplateType(104, "p02", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Patch03 = new TemplateType(105, "p03", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Patch04 = new TemplateType(106, "p04", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Patch07 = new TemplateType(107, "p07", 4, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Patch08 = new TemplateType(108, "p08", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Patch13 = new TemplateType(109, "p13", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Patch14 = new TemplateType(110, "p14", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
//public static readonly TemplateType Patch15 = new TemplateType(111, "p15", 0, 0, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River01 = new TemplateType(112, "rv01", 5, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River02 = new TemplateType(113, "rv02", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River03 = new TemplateType(114, "rv03", 4, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River04 = new TemplateType(115, "rv04", 4, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River05 = new TemplateType(116, "rv05", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River06 = new TemplateType(117, "rv06", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River07 = new TemplateType(118, "rv07", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River08 = new TemplateType(119, "rv08", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River09 = new TemplateType(120, "rv09", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River10 = new TemplateType(121, "rv10", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River11 = new TemplateType(122, "rv11", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River12 = new TemplateType(123, "rv12", 3, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River13 = new TemplateType(124, "rv13", 4, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Falls1 = new TemplateType(125, "falls1", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Falls1a = new TemplateType(126, "falls1a", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Falls2 = new TemplateType(127, "falls2", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Falls2a = new TemplateType(128, "falls2a", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Ford1 = new TemplateType(129, "ford1", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Ford2 = new TemplateType(130, "ford2", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge1 = new TemplateType(131, "bridge1", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge1d = new TemplateType(132, "bridge1d", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge2 = new TemplateType(133, "bridge2", 5, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge2d = new TemplateType(134, "bridge2d", 5, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope01 = new TemplateType(135, "s01", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope02 = new TemplateType(136, "s02", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope03 = new TemplateType(137, "s03", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope04 = new TemplateType(138, "s04", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope05 = new TemplateType(139, "s05", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope06 = new TemplateType(140, "s06", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope07 = new TemplateType(141, "s07", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope08 = new TemplateType(142, "s08", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope09 = new TemplateType(143, "s09", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope10 = new TemplateType(144, "s10", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope11 = new TemplateType(145, "s11", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope12 = new TemplateType(146, "s12", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope13 = new TemplateType(147, "s13", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope14 = new TemplateType(148, "s14", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope15 = new TemplateType(149, "s15", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope16 = new TemplateType(150, "s16", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope17 = new TemplateType(151, "s17", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope18 = new TemplateType(152, "s18", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope19 = new TemplateType(153, "s19", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope20 = new TemplateType(154, "s20", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope21 = new TemplateType(155, "s21", 1, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope22 = new TemplateType(156, "s22", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope23 = new TemplateType(157, "s23", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope24 = new TemplateType(158, "s24", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope25 = new TemplateType(159, "s25", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope26 = new TemplateType(160, "s26", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope27 = new TemplateType(161, "s27", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope28 = new TemplateType(162, "s28", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope29 = new TemplateType(163, "s29", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope30 = new TemplateType(164, "s30", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope31 = new TemplateType(165, "s31", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope32 = new TemplateType(166, "s32", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope33 = new TemplateType(167, "s33", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope34 = new TemplateType(168, "s34", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope35 = new TemplateType(169, "s35", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope36 = new TemplateType(170, "s36", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope37 = new TemplateType(171, "s37", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Slope38 = new TemplateType(172, "s38", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road01 = new TemplateType(173, "d01", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road02 = new TemplateType(174, "d02", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road03 = new TemplateType(175, "d03", 1, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road04 = new TemplateType(176, "d04", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road05 = new TemplateType(177, "d05", 3, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road06 = new TemplateType(178, "d06", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road07 = new TemplateType(179, "d07", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road08 = new TemplateType(180, "d08", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road09 = new TemplateType(181, "d09", 4, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road10 = new TemplateType(182, "d10", 4, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road11 = new TemplateType(183, "d11", 2, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road12 = new TemplateType(184, "d12", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road13 = new TemplateType(185, "d13", 4, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road14 = new TemplateType(186, "d14", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road15 = new TemplateType(187, "d15", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road16 = new TemplateType(188, "d16", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road17 = new TemplateType(189, "d17", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road18 = new TemplateType(190, "d18", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road19 = new TemplateType(191, "d19", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road20 = new TemplateType(192, "d20", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road21 = new TemplateType(193, "d21", 3, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road22 = new TemplateType(194, "d22", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road23 = new TemplateType(195, "d23", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road24 = new TemplateType(196, "d24", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road25 = new TemplateType(197, "d25", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road26 = new TemplateType(198, "d26", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road27 = new TemplateType(199, "d27", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road28 = new TemplateType(200, "d28", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road29 = new TemplateType(201, "d29", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road30 = new TemplateType(202, "d30", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road31 = new TemplateType(203, "d31", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road32 = new TemplateType(204, "d32", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road33 = new TemplateType(205, "d33", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road34 = new TemplateType(206, "d34", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road35 = new TemplateType(207, "d35", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road36 = new TemplateType(208, "d36", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road37 = new TemplateType(209, "d37", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road38 = new TemplateType(210, "d38", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road39 = new TemplateType(211, "d39", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road40 = new TemplateType(212, "d40", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road41 = new TemplateType(213, "d41", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road42 = new TemplateType(214, "d42", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road43 = new TemplateType(215, "d43", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough01 = new TemplateType(216, "rf01", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough02 = new TemplateType(217, "rf02", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough03 = new TemplateType(218, "rf03", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough04 = new TemplateType(219, "rf04", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough05 = new TemplateType(220, "rf05", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough06 = new TemplateType(221, "rf06", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough07 = new TemplateType(222, "rf07", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough08 = new TemplateType(223, "rf08", 1, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough09 = new TemplateType(224, "rf09", 1, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough10 = new TemplateType(225, "rf10", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Rough11 = new TemplateType(226, "rf11", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road44 = new TemplateType(227, "d44", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Road45 = new TemplateType(228, "d45", 1, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River14 = new TemplateType(229, "rv14", 1, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType River15 = new TemplateType(230, "rv15", 2, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType RiverCliff01 = new TemplateType(231, "rc01", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType RiverCliff02 = new TemplateType(232, "rc02", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType RiverCliff03 = new TemplateType(233, "rc03", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType RiverCliff04 = new TemplateType(234, "rc04", 2, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge1a = new TemplateType(235, "br1a", 4, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge1b = new TemplateType(236, "br1b", 4, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge1c = new TemplateType(237, "br1c", 4, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge2a = new TemplateType(238, "br2a", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge2b = new TemplateType(239, "br2b", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge2c = new TemplateType(240, "br2c", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge3a = new TemplateType(241, "br3a", 4, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge3b = new TemplateType(242, "br3b", 4, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge3c = new TemplateType(243, "br3c", 4, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge3d = new TemplateType(244, "br3d", 4, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge3e = new TemplateType(245, "br3e", 4, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge3f = new TemplateType(246, "br3f", 4, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType F01 = new TemplateType(247, "f01", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType F02 = new TemplateType(248, "f02", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType F03 = new TemplateType(249, "f03", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType F04 = new TemplateType(250, "f04", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType F05 = new TemplateType(251, "f05", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType F06 = new TemplateType(252, "f06", 3, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType ARRO0001 = new TemplateType(253, "arro0001", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0002 = new TemplateType(254, "arro0002", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0003 = new TemplateType(255, "arro0003", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0004 = new TemplateType(256, "arro0004", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0005 = new TemplateType(257, "arro0005", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0006 = new TemplateType(258, "arro0006", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0007 = new TemplateType(259, "arro0007", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0008 = new TemplateType(260, "arro0008", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0009 = new TemplateType(261, "arro0009", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0010 = new TemplateType(262, "arro0010", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0011 = new TemplateType(263, "arro0011", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0012 = new TemplateType(264, "arro0012", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0013 = new TemplateType(265, "arro0013", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0014 = new TemplateType(266, "arro0014", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType ARRO0015 = new TemplateType(267, "arro0015", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType FLOR0001 = new TemplateType(268, "flor0001", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType FLOR0002 = new TemplateType(269, "flor0002", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType FLOR0003 = new TemplateType(270, "flor0003", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType FLOR0004 = new TemplateType(271, "flor0004", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType FLOR0005 = new TemplateType(272, "flor0005", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType FLOR0006 = new TemplateType(273, "flor0006", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType FLOR0007 = new TemplateType(274, "flor0007", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GFLR0001 = new TemplateType(275, "gflr0001", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GFLR0002 = new TemplateType(276, "gflr0002", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GFLR0003 = new TemplateType(277, "gflr0003", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GFLR0004 = new TemplateType(278, "gflr0004", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GFLR0005 = new TemplateType(279, "gflr0005", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0001 = new TemplateType(280, "gstr0001", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0002 = new TemplateType(281, "gstr0002", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0003 = new TemplateType(282, "gstr0003", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0004 = new TemplateType(283, "gstr0004", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0005 = new TemplateType(284, "gstr0005", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0006 = new TemplateType(285, "gstr0006", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0007 = new TemplateType(286, "gstr0007", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0008 = new TemplateType(287, "gstr0008", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0009 = new TemplateType(288, "gstr0009", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0010 = new TemplateType(289, "gstr0010", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType GSTR0011 = new TemplateType(290, "gstr0011", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0001 = new TemplateType(291, "lwal0001", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0002 = new TemplateType(292, "lwal0002", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0003 = new TemplateType(293, "lwal0003", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0004 = new TemplateType(294, "lwal0004", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0005 = new TemplateType(295, "lwal0005", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0006 = new TemplateType(296, "lwal0006", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0007 = new TemplateType(297, "lwal0007", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0008 = new TemplateType(298, "lwal0008", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0009 = new TemplateType(299, "lwal0009", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0010 = new TemplateType(300, "lwal0010", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0011 = new TemplateType(301, "lwal0011", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0012 = new TemplateType(302, "lwal0012", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0013 = new TemplateType(303, "lwal0013", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0014 = new TemplateType(304, "lwal0014", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0015 = new TemplateType(305, "lwal0015", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0016 = new TemplateType(306, "lwal0016", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0017 = new TemplateType(307, "lwal0017", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0018 = new TemplateType(308, "lwal0018", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0019 = new TemplateType(309, "lwal0019", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0020 = new TemplateType(310, "lwal0020", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0021 = new TemplateType(311, "lwal0021", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0022 = new TemplateType(312, "lwal0022", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0023 = new TemplateType(313, "lwal0023", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0024 = new TemplateType(314, "lwal0024", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0025 = new TemplateType(315, "lwal0025", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0026 = new TemplateType(316, "lwal0026", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType LWAL0027 = new TemplateType(317, "lwal0027", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0001 = new TemplateType(318, "strp0001", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0002 = new TemplateType(319, "strp0002", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0003 = new TemplateType(320, "strp0003", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0004 = new TemplateType(321, "strp0004", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0005 = new TemplateType(322, "strp0005", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0006 = new TemplateType(323, "strp0006", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0007 = new TemplateType(324, "strp0007", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0008 = new TemplateType(325, "strp0008", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0009 = new TemplateType(326, "strp0009", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0010 = new TemplateType(327, "strp0010", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType STRP0011 = new TemplateType(328, "strp0011", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0001 = new TemplateType(329, "wall0001", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0002 = new TemplateType(330, "wall0002", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0003 = new TemplateType(331, "wall0003", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0004 = new TemplateType(332, "wall0004", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0005 = new TemplateType(333, "wall0005", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0006 = new TemplateType(334, "wall0006", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0007 = new TemplateType(335, "wall0007", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0008 = new TemplateType(336, "wall0008", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0009 = new TemplateType(337, "wall0009", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0010 = new TemplateType(338, "wall0010", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0011 = new TemplateType(339, "wall0011", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0012 = new TemplateType(340, "wall0012", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0013 = new TemplateType(341, "wall0013", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0014 = new TemplateType(342, "wall0014", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0015 = new TemplateType(343, "wall0015", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0016 = new TemplateType(344, "wall0016", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0017 = new TemplateType(345, "wall0017", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0018 = new TemplateType(346, "wall0018", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0019 = new TemplateType(347, "wall0019", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0020 = new TemplateType(348, "wall0020", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0021 = new TemplateType(349, "wall0021", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0022 = new TemplateType(350, "wall0022", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0023 = new TemplateType(351, "wall0023", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0024 = new TemplateType(352, "wall0024", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0025 = new TemplateType(353, "wall0025", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0026 = new TemplateType(354, "wall0026", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0027 = new TemplateType(355, "wall0027", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0028 = new TemplateType(356, "wall0028", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0029 = new TemplateType(357, "wall0029", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0030 = new TemplateType(358, "wall0030", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0031 = new TemplateType(359, "wall0031", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0032 = new TemplateType(360, "wall0032", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0033 = new TemplateType(361, "wall0033", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0034 = new TemplateType(362, "wall0034", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0035 = new TemplateType(363, "wall0035", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0036 = new TemplateType(364, "wall0036", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0037 = new TemplateType(365, "wall0037", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0038 = new TemplateType(366, "wall0038", 2, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0039 = new TemplateType(367, "wall0039", 2, 3, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0040 = new TemplateType(368, "wall0040", 2, 3, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0041 = new TemplateType(369, "wall0041", 2, 3, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0042 = new TemplateType(370, "wall0042", 2, 3, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0043 = new TemplateType(371, "wall0043", 3, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0044 = new TemplateType(372, "wall0044", 3, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0045 = new TemplateType(373, "wall0045", 3, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0046 = new TemplateType(374, "wall0046", 3, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0047 = new TemplateType(375, "wall0047", 3, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0048 = new TemplateType(376, "wall0048", 3, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType WALL0049 = new TemplateType(377, "wall0049", 3, 3, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Bridge1h = new TemplateType(378, "bridge1h", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge2h = new TemplateType(379, "bridge2h", 5, 2, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge1ax = new TemplateType(380, "br1x", 5, 3, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge2ax = new TemplateType(381, "br2x", 5, 1, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge1x = new TemplateType(382, "bridge1x", 5, 4, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Bridge2x = new TemplateType(383, "bridge2x", 5, 5, new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow });
public static readonly TemplateType Xtra0001 = new TemplateType(384, "xtra0001", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0002 = new TemplateType(385, "xtra0002", 2, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0003 = new TemplateType(386, "xtra0003", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0004 = new TemplateType(387, "xtra0004", 1, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0005 = new TemplateType(388, "xtra0005", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0006 = new TemplateType(389, "xtra0006", 2, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0007 = new TemplateType(390, "xtra0007", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0008 = new TemplateType(391, "xtra0008", 1, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0009 = new TemplateType(392, "xtra0009", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0010 = new TemplateType(393, "xtra0010", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0011 = new TemplateType(394, "xtra0011", 1, 1, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0012 = new TemplateType(395, "xtra0012", 1, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0013 = new TemplateType(396, "xtra0013", 1, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0014 = new TemplateType(397, "xtra0014", 3, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0015 = new TemplateType(398, "xtra0015", 3, 2, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType Xtra0016 = new TemplateType(399, "xtra0016", 2, 4, new TheaterType[] { TheaterTypes.Interior });
public static readonly TemplateType AntHill = new TemplateType(400, "hill01", 4, 3, new TheaterType[] { TheaterTypes.Temperate });
private static TemplateType[] Types;
static TemplateTypes()
{
Types =
(from field in typeof(TemplateTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(TemplateType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as TemplateType).ToArray();
}
public static IEnumerable<TemplateType> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,76 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public class TerrainTypes
{
public static readonly TerrainType Tree1Class = new TerrainType(0, "t01", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree2Class = new TerrainType(1, "t02", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree3Class = new TerrainType(2, "t03", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree5Class = new TerrainType(3, "t05", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree6Class = new TerrainType(4, "t06", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree7Class = new TerrainType(5, "t07", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree8Class = new TerrainType(6, "t08", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Tree10Class = new TerrainType(7, "t10", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, true } });
public static readonly TerrainType Tree11Class = new TerrainType(8, "t11", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, true } });
public static readonly TerrainType Tree12Class = new TerrainType(9, "t12", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree13Class = new TerrainType(10, "t13", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree14Class = new TerrainType(11, "t14", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, true } });
public static readonly TerrainType Tree15Class = new TerrainType(12, "t15", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, true } });
public static readonly TerrainType Tree16Class = new TerrainType(13, "t16", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Tree17Class = new TerrainType(14, "t17", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 2] { { false, false }, { true, false } });
public static readonly TerrainType Clump1Class = new TerrainType(15, "tc01", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 3] { { false, false, false }, { true, true, false } });
public static readonly TerrainType Clump2Class = new TerrainType(16, "tc02", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 3] { { false, true, false }, { true, true, false } });
public static readonly TerrainType Clump3Class = new TerrainType(17, "tc03", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[2, 3] { { true, true, false }, { true, true, false } });
public static readonly TerrainType Clump4Class = new TerrainType(18, "tc04", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[3, 4] { { false, false, false, false }, { true, true, true, false }, { true, false, false, false } });
public static readonly TerrainType Clump5Class = new TerrainType(19, "tc05", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[3, 4] { { false, false, true, false }, { true, true, true, false }, { false, true, true, false } });
public static readonly TerrainType Ice01 = new TerrainType(20, "ice01", new TheaterType[] { TheaterTypes.Snow }, new bool[2, 2] { { true, true }, { true, true } }, TemplateTypeFlag.Water);
public static readonly TerrainType Ice02 = new TerrainType(21, "ice02", new TheaterType[] { TheaterTypes.Snow }, new bool[2, 2] { { true, false }, { true, false } }, TemplateTypeFlag.Water);
public static readonly TerrainType Ice03 = new TerrainType(22, "ice03", new TheaterType[] { TheaterTypes.Snow }, new bool[1, 2] { { true, true } }, TemplateTypeFlag.Water);
public static readonly TerrainType Ice04 = new TerrainType(23, "ice04", new TheaterType[] { TheaterTypes.Snow }, new bool[1, 2] { { true, false } }, TemplateTypeFlag.Water);
public static readonly TerrainType Ice05 = new TerrainType(24, "ice05", new TheaterType[] { TheaterTypes.Snow }, new bool[1, 2] { { true, false } }, TemplateTypeFlag.Water);
public static readonly TerrainType Boxes01 = new TerrainType(25, "boxes01", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Boxes02 = new TerrainType(26, "boxes02", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Boxes03 = new TerrainType(27, "boxes03", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Boxes04 = new TerrainType(28, "boxes04", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Boxes05 = new TerrainType(29, "boxes05", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Boxes06 = new TerrainType(30, "boxes06", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Boxes07 = new TerrainType(31, "boxes07", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Boxes08 = new TerrainType(32, "boxes08", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Boxes09 = new TerrainType(33, "boxes09", new TheaterType[] { TheaterTypes.Interior }, new bool[1, 2] { { true, false } });
public static readonly TerrainType Mine = new TerrainType(34, "mine", new TheaterType[] { TheaterTypes.Temperate, TheaterTypes.Snow }, new bool[1, 2] { { true, false } }, TemplateTypeFlag.OreMine);
private static TerrainType[] Types;
static TerrainTypes()
{
Types =
(from field in typeof(TerrainTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(TerrainType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as TerrainType).ToArray();
}
public static IEnumerable<TerrainType> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,46 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using MobiusEditor.Utility;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class TheaterTypes
{
private static readonly IEnumerable<string> commonTilesets = new string[] { "RA_Units", "RA_Structures", "RA_VFX", "Common_VFX" };
public static readonly TheaterType Temperate = new TheaterType(0, "temperate", "RA_Terrain_Temperate".Yield().Concat(commonTilesets));
public static readonly TheaterType Snow = new TheaterType(1, "snow", "RA_Terrain_Snow".Yield().Concat(commonTilesets));
public static readonly TheaterType Interior = new TheaterType(2, "interior", "RA_Terrain_Interior".Yield().Concat(commonTilesets));
private static TheaterType[] Types;
static TheaterTypes()
{
Types =
(from field in typeof(TheaterTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(TheaterType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as TheaterType).ToArray();
}
public static IEnumerable<TheaterType> GetTypes()
{
return Types;
}
}
}

View file

@ -0,0 +1,79 @@
//
// Copyright 2020 Electronic Arts Inc.
//
// The Command & Conquer Map Editor 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.
// The Command & Conquer Map Editor 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
using MobiusEditor.Model;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
namespace MobiusEditor.RedAlert
{
public static class UnitTypes
{
public static readonly UnitType HTank = new UnitType(0, "4tnk", "TEXT_UNIT_RA_4TNK", "USSR", true);
public static readonly UnitType MTank = new UnitType(1, "3tnk", "TEXT_UNIT_RA_3TNK", "USSR", true);
public static readonly UnitType MTank2 = new UnitType(2, "2tnk", "TEXT_UNIT_RA_2TNK", "Greece", true);
public static readonly UnitType LTank = new UnitType(3, "1tnk", "TEXT_UNIT_RA_1TNK", "Greece", true);
public static readonly UnitType APC = new UnitType(4, "apc", "TEXT_UNIT_RA_APC", "Greece");
public static readonly UnitType MineLayer = new UnitType(5, "mnly", "TEXT_UNIT_RA_MNLY", "Greece");
public static readonly UnitType Jeep = new UnitType(6, "jeep", "TEXT_UNIT_RA_JEEP", "Greece", true);
public static readonly UnitType Harvester = new UnitType(7, "harv", "TEXT_UNIT_RA_HARV", "Greece");
public static readonly UnitType Arty = new UnitType(8, "arty", "TEXT_UNIT_RA_ARTY", "Greece");
public static readonly UnitType MRJammer = new UnitType(9, "mrj", "TEXT_UNIT_RA_MRJ", "Greece");
public static readonly UnitType MGG = new UnitType(10, "mgg", "TEXT_UNIT_RA_MGG", "Greece");
public static readonly UnitType MCV = new UnitType(11, "mcv", "TEXT_UNIT_RA_MCV", "Greece");
public static readonly UnitType V2Launcher = new UnitType(12, "v2rl", "TEXT_UNIT_RA_V2RL", "USSR");
public static readonly UnitType ConvoyTruck = new UnitType(13, "truk", "TEXT_UNIT_RA_TRUK", "Greece");
public static readonly UnitType Ant1 = new UnitType(14, "ant1", "TEXT_UNIT_RA_ANT1", "Special");
public static readonly UnitType Ant2 = new UnitType(15, "ant2", "TEXT_UNIT_RA_ANT2", "Special");
public static readonly UnitType Ant3 = new UnitType(16, "ant3", "TEXT_UNIT_RA_ANT3", "Special");
public static readonly UnitType Chrono = new UnitType(17, "ctnk", "TEXT_UNIT_RA_CTNK", "Greece");
public static readonly UnitType Tesla = new UnitType(18, "ttnk", "TEXT_UNIT_RA_TTNK", "USSR");
public static readonly UnitType MAD = new UnitType(19, "qtnk", "TEXT_UNIT_RA_QTNK", "Greece");
public static readonly UnitType DemoTruck = new UnitType(20, "dtrk", "TEXT_UNIT_RA_DTRK", "USSR");
public static readonly UnitType Phase = new UnitType(21, "stnk", "TEXT_UNIT_RA_STNK", "Greece", true);
public static readonly UnitType Tran = new UnitType(0 | UnitTypeIDMask.Aircraft, "tran", "TEXT_UNIT_RA_TRAN", "USSR");
public static readonly UnitType Badr = new UnitType(1 | UnitTypeIDMask.Aircraft, "badr", "TEXT_UNIT_RA_BADR", "USSR", false, true);
public static readonly UnitType U2 = new UnitType(2 | UnitTypeIDMask.Aircraft, "u2", "TEXT_UNIT_RA_U2", "USSR", false, true);
public static readonly UnitType Mig = new UnitType(3 | UnitTypeIDMask.Aircraft, "mig", "TEXT_UNIT_RA_MIG", "USSR", false, true);
public static readonly UnitType Yak = new UnitType(4 | UnitTypeIDMask.Aircraft, "yak", "TEXT_UNIT_RA_YAK", "USSR", false, true);
public static readonly UnitType Heli = new UnitType(5 | UnitTypeIDMask.Aircraft, "heli", "TEXT_UNIT_RA_HELI", "Greece");
public static readonly UnitType Hind = new UnitType(6 | UnitTypeIDMask.Aircraft, "hind", "TEXT_UNIT_RA_HIND", "USSR");
public static readonly UnitType Submarine = new UnitType(0 | UnitTypeIDMask.Vessel, "ss", "TEXT_UNIT_RA_SS", "USSR");
public static readonly UnitType Destroyer = new UnitType(1 | UnitTypeIDMask.Vessel, "dd", "TEXT_UNIT_RA_DD", "Greece", true);
public static readonly UnitType Cruiser = new UnitType(2 | UnitTypeIDMask.Vessel, "ca", "TEXT_UNIT_RA_CA", "Greece", true);
public static readonly UnitType Transport = new UnitType(3 | UnitTypeIDMask.Vessel, "lst", "TEXT_UNIT_RA_LST", "Greece");
public static readonly UnitType PTBoat = new UnitType(4 | UnitTypeIDMask.Vessel, "pt", "TEXT_UNIT_RA_PT", "Greece", true);
public static readonly UnitType MissileSubmarine = new UnitType(5 | UnitTypeIDMask.Vessel, "msub", "TEXT_UNIT_RA_MSUB", "USSR");
public static readonly UnitType Carrier = new UnitType(6 | UnitTypeIDMask.Vessel, "carr", "TEXT_UNIT_RA_CARR", "Greece");
private static readonly UnitType[] Types;
static UnitTypes()
{
Types =
(from field in typeof(UnitTypes).GetFields(BindingFlags.Static | BindingFlags.Public)
where field.IsInitOnly && typeof(UnitType).IsAssignableFrom(field.FieldType)
select field.GetValue(null) as UnitType).ToArray();
}
public static IEnumerable<UnitType> GetTypes()
{
return Types;
}
}
}