

linedefflags
{
	512 = "PassThru";
}


linedefflagtooltips
{
	512 = "Normally, if you try to pull a switch or use a door, then players are only able to activate\nthe closest linedef with a special. When PassThru is set, your use reaches\nthrough and allows players to activate both this line and whatever is behind this\nline.\nThis does nothing for 1-sided lines because they always block use actions.\n\nNote that if someone plays your map on ZDoom-derived ports like GZDoom or Zandronum,\nthen PassThru will be true for walkover specials & scrollers even when this flag\nis not set, unless you set 'compat_useblocking' in MAPINFO.";
}


// Linedef flags UDMF translation table
// This is needed for copy/paste and prefabs to work properly
// When the UDMF field name is prefixed with ! it is inverted
linedefflagstranslation
{
	512 = "passuse";
}



thingflags
{
	//2048 = "Translucent (25%)";
	//4096 = "Invisible";
	//8192 = "Friendly";
	//16384 = "Frozen while inactive";
}



// Thing flags UDMF translation table
// This is needed for copy/paste and prefabs to work properly
// When the UDMF field name is prefixed with ! it is inverted
thingflagstranslation
{
	//2048 = "translucent";
	//4096 = "invisible";
	//8192 = "friend";
	//16384 = "standing";
}


defaultthingflags
{
	1;
	2;
	4;
}





// Default sector brightness levels
sectorbrightness
{
	255; 248; 240; 232; 224; 216; 208; 200; 192; 184; 176; 168; 160; 152; 144; 136;
	128; 120; 112; 104; 96; 88; 80; 72; 64; 56; 48; 40; 32; 24; 16; 8; 0;
}


/*
TEXTURES AND FLAT SOURCES
This tells Doom Builder where to find the information for textures
and flats in the IWAD file, Addition WAD file and Map WAD file.

Start and end lumps must be given in a structure (of which the
key name doesnt matter) and any textures or flats in between them
are loaded in either the textures category or flats category.

For textures: PNAMES, TEXTURE1 and TEXTURE2 are loaded by default.
*/

textures
{
	edge1
	{
		start = "TX_START";
		end = "TX_END";
	}
}

hires
{
	edge1
	{
		start = "HI_START";
		end = "HI_END";
	}
}



// ***********************************************************
// *                                                         *
// *                       Doom map format                   *
// *                                                         *
// ***********************************************************
mapformat_doom
{
	// The format interface handles the map data format
	formatinterface = "DoomMapSetIO";

	maplumpnames
	{
		include("Doom_misc.cfg", "doommaplumpnames");
		include("Boom_misc.cfg", "boommaplumpnames");
	}


	// Enables support for individual offsets of upper/middle/lower sidedef textures
	localsidedeftextureoffsets = false;


	// Default flags for first new thing
	defaultthingflags
	{
		include("Doom_misc.cfg", "defaultthingflags");
	}


	// LINEDEF FLAGS
	linedefflags
	{
		include("Doom_misc.cfg", "linedefflags");
		include("Boom_misc.cfg", "linedefflags");
	}

	// LINEDEF ACTIVATIONS
	linedefactivations
	{
	}

	// Linedef flags UDMF translation table
	// This is needed for copy/paste and prefabs to work properly
	// When the UDMF field name is prefixed with ! it is inverted
	linedefflagstranslation
	{
		include("Doom_misc.cfg", "linedefflagstranslation");
		include("Boom_misc.cfg", "linedefflagstranslation");
	}


	// THING FLAGS
	thingflags
	{
		include("Doom_misc.cfg", "thingflags");
		include("Boom_misc.cfg", "thingflags");
	}

	// Thing flags UDMF translation table
	// This is needed for copy/paste and prefabs to work properly
	// When the UDMF field name is prefixed with ! it is inverted
	thingflagstranslation
	{
		include("Doom_misc.cfg", "thingflagstranslation");
		include("Boom_misc.cfg", "thingflagstranslation");
	}
		// How to compare thing flags (for the stuck things error checker)
	thingflagscompare
	{
		include("Doom_misc.cfg", "thingflagscompare");
		include("Boom_misc.cfg", "thingflagscompare");
	}

	// Things flags masks
	include("Doom_misc.cfg", "thingflagsmasks");

}



// ***********************************************************
// *                                                         *
// *                       Text map format                   *
// *                                                         *
// ***********************************************************

mapformat_udmf
{
	// The format interface handles the map data format
	formatinterface = "UniversalMapSetIO";


	// Enables support for long (> 8 chars) texture names
	// WARNING: this should only be enabled for UDMF game configurations!
	// WARNING: enabling this will make maps incompatible with Doom Builder 2 and can lead to problems in Slade 3!
	longtexturenames = false;
	
	// Enables support for individual offsets of upper/middle/lower sidedef textures
	localsidedeftextureoffsets = true;
	
	
	// Enables setting brightness for floor, ceiling, and walls independently from each other
	distinctfloorandceilingbrightness = false;
	distinctwallbrightness = false;
	
	// Enabled setting brightness for upper, middle, and lower sidedef independently from each other
	distinctsidedefpartbrightness = false;

	
	//engine = "edge-classic"; // override that so that DB2 uses the correct namespace

	maplumpnames
	{
		include("UDMF_misc.cfg", "udmfmaplumpnames_begin");
		include("UDMF_misc.cfg", "udmfmaplumpnames_end");
	}


	linedefflags
	{
		blocking = "Impassable";
		blockmonsters = "Block monster";
		twosided = "Doublesided";
		dontpegtop = "Upper unpegged";
		dontpegbottom = "Lower unpegged";
		secret = "Secret";
		blocksound = "Block sound";
		dontdraw = "Hidden";
		mapped = "Shown";
		passuse = "PassThru";
		blockplayers = "Block players";
		blocksight = "Block monster line of sight";
	}

	linedefflagtooltips
	{
		blocking = "If set on a 2-sided linedef, the linedef blocks players and monsters from being able to move through it. \nThis is typically used for mid-textured cage bars.\nBy convention, most doom-related software sets it for 1-sided lines by default because the\nid Software maps did, but it doesn't actually do anything.";
		blockmonsters = "If set, blocks only monster movement.\n(in addition to whatever existing blocking properties it would have).";
		twosided = "If set, then it has 2 sidedefs and acts as a connection between two sectors.";
		dontpegtop = "If set:\nIf the linedef is 2-sided, the upper texture starts at the height of the higher ceiling.\nIf not set: and the linedef is 2-sided, the upper texture starts at the lower ceiling instead.\nIf the linedef is 1-sided, this does nothing.";
		dontpegbottom = "If set: If the linedef is 2-sided, the lower texture starts at the height of the higher ceiling.\nIf not set: and the linedef is 2-sided, the upper texture starts at the higher floor instead.\nIf the linedef is 1-sided, this makes the mid texture start at floor instead of the ceiling.\nYou probably want to use this for door tracks if you don't want them to move with the door.";
		secret = "If set, this flag prevents it from being marked as a switch or a door on the automap.";
		blocksound = "If set, this linedef will partially block monster-waking sound from passing into the sector on the other side of it.\nNote that a sound must try to pass through two of these lines before being blocked.\nThis does not block the actual audio that the player hears at all, it is only for the monster AI.\nThis does nothing for 1-sided linedefs.";
		dontdraw = "If set, this line is not shown on the automap even if you are looking directly at it";
		mapped = "If set, this line is always revealed on the automap even if you haven't actually visited the area.";
		passuse = "Normally, if you try to pull a switch or use a door, then players are only able to activate\nthe closest linedef with a special. When PassThru is set, your use reaches\nthrough and allows players to activate both this line and whatever is behind this\nline.\nThis does nothing for 1-sided lines because they always block use actions.\n\nNote that if someone plays your map on ZDoom-derived ports like GZDoom or Zandronum,\nthen PassThru will be true for walkover specials & scrollers even when this flag\nis not set, unless you set 'compat_useblocking' in MAPINFO.";
	}

	thingflags
	{
		skill1 = "Skill 1";
		skill2 = "Skill 2";
		skill3 = "Skill 3";
		skill4 = "Skill 4";
		skill5 = "Skill 5";
		ambush = "Ambush";
		single = "Singleplayer";
		dm = "Deathmatch";
		coop = "Cooperative";
		friend = "Friendly";
	}

	thingflagtooltips
	{
		skill1 = "If set, this actor appears on 'I'm Too Young To Die' difficulty.";
		skill2 = "If set, this actor appears on 'Hey, Not Too Rough' difficulty.";
		skill3 = "If set, this actor appears on 'Hurt Me Plenty' difficulty.";
		skill4 = "If set, this actor appears on 'Ultraviolence' difficulty.";
		skill5 = "If set, this actor appears on 'Nightmare' difficulty.";
		ambush = "If set, this actor does not wake up if it hears the player until the player comes within field of view\n(even if the actor is facing the away from the player).";
		single = "If not set, the actor does not appear in singleplayer modes.";
		dm = "If not set, the actor does not appear in deathmatch modes.";
		coop = "If not set, the actor does not appear in co-op modes.";
		friend = "If set, the actor is friendly to the player.\nIf it is a monster, it will attack other players.";
	}
	
	// Default flags for first new thing
	defaultthingflags
	{
		skill1;
		skill2;
		skill3;
		skill4;
		skill5;
		single;
		coop;
		dm;
	}

	// Default thing filters
	// (these are not required, just useful for new users)
	thingsfilters
	{
		
		filter0
		{
			name = "Keys only";
			category = "keys";
			type = -1;
		}
		
		filter1
		{
			name = "Deathmatch";
			category = "";
			type = -1;
			
			fields
			{
				dm = true;
			}
		}
		
		filter2
		{
			name = "Cooperative";
			category = "";
			type = -1;
			
			fields
			{
				coop = true;
			}
		}

		filter3
		{
			name = "Skill 1";
			category = "";
			type = -1;
			
			fields
			{
				skill1 = true;
			}
		}
		
		filter4
		{
			name = "Skill 2";
			category = "";
			type = -1;
			
			fields
			{
				skill2 = true;
			}
		}
		
		filter5
		{
			name = "Skill 3";
			category = "";
			type = -1;
			
			fields
			{
				skill3 = true;
			}
		}
		
		filter6
		{
			name = "Skill 4";
			category = "";
			type = -1;
			
			fields
			{
				skill4 = true;
			}
		}
		
		filter7
		{
			name = "Skill 5";
			category = "";
			type = -1;
			
			fields
			{
				skill5 = true;
			}
		}
	}


	// How to compare thing flags (for the stuck things error checker)
	thingflagscompare
	{
		skills
		{
			skill1;
			skill2;
			skill3;
			skill4;
			skill5;
		}

		gamemodes
		{
			single { requiredgroups = "skills"; }
			coop   { requiredgroups = "skills"; }
			dm      { ignoredgroups = "skills"; }
		}
	}

	//mxd. Thing flags UDMF translation table
	// This is needed for copy/paste and prefabs to work properly
	// When the UDMF field name is prefixed with ! it is inverted
	thingflagstranslation
	{
		include("Doom_misc.cfg", "thingflagstranslation");
	}
	
	//mxd. Linedef flags UDMF translation table
	// This is needed for copy/paste and prefabs to work properly
	// When the UDMF field name is prefixed with ! it is inverted
	linedefflagstranslation
	{
		include("Doom_misc.cfg", "linedefflagstranslation");
	} 


	universalfields
	{
	  linedef
		{
			comment
			{
				type = 2;
				default = "";
			}	
		}

		sidedef
		{
			comment
			{
				type = 2;
				default = "";
			}
			
			scalex_top
			{
				type = 1;
				default = 1.0f;
			}
			
			scalex_mid
			{
				type = 1;
				default = 1.0f;
			}
			
			scalex_bottom
			{
				type = 1;
				default = 1.0f;
			}
			
			scaley_top
			{
				type = 1;
				default = 1.0f;
			}

			scaley_mid
			{
				type = 1;
				default = 1.0f;
			}
			
			scaley_bottom
			{
				type = 1;
				default = 1.0f;
			}
			
			offsetx_top
			{
				type = 1;
				default = 0.0f;
			}
			
			offsetx_mid
			{
				type = 1;
				default = 0.0f;
			}
			
			offsetx_bottom
			{
				type = 1;
				default = 0.0f;
			}
			
			offsety_top
			{
				type = 1;
				default = 0.0f;
			}
			
			offsety_mid
			{
				type = 1;
				default = 0.0f;
			}
			
			offsety_bottom
			{
				type = 1;
				default = 0.0f;
			}

		}

		thing
		{
			alpha
			{
				type = 1;
				default = 1.0f;
			}
			
			health
			{
				type = 1;
				default = 1.0f;
			}
			
			scalex
			{
				type = 1;
				default = 1.0f;
			}
			
			scaley
			{
				type = 1;
				default = 1.0f;
			}
			
			comment
			{
				type = 2;
				default = "";
			}

		}

		sector
		{
			comment
			{
				type = 2;
				default = "";
			}

			ypanningfloor
			{
				type = 1;
				default = 0.0f;
			}
			
			ypanningceiling
			{
				type = 1;
				default = 0.0f;
			}
			
			xpanningfloor
			{
				type = 1;
				default = 0.0f;
			}
			
			xpanningceiling
			{
				type = 1;
				default = 0.0f;
			}
			
			yscalefloor
			{
				type = 1;
				default = 1.0f;
			}
			
			yscaleceiling
			{
				type = 1;
				default = 1.0f;
			}
			
			xscalefloor
			{
				type = 1;
				default = 1.0f;
			}
			
			xscaleceiling
			{
				type = 1;
				default = 1.0f;
			}

			gravity
			{
				type = 1;
				default = 1.0f;
			}

			fadecolor
			{
				type = 10;
				default = 0;
			}
			
			fogdensity
			{
				type = 0;
				default = 0;
			}
			
			lightcolor
			{
				type = 10;
				default = 0;
			}
			
			rotationfloor
			{
				type = 1;
				default = 0.0f;
			}
			
			rotationceiling
			{
				type = 1;
				default = 0.0f;
			}
			
		}
	}
}

enums
{
	frontback
	{
		0 = "Front";
		1 = "Back";
	}
	
	backfront
	{
		1 = "Front";
		0 = "Back";
	}
	
	floorceiling
	{
		0 = "Floor";
		1 = "Ceiling";
	}
	
	ceilingfloor
	{
		0 = "Ceiling";
		1 = "Floor";
	}
	
	sector_flags
	{
		1 = "Silent";
		2 = "No Falling Damage";
		4 = "Drop with floor";
		8 = "No Respawn";
	}
	
	keys
	{
		0 = "None";
		1 = "Red key card";
		2 = "Blue key card";
		3 = "Yellow key card";
		4 = "Red skull key";
		5 = "Blue skull key";
		6 = "Yellow skull key";
		100 = "Any key";
		101 = "All keys";
		102 = "Impossible";
		129 = "Any red key";
		130 = "Any blue key";
		131 = "Any yellow key";
		229 = "One of each color";
	}
	
	spawnthing
	{
		0 = "None";
		1 = "Shotgun Guy";
		2 = "Chaingun Guy";
		3 = "Baron Of Hell";
		4 = "Zombieman";
		5 = "Imp";
		6 = "Arachnotron";
		7 = "Spider Mastermind";
		8 = "Demon";
		9 = "Spectre";
		10 = "Imp Fireball";
		11 = "Clip";
		12 = "Shells";
		19 = "Cacodemon";
		20 = "Revenant";
		21 = "Bridge";
		22 = "Armour Bonus";
		23 = "Stimpack";
		24 = "Medkit";
		25 = "Soul Sphere";
		27 = "Shotgun";
		28 = "Chaingun";
		29 = "Rocket Launcher";
		30 = "Plasma Gun";
		31 = "BFG";
		32 = "Chainsaw";
		33 = "Super Shotgun";
		51 = "Plasma Bolt";
		53 = "Tracer";
		68 = "Green Armour";
		69 = "Blue Armour";
		75 = "Cell";
		85 = "Blue Keycard";
		86 = "Red Keycard";
		87 = "Yellow Keycard";
		88 = "Yellow Skullkey";
		89 = "Red Skullkey";
		90 = "Blue Skullkey";
		98 = "Temp Large Flame";
		100 = "Stealth Baron";
		101 = "Stealth Hell Knight";
		102 = "Stealth Zombieman";
		103 = "Stealth Shotgun Guy";
		110 = "Lost Soul";
		111 = "Arch-Vile";
		112 = "Mancubus";
		113 = "Hell Knight";
		114 = "Cyberdemon";
		115 = "Pain Elemental";
		116 = "Wolf SS Soldier";
		117 = "Stealth Arachnotron";
		118 = "Stealth Arch-Vile";
		119 = "Stealth Cacodemon";
		120 = "Stealth Chaingun Guy";
		121 = "Stealth Demon";
		122 = "Stealth Imp";
		123 = "Stealth Mancubus";
		124 = "Stealth Revenant";
		125 = "Barrel";
		126 = "Cacodemon Shot";
		127 = "Rocket (Projectile)";
		128 = "BFG Shot";
		129 = "Arachnotron Plasma Bolt";
		130 = "Blood";
		131 = "Bullet Puff";
		132 = "Megasphere";
		133 = "Invulnerability Sphere";
		134 = "Berserk Pack";
		135 = "Invisibility Sphere";
		136 = "Radiation Suit";
		137 = "Computer Map";
		138 = "Light-Amp Goggles";
		139 = "Box Of Ammo";
		140 = "Rocket (Ammo)";
		141 = "Box Of Rockets";
		142 = "Larce Cell";
		143 = "Box Of Shells";
		144 = "Backpack";
		145 = "Guts";
		146 = "Blood Pool 1";
		147 = "Blood Pool 2";
		148 = "Blood Pool 3";
		149 = "Flaming Barrel";
		150 = "Brains";
		151 = "Scripted Marine";
		152 = "Health Bonus";
		153 = "Mancubus Shot";
		154 = "Baron Fireball";
	}
	
	generic_floor_target
	{
		0 = "Relative offset";
		1 = "Highest neighbor";
		2 = "Lowest neighbor";
		3 = "Nearest neighbor";
		4 = "Lowest neighbor";
		5 = "Ceiling";
		6 = "Shortest lower texture";
	}
	
	generic_ceiling_target
	{
		0 = "Relative offset";
		1 = "Highest neighbor";
		2 = "Lowest neighbor";
		3 = "Nearest neighbor";
		4 = "Highest neighbor";
		5 = "Floor";
		6 = "Shortest lower texture";
	}
	
	generic_door_types
	{
		0 = "Open Close";
		1 = "Open Stay";
		2 = "Close Open";
		3 = "Close Stay";
	}
	
	generic_lift_types
	{
		0 = "Up Stay";
		1 = "Down Up";
		2 = "Down to nearest";
		3 = "Down to lowest";
		4 = "Perpetual raise";
	}

	death_types
	{
		0  = "Unknown";
		12 = "Water";
		13 = "Slime";
		14 = "Lava";
		15 = "Crush";
		16 = "Telefrag";
		17 = "Falling";
		18 = "Suicide";
		19 = "Barrel";
		20 = "Exit";
		21 = "Splash";
		22 = "Hit";
	}
}

