mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-25 07:00:29 +01:00
Network games had voice chat but no way to type to the other players, as the PC version's chat did. T (controls.chat) types a line to everyone and Y (controls.team_chat) one to the team; Enter sends it, Escape cancels it. The lines are drawn above the motion sensor with the HUD's font: the player's name in their team's colour (blue without teams), then the text in a pale blue, and fade after ten seconds (port/linux/game/network_chat.c). A client sends its line to the host (_distributed_message_chat_up), which takes it only from the client's own stream and one of that machine's players, five at once and one each 1.5 seconds after, its text cut to 63 characters of printable ASCII, and sends it on to the machines that hear it (_distributed_message_chat_down): all, or a team's line those with a player of the team. Older builds drop both kinds as unknown, so the network version stays 29, as for the vote kick; network_format.txt records the two kinds. While a line is typed the keyboard drives no player, as with the console (xinput_sdl.c), nor voice chat's push to talk or the debug keys. Controls Setup gets a COMMUNICATION group with PUSH TO TALK, CHAT and TEAM CHAT (the controls screen's spinner strings changed by hand to what port_settings.py writes: ce_menus.py needs the PC version's tags). Checked: tools/harness/tests/test_chat_logic.py (the text's cleaning, the host's rate, who hears a team's line, the fade, with negative controls); the CI Linux test step; three machines on system link with debug.network_test_chat (new), every machine showing the lines to all in one order and a team's line only on its team's machines; and a host drawn on Xvfb with lines typed on its keyboard through xdotool (sent on Enter, not on Escape, the player still while typing). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>