Conversation
This will make it possible to fix these issues: - ddnet-insta#685 - ddnet-insta#634 - ddnet-insta#621 - ddnet-insta#509
Kept annoying me:
ld: ignoring duplicate libraries 'libddnet_engine_shared.a'
Max 64 players supported, otherwise doesn't show up in serverbrowser. Validated against Teeworlds 0.7
…ms instead of corrupting savegame (#12657)
Since the ids are translated, it's really easy to accidentally kick the wrong person.
Co-authored-by: Pioooooo <pioooooo.sun@gmail.com>
The viewport is clamped to an aspect ratio of at most 5:4, leaving an unrendered area in the window. Both backends were given the same viewport rectangle with a Y of 0, but OpenGL places it relative to the bottom left and Vulkan relative to the top left, so the unrendered area ended up on opposite sides. Input positions from the system are relative to the whole drawable area and were only correct for the Vulkan placement. Pass the drawable size along with the viewport rectangle so the OpenGL backend can convert it, and keep the resulting viewport position to offset everything else that works in drawable coordinates: the scissor rectangle, which is relative to the viewport, and the reads for screenshots, the presented image data and single pixels. All of those were equivalent only while the viewport was aligned to the bottom of the drawable area.
Touch positions are reported relative to the whole drawable area, which is larger than the rendered image when the viewport is clamped, so consumers multiplying them by the screen size got squashed positions. Rescale them to the image once in CInput, keeping them normalized to the image, and clamp a finger on the area that is not rendered to onto its edge.
People always complained that lower refresh rate increased input latency and I assumed it's inherent. This improves the situation by sending the inputs one loop iteration earlier. At cl_refresh_rate 60 the input is sent 16ms earlier.
Node.js 20 is being deprecated: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
png_get_image_width, png_get_image_height and png_get_rowbytes all return unsigned values, and CImageInfo holds the dimensions as size_t already. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
libpng longjmps to the error handler and the cleanup function then reads the row pointers and the height. The C standard leaves non-volatile locals that changed between setjmp and longjmp indeterminate. The info struct is created before the setjmp instead, since png_create_info_struct never calls the error handler. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
SavePng allocated a buffer per row, copied the image into it, handed the array of rows to png_write_image and freed it all again, so saving needed a second copy of the image in memory. png_write_row takes one row at a time, which can point into the image itself. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Map configs run before the game controller is created, and `pause_game` is not deferred like `restart` or `change_map`. Same guard as for `set_team` in #12767.
Tests of votes and client drops need clients that are in game. `CServer::UpdateDebugDummies` already connects and drops such clients without a network server, so make it public and cover it with a test. The tests drive it through `dbg_dummies` like the server tick does. Keep the config a test changes to that test, since the fixture works on the global config.
WavpackOpenFileInputEx() returns a pointer to WavpackContext structure that should be taken care of if no longer needed.
The client targets the inactive connection and sends Cl_PracticeTeleport so the server only teleports the sender, with no dummy distinction. While paused, use the camera center to match /tc. Co-authored-by: Cursor <cursoragent@cursor.com>
Check for null termination directly instead of calling `str_length` each iteration.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.1)
Can you help keep this open source service alive? 💖 Please sponsor : )