Map Analysis mode: export to file command will now show "Save File" dialog instead of putting the file in the same folder as the map, also added some boilerplate.
Tag Explorer plugin: save to file command will now show "Save File" dialog instead of putting the file in the same folder as the map, also added some boilerplate.
Internal: reformatted GZCrash.log a bit.
Program Configuration: selected test engine index was not saved when applying the form.
Program Configuration: selected test engine index was not pasted when pasting a game configuration or test engines.
Program Configuration: in some cases current test engine name was not saved when applying the form.
Program Configuration: fixed broken logic when trying to add a test engine with the same file name as already existing one.
Texture Browser Form: don't save current texture group when the form was canceled.
Keyboard Shortcut Reference export: generated html will now be saved to program configuration folder if working folder is write-protected.
Internal: added SupportedMapFormats property to EditModeAttribute. A mode with this property specified will be available only in specified map formats.
Interface: Ceiling Align Mode and Floor Align Mode are now enabled by default.
Interface: Ceiling Align Mode and Floor Align Mode are now only available in UDMF map format.
Interface: Visplane Explorer Mode is now available only in Doom map format.
Also, I would like to use this opportunity to thank Siberian Tiger from DTD Team for helping me with SVN builds for more than two years. You made my constant wrestling with the code a much less tedious process.
Game Configurations: changed default map name for Doom maps to "E1M1".
New Map Form: "E1M1" is now used as a default name for Doom maps.
Thing Browser Control: double-click event is now sent only if user clicked in the node's label area.
Interface: added info messages for several toolbar toggles.
Interface: made Brightness icon more readable when using dark windows themes.
Internal: UDMF sector slopes and offsets are no longer stored in sector.Fields. Use sector.FloorSlope, sector.FloorSlopeOffset, sector.CeilingSlope and sector.CeilingSlopeOffset.
Visual mode: real floor was colored by 3d floor's color even when it was below real floor.
Action Browser form: keyboard focus is now set to Filter text box by default.
"Texture 'XXX' is double defined in resource 'YYY'." warning is no longer displayed if a TEXTURE1/2 texture contains a patch with the same name as the texture.
Script names/numbers cache was not updated (no scripts were shown in the drop downs when using script setting actions).
SCRIPTS lump was not saved when saving a map.
BCC script compiler (https://github.com/wormt/bcc/) is now bundled with GZDB.
Main Form, "File" menu: only existing files are now added to the "recent files" list.
Linedefs Mode: "Flip Linedefs" action now tries to align linedefs, so their front (or back) point towards the same sector.
Sectors Mode: "Flip Linedefs" action is now available form this mode, and it will also try to align linedefs, so their front (or back) point towards the same sector.
Preferences: added "Capitalize texture names" option (located in Preferences -> Appearance -> Additional options). When disabled, the casing of displayed texture names will match filenames for textures loaded form TEXTURES or pk3/pk7/folder resources.
Textures Browser: added support for displaying long texture names.
Errors list is now cleared when reloading resources.
Visual mode: added basic support for sector slopes (no UI for that feature yet).
Snippets: changed token syntax from $XX to [XX]
[LB] (Line Break) marker can now be used in snippets.
Game Configurations: added "enabledbydefault" parameter. When set to true, a game configuration will be available by default (e.g. when an user starts the editor for the first time).
GZDB will no longer throw an exception when trying to update default value in a TypeHandler, which doesn't implement default value handling.
Script Editor: added snippets to auto-complete list (currently they aren't inserted properly though...).
Script Editor: auto-indentation now works a bit smarter.
ScintillaControl.GetLine() was retrieving incorrect line.
Randomize mode: randomized pitch, roll and scale can now be applied to things.
Randomize mode: removed "Relative" option, because results with this option enabled were almost the same as without it.
Classic modes, model rendering: selected models are now rendered using highlight color, so they no longer blend with thing rectangle/circle.
Model rendering, UDMF: scale was applied incorrectly to models with pitch or roll.
Updated documentation.
Thing Edit form, UDMF: default value of pitch and roll angle controls is now up.
Angle control: direction line is not displayed when showing mixed values.
Thing Edit Form, UDMF: added controls for setting pitch, roll, scale, render style, fill color, alpha, health and score.
Visual mode, UDMF: UDMF scale is now applied when rendering sprites.
Added Thing Statistics form (Edit -> View Thing Types...), which shows all loaded thing types with some additional info.
Visual mode: sprites with negative ScaleX and positive ScaleY were not rendered properly.
Classic modes: display was not updated after loading a sprite.
Current testing engine change was not saved on closing the program when no other game configuration settings were changed.
Moved "Rotate Clockwise" and "Rotate Counterclockwise" actions to "Edit" category.
Tag Statistics form: help label was incorrectly aligned.
Some actions in Sectors and Linedefs modes were not used on highlighted map elements.
Some actions in Sectors and Linedefs modes created undo groups incorrectly when used on highlighted map elements.
"Preferences -> Editing -> When splitting a linedef" setting is now always used when splitting linedefs.
"Preferences -> Editing -> When splitting a linedef": added "Reset X and Y" option.
"Preferences -> Editing -> Auto-align textures of newly created linedefs" option now works in a more intelligent fashion.
GLDEFS parser: added a warning when the interval of animated dynamic light is 0.
Visual mode: fixed a crash when an angle of animated dynamic light was set to 0 and light animation was enabled.
Tag explorer: removed unnecessary mode switching when selecting map elements of the same type.
Make Door action: door and track textures are now stored while the editor is running.
Edit Selection Mode: pasted geometry was not merged with the rest of the map if the selection was not modified before applying the mode.
Make Door action: made Make Door form a bit smaller.
Make Door action: sector highlight was not updated after performing the action when a single sector was selected.
Error Checker mode: added "Check missing flats" check.
Error Checker mode: fixed several descriptions.
Sprite patches for sprites defined in TEXTURES are now loaded from Sprites namespace.
Some of my older texture alignment code didn't work properly when strict texture/flat handling ("mixtextureflats" game configuration flag set to false) was enabled.
Fixed some incorrect checks for missing texture ("-").
Fixed a crash when using "Reload GLDEFS" and "Reload (Z)MAPINFO" actions when GLDEFS / MAPINFO file was moved or renamed after opening the map in the editor.
Moved settings for "Draw [stuff]" modes to the top toolbar.
Added hints for Draw Grid mode.
Fixed a status message update bug introduced in previous commit.
When you try to change floor/ceiling texture offsets in Doom/Hexen map formats, a warning is displayed in status bar (instead of spamming you with message windows).
Mode actions toolbar is now auto-hidden when there are no buttons to display.
Draw Curve Mode: added settings panel.
Sectors mode: added "Make Door" button to the toolbar.
Swapped Side panel and Info panel z-order.
Interface: split toolbar into 3 separate toolbars. All toolbar buttons are now viewable at 1024x768.
Interface: grouped stuff in "Modes" menu a bit better.
Interface: added "Draw [stuff]" buttons to modes toolbar.
Interface: reorganized main menu. Hope it makes more sense now.
API: added General.Interface.AddModesButton() and General.Interface.AddModesMenu(), which can be used to add buttons to specific group in "Modes" toolbar and menu items to specific group in "Modes" menu, so actions, which behave like an editing mode, but are not part of one can be added there.
Game Configurations: added "fixedrotation" property to "Polyobject Anchor" (9300), "Polyobject Start Spot" (9301), "Polyobject Start Spot (crush)" (9302) and "Polyobject Start Spot (hurts to touch)" (9303) actors.
Color Picker plugin: moved plugin button to "Modes" toolbar group.
API: added ToolbarSection.Modes property, which can be used in MainForm.AddButton() to add a button to Modes group.
Removed a bunch of unused variables.
When no configuration is enabled, a message was supposed to be shown after startup. Now it actually shows up.
Several configurations were missing from the "Configurations" folder.
Configurations: all 64 game configuration are now available by default.
Game Configurations window: game configurations can now be disabled. This setting is mostly cosmetic. When a game configuration is disabled, it won't be shown in "game configuration" dropdowns in New\Open Map Options and Map Options windows. If a map's .dbs file specifies a disabled configuration, it will be picked as a map configuration anyway.
Linedefs mode: vertex insert preview logic used Highlight range instead of Stitch range (which is used when draw mode engages).
Visual mode: double-sided middle textures were not selected when using "Select" action with "with same texture" modifier.
Textures: some optimizations in patch blending code.
ZDoom ACS script configuration: added definitions for StrLeft, StrMid and StrRight functions.
Map Analysis mode: "Check overlapping lines" now finds duplicate linedefs (e.g. when 2 lines have the same start and end positions).
Map Analysis mode: added "Check overlapping vertices" check. This will check if a vertex is on top of a linedef or another vertex.
Some cosmetic changes in Tools and BaseVisualMode.
Updated zspecial.acs
Visual mode: "Copy Texture", "Copy Texture Offsets" and "Copy Properties" actions now always copy properties from currently highlighted surface (previously they copied properties from the first selected surface when something was selected).
Draw Rectangle mode: nothing was drawn in some cases.
Drag Things mode: grid was not updated when grid size was changed in this mode.
Draw Settings panel: added "All" buttons to "Fill Selection with Textures" and "Remove Textures form Selection" groups
Export to .obj: fixed a crash when trying to export an unsaved map.
Texture preview are now created ~25% faster.
Linedefs mode: event arrows were not redrawn after updating vertex insert indicator.
Configurations: some titles were too long to be displayed properly in the interface.
Numeric textbox: in addition to '++NN' and '--NN', you can use '*NN' and '/NN' to multiply or divide the values.
Configurations, ZDoom_linedefs.cfg: some linedef action arguments were missing a proper type.
Rewritten parts of hints system. Hints are now loaded from "Hints.cfg" file.
When Draw Rectangle or Draw Ellipse mode is enabled, it's settings are now shown in side panel.
Draw Ellipse mode: increased maximum number of sides to 512.
Changed the way tags are shown in Tag Selector controls. Tags without labels are now shown as a number (not "Tag N"), and tags with label are now shown as "N (label)", not "label (N)".
Tag labels are now shown in Thing, Sector and Linedef info panels.
Once again changed the way things are rendered while dragged.
Rearranged the label in PairedIntControl and PairedFieldControl (it is now behind numeric controls).
Optimized MapSet.GetSectorByCoordinates().
Sectors mode, rectangular selection: you can now hold Alt to select things inside of selected sectors.
Sector highlight is now shown when selecting sectors in Tag Explorer.
Error checks: added "Check unused textures" option.
Replaced MissingTexture3D and UnknownTexture3D.
Sectors mode: restored "Lower/Raise Floor/Ceiling by 8 mp" actions.
Visual mode: in some cases sidedefs were rendered as selected when they were not.
Existing linedefs were not split while drawing new lines in some cases.
Texture and height overrides were not applied correctly in some cases.
Preferences form: "Ctrl+Alt+ScrollUp" and "Ctrl+Alt+ScrollDown" dropdown items were setting the shortcut to "Ctrl+Shift+ScrollUp" and "Ctrl+Shift+ScrollDown".
Reverted "Delete Item" action to the way it worked in DB2.
Added "Dissolve Item" action, which works the way "Delete Item" worked in previous revisions of GZDB.
Added "Auto Clear Sidedef Textures" action, "Edit" menu and toolbar button, which toggle automatic removal of sidedef textures when floor or ceiling height is changed or when geometry is drawn, copied or pasted.
Draw Settings panel: upper/lower texture overrides can now be used.
Draw Settings panel: added 2 sets of buttons, which allow to quickly set or clear textures in current selection.
Things are now rendered behind AND on top of the grid/linedefs/vertices when they are dragged.
Redesigned hints system. They are now shown in a side panel.
Edit area auto-focusing is now disabled when script editor is open.
Texture Browser form: no texture group was selected when opening the form in some cases.
Fixed several strange/misleading text messages.
Visual mode: added "Match Brightness" action.
DECORATE parser: actor names, which contain "+" and "-" symbols, are now parsed correctly.
Fixed an error in lump ranges creation logic.
Cosmetic fixes in various warning/error messages.
Updated documentation.
Classic modes: "Paint Selection" and "Toggle Full Brightness" actions can now be used from any plugin.
Fixed possible crash in DECORATE actor color override logic.
UDMF map parser should work ~35% faster now.
Texture browser form: keyboard focus was not updated when switching between textures using Tab key.
"Graphics" folder is now checked when searching for texture patches.
Various cosmetic changes here and there.
Info panel was not updated after leaving Visual mode.
Moved hints logic to ClassicMode, so hints can be displayed by any plugin.
Visual mode: dynamic light animation was not working.
Minor performance improvements in Actor, Configuration, UDMF and TEXTURES parsers.
Sector and Thing Info panels: fixed possible crash when trying to show unknown thing/sector flag.
Hints were not shown properly when multiselection was started while highlighting a map element.
Copy/Paste actions work much faster now.
Classic modes: rendered grid size in now adjusted to current zoom level.
Increased performance when canceling Edit mode after pasting.
"Export to Wavefront .obj" function: current selection is now converted to sectors before running the function (previously it would export selected sectors when there were sectors selected, or the whole map when no sectors were selected).
Sectors mode: optimized sector highlight rendering logic.
Sectors mode: optimized sector effect/tag labels update logic.
Geometry tools: optimized several core functions.
Hints for current editing mode can now be displayed when nothing is highlighted (currently the hints are shown only in Draw Geometry mode).
GZDB is now build with LARGEADDRESSAWARE flag, which increases amount of RAM GZDB can use from 1.4 to 2.8 GB.
These changes were made in previous commit. I just forgot to write info about them:
Classic modes: going to Draw modes when Edit button is pressed when nothing is highlighted can be disabled in Preferences -> Editing -> "Start drawing when Edit pressed over empty space in Classic modes".
Classic modes: removed Preferences -> Editing -> "Try to align horizontal tex. offset of dragged geometry", because it was more confusing than helpful...
Visual mode: changed "Move Texture Left/Right/Up/Down by 8" actions to "Move Texture Left/Right/Up/Down by cur. grid size"
Visual mode: holding Ctrl-Shift while dragging texture with the mouse will snap texture offsets to current grid size.
Classic modes: interiors of highlighted sectors are now highlighted when the action target of currently highlighted map element is sector.
Unhandeled exceptions infos are now written to the event log.
Angle control (the newer, photoshop-like one): left-clicking inside the control now clamps angle to 45-degree increments. Right-clicking inside the control sets precise angle.
Thing Edit Form: replaced angle control with newer one.
Classic modes: fixed minor rendering artifacts when drawing thing direction arrow.
Fixed a possible crash when rendering thing arrows in classic modes caused by incorrect vertex buffer size calculation.
Reverted changes to texture\flat access when "mixtexturesflats" option is set to true in game configuration.
Location and active tab of all Edit Forms are now stored while GZDB is running.
Focus management between editing window and the rest of the interface should work better now.
Tag Explorer plugin: editing window was not updated properly when Edit forms were opened from Tag Explorer.
Tag Explorer plugin, UDMF: comment editing was incorrectly initialized in some cases.
Plugins: fixed a crash caused by inability to find referenced assembly when loading a plugin, which depends on other plugin(s).
Undo-redo, UDMF: undo information was not created properly for several types of UDMF fields for the last map element in the selection when the selection contained more that 1 element.
Updated documentation.
Maintenance stuff:
Core/Plugins/Plug: made current display location and size information properly available to plugins.
Made Core/Controls/ColorControl available to be used by plugins.
Default sector ceiling height can now be set in Preferences.
Default sector floor height can now be set in Preferences.
Maximum number of recent files can now be changed in Preferences.
UDMF, Custom fields: a warning is now shown when a user tries to manually add a managed filed.
UDMF: "Translucent" linedef flag is now marked as obsolete.
Visual mode: added support for "fogdensity" and "outsidefogdensity" MAPINFO properties.
Sector Info panel now shows the number of sector's sidedefs as well as light and fade colors (UDMF only).
UDMF: Sector and sidedef flags are now copied/pasted when using "Copy Properties" and "Paste Properties" actions.
Fixed: in some cases default texture overrides were used even when corresponding option was disabled.
Sector Edit form: light and fade values were not saved when a value was pasted/entered into text box.
Sector Edit form: "reset value" button was not shown for light and fade values when selected sectors had different light/fade colors.
Reverted Open Map form changes from previous commit (my assumption that map marker is always empty was not correct...)
Updated documentation.
Snap Map Elements to Grid mode now works much faster and shows a message when completed.
Forced default textures are now only used in drawing modes.
Exception Dialog: long error descriptions were breaking window layout.
Map will no longer be shown in Open Map form if unrelated data is encountered inside of map namespace.
"Snap Map Elements to Grid" mode now tries to fix invalid geometry after vertex snapping.
Vertices mode: in some cases not all vertices were removed when deleting vertices.
Removed "Load GZDoom light definitions" from preferences. If you want to use GZDoom's GLDEFS definitions, add "lights.pk3" as a resource.
Visual mode: fixed a crash when toggling GZDoom Geometry Effects (Tab)
Fixed sector bounding box calculation error.
Renamed "Edit -> Grid Setup..." to "Edit -> Grid and Backdrop Setup..."
Updated documentation
MissingThing icon is now used when the editor is unable to load thing sprite.
An error is added to error logger when the editor is unable to load thing sprite.
Increased maximum zoom level in Classic modes to 3000%.
Added "1 mp" option in grid size menu.
Added "400%" option in zoom menu.
Renamed "Toggle GZDoom rendering effects" action to "Toggle Geometry Effects".
Sync camera position: Visual Camera height is now changed only if camera is above or below current sector.
Classic modes: view was not redrawn after "Test map from current position" action.
"Test map from current position" action: incorrect player start was used when a map had several Player 1 Start things.
Script editor: pressing "F1" now opens keyword help instead of program manual.
Linedef edit form, Thing edit form: rewritten script support logic. It should now work in the same manner as the rest of controls.
Thing info panel: thing arguments now have proper labels.
Edit forms, UDMF: fields, which are handled by UI, are no longer shown in "Custom" tab.
Visual mode: fixed a crash when loading a model on a video card without Shader model 2.0 support.
Fixed incorrect argument number and changed most of labels in "Cameras and interpolation" section of zdoom_things.cfg.
Visual mode: rendering was broken on video cards without Shader Model 2.0 support.
Engines list was not updated after changing engine in Test button's drop down.
Visual mode: texture offsets are now clamped to texture size when dragging textures with mouse.
Visual mode, UDMF: when gravity is enabled, sector gravity now affects camera movement.
Textures were not loaded properly from PK3/PK7 archives.
Visual mode: restored ability to remove textures using Delete action.
Visual mode: fixed several bugs in Cut/Copy/Paste things actions.
Visual mode: vavoom style 3d floors were not displayed properly.
Visual mode, 3d floors: added support for "RestrictLighting" (2) flag.
Visual mode, 3d floors: inner sides of 3d floors with "swimmable"/"render inside" flags used incorrect brightness value.
Visual mode: Info/Warning/Error status messages were not displayed properly when nothing was selected.
Sector Edit form, UDMF: Reset and Link buttons were overlapped in Floor/Ceiling scale controls.
Textures now load up to 2x faster when "mix textures and flats" flag is set in game configuration.
TEXTUREx/TEXTURES: texture will now be created if at least one of it's patches is loaded.
Visual mode: fixed a crash when "Slope floor to here" (9500) or "Slope ceiling to here" (9501) things were not inside sector.
Fixed: flats were not loaded form wads inside Directory and PK3/PK7 resources.
Sector Info Panel, Linedef Info Panel: texture size was shown for unknown textures.
Texture scale controls now have "Link" button.
Thing, Sector (UDMF) and Linedef edit forms now work in realtime mode.
Some more fixes in Edit form realtime update stuff.
Removed some unused variables and functions.
Status text now displays info about current selection.
Removed StairSectorBuilder plugin. The version form doombuilder.com works fine with current version of GZDB.
Tag Statistics form: you can now double click on Sectors, Linedefs or Things cell to select them, and right click to open their properties.
Texture size labels were displayed incorrectly in some cases.
Rewritten VerticesMode.DeleteItem() once again...
Vertex Edit form now works in realtime mode.
Vertex Edit form: ceiling and floor vertex offsets can now be cleared.
Added StairSectorBuilder plugin (I suppose some external plugins will stop working in GZDB because I've changed ButtonStep to float in ButtonsNumericTextbox a couple revisions ago...).
Preferences form: action description is now scrollable.
Changed background color of Sector Edit form.
Vertex' ZCeiling and ZFloor properties are now managed internally.
Visual mode, UDMF: OffsetX and OffsetY were not properly taken into account in "Fit Texture Width/Height" actions.
UDMF: different Sector Edit Form is now used in UDMF map format.
Some fixes in Linedef edit form.
Added missing icons.
Visual mode, UDMF: renamed "Rotate Thing Clockwise" and "Rotate Thing Counterclockwise" actions to "Rotate Clockwise" and "Rotate Counterclockwise". These actions can now be used to change rotation of floor/ceiling textures.
Visual mode, UDMF: "Reset Texture Offsets" action now also resets sidedef's scale and floor/ceiling's scale and rotation.
Visual mode, UDMF: control line's OffsetX and OffsetY were not taken into account when calculating texture offsets of 3d floors' sides.
Visual mode, UDMF: fixed a ton of bugs in Auto align functions.
Visual mode, UDMF: when using "Move Texture Left/Right/Up/Down by 1" actions texture offsets were not updated properly when texture's scale was < 1.0.
Visual mode, UDMF: OffsetX and OffsetY were not taken into account in "Fit Texture Width/Height" actions.
Dockers Panel: added Pin/Unpin button, which acts the same as "Preferences -> Interface -> Side panels -> Auto hide" checkbox.
Texture size labels can now be disabled by unchecking "Preferences -> Interface -> Show texture and flat sizes in browsers" checkbox.
Texture size labels now are not shown for unknown textures.
Most of texture size labels had incorrect bg color.
ZDoom_linedefs.cfg: action specials 223 and 224 had incorrect Arg0.
Visual mode: fixed a crash after disabling GZDoom rendering effects (Tab key) when visual sector was not created for sector with 3d floor's control linedef.