From bdc5df087e00393b948a373aae589c8ee0e3fac2 Mon Sep 17 00:00:00 2001 From: Cyd Date: Tue, 11 Aug 2026 23:17:21 -0500 Subject: [PATCH] The roster shows what everyone is bringing, all of it The setup-page roster listed each player's name and vehicle; Cyd wants the loadout: colour and badge for a race, team and position for football. It is what the host is about to commit everyone AS, and the host should see it before pressing the button - a member who left their team unset in football reads '(no team)' right where the commit decision is being made. All of it was already on the wire - colour, badge, team and position ride each member's lobby row for the egg builder's sake - the roster line just never printed them. A camera member still reads LIVE CAM alone: it brings none of the above, the pick replaces the lot. A 'None' badge prints as nothing rather than as the word None. Co-Authored-By: Claude Opus 5 (1M context) --- RP_L4/RPL4LOBBY.cpp | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/RP_L4/RPL4LOBBY.cpp b/RP_L4/RPL4LOBBY.cpp index 48c7289..7e1f1ba 100644 --- a/RP_L4/RPL4LOBBY.cpp +++ b/RP_L4/RPL4LOBBY.cpp @@ -1402,16 +1402,11 @@ int int count = CollectMembers(members); int written = 0; + Logical football = FootballLobby(); + for (int i = 0; i < count && written < max_lines; ++i) { const char *name = members[i].name[0] ? members[i].name : "(joining...)"; - - // - // What they are bringing. A camera brings no vehicle - the pick - // replaces it outright, in the egg and so on this line. - // - const char *bring = - members[i].camera ? "LIVE CAM" : members[i].vehicle; const char *note = ""; if (strcmp(members[i].build, RP412_VERSION) != 0) @@ -1422,7 +1417,34 @@ int { note = " ..."; } - _snprintf(lines[written], 47, "%-14s %s%s", name, bring, note); + + // + // The whole loadout, not just the ride: colour and badge for a + // race, team and position for football - what the host is about + // to commit everyone AS, visible before the commit. A camera + // brings none of it; the pick replaces the lot. + // + if (members[i].camera && !football) + { + _snprintf(lines[written], 47, "%-12s LIVE CAM%s", name, note); + } + else if (football) + { + _snprintf(lines[written], 47, "%-12s %s %s %s%s", + name, members[i].vehicle, + members[i].team[0] ? members[i].team : "(no team)", + members[i].position[0] ? members[i].position : "", + note); + } + else + { + _snprintf(lines[written], 47, "%-12s %s %s %s%s", + name, members[i].vehicle, members[i].color, + (members[i].badge[0] && + _stricmp(members[i].badge, "None") != 0) + ? members[i].badge : "", + note); + } lines[written][47] = '\0'; ++written; }