Commit Graph

99 Commits

Author SHA1 Message Date
spherallic 26b0a8c6ec Improve FOF alpha/blendmode handling 2024-02-10 00:38:06 +01:00
spherallic 6576ed7408 Avoid blockmap use when moving mouse in some classic modes 2023-05-11 17:34:39 +02:00
spherallic 79dfafc691 Correct sector references when manually flipping sidedefs 2023-05-09 20:45:25 +02:00
biwa 199108ba64 Improved solution for issue #573 to not destroy the undo history when no player start is present 2023-05-08 13:26:42 +02:00
spherallic bf7cc42166 Get SplitLinesByVertices up-to-date 2023-05-08 12:30:32 +02:00
spherallic 2f407b585c Unfreeze arrays when stitching geometry fails 2023-05-07 23:23:33 +02:00
Magnus Norddahl 1435208163 Remove more dictionaries from the render loop 2023-05-03 00:10:37 +02:00
Magnus Norddahl 026324779e Speed up linedef processing by not relying on a hashmap 2023-05-03 00:07:21 +02:00
spherallic e44debce82 Skip lines with certain actions and tags when checking unknown textures 2023-05-03 00:06:27 +02:00
biwa 87c30c0bf8 MapSet.NearestLinedefRange using a blockmap now takes into account that the maxrange could be bigger than the blockmap block size 2023-04-26 23:48:01 +02:00
ZZYZX 27be4b6868 Internal: Oops: removed debug logging 2023-04-26 23:18:24 +02:00
biwa 8648227423 Fixed some problems with determining which sector a thing is in 2023-04-26 22:49:01 +02:00
spherallic 3a4695ba92 Remove unused SectorBuilder stuff 2023-04-26 21:27:03 +02:00
spherallic 6d97c9d830 Increase performance on drawing/stitching geometry by reducing blockmap operations 2023-04-26 21:23:08 +02:00
spherallic 444aa706fb Revert "MapSet.NearestLinedefRange using a blockmap now takes into account that the maxrange could be bigger than the blockmap block size"
This reverts commit 0eee76393b.
2023-04-26 18:01:45 +02:00
biwa c27bf325ad Added safeguard to MapSet.NearestLinedefRange if selectionmap is null. Might fix #529. 2023-04-26 17:55:15 +02:00
biwa 0eee76393b MapSet.NearestLinedefRange using a blockmap now takes into account that the maxrange could be bigger than the blockmap block size 2023-04-26 17:54:56 +02:00
Magnus Norddahl b0b1693a62 Rewrite VisualBlockMap to use a quad tree 2023-04-26 17:54:34 +02:00
ZZYZX 12ea1aa313 Fixed: SplitLinesByVertices could leave disposed lines for iteration, which resulted in crashes on certain geometry while using 'Replace with Dragged Geometry'. 2023-04-26 17:44:17 +02:00
ZZYZX 03a1d26302 Internal: threw out a lot of unoptimized code in TraceSector. Now using Tools.FindPotentialSectorAt. 2023-04-26 17:39:11 +02:00
spherallic fc748c18c9 Rename SRB2Type back to Type 2023-04-26 17:17:28 +02:00
biwa b48806838d Fixed an issue where thing positions were modified even when the new position was the same as the old one. Fixes #644 2023-04-26 17:14:03 +02:00
spherallic b54d7a48cc Replace most big foreach loops by for loops in MapSet 2023-04-25 16:09:29 +02:00
biwa f4307a4c64 Sectors Mode: the sectors things are in are only determined if necessary, which should increase performance when switching into Sectors Mode in very big maps 2023-04-24 23:57:52 +02:00
spherallic 4321beca2d Fixed "fixed things scale" option behaving weirdly 2023-02-06 11:08:00 +01:00
MaxED 0d726c6884 Added, Draw Lines mode: added "Remove First Vertex" action (Ctrl-Backspace). It removes the first drawn vertex from the drawing session. Renamed "Remove Previous Vertex" action to "Remove Last Vertex".
Changed, Classic modes: added a limit on how far the view can be scrolled from the editable map area.
Fixed, Drag geometry modes: in some cases incorrect vertices were removed when using "Replace with dragged geometry" drag mode.
Fixed, Game configurations: sector special 195 ("Hidden Sector") was missing from Hexen/UDMF specials list.
2023-01-08 13:20:01 +01:00
MaxED 52940badf6 Optimized map geometry merging performance when creating drawn lines.
Optimized map geometry merging performance when pasting map geometry.
Added, Curve Linedefs mode: added "Flip Curve" button.
Updater: partially rewrote fix from the previous commit.
2023-01-06 14:27:04 +01:00
MaxED 838b1dc702 Fixed, Linedefs mode: linedef selection labels must be updated when performing undo/redo.
Fixed, Things mode: thing selection labels must be updated when performing undo/redo.
Fixed another case of invalid sectors being created after dragging map elements when using "Merge Dragged Geometry" and "Replace with Dragged Geometry" drag modes.
2023-01-06 13:20:48 +01:00
MaxED c919c250f7 Fixed: in some cases lines with only back side were created after dragging map elements when using "Merge Dragger Vertices Only" drag mode.
Fixed: in some cases invalid sectors were created after dragging map elements when using "Merge Dragged Geometry" and "Replace with Dragged Geometry" drag modes, when at least one of dragged linedef was facing into an enclosed void area.
Fixed a crash after drawing lines over a sector with unclosed/invalid boundaries.
Fixed(?): probably fixed a crash when closing Script Editor with an unsaved file during program termination.
2023-01-06 13:16:59 +01:00
MaxED d1d0e93cef Fixed several cases when certain texture manipulation-related actions caused a crash when performed on not-yet-loaded textures. 2023-01-06 12:26:20 +01:00
MaxED d1194019db Fixed: in some cases dragging lines shorter than 1 mu or vertices belonging to such lines resulted in an infinite loop. 2023-01-06 12:04:40 +01:00
MaxED 9d5abaf14f Fixed, map element dragging: in some cases sector properties copied from incorrect sectors were assigned to new sectors when using "Merge Dragged Geometry" mode. 2023-01-06 12:04:12 +01:00
MaxED 5a6e62aa4f Added, Visual mode: added support for ROLLCENTER sprite rendering flag, updated ROLLSPRITE implementation.
Fixed, DECORATE support: the editor was unable to determine actor sprite when the actor itself had no sprites defined and the actor it inherited from was only defined in the game configuration.
Fixed, Drag geometry modes: linedefs without both sides were removed after dragging them when "Replace with Dragged Geometry" mode was active.
Updated ZDoom_DECORATE.cfg.
2023-01-06 11:43:26 +01:00
MaxED 6a660c7d45 Fixed several cases when sector/linedef tag changes were incorrectly recorded by undo system. 2023-01-06 11:40:36 +01:00
MaxED 972d55f066 Added, Find & Replace mode, UDMF: added Linedef activation flags to the "Find Linedef flags" search mode flags list.
Changed, Sound Propagation mode: all sound zones are now shown when no sector is highlighted.
Changed, Sound Environments mode: the mode is now available only in UDMF map format.
Changed, Color Picker plugin: the plugin functionality is no longer available in Doom map format.
Restored the ability to create superimposed lines by dragging them with "Snap to Geometry" mode disabled.
Fixed, Sound Propagation mode: fixed a crash when a single-sided linedef had "Block Sound" flag.
Fixed, Find & Replace mode: in some cases "Find Sector/Sidedef/Linedef/Thing flags" search modes failed to find map elements with required flags.
Fixed, Edit Selection mode: in some cases incorrect geometry was created after applying multipart sector edit when "Replace with Dragged Geometry" mode was enabled.
Fixed a crash caused by eventual GDI font objects overflow.
2023-01-05 00:51:21 +01:00
MaxED 61d3a49dcc Reverted some older changes to Linedef.Join(), which were made for older version of "enhanced" map element merging logic and in some cases were causing incorrect geometry to be created when using current merging logic. 2023-01-05 00:42:00 +01:00
MaxED 945553e527 Changed: "Selection Options" window is now resized automatically.
Fixed: parts of UniFileds.UniValuesMatch() logic were inverted. In some cases this resulted in incorrect behavior of "Select Similar" action in UDMF map format.
Fixed, UDMF: alpha should be ignored when applying sector fade/light color gradients.
Ported eevee's fix for incorrect sector geometry occasionally created after dragging map elements (more info: https://github.com/sirjuddington/SLADE/issues/542).
2023-01-05 00:36:05 +01:00
MaxED 18517b2257 Changed, Visual mode: "Paste Selection" action (Ctrl-V) can now paste both copied textures and things, based on what was copied last.
Changed, Map Analysis mode: the view is now much more zoomed after clocking on a "Check very short linedefs" error check result.
Removed single testing engine launchable by the editor at once limitation (it worked properly only when using Test map actions anyway).
Fixed: re-did the fix for invalid geometry created when drawing very large grids from R2653, because it caused other issues.
2023-01-05 00:34:35 +01:00
MaxED 98e5c5b9b4 Fixed, "Select Similar" action: in some cases map elements flags were incorrectly compared resulting in map elements not being selected when they should have been. 2023-01-05 00:28:19 +01:00
MaxED 95985a8894 Added, Visual mode: added "Toggle Alpha-based Texture Highlighting" action. When enabled, 3d floor textures and middle textures on double-sided lines will be highlighted only when the crosshair points at a non-transparent pixel.
Changed: multi-part sectors are now better preserved after drawing new lines.
Changed, TEXTURES parser: patch loading errors are now ignored for textures with "NullTexture" option.
Changed, Game configurations: changed default door action arguments to better match vanilla ones.
Fixed, Actions: in some cases keyboard shortcuts involving Ctrl/Alt/Shift modifier keys were displayed incorrectly.
Fixed(?): probably fixed inability to save map wad in Slade 3.
Updated ZDoom_ACS.cfg.
Updated ZDoom_DECORATE.cfg.
Updated ZDoom ACC.
2023-01-05 00:15:28 +01:00
MaxED cdfe94bfa4 Added 3 map geometry dragging modes (used when applying Drag Vertices/Linedefs/Sectors modes and Edit Selection mode):
- "Merge Dragged Vertices Only". Only vertex-line intersections will be processed (DB2 mode).
- "Merge Dragged Geometry". Geometry merging will be performed.
- "Replace with Dragged Geometry". Dragged geometry will replace underlaying geometry.
You can switch between these using 3 new actions, top toolbar buttons and Edit menu buttons.
Changed: activating the same 2D mode repeatedly now toggles View modes.
Renamed "Merge Geometry" action/menu item to "Snap to Geometry".
More fixes to vertex/linedef/sector dragging logic.
Updated ZDoom_DECORATE.cfg.
2023-01-04 23:34:58 +01:00
MaxED 14e372cb91 Fixed, vertex/linedef/sector dragging: in some cases middle textures were removed from dragged double-sided lines.
Fixed, ACC compiler: fixed a crash when trying to compile SCRIPTS lump of a new map, which wasn't ever saved.
2023-01-04 23:22:07 +01:00
MaxED e69163a646 Rewritten vertex/linedef/sector dragging logic. Now it processes line-line intersections. And handles more corner cases. And has less bugs. Probably.
Fixed, Edit Selection mode: texture scale was flipped when "Floor/Ceiling Transform" -> "Scale" was enabled.
Changed: a warning is no longer displayed when trying to compile an empty SCRIPTS lump.
Updated ZDoom_DECORATE.cfg.
2023-01-04 23:20:40 +01:00
MaxED d45e71ce21 Fixed, Script Editor: in some cases the editor was unable to restore saved script file settings.
Fixed, Drag Linedefs, Drag Vertices, Edit Selection modes: in some cases sidedefs were incorrectly removed when modifying a closed section of a multi-part sector.
Fixed, Drag Linedefs, Drag Vertices, Drag Sectors, Edit Selection modes: in some cases sidedef textures were not adjusted after applying the modes, leaving middle textures on double-sided lines.
2023-01-04 23:11:19 +01:00
MaxED 6e5a0b61d0 Added, Edit Selection mode: Added "Adjust height" setting. It can be used to adjust floor/ceiling height of selected sectors based on the sector selection was in and the sector selection was moved into.
Removed "Adjust heights to match relatively with surrounding sector" option from Preferences -> Pasting, because sector height adjustments are now handled by Edit Selection mode.
Fixed, Sector info panel: in some cases 0 deg. floor/ceiling texture rotation was triggering texture offset/scale/rotation UI parts to be shown.
Fixed even more cases when sidedefs belonging to linedefs, which were moved on top of existing linedefs, were incorrectly reassigned when applying Edit Selection and Drag Geometry modes.
Fixed, Bridge mode: in some cases calculated floor/ceiling heights were not applied to the sectors created by the mode.
Changed, internal: changed program's CurrentCulture to InvariantCulture.
2023-01-04 23:07:04 +01:00
MaxED b6afbec977 Changed, internal, UDMF: local texture offsets and scale are now copied when merging sidedefs.
Changed, internal: made TextLabel and IRenderer2D public properties compatible with DB2 implementation.
Fixed some more cases when sidedefs belonging to linedefs, which were moved on top of existing linedefs, were incorrectly reassigned when applying Edit Selection and Drag Geometry modes.
Fixed, Map Analysis mode: error checks must be updated after switching map format.
2023-01-04 23:03:22 +01:00
MaxED dc54992693 Added: sectors are now split into multiple sectors when their shape is divided into several closed shapes by drawing new geometry or dragging existing geometry using Edit Selection and Drag Geometry modes.
Fixed: in some cases sidedefs belonging to linedefs, which were moved on top of existing linedefs, were incorrectly reassigned when applying Edit Selection and Drag Geometry modes.
Fixed: Tag Explorer update fix from R2630 was accidentally placed in an UDMF-only if-block.
Updated ZDoom_DECORATE.cfg (A_WeaponOffset).
Updated documentation ("(G)ZDoom text lumps support" page).
2023-01-04 22:54:27 +01:00
MaxED 6c8a59815f Added: angle selector button used in arguments custom fields controls now shows angle value.
Fixed a crash when trying to store a custom field with "Byte Angle" type.
Fixed: in some cases custom field types stored in the map's .dbs file were not applied when loading a map.
2023-01-04 22:48:17 +01:00
MaxED 6c7cf6d432 Added: when "sidedefcompressionignoresaction" property is set to false, sidedefs, which belong to a line with a non-zero action or tag, will be skipped when compressing sidedefs. 2023-01-04 22:22:44 +01:00
MaxED 07705464e1 Game configurations: added "sidedefcompressionignoresaction" property. When set to true, sidedefs will be compressed regardless of linedef action (DB2 behaviour). When set to false, sidedefs, which belong to a line with an action, will be skipped when compressing sidedefs. Default value is false. 2023-01-04 22:19:02 +01:00