feat(coop): config-driven multi-rendezvous server selection#25
Open
NonPolynomialTim wants to merge 1 commit into
Open
feat(coop): config-driven multi-rendezvous server selection#25NonPolynomialTim wants to merge 1 commit into
NonPolynomialTim wants to merge 1 commit into
Conversation
Move the rendezvous host/ports/version/public-keys out of source into a runtime rendezvous.json holding multiple named servers. The Server Browser gains a top-right combobox to pick the active server; all coop operations use the selection. - rendezvous_config: JSON servers[], atomic active index, per-index accessor; active-server accessors keep their signatures so existing glue is unchanged - DisableableComboBox: ComboBox subclass with per-option enable/disable (setColor face + setTextColor label kept independent) - glue: probeRendezvousServer / probeAllRendezvousServersAsync (punch-free LIST_ROOMS health check) - ServerList: combobox top-right; parallel probes on entry; per-server status drives "(Wait...)"/"(offline)" labels, greyed disabled rows, dimmed button label when the selection is offline, and an animated "Fetching server list ..." / offline warning in a shared textbox; selection persisted by name in rendezvous_selection.json with fallback to the first server - title left-aligned to the left-column widgets Co-Authored-By: Claude Opus 4.8 <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.
The main reason for this change is that the repo immediately gives an error when pressing the "COOP" button if the rendezvous server keys are not compiled into the build, locking players out of TCP as well. This fixes that by gracefully failing, while future-proofing UDP should the current rendezvous server cease to exist for whatever reason—the community can now host their own.
Move the rendezvous host/ports/version/public-keys out of source into a runtime rendezvous.json holding multiple named servers. The Server Browser gains a top-right combobox to pick the active server; all coop operations use the selection.
rendezvous.cfggoes in the root of the build directory, next to OpenXcom.exe.Waiting:

All servers down:

Server up:
