6420: Fix slash removal when multiple slashes are pasted in editor r=def- a=Robyt3
When pasting text containing multiple consecutive (back)slashes in the editor save dialog not all slashes where removed. For example with the text `/a//bb/\/ccc////dddd//\//`.
## Checklist
- [X] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Robert Müller <robytemueller@gmail.com>
When pasting text containing multiple consecutive (back)slashes in the editor save dialog not all slashes where removed. For example with the text `/a//bb/\/ccc////dddd//\//`.
6418: Streamline `parse_drmingw.sh` r=def- a=Robyt3
- Also handle newer Dr.Mingw trace format where relative addresses are already resolved, as some crash logs may not contain the list of module addresses and versions.
- Add more parameters to `addr2line` invocation to print addresses, pretty-print, print function names, demangle, and resolve inlined functions.
- Strip absolute prefix of source paths, so the paths all starts at `src/`, to improve readability.
## Checklist
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Robert Müller <robytemueller@gmail.com>
- Also handle newer Dr.Mingw trace format where relative addresses are already resolved, as some crash logs may not contain the list of module addresses and versions.
- Add more parameters to `addr2line` invocation to print addresses, pretty-print, print function names, demangle, and resolve inlined functions.
- Strip absolute prefix of source paths, so the paths all starts at `src/`, to improve readability.
6416: use ValueSelector for envelope selection #3598 r=def- a=Marmare314
Allow choosing envelopes by typing its ID.
## Checklist
- [x] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [x] Considered possible null pointers and out of bounds array indexing
- [x] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: marmare314 <49279081+Marmare314@users.noreply.github.com>
6415: Revert "Pick icon files based on executable name" r=def- a=heinrich5991
This reverts commit c801df311c.
## Checklist
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
6414: Save screenshot in separate thread to avoid lags r=edg-l a=Robyt3
Encoding the image as PNG and saving it to a file comprises the majority of the time when taking a screenshot.
To avoid the client freezing while a screenshot is being saved, this task is moved to a separate background thread.
## Checklist
- [X] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Robert Müller <robytemueller@gmail.com>
6413: CMake: Fix installation for optional targets r=edg-l a=Kaffeine
Closes https://github.com/ddnet/ddnet/issues/6412
<!-- What is the motivation for the changes of this pull request? -->
<!-- Note that builds and other checks will be run for your change. Don't feel intimidated by failures in some of the checks. If you can't resolve them yourself, experienced devs can also resolve them before merging your pull request. -->
## Checklist
I've checked that both `-DCLIENT=OFF` and `-DSERVER=OFF` do not breaks the install target.
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Alexander Akulich <akulichalexander@gmail.com>
Encoding the image as PNG and saving it to a file comprises the majority of the time when taking a screenshot.
To avoid the client freezing while a screenshot is being saved, this task is moved to a separate background thread.
6409: Refactor server process launching from client r=def- a=Robyt3
## Checklist
- [X] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Robert Müller <robytemueller@gmail.com>
6410: update russian.txt to incoming translation r=def- a=lolipodass
<!-- What is the motivation for the changes of this pull request? -->
<!-- Note that builds and other checks will be run for your change. Don't feel intimidated by failures in some of the checks. If you can't resolve them yourself, experienced devs can also resolve them before merging your pull request. -->
## Checklist
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [x] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [x] Considered possible null pointers and out of bounds array indexing
- [x] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: lolipodass <56706038+lolipodass@users.noreply.github.com>
6406: Fix deprecation warning in ffmpeg 6 (fixes#6398) r=Robyt3 a=def-
<!-- What is the motivation for the changes of this pull request? -->
<!-- Note that builds and other checks will be run for your change. Don't feel intimidated by failures in some of the checks. If you can't resolve them yourself, experienced devs can also resolve them before merging your pull request. -->
## Checklist
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Dennis Felsing <dennis@felsin9.de>
6408: Fix some potentially undefined editor member variables r=def- a=Robyt3
See #6407.
## Checklist
- [X] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Robert Müller <robytemueller@gmail.com>
6405: Remove note about it being neovim specific r=def- a=ChillerDragon
<!-- What is the motivation for the changes of this pull request? -->
<!-- Note that builds and other checks will be run for your change. Don't feel intimidated by failures in some of the checks. If you can't resolve them yourself, experienced devs can also resolve them before merging your pull request. -->
## Checklist
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: ChillerDragon <ChillerDragon@gmail.com>
Optimize MOTD rendering in ingame menu by caching the text.
Use the correct text height based on the aligned font size instead of the original font size, to fix the discrepancy between the scrollable height and the text height.
Optimize MOTD rendering by caching the round rect and the text.
Align font and rect sizes so exactly 24 lines of text fit in the MOTD rect with margins on all sizes.
6402: Remove fatal space from vim syntax r=Chairn a=ChillerDragon
<!-- What is the motivation for the changes of this pull request? -->
<!-- Note that builds and other checks will be run for your change. Don't feel intimidated by failures in some of the checks. If you can't resolve them yourself, experienced devs can also resolve them before merging your pull request. -->
## Checklist
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: ChillerDragon <ChillerDragon@gmail.com>
6400: vim syntax support comments (closed#6399) r=edg-l a=ChillerDragon
<!-- What is the motivation for the changes of this pull request? -->
<!-- Note that builds and other checks will be run for your change. Don't feel intimidated by failures in some of the checks. If you can't resolve them yourself, experienced devs can also resolve them before merging your pull request. -->
## Checklist
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: ChillerDragon <ChillerDragon@gmail.com>
6397: Use `mem_copy` instead of `memcpy` for websockets r=def- a=Robyt3
Replace all remaining usages of `memcpy`.
## Checklist
- [ ] Tested the change ingame
- [ ] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [ ] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Robert Müller <robytemueller@gmail.com>
6395: Replace leftover `memcpy` with `mem_copy` r=def- a=n0toose
Fixes the following error on Haiku:
```
~/ddnet/build> ninja
[5/8] Building CXX object CMakeFiles/m...a.dir/src/tools/map_replace_area.cpp.o
FAILED: CMakeFiles/map_replace_area.dir/src/tools/map_replace_area.cpp.o
/bin/c++ -DCONF_INFORM_UPDATE -DCONF_OPENSSL -DCONF_VIDEORECORDER -DGAME_RELEASE_VERSION=\"16.8\" -DGLEW_STATIC -I/boot/home/ddnet/build/src -I/boot/home/ddnet/src -I/boot/home/ddnet/src/ru>
/boot/home/ddnet/src/tools/map_replace_area.cpp: In function 'void SetExtendedArea(MapObject&)':
/boot/home/ddnet/src/tools/map_replace_area.cpp:502:33: error: 'memcpy' was not declared in this scope
502 | memcpy(Ob.m_aaExtendedArea[i], aInspectedArea, sizeof(float[2]));
| ^~~~~~
/boot/home/ddnet/src/tools/map_replace_area.cpp:7:1: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#include <cstring>'?
6 | #include <game/mapitems.h>
+++ |+#include <cstring>
7 |
/boot/home/ddnet/src/tools/map_replace_area.cpp: In function 'bool GetVisibleArea(const float (*)[2], const MapObject&, float (*)[2])':
/boot/home/ddnet/src/tools/map_replace_area.cpp:523:9: error: 'memcpy' was not declared in this scope
523 | memcpy(aaInspectedArea, aaGameArea, sizeof(float[2][2]));
| ^~~~~~
/boot/home/ddnet/src/tools/map_replace_area.cpp:523:9: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#include <cstring>'?
/boot/home/ddnet/src/tools/map_replace_area.cpp: In function 'void GetGameAreaDistance(const float (*)[2][2], const MapObject*, const float (*)[2], float*)':
/boot/home/ddnet/src/tools/map_replace_area.cpp:597:9: error: 'memcpy' was not declared in this scope
597 | memcpy(aaaVisibleAreas[0], aaVisibleArea[0], sizeof(float[2][2]));
| ^~~~~~
/boot/home/ddnet/src/tools/map_replace_area.cpp:597:9: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#include <cstring>'?
/boot/home/ddnet/src/tools/map_replace_area.cpp: In function 'bool GetLineIntersection(const float*, const float*, float*)':
/boot/home/ddnet/src/tools/map_replace_area.cpp:639:17: error: 'memcpy' was not declared in this scope
639 | memcpy(aIntersection, aBorders, sizeof(float[2]));
| ^~~~~~
/boot/home/ddnet/src/tools/map_replace_area.cpp:639:17: note: 'memcpy' is defined in header '<cstring>'; did you forget to '#include <cstring>'?
[6/8] Building CXX object CMakeFiles/g....dir/src/game/generated/checksum.cpp.o
ninja: build stopped: subcommand failed.
~/ddnet/build>
```
#### Regarding the Haiku port
After a two year hiatus (I temporarily stopped working on the Haiku port after being done with 80% of the work, as I was waiting for a Haiku-specific Mesa patch to land so that I could run it), I tried testing whether the port would work in a Haiku VM.
I was a bit afraid that it wouldn't work because of Rust being added as a dependency, but apparently, Haiku can support that just fine using OpenGL. Some additional stability/input-related patches may be required.
![image](https://user-images.githubusercontent.com/30193966/223889249-5ac8568f-23e4-418f-beae-7496e6afdbbb.png)
## Checklist
- [x] Tested the change ingame
- [x] Provided screenshots if it is a visual change
- [x] Tested in combination with possibly related configuration options
- [ ] Written a unit test (especially base/) or added coverage to integration test
- [ ] Considered possible null pointers and out of bounds array indexing
- [x] Changed no physics that affect existing maps
- [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional)
Co-authored-by: Panagiotis "Ivory" Vasilopoulos <git@n0toose.net>