TGlobalTerrainData
{
	float heightRange = 6553.5
	float heightOffset = 0.0
	float clutterFadeStartDist = 15.0
	float clutterFadeEndDist = 35.0
	float clutterGridSize = 4.0
	bool clutterCombine =  true
	float worldSizeX = 8000.0
	float worldSizeY = 8000.0
	float editRadius = 4.0
	float editFalloff = 4.0
	
	TTerrainTextureLayer list layerList =
	{
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Start of green grassy generic stuff
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{ // OPACITY is controlled here
			int layer = 0
			string name = "!CAREFUL!"
			string soundType = "grass"
			string alphaShaderFilename = "terrain_grass_rough_alpha_reg.sha"
			string clutterFilename = "clutter_grasslands_summer.def"
			float scale = 8.0
			int maskNum  = 0
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Experimental new human area sorta
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{ // spotty grass/dirt, transitioning from the standard grass (tm)
			int layer = 1
			string name = "spotty grass"
			string alphaShaderFilename = "terrain_grass_spotty_alpha_reg.sha"
			string soundType = "grass"
			int maskOptimize = 64
			float scale = 6
			int maskNum = 15
			
			bool autoMask = true
			float fadeInStart = 15.0
			float fadeInEnd = 25.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0				
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// dried grass
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// grassland scrub
			int layer = 2
			string name = "dried grass"
			string soundType = "grass"			
			string alphaShaderFilename = "terrain_unhealthy_grass_ground_flat_alpha.sha"
			string clutterFilename = "clutter_dryweeds.def"
			int maskOptimize = 32			
			float scale = 5
			int maskNum = 43
			bool belongsToSet = true
		}
		{ // spotty dried grass
			int layer = 3
			string name = "spotty dried grass"
			string alphaShaderFilename = "terrain_unhealthy_weed_grass_alpha.sha"
			string soundType = "grass"
			string clutterFilename = "clutter_dryweeds.def"
			int maskOptimize = 32
			float scale = 6
			int maskNum = 43
			bool belongsToSet = true
			
			bool autoMask = true
			float fadeInStart = 15.0
			float fadeInEnd = 25.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0				
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{ // brown dirt, used all over the place and nicely generic
			int layer = 4
			string name = "dirt"
			string soundType = "dirt"			
			string alphaShaderFilename = "terrain_dirt_reg_alpha_reg.sha"
			string clutterFilename = "clutter_rocksandpebbles_reg.def"
			int maskOptimize = 32
			float scale = 10
			int maskNum = 15
			int secondaryMaskNum = 25 // formerly 2
			bool belongsToSet = true
			
			bool autoMask = true
			float fadeInStart = 25.0
			float fadeInEnd = 35.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0			
		}
		{ // grey rock + mountainside, used for grassy areas and such
			int layer = 5
			string name = " grey mountainside"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_mountainside_macro_alpha_grey.sha"
			int maskOptimize = 56			
			float scale = 18
			int maskNum = 15
			int secondaryMaskNum = 27
			bool belongsToSet = true	
			
			bool autoMask = true
			float fadeInStart = 35.0
			float fadeInEnd = 45.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0							
		}		
		{ // same mountainside
			int layer = 6
			string name = "grey mountainside"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_mountainside_macro_alpha_grey.sha"
			int maskOptimize = 56
			float scale = 18
			int maskNum = 15
			int secondaryMaskNum = 27
			bool belongsToSet = true
						
			bool autoMask = true
			float fadeInStart = 55.0
			float fadeInEnd = 65.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0						

			bool cliffTexture = true
			int cliffBindLayer = 15
			int cliffPlane = 1
			int cliffAngle = 60
		}
		{ // same mountainside
			int layer = 7
			string name = "grey mountainside"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_mountainside_macro_alpha_grey.sha"
			int maskOptimize = 56			
			float scale = 18
			int maskNum = 15
			int secondaryMaskNum = 27 // formerly 3	
			bool belongsToSet = true			

			bool autoMask = true
			float fadeInStart = 55.0
			float fadeInEnd = 65.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0	

			bool cliffTexture = true
			int cliffBindLayer = 15
			int cliffPlane = 2 
			int cliffAngle = 60
		}		
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// good dragon mountain range, mask 42 is shared by all these
			int layer = 8
			string name = "good dragon dirt"
			string soundType = "dirt"
			string alphaShaderFilename = "terrain_dragon_dirt_alpha_brown.sha"
			int maskOptimize = 24
			float scale = 6
			int maskNum = 42
			bool belongsToSet = true

			bool autoMask = true
			float fadeInStart = 15.0
			float fadeInEnd = 25.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// more good dragon mountains, crusted dirt
			int layer = 9
			string name = "good dragon crusty dirt"
			string soundType = "dirt"			
			string alphaShaderFilename = "terrain_dragon_crustydirt_alpha_brown.sha"
			int maskOptimize = 48
			float scale = 7
			int maskNum = 42
			int secondaryMaskNum = 9
			bool belongsToSet = true

			bool autoMask = true
			float fadeInStart = 23.0
			float fadeInEnd = 30.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// more good dragon mountains, brown rock, uses mask 1 for overriding automasking
			int layer = 10
			string name = "good dragon mountainside"

			string soundType = "rock"			
			string alphaShaderFilename = "terrain_mountainside_brown_alpha_amber.sha"
			int maskOptimize = 56
			float scale = 35
			int maskNum = 42
			int secondaryMaskNum = 1
			bool belongsToSet = true

			bool autoMask = true
			float fadeInStart = 26.0
			float fadeInEnd = 45.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// more good dragon mountains, brown rock, XZ plane, uses mask 1 for overriding automasking
			int layer = 11
			string name = "good dragon mountainside"

			string soundType = "rock"			
			string alphaShaderFilename = "terrain_mountainside_brown_alpha_amber.sha"
			int maskOptimize = 56
			float scale = 35
			int maskNum = 42
			int secondaryMaskNum = 1
			bool belongsToSet = true		

			bool autoMask = true
			float fadeInStart = 60.0
			float fadeInEnd = 70.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0

			bool cliffTexture = true
			int cliffBindLayer = 42
			int cliffPlane = 1 
			int cliffAngle = 65
		}
		{// more good dragon mountains, brown rock, XZ plane, uses mask 1 for overriding automasking
			int layer = 12
			string name = "good dragon mountainside"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_mountainside_brown_alpha_amber.sha"
			int maskOptimize = 56
			float scale = 35
			int maskNum = 42
			int secondaryMaskNum = 1
			bool belongsToSet = true

			bool autoMask = true
			float fadeInStart = 60.0
			float fadeInEnd = 70.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0

			bool cliffTexture = true
			int cliffBindLayer = 42
			int cliffPlane = 2 
			int cliffAngle = 65
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// OVERRIDES
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{ // spotty grass
			int layer = 13
			string name = "spotty grass"
			string alphaShaderFilename = "terrain_grass_spotty_alpha_reg.sha"
			string clutterFilename = "clutter_plantsandweeds_summer.def"
			string soundType = "grass"
			int maskOptimize = 64
			float scale = 9
			int maskNum = 14
		}
		{ // rough dirt
			int layer = 14
			string name = "rough dirt"
			string alphaShaderFilename = "terrain_jungle_dirt.sha"
			string soundType = "dirt"
			int maskOptimize = 32
			float scale = 11
			int maskNum = 22
		}
		{ // green meadow sort of thing
			int layer = 15
			string name = "meadow"
			string soundType = "grass"			
			string alphaShaderFilename = "terrain_grass_meadow_alpha_green.sha"
			string clutterFilename = "clutter_plantsandweeds_summer.def"
			int maskOptimize = 32
			float scale = 20
			int maskNum = 23
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Start of jungle layers
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// little ferns and spotty grass and such
			int layer = 16
			string name = "jungle"
			string soundType = "grass"			
			string alphaShaderFilename = "terrain_jungle_grass_ground_alpha.sha"
			string clutterFilename = "clutter_jungle_summer.def"
			int maskOptimize = 24			
			float scale = 26
			int maskNum = 33
			bool belongsToSet = true
			
			bool autoMask = true
			float fadeInStart = 0.0
			float fadeInEnd = 0.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0			
		}
		{ // rough dirt
			int layer = 17
			string name = "rough dirt"
			string alphaShaderFilename = "terrain_jungle_dirt.sha"
			string clutterFilename = "clutter_jungle_summer.def"
			string soundType = "dirt"
			int maskOptimize = 32
			float scale = 11
			int maskNum = 33
			bool belongsToSet = true
			bool autoMask = true
			int secondaryMaskNum = 22

			float fadeInStart = 15.0
			float fadeInEnd = 40.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// swampy underbrush and leaves and stuff
			int layer = 18
			string name = "swamp"
			string soundType = "grass"			
			string alphaShaderFilename = "terrain_swamp_ground_brown_alpha.sha"
			string clutterFilename = "clutter_swamp_summer.def"
			int maskOptimize = 24			
			float scale = 18
			int maskNum = 33
			bool belongsToSet = true
			bool autoMask = true
			int secondaryMaskNum = 41

			float fadeInStart = 15.0
			float fadeInEnd = 40.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
			
		}				
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Grey cliff
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// greyish brown cliff standard mapping
			int layer = 19
			string name = "grey cliff"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_cliff_plated_alpha_grey.sha"
			int maskOptimize = 56
			float scale = 25
			int maskNum = 16
			bool belongsToSet = true
		}		
		{// greyish brown cliff, XZ plane
			int layer = 20
			string name = "grey cliff"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_cliff_plated_alpha_grey.sha"
			int maskOptimize = 56
			float scale = 25
			int maskNum = 16
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 16
			int cliffPlane = 1
			int cliffAngle = 60
		}
		{// greyish brown cliff, YZ plane
			int layer = 21
			string name = "grey cliff"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_cliff_plated_alpha_grey.sha"
			int maskOptimize = 56
			float scale = 25
			int maskNum = 16
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 16
			int cliffPlane = 2 
			int cliffAngle = 60
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Dwarven cliffsides
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{ // spotty grass/dirt, transitioning from the standard grass (tm)
			int layer = 22
			string name = "spotty grass"
			string alphaShaderFilename = "terrain_grass_spotty_alpha_reg.sha"
			string soundType = "grass"
			int maskOptimize = 64
			float scale = 6
			int maskNum = 30
			bool belongsToSet = true
			
			bool autoMask = true
			float fadeInStart = 15.0
			float fadeInEnd = 25.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0				
		}
		{ // brown dirt
			int layer = 23
			string name = "rough dirt"
			string alphaShaderFilename = "terrain_dirt_reg_alpha_reg.sha"
			string clutterFilename = "clutter_rocksandpebbles_reg.def"
			string soundType = "dirt"
			int maskOptimize = 32
			float scale = 11
			int maskNum = 30
			bool belongsToSet = true
			bool autoMask = true

			float fadeInStart = 17.0
			float fadeInEnd = 35.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// greyish brown cliff, XZ plane
			int layer = 24
			string name = "orange dwarven cliff"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_dwarf_mountainside.sha"
			int maskOptimize = 56
			float scale = 65
			int maskNum = 30
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 30
			int cliffPlane = 1
			int cliffAngle = 50
		}
		{// greyish brown cliff, YZ plane
			int layer = 25
			string name = "orange dwarven cliff"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_dwarf_mountainside.sha"
			int maskOptimize = 56
			float scale = 65
			int maskNum = 30
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 30
			int cliffPlane = 2 
			int cliffAngle = 50
		}
		{// greyish brown cliff, XZ plane
			int layer = 26
			string name = "orange dwarven cliff"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_dwarf_mountainside.sha"
			int maskOptimize = 56
			float scale = 65
			int maskNum = 30
			bool belongsToSet = true
			bool autoMask = true

			float fadeInStart = 40.0
			float fadeInEnd = 50.0
			float fadeOutStart = 60.0
			float fadeOutEnd = 70.0
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Start of lava stuff
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{ // dried volcanic rock bed, greyish
			int layer = 27
			string name = "dried lava bed"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_volcano_lava_dryrock.sha"	
			int maskOptimize = 32
			float scale = 9
			int maskNum = 8
			bool belongsToSet = true
		}
		{ // rough volcanic rock, brownish
			int layer = 28
			string name = "dried lava bed"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_volcano_rock_cliffface_b_alpha.sha"
			int maskOptimize = 56
			float scale = 18
			int maskNum = 8
			bool belongsToSet = true
			
			bool autoMask = true
			float fadeInStart = 5.0
			float fadeInEnd = 25.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// red rock cliffside, XY plane
			int layer = 29
			string name = "red rock cliffside"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_volcano_lava_cliffface_alpha.sha"
			int maskOptimize = 56
			float scale = 30
			int maskNum = 8
			bool belongsToSet = true
			int secondaryMaskNum = 20
			
			bool autoMask = true
			float fadeInStart = 30.0
			float fadeInEnd = 55.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0				
		}		
		{// red rock cliffside, XZ plane
			int layer = 30
			string name = "red rock cliffside"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_volcano_lava_cliffface_alpha.sha"
			int maskOptimize = 56
			float scale = 30
			int maskNum = 8
			bool belongsToSet = true
			int secondaryMaskNum = 20

			bool cliffTexture = true
			int cliffBindLayer = 8
			int cliffPlane = 1
			int cliffAngle = 65
			
			bool autoMask = true
			float fadeInStart = 60.0
			float fadeInEnd = 75.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0	
		}
		{// red rock cliffside, YZ plane
			int layer = 31
			string name = "red rock cliffside"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_volcano_lava_cliffface_alpha.sha"
			int maskOptimize = 72
			float scale = 30
			int maskNum = 8
			bool belongsToSet = true
			int secondaryMaskNum = 20

			bool cliffTexture = true
			int cliffBindLayer = 8
			int cliffPlane = 2 
			int cliffAngle = 65
			
			bool autoMask = true
			float fadeInStart = 60.0
			float fadeInEnd = 75.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0			
		}
		{ // dried lava with cracks showing magma through
			int layer = 32
			string name = "cracked lavaflow"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_volcano_lava_blue.sha"
			int maskOptimize = 40
			float scale = 14
			int maskNum = 7
		}
		{// ashen rock cliffside, XY plane
			int layer = 33
			string name = "ashen rock cliffside"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_volcano_rock_cliffface_alpha.sha"
			int maskOptimize = 56
			float scale = 18
			int maskNum = 12
			bool autoMask = false
		}
		{ // reddish volcanic rock, twisty looking
			int layer = 34
			string name = "reddish volcanic rock"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_volcano_lava_cliffface3.sha"
			int maskOptimize = 56			
			float scale = 8
			int maskNum = 17
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Start of snow stuff
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{ // Frozen lake, draw first for easier snowy alpha blending
			int layer = 35
			string name = "frozen lake"
			string soundType = "ice"			
			string alphaShaderFilename = "terrain_ice_lake_alpha_blue.sha"
			int maskOptimize = 40
			float scale = 45
			int maskNum = 5
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{ // snow and black rock, automasks with several other layers on mask 4
			int layer = 36
			string name = "snow"
			string soundType = "snow"			
			string alphaShaderFilename = "terrain_snow_reg_alpha_color.sha"
			string clutterFilename = "clutter_ice_reg.def"
			int maskOptimize = 16			
			float scale = 21
			int maskNum = 4
			bool belongsToSet = true
		}
		{ // more snow and rock
			int layer = 37
			string name = "crusty snow"
			string soundType = "snow"			
			string alphaShaderFilename = "terrain_snow_cliff_alpha_reg.sha"
			int maskOptimize = 56
			float scale = 15
			int maskNum = 4
			bool belongsToSet = true

			bool autoMask = true
			float fadeInStart = 15.0
			float fadeInEnd = 30.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{ // more snow and rock
			int layer = 38
			string name = "spotty snow"
			string soundType = "snow"			
			string alphaShaderFilename = "terrain_snow_splotchy_alpha_white.sha"
			string clutterFilename = "clutter_rocksandpebbles_reg.def"
			int maskOptimize = 64			
			float scale = 13
			int maskNum = 4
			bool belongsToSet = true		

			bool autoMask = true
			float fadeInStart = 32.0
			float fadeInEnd = 40.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{ // more snow and rock
			int layer = 39
			string name = "icy rock"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_cliff_icerock_alpha_grey.sha"
			int maskOptimize = 56			
			float scale = 40
			int maskNum = 4
			bool belongsToSet = true		

			bool autoMask = true
			float fadeInStart = 36.0
			float fadeInEnd = 50.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~		
		{ // Snowy rock cliff, XZ plane
			int layer = 40
			string name = "snowy rock cliff"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_icecliff_desaturate_alpha_snowy.sha"
			int maskOptimize = 36		
			float scale = 65
			int maskNum = 40
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 40
			int cliffPlane = 1
			int cliffAngle = 45
		}
		{ // more snow cliff, YZ plane
			int layer = 41
			string name = "snowy rock cliff"
			string alphaShaderFilename = "terrain_icecliff_desaturate_alpha_snowy.sha"
			string soundType = "rock"
			int maskOptimize = 36
			float scale = 65
			int maskNum = 40
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 40
			int cliffPlane = 2
			int cliffAngle = 45
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// blue cliff, XZ plane
			int layer = 42
			string name = "blue cliff"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_icecliff_desaturate_alpha_snowy.sha"
			int maskOptimize = 32			
			float scale = 65
			int maskNum = 19
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 19
			int cliffPlane = 1
			int cliffAngle = 50
		}
		{// more blue cliff, YZ plane
			int layer = 43
			string name = "blue cliff"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_icecliff_desaturate_alpha_snowy.sha"
			int maskOptimize = 32
			float scale = 65
			int maskNum = 19
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 19
			int cliffPlane = 2 
			int cliffAngle = 50
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Start of desert layers
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// desert sand, shares mask 24 with several other layers
			int layer = 44
			string name = "dried mud"
			string soundType = "sand"			
			string alphaShaderFilename = "terrain_desert_sand_alpha_orange.sha"
			int maskOptimize = 32			
			float scale = 13
			int maskNum = 24
			bool belongsToSet = true
		}
		{// transition to cliff texture
			int layer = 45
			string name = "desert transition"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_sandstone_transition_alpha.sha"
			int maskOptimize = 64			
			float scale = 33
			int maskNum = 34
			bool autoMask = false
		}
		{// desert strata cliff, XZ plane
			int layer = 46
			string name = "desert cliff"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_strata_desert_alpha_orange.sha"
			int maskOptimize = 64			
			float scale = 88
			int maskNum = 24

			bool cliffTexture = true
			int cliffBindLayer = 24
			int cliffPlane = 1
			int cliffAngle = 50

			bool autoMask = true
			float fadeInStart = 45.0
			float fadeInEnd = 60.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// desert strata cliff, XZ plane
			int layer = 47
			string name = "desert cliff"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_strata_desert_alpha_orange.sha"
			int maskOptimize = 64			
			float scale = 88
			int maskNum = 24
			bool belongsToSet = true

			bool cliffTexture = true
			int cliffBindLayer = 24
			int cliffPlane = 2 
			int cliffAngle = 50

			bool autoMask = true
			float fadeInStart = 45.0
			float fadeInEnd = 60.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// heavily cracked sand, standalone
			int layer = 48
			string name = "hard cracked mud"
			string soundType = "dirt"
			string alphaShaderFilename = "terrain_mud_crackedhard_alpha_reg.sha"
			int maskOptimize = 48
			float scale = 11
			int maskNum = 29
		}
		{// dried scrubby yellow grass, standalone
			int layer = 49
			string name = "dried scrubby grass"
			string soundType = "grass"
			string alphaShaderFilename = "terrain_grass_scrub_alpha_reg.sha"
			int maskOptimize = 32
			float scale = 12
			int maskNum = 26
			
		}		
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Sandy beach and trod on sand, for saris/sslik island
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// walked on sand
			int layer = 50
			string name = "walked beach sand"
			string soundType = "sand"
			string alphaShaderFilename = "terrain_saris_sand_brown.sha"
			int maskOptimize = 32
			float scale = 6
			int maskNum = 28
		}
		{// smooth beach sand
			int layer = 51
			string name = "smooth beach sand"
			string soundType = "sand"
			string alphaShaderFilename = "terrain_saris_sand_brown2.sha"
			int maskOptimize = 32
			float scale = 32
			int maskNum = 28
			
			bool autoMask = true
			float fadeInStart = 4.0
			float fadeInEnd = 10.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0			
		}
		{// darker sand for under buildings
			int layer = 52
			string name = "darker sand"
			string soundType = "sand"
			string alphaShaderFilename = "terrain_saris_sand_brown3.sha"
			int maskOptimize = 32
			float scale = 6
			int maskNum = 31
		}		
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Start of undead layers
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// undead cracked dirt, shares mask 21 with other layers
			int layer = 53
			string name = "undead cracked dirt"
			string soundType = "dirt"			
			string alphaShaderFilename = "terrain_undead_dry_rock_crack_alpha.sha"
			string clutterFilename = "clutter_dead_reg.def"
			int maskOptimize = 24			
			float scale = 9
			int maskNum = 21
			bool belongsToSet = true
		}		
		{// more undead terrain, blacker cracked dirt
			int layer = 54
			string name = "undead dark cracked rock"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_side_stones_green_alpha.sha"
			int maskOptimize = 32
			float scale = 6
			int maskNum = 21
			bool belongsToSet = true

			bool autoMask = true
			float fadeInStart = 9.0
			float fadeInEnd = 25.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// undead cliffs
			int layer = 55
			string name = "undead rock"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_undead_cliffface_gray_flat_alpha.sha"
			int maskOptimize = 32
			float scale = 15
			int maskNum = 21
			bool belongsToSet = true
			//int secondaryMaskNum = 36

			bool autoMask = true
			float fadeInStart = 35.0
			float fadeInEnd = 45.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0
		}
		{// undead cliffs
			int layer = 56
			string name = "undead rock"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_undead_cliffface_gray_flat_alpha.sha"
			int maskOptimize = 32
			float scale = 25
			int maskNum = 21
			bool belongsToSet = true
			//int secondaryMaskNum = 36			

			bool autoMask = true
			float fadeInStart = 35.0
			float fadeInEnd = 45.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0

			bool cliffTexture = true
			int cliffBindLayer = 21
			int cliffPlane = 1 
			int cliffAngle = 50
		}
		{// undead cliffs
			int layer = 57
			string name = "undead rock"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_undead_cliffface_gray_flat_alpha.sha"
			int maskOptimize = 32
			float scale = 25
			int maskNum = 21
			bool belongsToSet = true
			//int secondaryMaskNum = 36

			bool autoMask = true
			float fadeInStart = 35.0
			float fadeInEnd = 45.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0

			bool cliffTexture = true
			int cliffBindLayer = 21
			int cliffPlane = 2 
			int cliffAngle = 50
		}
		{// undead cliffs
			int layer = 58
			string name = "undead cliffface"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_undead_cliffface_gray.sha"
			int maskOptimize = 32
			float scale = 15
			int maskNum = 36
			bool belongsToSet = true
			//int secondaryMaskNum = 36

			bool autoMask = false
		}
		{// undead cliffs
			int layer = 59
			string name = "undead cliffface"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_undead_cliffface_gray.sha"
			int maskOptimize = 32
			float scale = 25
			int maskNum = 36
			bool belongsToSet = true
			//int secondaryMaskNum = 36			

			bool autoMask = true
			float fadeInStart = 35.0
			float fadeInEnd = 45.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0

			bool cliffTexture = true
			int cliffBindLayer = 21
			int cliffPlane = 1 
			int cliffAngle = 65
		}
		{// undead cliffs
			int layer = 60
			string name = "undead cliffface"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_undead_cliffface_gray.sha"
			int maskOptimize = 56
			float scale = 25
			int maskNum = 36
			bool belongsToSet = true
			//int secondaryMaskNum = 36

			bool autoMask = true
			float fadeInStart = 35.0
			float fadeInEnd = 45.0
			float fadeOutStart = 90.0
			float fadeOutEnd = 90.0

			bool cliffTexture = true
			int cliffBindLayer = 21
			int cliffPlane = 2 
			int cliffAngle = 65
		}
		{// undead flat ground
			int layer = 61
			string name = "undead flat"
			string soundType = "dirt"
			string alphaShaderFilename = "terrain_undead_roadway_gray_alpha.sha"
			int maskOptimize = 48
			float scale = 7
			int maskNum = 39
		}
		{// human tomb floor flagstone
			int layer = 62
			string name = "floor - human tomb"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_tile_dungeon_floor.sha"
			int maskOptimize = 48
			float scale = 7
			int maskNum = 45
		}
		{// human tomb floor flagstone
			int layer = 63
			string name = "floor - dragon tomb"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_tile_dungeon_floor.sha"
			int maskOptimize = 48
			float scale = 7
			int maskNum = 45
			int secondaryMaskNum = 46
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Beach and ocean bottom
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// ocean bottom, standalone
			int layer = 64
			string name = "ocean bottom"
			string soundType = "sand"
			string alphaShaderFilename = "terrain_silt_reg_alpha_grey.sha"
			int maskOptimize = 32
			float scale = 16
			int maskNum = 32
		}
		{// sandy beach, standalone
			int layer = 65
			string name = "beach sand"
			string soundType = "sand"
			string alphaShaderFilename = "terrain_sand_beach_alpha.sha"
			int maskOptimize = 32
			float scale = 26
			int maskNum = 10
		}		
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Roads go on top of everything else, and are standalone
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{// undead path
			int layer = 66
			string name = "undead path"
			string soundType = "dirt"
			string alphaShaderFilename = "terrain_rock_round_undead_alpha.sha"
			int maskOptimize = 48
			float scale = 9
			int maskNum = 37
			bool isRoad = true
		}
		{// volcanic path
			int layer = 67
			string name = "volcanic path"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_vocano_roadway_alpha.sha"
			int maskOptimize = 48
			float scale = 9
			int maskNum = 44
			bool isRoad = true
		}
		{// desert cobblestone road
			int layer = 68
			string name = "desert road"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_saris_cobblestone_alpha.sha"
			int maskOptimize = 48
			float scale = 6
			int maskNum = 38
			bool isRoad = true
		}
		{// high desert road
			int layer = 69
			string name = "high desert road"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_rock_flag_alpha_yellow.sha"
			int maskOptimize = 48
			float scale = 7
			int maskNum = 35
			bool isRoad = true
		}
		{// dirt path
			int layer = 70
			string name = "dirt path"
			string soundType = "dirt"
			string alphaShaderFilename = "terrain_dirt_path_alpha_reg.sha"
			int maskOptimize = 32
			float scale = 7
			int maskNum = 6
			bool isRoad = true
		}
		{// cobblestone road
			int layer = 71
			string name = "cobblestone road"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_rock_round_alpha_grey.sha"
			int maskOptimize = 48
			float scale = 4
			int maskNum = 18
			bool isRoad = true
		}
		{// snowy roadway
			int layer = 72
			string name = "snowy path"
			string soundType = "rock"			
			string alphaShaderFilename = "terrain_snowy_road_path.sha"
			int maskOptimize = 56
			float scale = 11
			int maskNum = 13
			bool isRoad = true
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// Holodeck, I really should probably remove this because it's silly
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{
			int layer = 73
			string name = "test"
			string soundType = "rock"
			string alphaShaderFilename = "terrain_testarea_reg_alpha_reg.sha"
			int maskOptimize = 48
			float scale = 10
			int maskNum = 11
		}
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		// water!
		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		{
			int layer = 74
			string name = "water - blue"
			string soundType = "water"
			string alphaShaderFilename = "terrain_water_01_reg_blue.sha"
			float scale = 500
			int maskNum = 50
//			int secondaryMaskNum = -2
			bool isWater = true
		}
		{
			int layer = 75
			string name = "water - green"
			string soundType = "water"
			string alphaShaderFilename = "terrain_water_02_reg_green.sha"
			float scale = 500
			int maskNum = 51
//			int secondaryMaskNum = -2
			bool isWater = true
		}
		{
			int layer = 76
			string name = "water - black"
			string soundType = "water"
			string alphaShaderFilename = "terrain_water_reg_reg_black.sha"
			float scale = 500
			int maskNum = 52
//			int secondaryMaskNum = -2
			bool isWater = true
		}
		{
			int layer = 77
			string name = "water - ocean"
			string soundType = "water"
			string alphaShaderFilename = "terrain_water_ocean_reg_reg.sha"
			float scale = 500
			int maskNum = 53
//			int secondaryMaskNum = -2
			bool isWater = true
		}
	}
}