Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiplayer / network / lobby / chat enhancements #3401

Merged
merged 61 commits into from
Oct 11, 2023

Conversation

past-due
Copy link
Member

@past-due past-due commented Oct 9, 2023

Highlights:

  • Initial support for secured net messages between players
  • NETallowJoining: Improve timeout handling, refactor temp connection handling / join-handling
  • Improve session bans
  • Add identity connect permissions, cmdinterface: Add "permissions set/unset" commands
  • New pre-game ("waiting for players") screen
    • Better view of player / spectator loading status
    • Animated count-down
  • Add Team Strategy view + pre-game Team Planning time
    • Team Strategy enables sharing with your (human) teammates your plans for research and unit types (without language barriers)
  • Add "Quick Chat" in lobby and in-game
    • Quick Chat provides a series of categorized chat messages / phrases which can be easily sent with either one click (or via quick keyboard commands)
    • Quick Chat messages are automatically displayed in the appropriate language, and thus (once translations are updated) also provide an ability to bridge language / communication barriers
    • Quick Chat "Team" messages are sent via secured net messages between teammates

And a bunch of drive-by fixes:

  • endconditions.js: Fix issue leading to possible desync at game end
  • Fix: Mouse cursor not properly displaying or appearing in some cases
  • sendLeavingMsg(): Call NETflush() (i.e. do a better job of ensuring that this message gets sent before quitting)
  • Fix: Possible dangling pointer in kf_JumpToResourceExtractor
  • Many widget / UI fixes

Using the Keyboard + Quick Chat:

In Lobby:

  • If focus is on the normal chat box, simply press the "Tab" key to open the Quick Chat overlay.

In-Game:

  • If opening classic global or team chat, focus will default to the normal chat box. Simply press the "Tab" key to switch focus to the Quick Chat overlay.

Once the Quick Chat overlay is open and has focus, key overlays will appear to help navigate the sections:

  • By default, visible sections / categories can be selected via the number / num-pad keys.
  • Once a section / category is selected:
    • Choose a visible chat option with the number / num-pad keys.
    • Use the "+" or "-" keys to navigate multiple pages of chat options (if present) - can also use the mouse wheel.
    • Use the "Tab" key to jump to the next section / category.
    • Press "ESC" to back up a level of focus (in this case, to back up to giving the Quick Chat form focus).
  • Pressing "ESC" when the "Quick Chat" form has focus will close the chat overlay.

Future TODOs (in separate PR):

  • Ability to view (and update) the Team Strategy view in-game (a seemingly reasonable place would be the ability to access it from the Intelligence screen, but that needs some work / refactoring to fit it in)

Always call gameOverMessage(false) if selectedPlayer is a spectator so that ingame.endTime gets properly set on all clients. (See: 2178c59)
By force-refreshing the set cursor on mouse enter + window focus gained.
@past-due past-due force-pushed the 2023_09_multi_net_enhancements_1 branch from fdb7057 to 8f95eba Compare October 9, 2023 16:46
If effects of the cheat code modified overlay screens / widgets in certain ways
Instead of before we even get to this shutdown (when loading a save in-game), which could have caused incorrect information to get persisted to profile files.
@past-due past-due marked this pull request as ready for review October 11, 2023 13:41
@past-due past-due added this to the 4.4.0-beta1 milestone Oct 11, 2023
@past-due past-due merged commit a97f63b into Warzone2100:master Oct 11, 2023
37 checks passed
@past-due past-due added the wzapi label May 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant