Commit graph

19093 commits

Author SHA1 Message Date
Robert Müller bb650b85c4 Minor refactoring of console rendering variables
Remove temporary variables. Mark variables as `const` when possible. Avoid duplicate calculations. Use `bool` instead of `int`.
2024-02-18 13:12:20 +01:00
Dennis Felsing 8d2de4b8c2
Merge pull request #7984 from Robyt3/Editor-Layer-Lockup-Fix
Fix editor UI locking up when dragging groups/layers quickly
2024-02-17 22:29:05 +00:00
Robert Müller aded3f70a2 Fix editor UI locking up when dragging groups/layers quickly
Reset dragging operation when the dragged button has been unset and reset dragged button when operation has been reset, to prevent the editor from being stuck in either of two inconsistent states. This could be reproduced easily by clicking very quickly while moving the mouse up and down over the groups/layers list.

Do not call `CheckActiveItem` on a UI element (the dragged button) which might not be in view, as this prevents the UI from detecting the invalid active item, when groups/layers are dragged very far and quickly outside the scrollregion.

Closes #6855.
2024-02-17 13:14:13 +01:00
Robert Müller 886b417ed4
Merge pull request #7983 from archimede67/editor-fix-quads-2
Editor: fix quad snapping when grid is enabled
2024-02-17 09:42:59 +00:00
Robert Müller a720bb0c29
Merge pull request #7976 from ChillerDragon/pr_ed_hover_tiles_vector
[vector] Move select layer to editor component
2024-02-17 09:34:28 +00:00
Corantin H 87155d4a82 Fix logic for preferring grid over quad snapping 2024-02-17 10:16:09 +01:00
ChillerDragon 9134e31800 Move select layer to editor component
closed #7943
closed #7612
2024-02-17 12:06:04 +08:00
Dennis Felsing 1bc11c517d
Merge pull request #7981 from Robyt3/Http-Cancel-New-Jobs-On-Shutdown
Abort new HTTP requests immediately when shutting down `CHttp`
2024-02-16 18:07:02 +00:00
Robert Müller c729ccad32 Abort new HTTP requests immediately when shutting down CHttp
Immediately cancel new HTTP requests instead of enqueuing them when already shutting down `CHttp`. Otherwise, `CChooseMaster` may wait forever for HTTP requests to be completed while the client is shutting down, if `CHttp` was shutdown while `CChooseMaster` is not waiting for an existing HTTP request.

Not directly caused by #7962, but it made it more likely to happen.

Closes #7980.
2024-02-16 17:33:50 +01:00
archimede67 aae674897a
Merge pull request #7975 from ChillerDragon/pr_ed_wasd_speed
[editor] Increase WASD pan speed when holding down shift
2024-02-16 12:50:10 +00:00
Dennis Felsing 467c497514
Merge pull request #7979 from Robyt3/Client-Entities-Mod-Fixes
Fix entities textures not being built for non-DDNet/DDRace types, fix assertion due to double-free of transparent texture
2024-02-15 22:31:04 +00:00
Robert Müller fdf427db15 Fix entities textures not being built for non-DDNet/DDRace types
The combined entities texture for all layers except the switch layer was only built when the gametype has a front, speedup, tele or tune layer, which is only the case for servers declaring DDNet or DDRace type in their gameinfo. Now this entities layer is always built, as the game layer is always present.
2024-02-15 21:51:53 +01:00
Robert Müller ab3445967d Fix assertion due to double-free of transparent texture
The transparent texture is reused for multiple entity layers and should never be unloaded.
2024-02-15 20:49:55 +01:00
Dennis Felsing f8c9a11c03
Merge pull request #7978 from Robyt3/Editor-Layer-Selector-UI-Handling
Cleanup select layer UI element handling
2024-02-14 23:21:44 +00:00
Robert Müller 0a776b9062 Cleanup select layer UI element handling
Expose UI element ID for the main map editor as member variable so the select layer by tile funtionality can correctly be enabled when the map editor is the hot item.
2024-02-14 22:03:25 +01:00
ChillerDragon 7ec182b498 Increase editor pan speed when holding down shift 2024-02-14 08:43:21 +08:00
Dennis Felsing 5cb37c2e4a
Merge pull request #7974 from Robyt3/Menus-Tabs-Tooltips
Add tooltips for all icon-based menu and browser tabs
2024-02-13 23:51:30 +00:00
Robert Müller 639a5879a6 Add tooltips for all icon-based menu and browser tabs 2024-02-13 22:26:28 +01:00
Robert Müller 6c27894a63
Merge pull request #7973 from ChillerDragon/pr_ed_igfx
Remove indirect Graphics() access in BrushSelecting()
2024-02-13 21:03:17 +00:00
Dennis Felsing 754cb2eee8
Merge pull request #7972 from Robyt3/Base-Documentation-Shell-OS-etc
Document all shell, OS, secure random and related functions
2024-02-13 08:48:03 +00:00
ChillerDragon 2f2b8f32fa Remove indirect Graphics() access in BrushSelecting() 2024-02-13 16:01:18 +08:00
Robert Müller 73011529cd Document all shell, OS, secure random and related functions
Add/update doxygen comments for all `shell_*`, `os_*`, `secure_*`, `cmdline_*`, `windows_*` and related functions.

Move `open_link` and `open_file` declarations to shell group, to the same relative position as their function definitions.
2024-02-12 23:05:21 +01:00
Dennis Felsing 76aeb8e781
Merge pull request #7969 from bencie/add-deep-solo
Add /solo and /deep as practice commands
2024-02-12 16:40:30 +00:00
bencie 997fe8fa3b Add /solo and /deep as practice commands 2024-02-12 17:17:55 +01:00
Dennis Felsing c85be52409
Merge pull request #7968 from Robyt3/Server-Mod-Message-Fix
Make it less likely that antibot message is sent from random tees
2024-02-11 21:58:01 +00:00
Dennis Felsing 2d9a0c8b7a
Merge pull request #7967 from Robyt3/Browser-None-Placeholder-Country-Type
Add placeholder country/type for servers without community, fix filter excluding all items when right-clicking the only entry
2024-02-11 21:54:03 +00:00
Robert Müller be98c17738 Make it less likely that antibot message is sent from random tees
Instead of sending the message from the first client which is not ingame, choose the first client which is fully empty, to make it less likely that the message is sent from a currently connecting client.
2024-02-11 22:12:15 +01:00
Robert Müller f0e71219a9 Add placeholder country/type for servers without community
Add a country "none" with tee flag (code `-1`) and a type "None" for all servers without community.

Previously, the country and type for these servers was unset and their handling special-cased, so any non-empty country/type filter would exclude servers without country/type information. Now individual countries/types can be excluded without also excluding all servers without community.

Closes #7961.
2024-02-11 17:55:53 +01:00
Robert Müller e4e4227709 Fix filter excluding all items when right-clicking the only entry
It was possible to create a community/country/type filter excluding all entries when the list only contains one entry and right-click is used to deselect it.
2024-02-11 17:41:15 +01:00
Dennis Felsing 6d3bd36877
Merge pull request #7964 from ChillerDragon/pr_doc_ui_doeditbox
Document `DoEditBox()`
2024-02-11 14:47:47 +00:00
Robert Müller 8e2195ce16
Merge pull request #7963 from bencie/flag-search
Add flag search
2024-02-11 14:43:47 +00:00
bencie b5960f3fc3 Track filtered flags directly instead of their indices 2024-02-11 15:16:40 +01:00
ChillerDragon 74a9c39650 Document DoEditBox() 2024-02-11 17:47:02 +08:00
bencie 206a36a02a Add searchbar to flags tab in settings 2024-02-11 04:05:35 +01:00
Emir Marincic 8870eb94aa
Merge pull request #7962 from Robyt3/Http-Various-Fixes
Quit client faster by aborting HTTP requests earlier, other HTTP fixes
2024-02-11 01:14:12 +00:00
Robert Müller 9d1ebe726c Quit client faster by aborting HTTP requests earlier
Shutdown `CHttp`, i.e. abort all HTTP requests, as early as possible when quitting/restarting the client, after the config has been saved but before shutting down the gameclient. Previously, this was delayed until the engine shutdown, so the requests would often finish entirely instead of being aborted by the callback.

Previously, HTTP requests being aborted due to `CHttp` shutting down were considered `EHttpState::ERROR`, which sometimes causes deadlocks during engine shutdown or destruction of `CHttp`. The state is now set to `ABORTED` by passing `CURLE_ABORTED_BY_CALLBACK` to `OnCompletionInternal`. The otherwise unused handling of internal errors is removed.
2024-02-10 22:38:42 +01:00
Robert Müller b2041f5703 Fix assertion due to incorrect HTTP request state
Previously, it was assumed `ResultJson` would return `nullptr` for HTTP requests which have been aborted or failed with an error, which would trigger the newly added assertion error "Request not done".
2024-02-10 22:38:10 +01:00
Robert Müller 399ba63a2c Fix incorrect check for aborted server list GET request result
The HEAD request result has already been checked above.
2024-02-10 22:37:54 +01:00
Dennis Felsing e747a57af8
Merge pull request #7960 from archimede67/editor-fix-auto-automap
Editor: fix FPS drop when editing tiles layer properties
2024-02-10 13:44:52 +00:00
Corantin H 93120b83cf Call FlagModified only when property can affect automapper (fixes #7959)
Handle more cases for undoing auto automap
2024-02-10 12:15:28 +01:00
Dennis Felsing a7bbcf00a6
Merge pull request #7956 from archimede67/editor-fix-quads
Editor: fix several quads related issues
2024-02-09 23:13:30 +00:00
Dennis Felsing 62afe9ee89
Merge pull request #7958 from Robyt3/Infomessages-Refactoring
Refactor `CInfoMessages`
2024-02-09 23:13:16 +00:00
Robert Müller fe5b9d2dc9 Encapsulate CInfoMessages members 2024-02-09 21:35:35 +01:00
Robert Müller dda86b4624 Refactor info message creation
Add `CInfoMessages::CreateInfoMsg` function to create fully initialized info messages, to reduce duplicate code when creating info messages.
2024-02-09 21:35:14 +01:00
Robert Müller 4be56bb87d Refactor info message rendering
Improve readability of flag rendering code.

Add `ROW_HEIGHT` and `FONT_SIZE` constants.
2024-02-09 21:35:07 +01:00
Robert Müller 9295993190 Remove redundant text width calculation
Directly use the bounding box which has already been calculated for the text containers, instead of calculating the text width again for every info message text.
2024-02-09 21:34:45 +01:00
Robert Müller ebe60738d9 Refactor CInfoMessages::AddInfoMsg usage
Reduce duplicate code by moving screen remapping and validation of the info message into the `AddInfoMsg` function.

Check for valid kill message before creating text containers, so they are not created and deleted unnecessarily.

Assign info message type directly instead of passing it as a separate parameter.
2024-02-09 21:33:47 +01:00
Robert Müller 109b6bfb8e Refactor info message text container creation
Combine `CreateNamesIfNotCreated` and `CreateFinishTextContainersIfNotCreated` functions to `CreateTextContainersIfNotCreated` function to reduce duplicate code on usage.

Extract duplicate code for determining name color in info messages as lambda function.
2024-02-09 21:33:27 +01:00
Robert Müller 1683304acd Ensure skin info of finish messages is valid 2024-02-09 21:33:14 +01:00
Robert Müller 289b7b08c7 Ensure finish info messages are initialized
Closes #7913.
2024-02-09 21:33:04 +01:00