Commit graph

19790 commits

Author SHA1 Message Date
Dennis Felsing b1aa6e2f21
Merge pull request #8255 from GokturkTalha/patch-2
Add Azerbaijanese translation (by Gokturk)
2024-04-23 14:44:11 +00:00
Dennis Felsing a899b7f68a Add new file to CMakeLists.txt 2024-04-23 22:26:37 +08:00
Talha Aygün dded0a6779
Add Azerbaijanese translation (by Gokturk)
Translation process is not ended yet. Not translated areas are filled with Turkish translation for now, Azerbaijanese and Turkish are 75-80% similar and they have a lot of words in common. People from Azerbaijan can understand Turkish I'll continue it when I have time.
2024-04-23 17:06:59 +03:00
Dennis Felsing c4b00a3da1
Merge pull request #8253 from GokturkTalha/patch-1
Update Turkish translations for 18.2 (by Gokturk)
2024-04-23 12:11:43 +00:00
Talha Aygün 23f55e4204
Update Turkish translations for 18.2 (by Gokturk)
"Kill" is translated as "intihar et" by the other translators. "İntihar et" means "suicide".

1. Not using the word "intihar et" because of its meaning is more accurate.
2. In game, "intihar et" causes the font getting smaller and it does not fit in the box. (https://prnt.sc/4hxQlZdoN1MS)

Using "öl" would be better instead of "intihar et" because it fits in the box better and it keeps the original meaning more.

---

The word "Name" is translated as "Takma ad", which means nickname. It causes a mistranslation by showing up above the server's name. (https://prnt.sc/1NUC5_5qR_H8)

In this scenario, using "sunucu ismi" which means "server name" would fit better.

---

Even the word "Website" means "internet sitesi" in Turkish, it does not fit in the box and can cause the font getting smaller so it is better leaving it as "web sitesi" which also used as "website" in Turkish. (https://prnt.sc/Ngkh6nkkWQF3)
2024-04-23 14:03:47 +03:00
Dennis Felsing 1a397ad995
Merge pull request #8252 from ChillerDragon/pr_num_skinparts
Use NUM_SKINPARTS instead of magic number
2024-04-23 08:32:22 +00:00
ChillerDragon 38cae7edcf Use NUM_SKINPARTS instead of magic number 2024-04-23 16:09:34 +08:00
Dennis Felsing 6cffcd07aa Remove unused gcov flags
Fixes: #8247
2024-04-23 10:33:24 +08:00
Dennis Felsing 219fa7b2dd
Merge pull request #8250 from GokturkTalha/master
Update Turkish translations for 18.2 (by Gokturk)
2024-04-23 01:53:11 +00:00
Dennis Felsing 1b192beb17
Merge pull request #8248 from Robyt3/Client-Connecting-Various-Fixes
Various refactoring of client/dummy connecting
2024-04-23 01:52:52 +00:00
Dennis Felsing d13e031dfd
Merge pull request #8231 from Zwelf/pr-map-coverage-check-time
Add check for correct finish time in integration_test.sh
2024-04-23 01:52:42 +00:00
Talha Aygün 22cb8883ec
Update Turkish translations for 18.2 (by Gokturk)
Update Turkish translations for 18.2
2024-04-23 01:57:43 +03:00
Robert Müller 5958e9e4c5 Reset last dummy state when disconnecting
Otherwise the snapshots may incorrectly be invalidated because a change of the `cl_dummy` variable is detected when connecting to another server after disconnecting while the dummy is active.
2024-04-22 19:54:21 +02:00
Robert Müller efdd55613c Avoid using cl_dummy for demo playback
The `cl_dummy` config variable is always `0` during demo playback. Using the config variable makes the code less readable.
2024-04-22 19:54:21 +02:00
Robert Müller c7403ef06d Check CNetClient::State instead of SecurityTokenUnknown
Send dummy ready and enter game when connection is online based on its state instead of when the security token is not unknown anymore, which should effectively be the same condition but more understandable. This is also how it's already done for the main connection so the `SecurityTokenUnknown` function can be removed as it's unused now.
2024-04-22 19:54:21 +02:00
Robert Müller 9ffa9d8e0a Do not unpack map data packet if no map download is progress
There is no need to unpack map data packets if the client receives any without expecting them.
2024-04-22 19:33:20 +02:00
Robert Müller b264570218 Ignore all packets from other servers instead of only snapshots
The client should only ever handle game-related packets from the server that it is currently connecting/connected to.
2024-04-22 19:33:11 +02:00
Robert Müller 87f9ccdb22 Improve readability by renaming variable and changing condition
Rename variable `i` to `Conn`. Check for `CONN_MAIN` and `CONN_DUMMY` explicitly instead of using numeric index.
2024-04-22 19:32:55 +02:00
Robert Müller 9e5369bc9d Mark dummy connecting functions as const 2024-04-22 19:32:46 +02:00
Robert Müller 51a624d95c Use array index 0 explicitly instead of using array as pointer 2024-04-22 19:32:36 +02:00
Dennis Felsing 49ad920410
Merge pull request #8244 from dobrykafe/pr-18.2-translations
Update Czech and Slovak translations for 18.2
2024-04-22 00:56:03 +00:00
Zwelf 2eb4a50d4d Add check for correct finish time in integration_test.sh
ALso exclude coverage.map from twmap-checker due to using tele
checkpoints without matching tele checkpoints to test physics.

Disable exact checks on valgrind. Only require at least one finish.
2024-04-21 23:24:16 +02:00
Dennis Felsing 39b1a0226f
Merge pull request #8242 from By622/patch-12
Update simplified_chinese.txt
2024-04-21 15:47:14 +00:00
Dennis Felsing 2a072110ed
Merge pull request #8241 from By622/patch-11
Update traditional_chinese.txt
2024-04-21 15:47:03 +00:00
Dennis Felsing 18d8e987f3
Merge pull request #8243 from Robyt3/Console-Scrolling-Fix
Fix potential client crash and console not keeping scrolling position when console backlog is full
2024-04-21 15:46:59 +00:00
Robert Müller fbe559ea79 Fix console not keeping scroll position when backlog is full
The console was not keeping its current scoll position if entries from the backlog are removed due to being recycled when new entries are added. For this purpose, a callback function is added to the ringbuffer to handle popped items, so the scrolling position of the console can be updated based on the number of lines of the removed backlog entries.
2024-04-21 12:52:55 +02:00
Robert Müller 151b2854e3 Fix potential client crash when console backlog is full
Fix backlog corruption in `CConsole::PumpBacklogPending` when many backlog entries are allocated at the same time. When allocating many entries from the `m_Backlog` ringbuffer at the same time, the first entries being allocated may already have been recycled again, so the pointers to them being stored in the temporary vector of new backlog entries were pointing arbitrarily into the ringbuffer data, which could cause corruption of the structural and user data of the ringbuffer. Now, we iterate over the entire backlog and only update uninitialized entries instead of storing the new entries separately.

This was sometimes caught as a misaligned access with UBSan:

```
src/engine/shared/ringbuffer.cpp:160:14: runtime error: member access within misaligned address 0x00014126f4df for type 'struct CItem', which requires 8 byte alignment
0x00014126f4df: note: pointer points here
<memory cannot be printed>
    0 0x5825349a6a1c in CRingBufferBase::Prev(void*) src/engine/shared/ringbuffer.cpp:160
    1 0x5825334e8934 in CTypedRingBuffer<CGameConsole::CInstance::CBacklogEntry>::Prev(CGameConsole::CInstance::CBacklogEntry*) src/engine/shared/ringbuffer.h:59
    2 0x5825334d13e6 in CGameConsole::OnRender() src/game/client/components/console.cpp:1259
    3 0x582533bce058 in CGameClient::OnRender() src/game/client/gameclient.cpp:715
    4 0x582532f3cc44 in CClient::Render() src/engine/client/client.cpp:894
    5 0x582532f9d236 in CClient::Run() src/engine/client/client.cpp:2971
    6 0x582533002e5e in main src/engine/client/client.cpp:4523
```
2024-04-21 12:52:54 +02:00
Robert Müller 8d69a4f67c
Merge pull request #8237 from def-/pr-estonian-18.2
Update Estonian translations (by Cammo)
2024-04-21 10:43:41 +00:00
By ea4205904d
Update simplified_chinese.txt 2024-04-21 18:36:46 +08:00
By d9fd9f679c
Update traditional_chinese.txt 2024-04-21 18:35:08 +08:00
dobrykafe 7bd5bef756 update slovak translations for 18.2 2024-04-20 23:59:02 +02:00
dobrykafe 6c801ed7b2 update czech translations for 18.2 2024-04-20 23:58:35 +02:00
Zwelf 1b6ad6ba8b
Merge pull request #8240 from Robyt3/Ghost-Asan-Fixes
Fix OOB accesses rendering ghosts, fix ghost hook collision line
2024-04-20 21:55:41 +00:00
Robert Müller 9be40e1782 Fix OOB accesses rendering ghosts, fix ghost hook collision line
Fix out-of-bounds accesses when rendering ghost players, which use the client ID `-2`. This was causing the hook collision line of ghost players to be affected by real players, which is not correct, as ghosts do not interact with other characters.

Closes #8239.
2024-04-20 23:28:37 +02:00
Dennis Felsing 09e09f37ca Update Estonian translations (by Cammo) 2024-04-21 00:04:28 +08:00
Dennis Felsing a00d6a3119
Merge pull request #8235 from furo321/swedish-18.2
Update Swedish translations for 18.2
2024-04-20 11:09:41 +00:00
furo 06d6e3c816 Update Swedish translations for 18.2 2024-04-20 12:15:12 +02:00
Robert Müller 4b3035d336
Merge pull request #8232 from def-/pr-18.2-transl
Translations for upcoming 18.2
2024-04-20 08:42:10 +00:00
Dennis Felsing b35503273c
Merge pull request #8234 from ChillerDragon/pr_typo_reckoning
Fix reckoning typo in comment
2024-04-20 02:18:52 +00:00
ChillerDragon db627976e5 Fix reckoning typo in comment 2024-04-20 09:53:58 +08:00
Dennis Felsing 0494878334 Translations for upcoming 18.2 2024-04-20 09:02:45 +08:00
Dennis Felsing 173e675ec1
Merge pull request #8203 from Robyt3/Graphics-LoadPng-Cleanup
Change `PNG` in function names to `Png`, pass `CImageInfo` by reference to `IGraphics::LoadPng`
2024-04-20 00:55:02 +00:00
Dennis Felsing e5e48a84ee
Merge pull request #8229 from Robyt3/Client-StartVideo-Refactoring
Add optional name argument to `start_video` command, improve descriptions of demo-related console commands, refactoring
2024-04-20 00:35:42 +00:00
Robert Müller d2c8132fb6 Add optional name argument to start_video command, refactoring
Add optional filename argument to `start_video` command, to start recording to a video file with a specific filename, instead of always using the current timestamp.

Add log messages to `start_video` and `stop_video` commands to indicate success and errors.

Make the `CClient::StartVideo` function non-`static` and reduce duplicate code in the `Con_StartVideo` function.

Determine the video filename outside of the `CVideo` constructor, same as for demos.
2024-04-19 20:09:20 +02:00
Robert Müller 93d5a8be32 Improve descriptions of demo-related console commands 2024-04-19 20:08:41 +02:00
Dennis Felsing 261c02125b
Merge pull request #8228 from Robyt3/Client-Map-Change-Cleanup
Fix prediction errors and incorrect rendering after changing map
2024-04-19 02:07:08 +00:00
Robert Müller 12d3c8245d Fix prediction errors and incorrect rendering after changing map
Fix game times and prediction not being updated when only exactly two snapshots have been received, due to the conditions `m_aReceivedSnapshots[...] >= 3`. These specific condition are not necessary and replaced with simpler checks whether the current snapshot is set. Some duplicate nested conditions are also removed.

Pump the network first in `CClient::Update` before updating anything else, to ensure that snapshots are received from the network client before the game times and prediction are being updated based on the current snapshots.

Fix current and previous game tick always being `0` on the first call of `IGameClient::OnNewSnapshot` when two snapshot have been received. Now, the game ticks are properly initialized from the two initial snapshots.

Fix old inputs sometimes being used in prediction after changing map because inputs with tick `-1` were not being ignored.

Ensure all snapshots and game times are properly cleared when entering the game.
2024-04-18 20:40:31 +02:00
Dennis Felsing da09087416
Merge pull request #8227 from Zwelf/pr-disable-practice-while-saving
Disallow activating /practice while save is in progress and improve messaging for when `/save`/`/load` command does nothing
2024-04-18 01:53:19 +00:00
Dennis Felsing 998d69240c
Merge pull request #8226 from Robyt3/Windows-Console-Nul
Fix assertion on Windows when redirecting console output to `nul`
2024-04-18 01:53:18 +00:00
Zwelf e1355dc891 Improve messaging to players why /load command does nothing 2024-04-17 22:10:40 +02:00