Commit graph

82 commits

Author SHA1 Message Date
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
MaxED
8599e33b2f Fixed: in some cases sidedefs were incorrectly reassigned when applying Edit Selection and Drag Geometry modes. 2023-01-04 22:11:56 +01:00
MaxED
099f8d316c Added: holding Control key while switching to/from Visual mode will now temporarily disable position synchronization (works only when 'Synchronize camera position between 2D and 3D modes' Preferences option is enabled).
Fixed severe lock-up after finishing dragging many vertices/linedefs/sectors in Classic modes.
Updated documentation ("Synchronizing camera position").
2023-01-04 22:05:52 +01:00
MaxED
b7fbb443e2 Added, Drag Vertices\Linedefs\Sectors\Edit Selection modes: sidedefs facing outside of current selection are now reattached/added/removed after moving the selection.
Currently this will work as intended only if the selection ends up either completely inside a single sector or completely outside of any sector. Also this logic won't be applied if the selection contains the lines with only start or end vertex selected.
Internal: some TextLabel refactoring.
2023-01-04 20:06:08 +01:00
MaxED
4c7aae544b Added, Linedefs mode, Things mode: selection numbers can now be displayed and can be toggled using the "View Selection Numbering" mode toolbar button.
Added, Linedefs mode, Things mode: sector tags can now be displayed and can be toggled using the "View Sector Tags" mode toolbar button.
Fixed, Classic modes, DB2 bug: in some cases text label size was queried before it was calculated, resulting in text labels being rendered when they shouldn't.
Updated ZDoom_DECORATE.cfg (A_LogFloat).
2023-01-04 17:12:17 +01:00
MaxED
75f0f91a88 Internal: removed some duplicate casts, marked some classes is IDisposable, some streams were disposed more than once. 2023-01-04 14:04:43 +01:00
MaxED
f37fc2c662 Added, Tag Explorer plugin, UDMF: added multiple tags support.
Changed, cosmetic: elapsed time is now displayed after resources loading finishes.
Changed, internal: changed Clock.CurrentTime type to long.
Fixed, Tag Statistics window: in some cases the map view was not updated after selecting items in Sectors/Linedefs/Things columns.
Fixed, cosmetic: Draw Curve mode icon was missing a shadow.
2023-01-04 13:15:34 +01:00
spherallic
c063986e00 Add toggle for displaying invisible SRB2 FOFs 2022-12-06 00:20:42 +01:00
sphere
095aa9bb68 GZDB merging - part 1 2022-11-25 17:14:35 +00:00
spherallic
ccbd11a114 Remove unneeded stuff 2022-08-22 23:06:37 +02:00
spherallic
4673fec95a Fixed linedefs sometimes not being split in certain situations. (Backported from UDB) 2022-08-22 20:25:37 +02:00
sphere
9745e802dc Merge branch 'blentran-support' into 'master'
Blentran support

See merge request STJr/ZoneBuilder!6
2022-01-11 22:17:10 +00:00
sphere
0ac4ee5f0c Make skywall rendering much more accurate to 2.2, and take horizon lines into account. 2021-10-21 12:21:27 +02:00
sphere
f4a771553b Add support for most new blendmodes. 2021-06-17 11:05:08 +02:00
sphere
cc93734354 Update config and restore copy slope rendering in Visual Mode. 2021-02-17 01:49:48 +01:00
MascaraSnake
72fcc68ba3 Retain the settings for repeating midtextures when clamping a sidedef's X offset to the texture width 2017-01-28 19:11:49 +01:00
MascaraSnake
7e5c53cfc6 Stop custom FOF parser from crashing when the back upper texture is invalid 2016-07-17 14:16:50 +02:00
MascaraSnake
6ad64c1cc0 Merged in GZDB r2497. 2016-04-07 19:31:06 +02:00