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>
6396: Pick client icon file based on client name r=def- a=ChillerDragon
convenience for downstream projects that renamed the client
<!-- 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>
6393: Ignore .gdb_history r=def- a=ChillerDragon
The file is created when running gdb with ``set history save on``
<!-- 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>
6389: CMake: Add targets to allow (previously available) build by exec name r=heinrich5991 a=Kaffeine
Seems to be needed only for MinGW/Unix Makefiles generator.
Note: ninja (and probably some other build systems) does not allow us to add extra `DDNet` target because it already builds a file with that name. At the same time, CMake alias targets are not propagated to Makefile.
Co-authored-by: Alexander Akulich <akulichalexander@gmail.com>
6392: Add missing default value for custom parallax zoom property r=def- a=Robyt3
The "Custom Zoom" property was not initialized when creating a new layer group, leading to the property editor not working correctly and an undefined value being saved to the map file.
![property-editor](https://user-images.githubusercontent.com/23437060/223575784-81ce5eeb-992e-4084-985b-183b4389090c.png)
## 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>
The "Custom Zoom" property was not initialized when creating a new layer group, leading to the property editor not working correctly and an undefined value being saved to the map file.
6391: Revert editor changes to popup menus, so popup menus are shown also when GUI is hidden r=def- a=Robyt3
Closes#6385.
## 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>