// ***********************************************************
// *                                                         *
// * These values are the same for Doom format, Hexen format *
// * and UDMF; as well as for ZDoom, GZDoom and Zandronum     *
// *                                                         *
// ***********************************************************

common
{
	// Some common settings
	include("Common.cfg");

	// Default testing parameters
	testparameters = "-iwad \"%WP\" -skill \"%S\" -file \"%AP\" \"%F\" +map %L %NM";

	// Action special help (mxd)
	actionspecialhelp = "http://www.zdoom.org/wiki/index.php?title=%K";

	// Default nodebuilder configurations
	defaultsavecompiler = "zdbsp_normal";
	defaulttestcompiler = "zdbsp_fast";

	// Generalized actions
	// generalizedlinedefs is true for Doom format and false for
	// the other two, so it's not here.
	generalizedsectors = true;

	// Texture loading options
	mixtexturesflats = true;
	defaulttexturescale = 1.0f;
	defaultflatscale = 1.0f;
	scaledtextureoffsets = true;

	// Texture sources
	textures
	{
		include("Doom_misc.cfg", "textures");
		include("ZDoom_misc.cfg", "textures");
	}

	// Patch sources
	patches
	{
		include("Doom_misc.cfg", "patches");
	}

	// Sprite sources
	sprites
	{
		include("Doom_misc.cfg", "sprites");
	}

	// Flat sources
	flats
	{
		include("Doom_misc.cfg", "flats");
	}

	// Colormap sources
	colormaps
	{
		include("Boom_misc.cfg", "colormaps");
	}

	//mxd. Voxel sources
	voxels
	{
		include("ZDoom_misc.cfg", "voxels");
	}

	// Generalized sector types
	gen_sectortypes
	{
		include("ZDoom_generalized.cfg", "gen_sectortypes");
	}
}

// ***********************************************************
// *                                                         *
// *                       Doom map format                   *
// *                                                         *
// ***********************************************************

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

	maplumpnames
	{
		include("Doom_misc.cfg", "doommaplumpnames");
		include("ZDoom_misc.cfg", "doommaplumpnames");
		include("ZDoom_misc.cfg", "glmaplumpnames");
	}

	// When this is set to true, sectors with the same tag will light up when a line is highlighted
	linetagindicatesectors = true;

	// Special linedefs
	include("ZDoom_misc.cfg", "speciallinedefs_doomhexen");

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

	// Door making
	include("ZDoom_misc.cfg", "doormaking_doom");

	// Generalized actions
	generalizedlinedefs = true;

	// GENERALIZED LINEDEF TYPES
	gen_linedeftypes
	{
		include("Boom_generalized.cfg", "gen_linedeftypes");
	}
	
	// DEFAULT SECTOR BRIGHTNESS LEVELS
	sectorbrightness
	{
		include("Doom_misc.cfg", "sectorbrightness");
	}

	// SECTOR TYPES
	sectortypes
	{
		include("Doom_sectors.cfg");
		include("ZDoom_sectors.cfg", "doom");
	}

	// 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");
	}

	// LINEDEF TYPES
	linedeftypes
	{
		include("Doom_linedefs.cfg");
		include("Boom_linedefs.cfg");
		include("ZDoom_linedefs.cfg", "doom");
	}

	// 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");
	}

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

}

// ***********************************************************
// *                                                         *
// *                      Hexen map format                   *
// *                                                         *
// ***********************************************************

mapformat_hexen
{
	// The format interface handles the map data format
	formatinterface = "HexenMapSetIO";

	//mxd. The default script compiler to use
	defaultscriptcompiler = "zdoom_acs.cfg";

	maplumpnames
	{
		include("Doom_misc.cfg", "hexenmaplumpnames");
		include("ZDoom_misc.cfg", "hexenmaplumpnames");
		include("ZDoom_misc.cfg", "glmaplumpnames");
	}

	// When this is set to true, sectors with the same tag will light up when a line is highlighted
	linetagindicatesectors = false;

	// Special linedefs
	include("ZDoom_misc.cfg", "speciallinedefs_doomhexen");

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

	// Door making
	include("ZDoom_misc.cfg", "doormaking_hexen");

	// Generalized actions
	generalizedlinedefs = false;
	
	// DEFAULT SECTOR BRIGHTNESS LEVELS
	sectorbrightness
	{
		include("ZDoom_misc.cfg", "sectorbrightness");
	}

	// SECTOR TYPES
	sectortypes
	{
		include("ZDoom_sectors.cfg", "zdoom");
	}

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

	// Activations filter for Hexen type activations
	// This filters the activation bits from the flags
	linedefactivationsfilter = 7168;

	// LINEDEF ACTIVATIONS
	// Make sure these are in order from lowest value to highest value
	linedefactivations
	{
		include("Hexen_misc.cfg", "linedefactivations");
		include("ZDoom_misc.cfg", "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("Hexen_misc.cfg", "linedefflagstranslation");
		include("ZDoom_misc.cfg", "linedefflagstranslation");
	}

	// LINEDEF TYPES
	linedeftypes
	{
		include("Hexen_linedefs.cfg");
		include("ZDoom_linedefs.cfg", "zdoom");
		include("ZDoom_linedefs.cfg", "hexen");
	}

	// THING FLAGS
	thingflags
	{
		include("Doom_misc.cfg", "thingflags");
		include("Hexen_misc.cfg", "thingflags");
		include("ZDoom_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("Hexen_misc.cfg", "thingflagstranslation");
		include("ZDoom_misc.cfg", "thingflagstranslation");
	}
	
	// How to compare thing flags (for the stuck things error checker)
	thingflagscompare
	{
		include("Hexen_misc.cfg", "thingflagscompare");
	}

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

}

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

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

	//mxd. The default script compiler to use
	defaultscriptcompiler = "zdoom_acs.cfg"; 

	// 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 = true;
	
	// Default nodebuilder configurations
	defaultsavecompiler = "zdbsp_udmf_normal";
	defaulttestcompiler = "zdbsp_udmf_fast";
	
	engine = "zdoom"; // override that so that DB2 uses the correct namespace

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

	universalfields
	{
		include("ZDoom_misc.cfg", "universalfields");
	}

	// When this is set to true, sectors with the same tag will light up when a line is highlighted
	linetagindicatesectors = false;

	// Special linedefs
	include("ZDoom_misc.cfg", "speciallinedefs_udmf");

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

	// Door making
	include("ZDoom_misc.cfg", "doormaking_udmf");

	// Generalized actions
	generalizedlinedefs = false;

	// SECTOR FLAGS
	sectorflags
	{
		include("UDMF_misc.cfg", "sectorflags");
	}
	
	// DEFAULT SECTOR BRIGHTNESS LEVELS
	sectorbrightness
	{
		include("ZDoom_misc.cfg", "sectorbrightness");
	}

	// SECTOR TYPES
	sectortypes
	{
		include("ZDoom_sectors.cfg", "zdoom");
	}

	// SECTOR RENSERSTYLES
	sectorrenderstyles
	{
		include("UDMF_misc.cfg", "sectorrenderstyles");
	}

	// LINEDEF FLAGS
	linedefflags
	{
		include("ZDoom_misc.cfg", "linedefflags_udmf");
	}

	// LINEDEF ACTIVATIONS
	linedefactivations
	{
		include("ZDoom_misc.cfg", "linedefactivations_udmf");
	}
	
	//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");
		include("Hexen_misc.cfg", "linedefflagstranslation");
		include("ZDoom_misc.cfg", "linedefflagstranslation");
	} 

	// LINEDEF RENSERSTYLES
	linedefrenderstyles
	{
		include("UDMF_misc.cfg", "linedefrenderstyles");
	}

	//SIDEDEF FLAGS
	sidedefflags
	{
		include("UDMF_misc.cfg", "sidedefflags");  
	}

	// THING FLAGS
	thingflags
	{
		include("UDMF_misc.cfg", "thingflags");
		include("ZDoom_misc.cfg", "thingflags_udmf");
	}
	
	// THING RENSERSTYLES
	thingrenderstyles
	{
		include("UDMF_misc.cfg", "thingrenderstyles");
	}

	// How to compare thing flags (for the stuck things error checker)
	thingflagscompare
	{
		include("UDMF_misc.cfg", "thingflagscompare");
		include("ZDoom_misc.cfg", "thingflagscompare_udmf");
	}

	//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");
		include("Hexen_misc.cfg", "thingflagstranslation");
		include("ZDoom_misc.cfg", "thingflagstranslation");
	}

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

	// LINEDEF TYPES
	linedeftypes
	{
		include("Hexen_linedefs.cfg");
		include("ZDoom_linedefs.cfg", "zdoom");
		include("ZDoom_linedefs.cfg", "udmf");
	}

}