/******************************************\
	Doom Builder Actions Configuration
\******************************************/

// Categories for the Controls preferences
categories
{
	drawing = "Drawing";
	vertices = "Vertices";
	linedefs = "Lines";
	sectors = "Sectors";
	things = "Things";
}

// This just defines which actions there are, what description they have and
// some behaviour options. The Doom Builder core will bind to these actions
// with delegates (function pointers) where you use the BeginAction and
// EndAction attributes.

// Behaviour options:
//
// allowkeys: Allows the user to bind standard keys to this action.
// allowmouse: Allows the user to bind mouse buttons to this action.
// allowscroll: Allows the user to bind the scrollwheel to this action.
// disregardshift: This action will be triggered regardless if Shift is used.
// disregardcontrol: This action will be triggered regardless if Control is used.
// disregardalt: This action will be triggered regardless if Alt is used.
// repeat: BeginAction will be called for automatic key repetition.
//
// allowkeys and allowmouse are true by default, the others are false by default.
//

//JBR Added defaults in some actions

verticesmode
{
	title = "Vertices Mode";
	category = "modes";
	description = "Switches to vertices editing mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 86; // V
}

linedefsmode
{
	title = "Linedefs Mode";
	category = "modes";
	description = "Switches to linedefs editing mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 76; // L
}

sectorsmode
{
	title = "Sectors Mode";
	category = "modes";
	description = "Switches to sectors editing mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 83; // S
}

thingsmode
{
	title = "Things Mode";
	category = "modes";
	description = "Switches to things editing mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 84; // T
}

drawlinesmode
{
	title = "Start Drawing";
	category = "drawing";
	description = "Starts drawing lines. See the Drawing category for actions available during drawing mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 131140; // Ctrl-D
}

//mxd
drawrectanglemode
{
	title = "Start Rectangle Drawing";
	category = "drawing";
	description = "Starts drawing rectangle. Increase/Decrease Subdivision Level and Increase/Decrease Corners Bevel actions are avaliable in this mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196676; // Ctrl-Shift-D
}

//mxd
drawellipsemode
{
	title = "Start Ellipse Drawing";
	category = "drawing";
	description = "Starts drawing ellipse. Increase/Decrease Subdivision Level and Increase/Decrease Corners Bevel actions are avaliable in this mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 327748; // Alt-Shift-D
}

//mxd
drawcurvemode
{
	title = "Start Curve Drawing";
	category = "drawing";
	description = "Starts drawing a curve. Increase/Decrease Subdivision Level actions are avaliable in this mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 393284; //Ctrl-Alt-D
}

//mxd
drawgridmode
{
	title = "Start Grid Drawing";
	category = "drawing";
	description = "Starts drawing a grid. Increase/Decrease Subdivision Level and Increase/Decrease Corners Bevel actions are avaliable in this mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 327751; //Alt-Shift-G
}

//JBR
drawshapemode
{
	title = "Start Shape Drawing";
	category = "drawing";
	description = "Starts drawing a shape. Increase/Decrease Subdivision Level and Increase/Decrease Corners Bevel actions are avaliable in this mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 262212; //Alt-D
}

insertthingsradiallymode
{
	title = "Insert Things Radially";
	category = "drawing";
	description = "Inserts Things radially. Increase/Decrease Number of Things and Increase/Decrease Radius actions are available in this mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
increasesubdivlevel
{
  title = "Increase Subdivision Level";
	category = "drawing";
	description = "Increases subdivision level in Rectangle and Ellipse Drawing Modes.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
  default = 131066;
}

//mxd
decreasesubdivlevel
{
	title = "Decrease Subdivision Level";
	category = "drawing";
	description = "Decreases subdivision level in Rectangle and Ellipse Drawing Modes.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 131067;
}

//mxd
increasebevel
{
	title = "Increase Corners Bevel";
	category = "drawing";
	description = "Increase corners bevel in Rectangle Drawing Modes. Bevel can be negative.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196602;
}

//mxd
decreasebevel
{
	title = "Decrease Corners Bevel";
	category = "drawing";
	description = "Decreases corners bevel in Rectangle Drawing Modes. Bevel can be negative.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196603;
}

increasenumber
{
	title = "Increase Number of Things";
	category = "drawing";
	description = "Increase number of Things in Insert Things Radially Mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196602;
}

decreasenumber
{
	title = "Decrease Number of Things";
	category = "drawing";
	description = "Decreases number of Things in Insert Things Radially Mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196603;
}

increaseradius
{
	title = "Increase Radius";
	category = "drawing";
	description = "Increase radius in Insert Things Radially Mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 131066;
}

decreaseradius
{
	title = "Decrease Radius";
	category = "drawing";
	description = "Decreases radius in Insert Things Radially Mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 131067;
}

//mxd
bridgemode
{
	title = "Bridge Mode";
	category = "drawing";
	description = "Select two lines or two series of lines, then activate this tool to draw a bezier path between them.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
	default = 131138;
}

//mxd
placethings
{
	title = "Place Things";
	category = "edit";
	description = "Creates things of given type and places them inside of selected sectors or on top of selected vertices.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

//mxd
selectsimilar
{
	title = "Select Similar Map Elements";
	category = "edit";
	description = "Selects map elements, similar to currently selected ones, based on a set of settings.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

//mxd
filterselectedthings
{
	title = "Filter Selected Things";
	category = "things";
	description = "Opens a window, which lets you pick thing type(s) you want to leave selected.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

//mxd
classicpaintselect
{
	title = "Paint Selection";
	category = "classic";
	description = "Selects or deselects items by dragging the mouse. Hold Shift while dragging to toggle additive selection. Hold Ctrl while dragging to enable subtractive selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
	disregardshift = true;
	disregardcontrol = true;
	disregardalt = true;
}

drawpoint
{
	title = "Draw Vertex";
	category = "drawing";
	description = "Draws a vertex at the mousecursor position.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardshift = true;
	disregardcontrol = true;
	disregardalt = true;
}

removepoint
{
	title = "Remove Previous Vertex";
	category = "drawing";
	description = "Removes the previously drawn vertex from the drawing session.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

finishdraw
{
	title = "Finish Drawing";
	category = "drawing";
	description = "Finishes the drawing and creates the geometry.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

resetactionsandtags
{
	title = "Reset actions and tags";
	category = "classic";
	description = "This resets the actions, effects and tags of all lines or sectors in your selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 262226;
}

resetflags
{
	title = "Reset flags";
	category = "classic";
	description = "This resets the flags of all lines or things in your selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 327762;
}

selectnonessential
{
	title = "Select non-essential vertices/lines";
	category = "classic";
	description = "This selects all vertices or lines, that are not essential to sector shapes, from your selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 65622;
}

selectsinglesided
{
	title = "Select single-sided";
	category = "linedefs";
	description = "This keeps only the single-sided lines in your selection selected. Also works in Visual Mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 65585;
}

selectdoublesided
{
	title = "Select double-sided";
	category = "linedefs";
	description = "This keeps only the double-sided lines in your selection selected. Also works in Visual Mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 65586;
}

selectfloors
{
	title = "Select floors";
	category = "visual";
	description = "This keeps only the sector floors in your selection selected.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 262214;
}

selectceilings
{
	title = "Select ceilings";
	category = "visual";
	description = "This keeps only the sector ceilings in your selection selected.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 262211;
}

fliplinedefs
{
	title = "Flip Linedefs";
	category = "linedefs";
	description = "This flips the selected linedefs around and keeps sidedefs on the correct side.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

alignlinedefs //mxd
{
	title = "Align Linedefs";
	category = "linedefs";
	description = "This aligns the selected linedefs, so their front (or back) point towards (or away from) the same sector.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

flipsidedefs
{
	title = "Flip Sidedefs";
	category = "linedefs";
	description = "This flips the sidedefs on the selected linedefs around, keeping the line in the same direction.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

applylightfogflag
{
	title = "Apply 'lightfog' flag";
	category = "linedefs";
	description = "This applies 'lightfog' flag to all sidedefs within current selection (UDMF only).";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

curvelinesmode
{
	title = "Curve Linedefs";
	category = "linedefs";
	description = "Curves the selected linedefs with a given number of vertices and distance from the line.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

splitlinedefs
{
	title = "Split Linedefs";
	category = "linedefs";
	description = "Splits the selected linedefs in the middle, or splits the highlighted linedef at the mouse position.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
alignfloortofront
{
	title = "Align Floor Texture to Front Side";
	category = "linedefs";
	description = "Aligns floor textures to front sides of selected linedefs.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

//mxd
alignfloortoback
{
	title = "Align Floor Texture to Back Side";
	category = "linedefs";
	description = "Aligns floor textures to back sides of selected linedefs.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

//mxd
alignceilingtofront
{
	title = "Align Ceiling Texture to Front Side";
	category = "linedefs";
	description = "Aligns ceiling textures to front sides of selected linedefs.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

//mxd
alignceilingtoback
{
	title = "Align Ceiling Texture to Back Side";
	category = "linedefs";
	description = "Aligns ceiling textures to back sides of selected linedefs.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

joinsectors
{
	title = "Join Sectors";
	category = "sectors";
	description = "Joins two or more selected sectors together and keeps all linedefs.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

mergesectors
{
	title = "Merge Sectors";
	category = "sectors";
	description = "Joins two or more selected sectors together and removes the shared linedefs.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
thingaligntowall
{
	title = "Align Things To Linedef";
	category = "things";
	description = "Aligns selected things to closest linedef.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196673; //ctrl-shift-a
}

//mxd
thinglookatcursor
{
	title = "Point Thing to Cursor";
	category = "things";
	description = "Points selected things to cursor position. Hold Ctrl to point away from cursor.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardcontrol = true;
	default = 65612; //Shift-L 
}

//mxd
syncedthingedit
{
	title = "Synchronized Things Editing";
	category = "sectors";
	description = "When enabled, things selection/dragging will be synchronized to sector selection/dragging in Sectors mode. Selected things will be dragged when dragging linedefs in Linedefs mode. Deleting sectors will delete selected things in Sectors mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
	default = 65620; //Shift-T
}

makesectormode
{
	title = "Make Sector Mode";
	category = "modes";
	description = "Switches to the Make Sector editing mode. This mode allows creating and/or fixing split sectors by clicking within a closed region.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

findmode
{
	title = "Find and Replace Mode";
	category = "modes";
	description = "Finds vertices, linedefs, sectors or things with a specific property, selects them and optionally replaces them with a given setting.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

editselectionmode
{
	title = "Edit Selection Mode";
	category = "modes";
	description = "Allows rotating, resizing and moving a selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

gradientbrightness
{
	title = "Make Brightness Gradient";
	category = "sectors";
	description = "Creates a brightness gradient over all selected sectors from the first to the last selected sector.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

gradientfloors
{
	title = "Make Floors Gradient";
	category = "sectors";
	description = "Creates a floor heights gradient over all selected sectors from the first to the last selected sector.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

gradientceilings
{
	title = "Make Ceilings Gradient";
	category = "sectors";
	description = "Creates a ceiling heights gradient over all selected sectors from the first to the last selected sector.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

makedoor
{
	title = "Make Door";
	category = "sectors";
	description = "Creates doors from the highlighted or selected sectors.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

lowerfloor8
{
	title = "Lower Floor by 8 mp";
	category = "sectors";
	description = "Lowers the highlighted or selected floor heights by 8 mp.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
  default = 458747;
}

raisefloor8
{
	title = "Raise Floor by 8 mp";
	category = "sectors";
	description = "Raises the highlighted or selected floor heights by 8 mp.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
  default = 458746;
}

lowerceiling8
{
	title = "Lower Ceiling by 8 mp";
	category = "sectors";
	description = "Lowers the highlighted or selected ceiling heights by 8 mp.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true; 
  default = 393211;
}

raiseceiling8
{
	title = "Raise Ceiling by 8 mp";
	category = "sectors";
	description = "Raises the highlighted or selected ceiling heights by 8 mp.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
  default = 393210;
}

errorcheckmode
{
	title = "Map Analysis Mode";
	category = "modes";
	description = "Checks your map for errors and mistakes and reports the results.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

lowersector8
{
	title = "Lower Floor/Ceiling/Thing by 8 mp";
	category = "visual";
	description = "Lowers the targeted or selected floors/ceilings by 8 mp. This also lowers selected or targeted things.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

raisesector8
{
	title = "Raise Floor/Ceiling/Thing by 8 mp";
	category = "visual";
	description = "Raises the targeted or selected floors/ceilings by 8 mp. This also raises selected or targeted things.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

lowersector1
{
	title = "Lower Floor/Ceiling/Thing by 1 mp";
	category = "visual";
	description = "Lowers the targeted or selected floors/ceilings by 1 mp. This also lowers selected or targeted things.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

raisesector1
{
	title = "Raise Floor/Ceiling/Thing by 1 mp";
	category = "visual";
	description = "Raises the targeted or selected floors/ceilings by 1 mp. This also raises selected or targeted things.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

lowersectorgridsize
{
	title = "Lower Floor/Ceiling/Thing by grid size";
	category = "visual";
	description = "Lowers the targeted or selected floors/ceilings by current grid size. This also lowers selected or targeted things.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

raisesectorgridsize
{
	title = "Raise Floor/Ceiling/Thing by grid size";
	category = "visual";
	description = "Raises the targeted or selected floors/ceilings by current grid size. This also raises selected or targeted things.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

incrementtag
{
	title = "Increment tag of sector/linedef";
	category = "classic";
	description = "Increments the tag of all selected sectors or linedefs by 1.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

decrementtag
{
	title = "Increment tag of sector/linedef";
	category = "classic";
	description = "Increments the tag of all selected sectors or linedefs by 1.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

//mxd
lowersectortonearest
{
	title = "Lower Floor/Ceiling/Thing to adjacent Sector/Thing";
	category = "visual";
	description = "Lowers the targeted or selected floors/ceilings to match the height of adjacent sector. Hold Ctrl to lower to lowest surface in selection. Also drops targeted or selected things to the nearest floor or ceiling or on top of another thing.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardcontrol = true;
	default = 34; //PgDn
}

//mxd
raisesectortonearest
{
	title = "Raise Floor/Ceiling/Thing to adjacent Sector/Thing";
	category = "visual";
	description = "Raises the targeted or selected floors/ceilings to match the height of adjacent sector. Hold Ctrl to raise to highest surface in selection. Also raises targeted or selected things to the nearest ceiling or floor or puts them on top of another thing.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardcontrol = true;
	default = 33; //PgUp
}

showvisualthings
{
	title = "Show Things";
	category = "visual";
	description = "Cycles through the different ways the things are shown in Visual Mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

raisebrightness8
{
	title = "Increase Brightness by 8";
	category = "edit";
	description = "Increases the targeted or selected sector brightness level by 8.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

lowerbrightness8
{
	title = "Decrease Brightness by 8";
	category = "edit";
	description = "Decreases the targeted or selected sector brightness level by 8.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

movetextureleft
{
	title = "Move Texture Left by 1";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures to the left by 1 pixel.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

movetextureright
{
	title = "Move Texture Right by 1";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures to the right by 1 pixel.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

movetextureup
{
	title = "Move Texture Up by 1";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures up by 1 pixel.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

movetexturedown
{
	title = "Move Texture Down by 1";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures down by 1 pixel.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

movetextureleft8
{
	title = "Move Texture Left by 8";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures to the left by 8 pixels.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 65573;
}

movetextureright8
{
	title = "Move Texture Right by 8";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures to the right by 8 pixels.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 65575;
}

movetextureup8
{
	title = "Move Texture Up by 8";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures up by 8 pixels.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 65574;
}

movetexturedown8
{
	title = "Move Texture Down by 8";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures down by 8 pixels.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 65576;
}

//mxd
movetextureleftgs
{
	title = "Move Texture Left by Grid Size";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures to the left by current grid size.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 131109;
}

//mxd
movetexturerightgs
{
	title = "Move Texture Right by Grid Size";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures to the right by current grid size.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 131111;
}

//mxd
movetextureupgs
{
	title = "Move Texture Up by Grid Size";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures up by current grid size.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 131110;
}

//mxd
movetexturedowngs
{
	title = "Move Texture Down by Grid Size";
	category = "visual";
	description = "Moves the offset of the targeted or selected textures down by current grid size.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 131112;
}

//mxd
scaleup
{
	title = "Increase Scale";
	category = "visual";
	description = "Increases the scale of targeted or selected textures or things by 0.1 (UDMF only).";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 105; // Num 9
}

//mxd
scaledown
{
	title = "Decrease Scale";
	category = "visual";
	description = "Decreases the scale of targeted or selected textures or things by 0.1 (UDMF only).";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 103; // Num 7
}

//mxd
scaleupx
{
	title = "Increase Horizontal Scale";
	category = "visual";
	description = "Increases horizontal scale of targeted or selected textures or things by 0.1 (UDMF only).";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 102;
}

//mxd
scaledownx
{
	title = "Decrease Horizontal Scale";
	category = "visual";
	description = "Decreases horizontal scale of targeted or selected textures or things by 0.1 (UDMF only).";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 100;
}

//mxd
scaleupy
{
	title = "Increase Vertical Scale";
	category = "visual";
	description = "Increases vertical scale of targeted or selected textures or things by 0.1 (UDMF only).";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 104;
}

//mxd
scaledowny
{
	title = "Decrease Vertical Scale";
	category = "visual";
	description = "Decreases vertical scale of targeted or selected textures or things by 0.1 (UDMF only).";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
	default = 101;
}

textureselect
{
	title = "Select Texture";
	category = "visual";
	description = "Opens the texture browser to select a texture for the targeted or selected walls, floors or ceilings.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

texturecopy
{
	title = "Copy Texture";
	category = "visual";
	description = "Copies the targeted texture or flat for pasting.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

texturepaste
{
	title = "Paste Texture";
	category = "visual";
	description = "Pastes the copied texture onto the targeted or selected walls, floors or ceilings.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
visualautoalign
{
	title = "Auto-align Textures X and Y";
	category = "visual";
	description = "Automatically aligns the neighbouring textures X and Y offsets until another texture is encountered.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 131137; //Ctrl-A
}

visualautoalignx
{
	title = "Auto-align Textures X";
	category = "visual";
	description = "Automatically aligns the neighbouring textures X offsets until another texture is encountered.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

visualautoaligny
{
	title = "Auto-align Textures Y";
	category = "visual";
	description = "Automatically aligns the neighbouring textures Y offsets until another texture is encountered. The Y alignment only takes the ceiling height for each sidedef into account.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
visualautoaligntoselection
{
	title = "Auto-align Textures to Selection (X and Y)";
	category = "visual";
	description = "Automatically aligns the neighbouring textures X and Y offsets to selected sidedefs until another texture is encountered.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
visualautoaligntoselectionx
{
	title = "Auto-align Textures to Selection (X)";
	category = "visual";
	description = "Automatically aligns the neighbouring textures X offsets to selected sidedefs until another texture is encountered.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
visualautoaligntoselectiony
{
	title = "Auto-align Textures to Selection (Y)";
	category = "visual";
	description = "Automatically aligns the neighbouring textures Y offsets to selected sidedefs until another texture is encountered.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
visualfittextures
{
	title = "Fit Textures";
	category = "visual";
	description = "Scales textures to match the size of selected surfaces.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 393281; //Ctrl-Alt-A
}

toggleupperunpegged
{
	title = "Toggle Upper Unpegged Flag";
	category = "visual";
	description = "Toggles the Upper Unpegged flag on the selected or targeted linedef.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

togglelowerunpegged
{
	title = "Toggle Lower Unpegged Flag";
	category = "visual";
	description = "Toggles the Lower Unpegged flag on the selected or targeted linedef.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

togglepegmidtexture
{
	title = "Toggle Peg Midtexture Flag";
	category = "visual";
	description = "Toggles the Peg Midtexture flag on the selected or targeted linedef.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 80;
}

togglerepeatmidtexture
{
	title = "Toggle Repeat Midtexture Flag";
	category = "visual";
	description = "Toggles the Repeat Midtexture flag on the selected or targeted linedef.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 82;
}

togglegravity
{
	title = "Toggle Gravity";
	category = "visual";
	description = "Toggles the use of gravity while moving around in visual mode. Turn gravity off to fly around, turn gravity on to walk on the sector floors.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

resettexture
{
	title = "Reset Texture Offsets";
	category = "visual";
	description = "Resets the texture offsets of targeted or selected sidedefs (all map formats) and floors/ceilings (UDMF only). Also resets scale of targeted or selected things (UDMF only)";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
resettextureudmf
{
	title = "Reset Local Texture Offsets (UDMF)";
	category = "visual";
	description = "Resets upper/middle/lower texture offsets, scale and brightness of targeted or selected sidedefs. Resets texture offsets, rotation, scale and brightness of targeted or selected floors/ceilings. Resets scale, pitch and roll of targeted or selected things.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196690;	//Ctrl-Shift-R
}

texturecopyoffsets
{
	title = "Copy Offsets";
	category = "visual";
	description = "Copies the targeted texture offsets for pasting.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

texturepasteoffsets
{
	title = "Paste Offsets";
	category = "visual";
	description = "Pastes the copied texture offsets onto the targeted or selected walls.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

copyproperties
{
	title = "Copy Properties";
	category = "visual";
	description = "Copies the targeted object properties for pasting.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

pasteproperties
{
	title = "Paste Properties";
	category = "visual";
	description = "Pastes the copied properties onto the targeted or selected object.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 393302;	// CTRL+ALT+V
}

//mxd
pastepropertieswithoptions
{
	title = "Paste Properties Special";
	category = "visual";
	description = "Pastes the copied properties onto the highlighted or selected objects allowing you to choose the properties to paste.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196694;	// CTRL+SHIFT+V
}

//mxd
toggleslope
{
	title = "Toggle Slope (Front)";
	category = "visual";
	description = "Toggles Slope for selected surfaces. Select or highlight upper/lower walls to add a slope to the front sector. Select or highlight floors or ceilings to remove slope.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 262227; //Alt-S
}

togglebackslope
{
	title = "Toggle Slope (Back)";
	category = "visual";
	description = "Toggles Slope for selected surfaces. Select or highlight upper/lower walls to add a slope to the back sector. Select or highlight floors or ceilings to remove slope.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 393299; //Ctrl-Alt-S
}

toggleskew
{
	title = "Toggle Texture Skewing";
	category = "visual";
	description = "Toggles texture skewing for selected walls.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 262231;
}

placevisualstart
{
	title = "Place Visual Mode Camera";
	category = "classic";
	description = "Places a new, or moves the existing, Visual Mode start thing to the mouse position. This thing will keep track where you left Visual Mode so that you return to Visual Mode in the same location.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

classiccopyproperties
{
	title = "Copy Properties";
	category = "classic";
	description = "Copies the properties of the highlighted or selected object for pasting.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196675;	// CTRL+SHIFT+C
}

classicpasteproperties
{
	title = "Paste Properties";
	category = "classic";
	description = "Pastes the copied properties onto the highlighted or selected objects.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 393302;	// CTRL+ALT+V
}

//mxd
classicpastepropertieswithoptions
{
	title = "Paste Properties Special";
	category = "classic";
	description = "Pastes the copied properties onto the highlighted or selected objects allowing you to choose the properties to paste.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 196694;	// CTRL+SHIFT+V
}

floodfilltextures
{
	title = "Paste Texture Flood-Fill";
	category = "visual";
	description = "This allows you to flood-fill all adjacent textures or flats that are identical to the original with the copied texture.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	default = 65540;
}

//JBR
perpendicularvertex
{
	title = "Perpendicular Vertex";
	category = "classic";
	description = "Create perpendicular from selected vertices.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//JBR
perpendicularlinedef
{
	title = "Perpendicular Linedef";
	category = "classic";
	description = "Create perpendicular from selected linedefs.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//JBR
parallellinedef
{
	title = "Parallel Linedef";
	category = "classic";
	description = "Create parallel linedefs from selected linedefs.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//JBR
vertexintoshape
{
	title = "Vertex into shape";
	category = "classic";
	description = "Create shapes on each selected vertex.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//JBR
vertexslopeassist
{
	title = "Vertex Slope Assistant";
	category = "classic";
	description = "Vertex slope assistant. (SRB2 only)";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

flipselectionv
{
	title = "Flip Selection Vertically";
	category = "edit";
	description = "Flips the selection in Edit Selection mode vertically.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

flipselectionh
{
	title = "Flip Selection Horizontally";
	category = "edit";
	description = "Flips the selection in Edit Selection mode horizontally.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

moveselectionup
{
	title = "Move Selection Up by grid size";
	category = "edit";
	description = "Moves the selection in Edit Selection mode up by the current grid size.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

moveselectiondown
{
	title = "Move Selection Down by grid size";
	category = "edit";
	description = "Moves the selection in Edit Selection mode down by the current grid size.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

moveselectionleft
{
	title = "Move Selection Left by grid size";
	category = "edit";
	description = "Moves the selection in Edit Selection mode left by the current grid size.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

moveselectionright
{
	title = "Move Selection Right by grid size";
	category = "edit";
	description = "Moves the selection in Edit Selection mode right by the current grid size.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

//mxd
rotateclockwise
{
	title = "Rotate Clockwise";
	category = "edit";
	description = "Rotates selected or highlighted things clockwise. Also rotates floor/ceiling textures in UDMF map format.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = true;
	repeat = true;
	default = 262138; // Ctrl + Shift + ScrollUp
}

//mxd
rotatecounterclockwise
{
	title = "Rotate Counterclockwise";
	category = "edit";
	description = "Rotates selected or highlighted things counterclockwise. Also rotates floor/ceiling textures in UDMF map format.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = true;
	repeat = true;
	default = 262139; // Ctrl + Shift + ScrollDown
}

//mxd
pitchclockwise
{
	title = "Change Pitch Clockwise";
	category = "visual";
	description = "Increases pitch of selected or highlighted things (UDMF only).";
	allowkeys = true;
	allowmouse = false;
	allowscroll = true;
	repeat = true;
	default = 458746; // Ctrl + Alt + ScrollUp
}

//mxd
pitchcounterclockwise
{
	title = "Change Pitch Counterclockwise";
	category = "visual";
	description = "Decreases pitch of selected or highlighted things (UDMF only).";
	allowkeys = true;
	allowmouse = false;
	allowscroll = true;
	repeat = true;
	default = 458747; // Ctrl + Alt + ScrollDown
}

//mxd
rollclockwise
{
	title = "Change Roll Clockwise";
	category = "visual";
	description = "Increases roll of selected or highlighted things (UDMF only).";
	allowkeys = true;
	allowmouse = false;
	allowscroll = true;
	repeat = true;
	default = 327674; // Alt + ScrollUp
}

//mxd
rollcounterclockwise
{
	title = "Change Roll Counterclockwise";
	category = "visual";
	description = "Decreases roll of selected or highlighted things (UDMF only).";
	allowkeys = true;
	allowmouse = false;
	allowscroll = true;
	repeat = true;
	default = 327675; // Alt + ScrollDown
}

//mxd
lookthroughthing
{
	title = "Look Through Selection";
	category = "visual";
	description = "Places visual camera at the same position as selected thing and rotates it to match thing's angle.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = true;
	default = 89; //Y
}

//mxd
matchbrightness
{
	title = "Match Brightness";
	category = "visual";
	description = "Makes the brightness of selected surfaces the same as the brightness of highlighted surface (UDMF only).";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
  default = 131149; //Ctrl-M
}

//mxd. moved from GZDoomEditing plugin
gzdbvisualmode
{
	title = "Visual Mode";
	category = "modes";
	description = "Switches to the (G)ZDoom visual editing mode. Hold Shift key to invert 'Sync selection between Visual and Classic modes' setting.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardshift = true;
	disregardcontrol = true;
	default = 81; //Q
}

//mxd.
exporttoobj
{
	title = "Export to Wavefront .obj";
	category = "tools";
	description = "Exports selected sectors (or the whole map if no sectors selected) to Wavefront .obj";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

flooralignmode
{
	title = "Floor Align Mode";
	category = "modes";
	description = "Switches to the (G)ZDoom Floor Align mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

ceilingalignmode
{
	title = "Ceiling Align Mode";
	category = "modes";
	description = "Switches to the (G)ZDoom Ceiling Align mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

togglegzdoomgeometryeffects
{
	title = "Toggle Geometry Effects";
	category = "visual";
	description = "Toggles rendering of (G)ZDoom's geometry effects (slopes, 3D-floors etc.) in Visual mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
	default = 9; //Tab
}

togglesrb2geometryeffects
{
	title = "Toggle SRB2 Invisible FOFs";
	category = "visual";
	description = "Toggles rendering of SRB2's invisible FOF types (light blocks, trigger zones etc.) in Visual mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

togglecolormaps
{
	title = "Toggle Colormaps";
	category = "visual";
	description = "Toggles rendering of colormaps in Visual mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
	default = 262211; //Alt+C
}

// biwa
visualpaintselect
{
	title = "Paint Selection";
	category = "visual";
	description = "Selects or deselects items by dragging the mouse. Hold Shift while dragging to toggle additive selection. Hold Ctrl while dragging to enable subtractive selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
	disregardshift = true;
	disregardcontrol = true;
	disregardalt = true;
}
