Parallax Zoom improves the appearance of maps visually when zooming.
Contrary to initial tests, it does not interfere with certain map
locations such as the shop on the map Timeshop.
The default value appears to be correct for all existing maps.
The value in the map file is non-trivial to manage, and provides little
benefit. See https://github.com/ddnet/ddnet/issues/6196 for further
discussion.
Limit number of sounds being loaded in the client to 64, instead of writing sample indices out of bounds.
Check if sound indices are out of bounds. It was only checked whether the sound index is -1 but no other bounds checking was performed.
Check if image indices are out of bounds. It was not checked for all negative image indices, only -1 was considered.
Add popup message in the editor when trying to add more than 64 sounds, same as for images.
Limit number of images in `map_convert_07` tool, instead of writing out of bounds.
Register the `OnWindowResize` listener in the engine client instead of the game client and properly dispatch the event also to the editor, so text containers in the editor are cleared when the window is resized.
Closes#7018.
Simplify memory management of groups, layers, images, sounds and envelopes by using `std::shared_ptr` for all of them.
Clear brush when creating a new map to prevent crash due to unloaded textures being used in tile layer. Closes#6935.
Also fix crash when restoring a saved brush after removing an image that is being used by it.
Use icons for all server settings buttons. Rearrange and group buttons.
Show buttons in disabled state when they are not useable instead of hiding them.
Remove checker background from server settings list.
Overhaul hotkeys, also show hotkeys in the tooltips:
- Enter: add command
- Alt+Enter: update command (previously M)
- Alt+Up/Down: move command up/down (previously no hotkey)
- Delete: delete command
Don't activate command lineinput when selecting, moving or deleting elements, as this prevents the listbox from accepting the delete hotkey.
Fix server settings listbox being active while file dialog is open.
Ensure extra editor dragbar area matches the respective toolbar size.
Remove spacing on the left side of extra editors to improve alignment.
Increase status bar button sizes and make them consistent.
Use `enum` to track active extra editor instead of using multiple `bool`s.
Disable extra editor buttons when tile picker is shown, as the extra editors are not rendered in this case.
So that buttons in the status bar cannot be used while a popup or the file dialog is open.
The tooltip still has to be rendered after popup menus, as popup menus can set the tooltip, which would otherwise not be shown.
Write the map to a temporary file first. When the map was saved to the temporary file successfully, first delete the existing map file having the real filename, then rename the temporary file to the real filename.
If deleting or renaming fails, show an error message popup and log an error message to the console.
The implementation is consistent with the way temporary files are utilized by Microsoft Word, so this should work on Windows.
See: https://support.microsoft.com/en-us/topic/description-of-how-word-creates-temporary-files-66b112fb-d2c0-8f40-a0be-70a367cc4c85
Different from #4482, this first deletes the old map file before renaming the temporary file. Although it appears that renaming a file would also override the target file, it could be that this does not work on all systems. Additionally, this adds descriptive error messages in the cases of failure.
Closes#4476.
Co-authored-by: Dennis Felsing <dennis@felsin9.de>