// Basic Doom and Vanilla engine stuff.
skills
{
	1 = "I'm too young to die";
	2 = "Hey, not too rough";
	3 = "Hurt me plenty";
	4 = "Ultra-Violence";
	5 = "Nightmare!";
}

linedefflags
{
	1 = "Impassable";
	2 = "Block Monsters";
	4 = "Double Sided";
	8 = "Upper Unpegged";
	16 = "Lower Unpegged";
	32 = "Shown as 1-sided on automap";
	64 = "Block Sound";
	128 = "Not shown on automap";
	256 = "Initially shown on automap";
}

thingflags
{
	1 = "Easy";
	2 = "Medium";
	4 = "Hard";
	8 = "Ambush players";
	16 = "Multiplayer only";
}

// Default flags for first new thing
defaultthingflags
{
	1;
	2;
	4;
}

// How thing flags should be compared (for the stuck thing error check)
thingflagscompare
{
	skills
	{
		1;
		2;
		4;
	}

	gamemodes
	{
		16
		{
			comparemethod = "equal";
			ingnorethisgroupwhenunset = true;
		}
	}
}

// Mask for the thing flags which indicates the options
// that make the same thing appear in the same modes
thingflagsmasks
{
	thingflagsmask1 = 7;	// 1 + 2 + 4
	thingflagsmask2 = 0;
}

// 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
{
	1 = "blocking";
	2 = "blockmonsters";
	4 = "twosided";
	8 = "dontpegtop";
	16 = "dontpegbottom";
	32 = "secret";
	64 = "blocksound";
	128 = "dontdraw";
	256 = "mapped";
}

// 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
{
	1 = "skill1,skill2";
	2 = "skill3";
	4 = "skill4,skill5";
	8 = "ambush";
	16 = "!single";
}

// Default sector brightness levels
sectorbrightness
{
	256; 240; 224; 208; 192; 176; 160; 144;
	128; 112; 96; 80; 64; 48; 32; 16; 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.
*/

// Texture sources
textures
{
}

// Patch sources
patches
{
	standard1
	{
		start = "P_START";
		end = "P_END";
	}
	
	standard2
	{
		start = "PP_START";
		end = "PP_END";
	}
}

// Sprite sources
sprites
{
	standard1
	{
		start = "S_START";
		end = "S_END";
	}
	
	standard2
	{
		start = "SS_START";
		end = "SS_END";
	}
	
	// Some WADs rely on buggy behavior of the sprite markers
	standard3
	{
		start = "SS_START";
		end = "S_END";
	}
}

// Flat sources
flats
{
	standard1
	{
		start = "F_START";
		end = "F_END";
	}
	
	standard2
	{
		start = "FF_START";
		end = "FF_END";
	}
	
	standard3
	{
		start = "FF_START";
		end = "F_END";
	}
	
	standard4
	{
		start = "F_START";
		end = "FF_END";
	}
}

/*
MAP LUMP NAMES
Map lumps are loaded with the map as long as they are right after each other. When the editor
meets a lump which is not defined in this list it will ignore the map if not satisfied.
The order of items defines the order in which lumps will be written to WAD file on save.
To indicate the map header lump, use ~MAP

Legenda:
required = Lump is required to exist.
blindcopy = Lump will be copied along with the map blindly. (useful for lumps Doom Builder doesn't use)
nodebuild = The nodebuilder generates this lump.
allowempty = The nodebuilder is allowed to leave this lump empty.
script = This lump is a text-based script. Specify the filename of the script configuration to use.
*/

doommaplumpnames
{
	~MAP
	{
		required = true;
		blindcopy = true;
		nodebuild = false;
	}
	
	THINGS
	{
		required = true;
		nodebuild = true;
		allowempty = true;
	}
	
	LINEDEFS
	{
		required = true;
		nodebuild = true;
		allowempty = false;
	}
	
	SIDEDEFS
	{
		required = true;
		nodebuild = true;
		allowempty = false;
	}
	
	VERTEXES
	{
		required = true;
		nodebuild = true;
		allowempty = false;
	}
	
	SEGS
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	SSECTORS
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	NODES
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	SECTORS
	{
		required = true;
		nodebuild = true;
		allowempty = false;
	}
	
	REJECT
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	BLOCKMAP
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	BEHAVIOR //mxd
	{
		forbidden = true;
	}
}

hexenmaplumpnames
{
	~MAP
	{
		required = true;
		blindcopy = true;
		nodebuild = false;
	}
	
	THINGS
	{
		required = true;
		nodebuild = true;
		allowempty = true;
	}
	
	LINEDEFS
	{
		required = true;
		nodebuild = true;
		allowempty = false;
	}
	
	SIDEDEFS
	{
		required = true;
		nodebuild = true;
		allowempty = false;
	}
	
	VERTEXES
	{
		required = true;
		nodebuild = true;
		allowempty = false;
	}
	
	SEGS
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	SSECTORS
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	NODES
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	SECTORS
	{
		required = true;
		nodebuild = true;
		allowempty = false;
	}
	
	REJECT
	{
		required = false;
		nodebuild = true;
		allowempty = true;
	}
	
	BLOCKMAP
	{
		required = false;
		nodebuild = true;
		allowempty = false;
	}
	
	BEHAVIOR
	{
		required = true;
		nodebuild = false;
		blindcopy = true;
	}
	
	SCRIPTS
	{
		required = false;
		nodebuild = false;
		script = "Hexen_ACS.cfg";
	}
}

// Default thing filters
// (these are not required, just useful for new users)
thingsfilters
{
	filter0
	{
		name = "Easy skill";
		category = "";
		type = -1;
		
		fields
		{
			1 = true;
		}
	}
	
	filter1
	{
		name = "Medium skill";
		category = "";
		type = -1;
		
		fields
		{
			2 = true;
		}
	}
	
	filter2
	{
		name = "Hard skill";
		category = "";
		type = -1;
		
		fields
		{
			4 = true;
		}
	}
	
	filter3
	{
		name = "Keys only";
		category = "keys";
		type = -1;
	}
	
	filter4
	{
		name = "Multiplayer";
		category = "";
		type = -1;
		
		fields
		{
			16 = true;
		}
	}
}


// ENUMERATIONS
// These are enumerated lists for linedef types and UDMF fields.
// Reserved names are: angledeg, anglerad, color, texture, flat
enums
{
	falsetrue
	{
		0 = "False";
		1 = "True";
	}
	
	yesno
	{
		0 = "Yes";
		1 = "No";
	}
	
	noyes
	{
		0 = "No";
		1 = "Yes";
	}
	
	onoff
	{
		0 = "On";
		1 = "Off";
	}
	
	offon
	{
		0 = "Off";
		1 = "On";
	}
	
	updown
	{
		0 = "Up";
		1 = "Down";
	}
	
	downup
	{
		0 = "Down";
		1 = "Up";
	}
	
	addset
	{
		0 = "Add";
		1 = "Set";
	}
}