Commit graph

15254 commits

Author SHA1 Message Date
Chairn 583d6e6c01 Mark virtual function as override using a script:
while IFS= read -r line; do file=${line%%:*}; lineno=$(echo $line | cut
-d':' -f2); echo "Treating $file line $lineno"; sed -i -e
"${lineno}s/virtual //" -e "${lineno}s/);\$/) override;/" -e
"${lineno}s/)\$/) override/" -e "${lineno}s/const\$/const override/" -e
"${lineno}s/) {/) override {/" -e "${lineno}s/) const {/) const override
{/" -e "${lineno}s/const;$/const override;/" "$file"; done < a
2022-05-17 23:47:32 +02:00
bors[bot] de5f5fdfdf
Merge #5141
5141: Updated dutch language by Ronan r=heinrich5991 a=Chairn

https://discord.com/channels/252358080522747904/293493549758939136/976214341139456020

## 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 if it works standalone, system.c especially
- [ ] 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: Chairn <chairn.nq@hotmail.fr>
2022-05-17 21:45:39 +00:00
Chairn 461234fb13 Updated dutch language by Ronan 2022-05-17 23:43:34 +02:00
Robert Müller 4036cda4e3 Handle file/pipe stdout and add fallback on Windows 2022-05-17 22:37:43 +02:00
Dennis Felsing 8d5693d483 Enable clang-tidy's modernize-use-override (fixes #5139)
except for destructors
2022-05-17 20:33:29 +02:00
Dennis Felsing 5947755c99 Fix unread variable clang-tidy warning on macOS
src/engine/client/backend_sdl.cpp:580:3: warning: Value stored to 'RetBackendType' is never read [clang-analyzer-deadcode.DeadStores]
                RetBackendType = BACKEND_TYPE_OPENGL_ES;
                ^                ~~~~
2022-05-17 20:31:25 +02:00
Dennis Felsing 831f89246b No gold preference (fixes #5136) 2022-05-17 14:02:17 +02:00
bors[bot] 47874fb57f
Merge #5085
5085: New DDRace HUD r=def- a=C0D3D3V

If you want to test this PR, you have to test it on a Server that includes this PR too.

Textures are made by Ravie 

Here a showcase video with most parts shown: https://youtu.be/gPTVj-s3pgc 

Added to the new HUD
- A display of the weapons available to the player
- The weapon the player is carrying is highlighted
- Indicators for the special abilities of the player (Endless Hook, Endless Jumps, Jetpack, Teleport Weapons)
- Indicators for abilities taken away from the player (Deep/Life Freeze, No Hook, No Weapons collision, No Collision)
- Control indicators for dummy controls (dummy hammer, dummy copy) (bottom right)
- Jump indicator (max 10 jumps ar displayed, and greyed out as soon as a jump is used) 
- Ninja status bar that indicates how long a player is capable of using ninja (next to the ninja sword)
- Freeze status bar that indicates the thawing time of a player (below player)
- Movement Information can be displayed in a clean way above the mini score HUD (Position, Speed, Target Angle)
- Indicator if you are in practice mode

The complete HUD also works for players you spectate

I Added a new NetObj since the predicted values are not perfect and would make the display of the information a lot less good: DDNetCharacterDisplayInfo that contains the following information
```
NetIntRange("m_JumpedTotal", -2, 255),
NetTick("m_NinjaActivationTick"),
NetTick("m_FreezeTick"),
NetBool("m_IsInFreeze"),
NetBool("m_IsInPracticeMode"),

NetIntAny("m_TargetX"),  # used for the Movement Information display
NetIntAny("m_TargetY"),
NetIntAny("m_RampValue"),
```
So if someone has an idea what data we could also need in the client for making the display more nice, now is the right moment to add more data to this network object.

A few screenshots:
Assets Tab:
![grafik](https://user-images.githubusercontent.com/14315968/167703792-f0fa86be-159d-4e11-baf4-9539cee38aae.png)
HUD Settings:
![grafik](https://user-images.githubusercontent.com/14315968/167704336-dc7a314e-5603-40a2-98b4-9c03377906dd.png)
Mini Debug HUD:
![grafik](https://user-images.githubusercontent.com/14315968/168302791-c377d93e-33a2-4eb2-9d8d-b78f0808a009.png)
Speed.X is calculated using the players ramp vaule


## Checklist

- [x] Tested the change ingame
- [x] Provided screenshots if it is a visual change
- [ ] Tested in combination with possibly related configuration options
- [ ] Written a unit test if it works standalone, system.c especially
- [x] Considered possible null pointers and out of bounds array indexing
- [x] Changed no physics that affect existing maps
- [x] 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: c0d3d3v <c0d3d3v@mag-keinen-spam.de>
Co-authored-by: Jupeyy <jupjopjap@gmail.com>
2022-05-16 22:23:08 +00:00
c0d3d3v d6833b6fd6
fix jump display 2022-05-16 23:17:19 +02:00
c0d3d3v 796b2add95
Fix Weapon Shields rendering and Clean up Sprite Offsets in items.cpp 2022-05-16 15:31:46 +02:00
Dennis Felsing ee36c54125 No IPO by default in DEV builds 2022-05-16 14:58:44 +02:00
def dc03f410ad Disable IPO on mingw win32
/usr/lib/gcc/i686-w64-mingw32/11.2.0/../../../../i686-w64-mingw32/bin/ld: /usr/lib/gcc/i686-w64-mingw32/11.2.0/../../../../i686-w64-mingw32/bin/ld: DWARF error: could not find variable specification at offset 378
/usr/lib/gcc/i686-w64-mingw32/11.2.0/../../../../i686-w64-mingw32/lib/../lib/libstdc++.a(string-inst.o): in function `ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag':
/build/mingw-w64-gcc/src/build-i686-w64-mingw32/i686-w64-mingw32/libstdc++-v3/include/bits/basic_string.tcc:206: multiple definition of `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag)';
glsl_shader_compiler.cpp.obj (symbol from plugin):(.gnu.linkonce.t._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag+0x0): first defined here
...
2022-05-16 10:12:43 +02:00
def bbb1b42bb5 Fix -Walloc-size-larger-than= in maplayers.cpp
Fails on Linux x86 with IPO:

In member function '_ZN10CMapLayers17STileLayerVisuals4InitEjj.part.18',
    inlined from 'OnMapLoad' at /ddnet-source-steam/src/game/client/components/maplayers.cpp:301:6:
/ddnet-source-steam/src/game/client/components/maplayers.cpp:312:74: warning: argument 1 value '4294967295'
 exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
   m_pBorderTop = new CMapLayers::STileLayerVisuals::STileVisual[Width - 2];
                                                                          ^
2022-05-16 00:53:55 +02:00
bors[bot] a041ff8aed
Merge #5069
5069: Some HTTP fixes factored out of the HTTP masterserver PR r=def- a=heinrich5991

CC #5064

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2022-05-15 22:20:11 +00:00
bors[bot] fadcb344e4
Merge #5132
5132: Refactoring: Use std::swap in editor r=heinrich5991 a=Robyt3

<!-- What is the motivation for the changes of this 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 if it works standalone, system.c especially
- [ ] 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>
2022-05-15 20:31:11 +00:00
bors[bot] 61cca6ca16
Merge #5131
5131: Remove base/tl/base.h r=heinrich5991 a=Robyt3



## 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 if it works standalone, system.c especially
- [ ] 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>
2022-05-15 20:11:13 +00:00
Robert Müller f0df8ad85a Use std::swap in editor 2022-05-15 21:00:14 +02:00
bors[bot] cea61d63ac
Merge #5130
5130: Fix memory leaks in auto stat CSV output, fix stringop-overflow warnings r=def- a=Robyt3

The memory allocated in and returned by `ReplaceCommata` was never freed.

Likewise `m_pCSVstr` allocated in `FormatStats` was never freed.

This also fixes a stringop-overflow warning and that the allocated memory size was missing one byte for the zero terminator.

The `ReplaceCommata` method is now also used for the gametype and map. Although unlikely, commata can be used in gametype and map names, so this prevents invalid CSVs for those cases.

Refactoring: remove unnecessary copy of `pStr` into `aBuf`.

## 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 if it works standalone, system.c especially
- [ ] 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>
2022-05-15 18:52:10 +00:00
Robert Müller aeb8790649 Remove base/tl/base.h 2022-05-15 20:36:16 +02:00
bors[bot] 3fccb4f187
Merge #5129
5129: update french translations r=def- a=NouaaTW

<!-- What is the motivation for the changes of this 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 if it works standalone, system.c especially
- [ ] 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: Noa <75568768+NouaaTW@users.noreply.github.com>
Co-authored-by: def <dennis@felsin9.de>
2022-05-15 18:25:53 +00:00
Robert Müller f634f66008 Fix memory leaks in auto stat CSV output, refactoring
And fix stringop-overflow warning:

In function 'str_copy',
    inlined from 'FormatStats' at src\game\client\components\statboard.cpp:541:10:
src\base\system.cpp:2524:16: warning: 'strncat' specified bound depends on the length of the source argument [-Wstringop-overflow=]
 2524 |         strncat(dst, src, dst_size - 1);
      |                ^
src\game\client\components\statboard.cpp: In member function 'FormatStats':
src\base\system.cpp:2557:27: note: length computed here
 2557 |         return (int)strlen(str);
      |                           ^
2022-05-15 20:24:26 +02:00
def b7cbdf7366 Fixes by Chairn 2022-05-15 20:11:44 +02:00
bors[bot] 29ad64921d
Merge #5128
5128: Update Korean translations by CHaBek r=def- a=cwh7435

<!-- What is the motivation for the changes of this 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 if it works standalone, system.c especially
- [ ] 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: CHaBek <44938972+cwh7435@users.noreply.github.com>
2022-05-15 18:09:34 +00:00
Robert Müller 53f4001fb1 Fix stringop-overflow warning
In function 'str_copy',
    inlined from 'GetServerInfo' at src\engine\client\client.cpp:951:11,
    inlined from 'GetServerInfo' at src\engine\client\client.cpp:946:6:
src\base\system.cpp:2524:16: warning: 'strncat' specified bound 13 equals source length [-Wstringop-overflow=]
 2524 |         strncat(dst, src, dst_size - 1);
      |                ^
2022-05-15 19:45:14 +02:00
Robert Müller 52100dbbe7 Use qualified std::swap only 2022-05-15 19:25:36 +02:00
Robert Müller 535fbd28fa Replace usages of tl_assert with dbg_assert 2022-05-15 19:25:18 +02:00
Noa a85738089e update french translations 2022-05-15 18:47:00 +02:00
Noa ae171ea29a update french translation 2022-05-15 18:44:11 +02:00
CHaBek a7efdd5805
Update Korean translations by CHaBek 2022-05-16 00:57:17 +09:00
bors[bot] 8a65e8386b
Merge #5076
5076: Add a CMake option to enable IPO r=def- a=Kaffeine

The main motivation is to reduce the size of binaries for release build (following #5074).
The feature is not enabled by default because it increases the build time and the effect should be valued case-by-case.

### Linux
Linux build time changed from 2:01 to 2:56 (with GNU gold) or 3:20 (default ld).

| Executable | Before  | After |
| ------------- | ---------|---- |
| config_retrieve | 886K | 43K |
| config_store | 890K | 51K |
| DDNet | 4.1M | 4.1M |
| DDNet-Server | 1.6M | 1.6M |
| dilate | 898K | 35K |
| map_convert_07 | 902K | 59K |
| map_diff | 890K | 47K  |
| map_extract | 898K | 47K  |

### macOS
macOS build time remained to be around 2:30.

The size of `.dmg` image without IPO is `47.6Mb`, the size with IPO enabled is `46.4Mb` which is 1.2Mb lighter. I didn't check the internals.

### Windows
Windows build time changed from 3:10 to 5:05

The binaries became even _bigger_ with IPO enabled. Nonsense, maybe IPO is messed up with some other project-specific compiler settings. I didn't investigate.

## Conclusion
It makes sense to (manually) enable IPO for macOS and Linux builds for production builds (probably update https://github.com/ddnet/ddnet-scripts/blob/master/release/build.sh for that).

Co-authored-by: Alexander Akulich <akulichalexander@gmail.com>
2022-05-15 12:03:02 +00:00
Alexander Akulich f8858488eb CMake: Enable IPO by default for all platforms except MSVC 2022-05-15 14:44:21 +03:00
bors[bot] f3e8984bfc
Merge #5126
5126: Fix /cmdlist output not being shown in chat r=def- a=ChillerDragon

## 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 if it works standalone, system.c especially
- [ ] 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>
2022-05-15 11:40:50 +00:00
ChillerDragon 2693eff72e Show "No such command" and "Invalid arguments" 2022-05-15 13:37:30 +02:00
ChillerDragon 0ff129a19e Fix /cmdlist output not being shown in chat 2022-05-15 13:24:57 +02:00
Alexander Akulich f1baf2dc52 CMake: Use GNU gold linker if available (to speedup the build) 2022-05-15 14:22:38 +03:00
Alexander Akulich 9e8c97c812 CMake: Add an option to enable IPO 2022-05-15 14:22:38 +03:00
Alexander Akulich 69e312f5fb CMake/BuildVulkanShaders: Fix check for GLSLANG_VALIDATOR_PROGRAM_FOUND 2022-05-15 14:22:38 +03:00
bors[bot] e346e3e186
Merge #5072
5072: Updated unicode script generation (fixes https://github.com/ddnet/ddnet/issues/5017) r=def- a=Chairn

I also updated the version to 15.0.0. However, confusables are still from version 14 as https://www.unicode.org/Public/security/15.0.0/ is empty.

CC `@heinrich5991` 

## 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 if it works standalone, system.c especially
- [ ] 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: Chairn <chairn.nq@hotmail.fr>
2022-05-15 11:17:15 +00:00
bors[bot] 450e6a53f7
Merge #5125
5125: Fix server loading map twice on startup r=def- a=Zwelf

Fixes creating two teehistorian files. And probably increases performance :). Fixes #5121 

## 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 if it works standalone, system.c especially
- [ ] 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: Zwelf <zwelf@strct.cc>
2022-05-14 19:58:21 +00:00
Zwelf 8385726a5f Fix server loading map twice on startup 2022-05-14 21:50:03 +02:00
bors[bot] 1110e1592a
Merge #5123
5123: Add Cellegen, srdante, Nouaa to credits r=heinrich5991 a=def-

<!-- What is the motivation for the changes of this 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 if it works standalone, system.c especially
- [ ] 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: def <dennis@felsin9.de>
2022-05-14 18:47:39 +00:00
def 17fe0ec8e3 Add Cellegen, srdante, Nouaa to credits 2022-05-14 19:56:08 +02:00
bors[bot] 3d244b728d
Merge #5122
5122: Cleanup CRenderTools r=heinrich5991 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 if it works standalone, system.c especially
- [ ] 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>
2022-05-14 17:41:04 +00:00
Robert Müller 51d0d76e11 Rename parameters id -> Id 2022-05-14 19:08:43 +02:00
bors[bot] 92be4a67d7
Merge #4959
4959: Revert "CGameClient::LoadMapSettings: Load the default tuning params … r=heinrich5991 a=def-

…by default"

This reverts commit 754562ce0b.

This breaks rendering for ddnet mode, thanks to cheeser0613 for report

`@Kaffeine` I'd prefer to have it working with DDNet instead of vanilla. A fix that doesn't break DDNet demos would be welcome.

## 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 if it works standalone, system.c especially
- [ ] 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>
2022-05-14 16:31:54 +00:00
bors[bot] e2c0fef382
Merge #5118
5118: Don't reset rcon password on "Reset server" (fixes #5113) r=heinrich5991 a=def-

Since it clears out the randomly generated password

<!-- What is the motivation for the changes of this pull request -->

## 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 if it works standalone, system.c especially
- [ ] 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: def <dennis@felsin9.de>
2022-05-14 16:14:36 +00:00
bors[bot] 6eab58fa24
Merge #5120
5120: Add basic driver version parsing for Vulkan r=def- a=Jupeyy

From 5c3986798a/includes/functions.php (L364)

I dunno how reliable that is, but https://gpuinfo.org is quite good, so probs reliable enough for our needs :D

Similar to how OpenGL also prints the driver version in the GL_VERSION string. Can be quite useful and is easier for the end user

## 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 if it works standalone, system.c especially
- [ ] 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: Jupeyy <jupjopjap@gmail.com>
2022-05-14 15:34:11 +00:00
def 91e96d48ba Don't reset rcon password on "Reset server" (fixes #5113)
Since it clears out the randomly generated password
2022-05-14 17:29:46 +02:00
Jupeyy 77196ed571 Add basic driver version parsing for Vulkan 2022-05-14 14:06:06 +02:00
Robert Müller 25c4270cb4 Fix comments 2022-05-14 13:44:12 +02:00