Files
AyeZeeBB 63955e51ff Launcher changelogs, download total, Discord joins skip the launcher window; Mod Options
Changelogs. The launcher's main screen has a CHANGELOGS tile in the
bottom-left corner. It opens a panel with the newest GitHub release: its
tag, title, date and notes. The notes are the release's description, read
as markdown and drawn like a mod's README (headings, bullets, code, rules).
A release published without a description shows what its GitHub page shows,
the tagged commit's message, taken from the releases feed. Fetched once,
the first time the panel opens; "Open on GitHub" goes to the releases page.

Download total. On GET MODS, the bar for ticked mods now gives the size of
what installing them downloads: "3 mods selected / 1.27 GB to download".
It is the sum of each mod's newest version as Thunderstore lists it.

Discord joins. The command the game registers for Discord to start ReSkate
now passes --no-gui, so pressing Join with the game closed goes straight
into the game instead of stopping at the launcher window.

--no-gui with no other launch flags now starts the game with the launcher's
saved settings (window size, menu and console keys, loose files, GPU
diagnostics, Discord status, offline, log level, extra launch options), as
pressing PLAY does. With flags of its own it behaves as before.

Mod Options. The pause menu's "Custom Stuff" page is renamed "Mod Options",
in the menu, the READMEs and the comments.

Not tested in game: the Discord join with the game closed, and the renamed
page. The changelog panel has only been seen with the earlier API-only
fetch.
2026-10-10 01:42:36 -05:00

25 lines
1.3 KiB
C++

#pragma once
#include <cstdint>
#include <string>
namespace dingosdk::overlay { struct CallbacksV3; struct HubPage; }
namespace dingosdk::multiplayer {
// Call after the session tick, including while disconnected. All UI model
// operations execute on the client thread under the native model lock.
void tick_native_menu(std::uintptr_t base, bool loading) noexcept;
// Run on the client thread BEFORE submitting a map load, while widget assets
// and dynamic schemas still exist. Returns false if cleanup could not finish.
bool prepare_native_menu_level_load(std::uintptr_t base) noexcept;
// Register with the validated client-transition hook, before the native handler
// releases assets. Suspends updates through native loads, permanently on exit.
void native_menu_before_level_transition(std::uintptr_t base, unsigned next) noexcept;
// Uses the same validated runtime queues as the overlay. The reader must be a
// snapshot reader; it must not consume the overlay's console log cursor.
void set_native_menu_callbacks(const overlay::CallbacksV3& callbacks);
// Whether one of ReSkate's pages (Multiplayer, Mod Options) is the pause menu's page on
// screen right now, and which. Any thread: the overlay draws the page from it
// (overlay::HubPageFeed).
overlay::HubPage native_menu_page() noexcept;
} // namespace dingosdk::multiplayer