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

// Categories for the Controls preferences
categories
{
	file = "File";
	edit = "Edit";
	view = "View";
	modes = "Modes";
	tools = "Tools";
	prefabs = "Prefabs";
	classic = "Classic Modes";
	visual = "Visual Modes";
	selecting = "Selecting";
}

// 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.

// 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 trigger regardless if Shift is used.
// disregardcontrol: This action will be triggered regardless if Control is used.
// repeat:          BeginAction will be called for automatic key repetition.
// default:         Default key is only used when the action is loaded for the first
//                  time and the default key is not used by any other action.
//
// allowkeys and allowmouse are true by default, the others are false by default.
//

/*
testaction
{
	title = "Developer Test";
	category = "tools";
	description = "Does whatever the developer wants to test.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}
*/

newmap
{
	title = "New Map";
	category = "file";
	description = "Starts with a new, empty workspace to begin drawing a map from scratch.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

openmap
{
	title = "Open Map";
	category = "file";
	description = "Opens an existing map from WAD file for viewing or modifying.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

closemap
{
	title = "Close Map";
	category = "file";
	description = "Closes the current map and the WAD file in which it exists.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

savemap
{
	title = "Save Map";
	category = "file";
	description = "Saves the current map to the opened source WAD file.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

savemapas
{
	title = "Save Map As";
	category = "file";
	description = "Saves the current map and all resources from the source WAD file to a new WAD file.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

savemapinto
{
	title = "Save Map Into";
	category = "file";
	description = "Saves the current map without any other resources into an existing or new WAD file.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

mapoptions
{
	title = "Map Options";
	category = "edit";
	description = "Shows the Map Options dialog which allows changing the map lump name, game configuration and custom resources.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

configuration
{
	title = "Game Configurations";
	category = "tools";
	description = "Shows the Game Configurations dialog which allows you to configure settings such as nodebuilder, testing program and resources.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

preferences
{
	title = "Preferences";
	category = "tools";
	description = "Shows this Preferences dialog.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

reloadresources
{
	title = "Reload Resources";
	category = "tools";
	description = "Reloads all data resources such as game configuration, textures and flats. Useful when resource files have been changed outside of Doom Builder.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

cancelmode
{
	title = "Cancel Action";
	category = "classic";
	description = "Cancels the current action and switches back to normal editing mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

acceptmode
{
	title = "Accept Action";
	category = "classic";
	description = "Accepts the changes in the current action and switches back to normal editing mode.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

classicselect
{
	title = "Select";
	category = "classic";
	description = "Selects the highlighted item. Also allows selection by dragging a rectangle. Hold shift while dragging a rectangle to toggle additive or normal selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
	disregardshift = true;
}

classicedit
{
	title = "Edit";
	category = "classic";
	description = "Edits the properties of the selected items or drags the selected items. Also initiates drawing or inserts new things when no selection is made. Can be used in combination with Control and Shift for the first drawn vertex.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
	disregardshift = true;
	disregardcontrol = true;
}

scrollwest
{
	title = "Scroll West";
	category = "classic";
	description = "Scrolls the 2D map view to the left.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

scrolleast
{
	title = "Scroll East";
	category = "classic";
	description = "Scrolls the 2D map view to the right.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

scrollnorth
{
	title = "Scroll North";
	category = "classic";
	description = "Scrolls the 2D map view up.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

scrollsouth
{
	title = "Scroll South";
	category = "classic";
	description = "Scrolls the 2D map view down.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

pan_view
{
	title = "Pan View";
	category = "classic";
	description = "Pans the map in the direction of the mouse while held down.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

zoomin
{
	title = "Zoom In";
	category = "classic";
	description = "Zooms in on the map at the current mouse location.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

zoomout
{
	title = "Zoom Out";
	category = "classic";
	description = "Zooms out on the map from the current mouse location.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	repeat = true;
}

centerinscreen
{
	title = "Fit To Screen";
	category = "classic";
	description = "Zooms out the map and centers it to make it completely fit in the screen, giving a high overview of the map.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

insertitem
{
	title = "Insert Item";
	category = "edit";
	description = "Creates a new item depending on the editing mode you are in.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

deleteitem
{
	title = "Delete Item";
	category = "edit";
	description = "Deletes the highlighted or selected items, depending on the editing mode you are in.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

gridsetup
{
	title = "Grid Setup";
	category = "classic";
	description = "Shows the Custom Grid Setup dialog which allows you to set custom grid sizes and a background image.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

griddec		// Note, these were incorrectly swapped before, hence the wrong action name
{
	title = "Grid Increase";
	category = "edit";
	description = "Increases the grid size, decreasing the grid density.";
	unbind = 1;
	mousebuttons = 0;
	mousescroll = 1;
}


gridinc		// Note, these were incorrectly swapped before, hence the wrong action name
{
	title = "Grid Decrease";
	category = "edit";
	description = "Decreases the grid size, increasing the grid density.";
	unbind = 1;
	mousebuttons = 0;
	mousescroll = 1;
}

undo
{
	title = "Undo";
	category = "edit";
	description = "Restores the current map as it was before last action(s) performed.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

redo
{
	title = "Redo";
	category = "edit";
	description = "Repeats the action(s) performed before Undo was used.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

togglesnap
{
	title = "Snap to Grid";
	category = "edit";
	description = "Toggles snapping to the grid for things and vertices that are being dragged.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

toggleautomerge
{
	title = "Merge Geometry";
	category = "edit";
	description = "Toggles automatic merging of geometry for vertices and structures that are being dragged.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

clearselection
{
	title = "Clear Selection";
	category = "edit";
	description = "Deselects all selected elements.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
}

moveforward
{
	title = "Move Forward";
	category = "visual";
	description = "Moves the camera forward in 3D Visual Mode. Use in combination with Shift for double the speed.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardshift = true;
}

movebackward
{
	title = "Move Backward";
	category = "visual";
	description = "Moves the camera backward in 3D Visual Mode. Use in combination with Shift for double the speed.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardshift = true;
}

moveleft
{
	title = "Move Left (strafe)";
	category = "visual";
	description = "Strafes the camera left in 3D Visual Mode. Use in combination with Shift for double the speed.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardshift = true;
}

moveright
{
	title = "Move Right (strafe)";
	category = "visual";
	description = "Strafes the camera right in 3D Visual Mode. Use in combination with Shift for double the speed.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardshift = true;
}

moveup
{
	title = "Move Up";
	category = "visual";
	description = "Moves the camera up in 3D Visual Mode. Use in combination with Shift for double the speed.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardshift = true;
}

movedown
{
	title = "Move Down";
	category = "visual";
	description = "Moves the camera down in 3D Visual Mode. Use in combination with Shift for double the speed.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = true;
	disregardshift = true;
}

testmap
{
	title = "Test Map";
	category = "tools";
	description = "Starts the game and loads this map for playing.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

thingsfilterssetup
{
	title = "Configure Things Filters";
	category = "tools";
	description = "Shows the Things Filters setup dialog which allows you to add, remove and change the things filters.";
	allowkeys = true;
	allowmouse = false;
	allowscroll = false;
}

copyselection
{
	title = "Copy Selection";
	category = "edit";
	description = "Copies the current selection to the clipboard.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

cutselection
{
	title = "Cut Selection";
	category = "edit";
	description = "Copies the current selection to the clipboard and removes it from the map.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

pasteselection
{
	title = "Paste Selection";
	category = "edit";
	description = "Pastes the current contents of the clipboard into the map as a new selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

pasteselectionspecial
{
	title = "Paste Selection Special";
	category = "edit";
	description = "Allows you to choose options or pasting and then pastes the current contents of the clipboard into the map as a new selection.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup1
{
	title = "Select Group  1";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 1";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup2
{
	title = "Select Group  2";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 2";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup3
{
	title = "Select Group  3";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 3";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup4
{
	title = "Select Group  4";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 4";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup5
{
	title = "Select Group  5";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 5";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup6
{
	title = "Select Group  6";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 6";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup7
{
	title = "Select Group  7";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 7";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup8
{
	title = "Select Group  8";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 8";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup9
{
	title = "Select Group  9";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 9";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

selectgroup10
{
	title = "Select Group 10";
	category = "selecting";
	description = "Selects all geometry that was assigned to group 10";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup1
{
	title = "Assign Group  1";
	category = "selecting";
	description = "Assigns the selected geometry to group 1";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup2
{
	title = "Assign Group  2";
	category = "selecting";
	description = "Assigns the selected geometry to group 2";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup3
{
	title = "Assign Group  3";
	category = "selecting";
	description = "Assigns the selected geometry to group 3";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup4
{
	title = "Assign Group  4";
	category = "selecting";
	description = "Assigns the selected geometry to group 4";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup5
{
	title = "Assign Group  5";
	category = "selecting";
	description = "Assigns the selected geometry to group 5";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup6
{
	title = "Assign Group  6";
	category = "selecting";
	description = "Assigns the selected geometry to group 6";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup7
{
	title = "Assign Group  7";
	category = "selecting";
	description = "Assigns the selected geometry to group 7";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup8
{
	title = "Assign Group  8";
	category = "selecting";
	description = "Assigns the selected geometry to group 8";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup9
{
	title = "Assign Group  9";
	category = "selecting";
	description = "Assigns the selected geometry to group 9";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

assigngroup10
{
	title = "Assign Group 10";
	category = "selecting";
	description = "Assigns the selected geometry to group 10";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

openscripteditor
{
	title = "Script Editor";
	category = "view";
	description = "This opens the script editor that allows you to edit any scripts in your map or any script files.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

viewmodenormal
{
	title = "View Wireframe";
	category = "view";
	description = "This sets the view mode to Wireframe. This shows only the map elements without any sector filling.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

viewmodebrightness
{
	title = "View Brightness Levels";
	category = "view";
	description = "This sets the view mode to Brightness Levels. This fills all sectors with their brightness levels.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

viewmodefloors
{
	title = "View Floor Textures";
	category = "view";
	description = "This sets the view mode to Floor Textures. In this view mode the sectors are filled with their floor texture and with their brightness level applied.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

viewmodeceilings
{
	title = "View Ceiling Textures";
	category = "view";
	description = "This sets the view mode to Ceiling Textures. In this view mode the sectors are filled with their ceiling texture and with their brightness level applied.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

visualselect
{
	title = "Select";
	category = "visual";
	description = "Selects the highlighted item.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

visualedit
{
	title = "Edit";
	category = "visual";
	description = "Edits the properties of the selected items or drags the selected items.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

createprefab
{
	title = "Create Prefab";
	category = "prefabs";
	description = "Creates a prefab from the selected geometry and saves it to a prefab file.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

insertprefabfile
{
	title = "Insert Prefab File";
	category = "prefabs";
	description = "Browses for a Prefab file and inserts the prefab geometry into the map.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

insertpreviousprefab
{
	title = "Insert Previous Prefab";
	category = "prefabs";
	description = "Inserts the previously opened Prefab file again.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

toggleinfopanel
{
	title = "Toggle Info Panel";
	category = "view";
	description = "Toggles the info panel between expanded and collapsed.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
}

showerrors
{
	title = "Show Errors and Warnings";
	category = "tools";
	description = "Shows the errors and warnings that may have occurred during loading or editing operations.";
	allowkeys = true;
	allowmouse = true;
	allowscroll = false;
	default = 122;
}
