3.1.2
Summary
As there are many additions, improvements and fixes since 3.1.1.5, here's a summary of the more noticeable changes (a detailed change list can be found after):
General
- Updated the start page with a new look and layout
- Improved console panel
- Improved support for high DPI displays
- Added support for vanilla-compatible tall gfx patches
- Added support for SiN archives
- Translations now work on truecolour images
- ZScript parsing:
- Can select a pk3 to load base definitions from (eg. gzdoom.pk3) in the base resource archive dialog
- Parsed class and function definitions are made available in the ZScript text editor language (for syntax highlighting etc.)
- Added support for full-path textures in the map editor and texture editor (thanks @Talon1024)
Resource Editor
- Added various new gfx tools:
- Basic pixel-editing tools - draw, erase, translate, various brush shapes and sizes
- Palette Gradient tool (thanks @jmickle66666666)
- Crop Gfx tool
- Improvements to existing gfx tools:
- Palette colours can now be used in colourise/tint/translate tools (right click colour boxes for palette colour selection)
- Colourise and tint effects can now be used in colour remap
- Added metadata display for most audio types
- Many fixes and minor improvements to resource editing tools
Text Editor
- Code folding
- Revamped the Find+Replace feature
- Vastly improved calltips
- Much more configurable, including many new display and theme options
- Many improvements and additions to text language definitions
Map Editor
- Added 'floodfill' feature in 3d mode. This pastes the texture to every adjacent texture
- Added new map checks
- Added new 'Special Presets' feature for hexen and UDMF format maps - select from a list of pre-defined specials (currently generated from ZDoom's XLAT) for quickly setting args and activation trigger flags (custom presets support coming in a later release)
New Scripting Feature
SLADE v3.1.2 introduces a fairly major new feature - scripting. This allows lua scripts to be written that can interact with SLADE and perform various functions. Some documentation for the types and functions that are available in scripts can be found here: http://slade.mancubus.net/docs/scripting (the examples are a good place to start and see some things that are possible). As the docs page says, this feature is still pretty WIP - I'd like to add a fair bit more functionality to it, and the API may change in future releases.
Detailed Notes
General
- Added support for vanilla-compatible tall gfx patches
- Added support for SiN archives
- Added GOG BFG Edition classic IWAD path detection
- Updated the start page with a new look and layout, including some other new features:
- Shows the latest news post from the website if an internet connection is available
- Optional dark theme (Preferences -> Interface), which also applies to the online documentation
- The 'Update Available' alert will show on the start page if it is open
- Added 'View -> Start Page' menu item to the main window to show (or reopen) the start page
- Improved console panel:
- Now uses the same colours as the text editor
- Log messages are coloured by type (eg. warnings - yellow)
- The 'Run' button in the run dialog is now the default button (so pressing enter will activate it)
- Added 'View -> Toolbars' menu to main windows
- Added an option to control the behaviour of the directory archive external changes check:
- Always ignore changes
- Always apply changes
- Ask (previous behaviour)
- Translations now work on truecolour images
- Added new command line options:
-nosplash
disables the splash window-debug
enables debugging info and log messages
- Various game configuration updates:
- New and updated Eternity engine configurations (thanks @Altazimuth)
- Updated ZDoom UDMF configuration with new properties
- Various speed improvements (thanks @Monsterovich and @anotak)
- Fixed a potential crash if timidity fails to launch
- Fixed the icon displaying corrupted in linux (thanks @crisisinaptica)
- Lots of refactoring and changes under the hood to fix some long standing bugs and improve maintainability
- Various minor UI tweaks and improvements
- (Very) Many other minor improvements and fixes
Definition Parsing
- Added basic
ZMAPINFO
parsing- DoomEdNums parsed from
ZMAPINFO
are now linked toDECORATE
/ZScript classes
- DoomEdNums parsed from
- Improved
DECORATE
parsing, now properly supports inheritance - ZScript is now parsed from a configured (g)zdoom.pk3 file on startup and imported to the 'ZScript' text language
- Added controls to browse for the pk3 on the base resource configuration panel
- ZScript in open archives is parsed:
- Used for thing type definitions in the map editor (same as
DECORATE
) - Imported to the ZScript text editor language (functions and class names only for now)
- Used for thing type definitions in the map editor (same as
Resource Editor
- Added basic pixel-editing tools in the gfx editor
- Multpile painting modes: draw, erase, translate
- Various brush shape presets, including dithered patterns
- Added new Palette Gradient tool (thanks @jmickle66666666)
- Added new Crop Gfx tool
- Palette colours can now be used in colourise/tint/translate tools (right click colour boxes for palette colour selection)
- Improvements to the gfx colour translation tool:
- Colourise and tint effects can now be used in colour remap
- Added a checkbox so that the translation string only reports palette ranges, regardless of which translation types are used
- Added metadata display for most audio types
- Don't proceed with deleting the entry if esc or close is pressed on the 'delete entry' confirmation dialog
- Don't consider gfx modified if the offset is touched but not actually changed
- Don't allow duplicate entry names in directory archives
- Standalone entry tabs now correctly close if the entry is deleted from its parent archive (this could previously cause a crash if the entry tab was switched to after being deleted)
- Fixed duplicate 'save changes' prompts when clicking away from a modified entry in linux
- Fixed a potential crash when sorting the entry list
- Fixed an issue where switching away from a modified entry would sometimes cause multiple save prompts to show
- Fixed 'access is denied' error log spam while checking directory archives for changes on disk
- Fixed potential crash on opening/playing HMI music entries
- Fixed crash on loading certain wav entries (eg.
TIRE
in action2.wad) - Fixed multiple issues with the data grid entry panel:
- Fixed string cells being filled with junk characters on being modified
- Fixed cell modification for certain entry types (
GENMIDI
,PNAMES
) - Fixed various crashes when trying to perform actions after all rows are removed
- Modified cell colours are correctly updated after deleting/inserting rows
Texture Editor
- Added filter text box to texture list
- Fixed a crash when removing a patch from the patch table
Text Editor
- Added code folding feature, can fold code blocks (eg. between
{
and}
), preprocessor blocks (eg.#region
/#endregion
) and comment blocks. - Added option to override the text editor font globally (rather than using what is defined in the style)
- Added a simple preview to the text editor styles preferences page
- Added new styles for 'Comment (Doc)', 'Type', 'Property', 'Word Match' and 'Current Line'
- Created new SLADE default colour sets (light and dark) and an additional 'Material' colour set
- Moved everything from the bottom TextEntryPanel toolbar to a new 'Text' entry menu (word wrap, jump to, find+replace)
- Indent guides and right margin line colours are now configurable
- Revamped the Find+Replace feature:
- Is now a panel that pops up below the text editor, so it doesn't get in the way of the text like the old dialog did
- 'Find Previous' button
- Extra matching options - match start of word, regular expression (isn't 'real' regex, but scintilla's version of it), and backslash expressions
- Can press enter while the find text is highlighted to find next (also shift+enter to find previous)
- When activated, the find text will be populated by either the current selection or the word under the cursor, and the 'find' text box will be focused and selected
- Added 'Jump to Line #' feature
- Vastly improved calltips:
- No longer look like something straight out of windows 95
- (Optionally) colourise function name and parameter types
- (Optionally) dim function parameters that are optional
- Limit width of calltips and split to multiple lines so they are less lilely to extend off the screen (they still can, though)
- Pressing escape while a calltip is open will close it
- Pressing up/down while a calltip with multiple function parameter sets is open will cycle through the sets (can also click on the up/down arrows as before)
- Corrected some issues where calltips would hang around when they shouldn't or not show up when they should
- Added ability to define function descriptions, which will show up in calltips
- Changed function config behaviour to override a previously defined function if another with the same name is encountered, rather than adding the new args as a set (so no more 2x identical arg sets for ACS_Execute, etc.)
- Show the function context (eg. the class or namespace the function belongs to)
- Show default parameter values where applicable
- Show (some) ZScript function qualifiers
- Show if the function is deprecated (and the deprecated version)
- TextLanguage definition improvements and new features:
- Comment, preprocessor and block start/end tokens are now configurable
- Allow more word lists to be defined for syntax highlighting (added 'Type' and 'Property' word lists, in addition to the existing keyword/constant/function lists)
- The
case_sensitive
option now actually works - Can now define words as block start/end delimiters
- Added ability to define more than one comment style per language (thanks @crisisinaptica)
- Changed the 'Jump To' option/dialog to an auto-updating dropdown that is always showing on the top toolbar
- Improved text modification checking
- Added more customisation options:
- 'Extra Line Height' setting to increase line height
- 'Indent With Spaces' option
- 'Show Whitespace' option
- Added (optional) highlighting of all occurrences of the word under the cursor, or the selected text if any
- Added (optional) highlight for current line
- Added keybinds to comment and uncomment code (thanks @crisisinaptica)
Ctrl
+/
will comment out the current or selected lines with line comments (eg.//
), or uncomment them if they are already commented outCtrl
+Shift
+/
works as above, but uses block comments (eg./* */
)
.
is no longer counted as a 'word' character, so eg. double clicking to select a word will stop at any.
rather than including it- Fixed refresh issues with multi-line brace matching in windows
- Fixed text editor stealing focus from other controls (most noticeable in text controls - the cursor would show up in the wrong spot)
Map Editor
- String args are now shown in the info overlay
- Added Z height changes for things.
Ctrl
+mousewheel
will change thing height, floor/ceiling heights, and wall vertical offsets. - Added floodfill. This pastes the texture to every adjacent texture. Default key is
shift
+middle click
because that's the key in DB2/GZDB(BF), and because it's consistent withshift
+left click
for flood-select.- Because of that, default key for simple paste texture has been changed to
ctrl
+middle click
.
- Because of that, default key for simple paste texture has been changed to
- Added new map checks:
- Check for missing tagged objects
- Check for unknown line and thing specials
- Check for unknown sector types
- Check for obsolete things
- Added new 'Special Presets' feature for hexen and UDMF format maps - select from a list of pre-defined specials (currently generated from ZDoom's XLAT) for quickly setting args and activation trigger flags (custom presets support coming in a later release)
- Added line angle display to line info overlay (thanks @Dethernal)
- Significant performance improvements for large maps with ZDoom specials
- Reduced CPU usage while the map editor isn't active (thanks @cyclopsian)
- Disable undo/redo during map edit operations
- Fixed some potential crashes on entering 3d mode
- Fixed crashes on (re)opening the map editor in certain situations
- Fixed issues with 3d mode on MacOS with high-DPI displays (thanks @alexey-lysiuk)
- Fixed line flags in UDMF not using the correct names
- Fixed memory leak when drawing vertices (thanks @nevesnunes)
- Fixed wrong texture scale and offset for scaled textures in 3d mode (thanks @Talon1024)
New Scripting Feature
SLADE v3.1.2 introduces a fairly major new feature - scripting. This allows lua scripts to be written that can interact with SLADE and perform various functions. Some documentation for the types and functions that are available in scripts can be found here: http://slade.mancubus.net/docs/scripting (the examples are a good place to start and see some things that are possible). As the docs page says, this feature is still pretty WIP - I'd like to add a fair bit more functionality to it, and the API may change in future releases.
- Added ability to run lua scripts to perform various functions in SLADE
- Added a new 'Script Manager' window for writing/running SLADE editor scripts. Available in the 'Tools' menu:
- Create and edit different types of editor scripts:
- Custom scripts - simple scripts that can be run via the script manager
- Archive scripts - scripts that must contain an
execute
function taking in anArchive
, which will be run on the current archive. Can be run via the 'Archive -> Run Script' menu - Entry scripts - scripts that must contain an
execute
function taking in an array ofArchiveEntry
, which will be run on the currently selected entries. Can be run via the 'Entry -> Run Script' menu or the entry context menu - Map scripts - scripts that must contain an
execute
function taking in aMap
, which will be run on the current map. Can be run via the 'Tools -> Run Script' menu in the map editor
- Ability to view scripting docs in a tab (in menu 'View -> Documentation')
- Create and edit different types of editor scripts:
- Added
script
console command to run a lua script. Arguments are concatenated and separated by spaces, to allow entering something like:script App.logMessage('This is a log message')