Skip to content

[pull] master from TaterClient:master#16

Open
pull[bot] wants to merge 405 commits intoLuoChu-DDNetDev:masterfrom
TaterClient:master
Open

[pull] master from TaterClient:master#16
pull[bot] wants to merge 405 commits intoLuoChu-DDNetDev:masterfrom
TaterClient:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Jan 17, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot locked and limited conversation to collaborators Jan 17, 2026
@pull pull bot added ⤵️ pull merge-conflict Resolve conflicts manually labels Jan 17, 2026
@SollyBunny SollyBunny force-pushed the master branch 2 times, most recently from 4b42f24 to 59dd250 Compare January 17, 2026 22:57
Robyt3 and others added 25 commits February 8, 2026 13:00
Handle Emscripten client being quit or aborted in the HTML wrapper by hiding the canvas, instead of doing this in the client only on successful exit. Also reset the canvas' cursor to ensure it becomes visible again.

On client quit, print a log output indicating that the client can be restarted by reloading the page. Add button for convenience to reload page.

Handle WebGL context lost event by quitting the client and logging an error message. The client cannot currently recover from GL context loss, because it would require reloading all textures, framebuffers etc.

Handle WebGL context creation error event by logging a more detailed error message. The client already handles the failed context creation.
As soon as ddnet edits this I will get a inline git conflict from

ddnet-insta@dcb7505

which is fiddely. Its nicer to look at conflicts if array elements have
their own lines.
Ensure the map size packed in `NETMSG_MAP_DETAILS` matches the map size packed in `NETMSG_MAP_CHANGE`, instead of ignoring the value in `NETMSG_MAP_DETAILS`.
The `IEngineMap`/`IMap`/`CMap` map wrapper for datafiles should not be a kernel interface, as this complicates using the interface especially when there are multiple instances of a map (e.g. current ingame map, entities background map, menu background map, and -in the future- during editor map loading), as each separate map has to be registered with the kernel with a different class name.

Now, the *game* client/server instead of the *engine* client/server owns the main map of the client/server. The map is not registered as a kernel interface anymore. Instead, game client/server expose the map to the engine client/server with a getter function.

The handling of the entities background map and menu background map is simplified, as these are simply created as separate objects instead of requiring separate subclasses.
Add `IMap::FullName` and `CDataFileReader::FullName` functions which return the full name of the currently loaded map/datafile, e.g. `subfolder1/subfolder2/my_map`.

Add `IMap::BaseName` and `CDataFileReader::BaseName` functions which return the base name of the currently loaded map/datafile, e.g. `my_map`.

Add `IMap::Path` and `CDataFileReader::Path` functions which return the path of the currently loaded map/datafile within the storage system, e.g. `maps/subfolder1/subfolder2/my_map.map`.

Server-side usage changes:

- Replace `IServer::GetMapName` (`CServer::m_pCurrentMapName`) with `IMap::BaseName`.
- Replace `CServer::m_aCurrentMap` with `IMap::FullName`.

Client-side usage changes:

- Replace `IClient::GetCurrentMap` (`CClient::m_aCurrentMap`) with `IMap::BaseName`.
- Replace `IClient::GetCurrentMapPath` (`CClient::m_aCurrentMapPath`) with `IMap::Path`.
… map size of `NETMSG_MAP_DETAILS` and `NETMSG_MAP_CHANGE` (ddnet#11747)
…p` functions to access map name, path and hashes (ddnet#11658)
Avoid duplicate validation (currently only of the map version item) and duplicate unpacking of tiles layers with tileskip property by loading the editor map via `IMap` instead of `CDataFileReader`.

The check of the `CMapItemVersion` map item is now already implemented in the `IMap::Load` function.

Unpacking the tile skip value in the `CLayerTiles::ExtractTiles` function is not necessary anymore, as this is already done when the map is loaded with the `IMap::Load` function.

This also simplifies the `CMapBasedEnvelopePointAccess` usage, as this class does not need to be used with a `CDataFileReader` anymore, which means the `CMap::GetReader` function can be removed as well.
sjrc6 and others added 30 commits March 7, 2026 00:19
Also update the ddnet-libs to use ssh instead of https since I can't
push to https

See ddnet/ddnet-libs#48
Set the map name, size and CRC of the current server's server info based on the currently loaded map to ensure that it matches the actual map.

Use the map name of the server info for the Discord activity, instead of passing it separately.

Do not unpack the map name from 0.7 server info because it is already determined based on the loaded map.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.