elexis 7c6d2eef93 Erase client state hash on disconnect
Fix `NetServerTurnManager` from pausing the simulation forever after a
client sent a bad hash to it and disconnects before the bad hash has
been processed.

A client that sends a wrong simulation hash to the `NetServer` and
disconnects before the server compares that hash causes a message box to
appear and the game to be paused forever.
94e5d88169 introduced the bug by missing to delete `m_ClientStateHashes
upon `UninitialiseClient.
This causes `m_ClientData[hashPair.first].isOOS = true` to insert a
client with blank values that the `NetServerTurnManager` will wait
forever and hence the message box about an OOS with no players being OOS
is shown (the playername is emptystring).

5ebf2020b0 exposed the bug by making observers able to lag behind,
providing a longe enough timeframe for this to occur.

Fix:
Deleting `m_ClientStateHashes` upon disconnect solves the broken
message box and the pausing.

(cherry picked from commit d12c015d43)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-23 10:34:26 +01:00

0 A.D. Introductory Information

FreeBSD Build Status Linux Build Status macOS Build Status Windows Build Status

Game References Checks Status Pre-commit Checks Status

0 A.D. (pronounced "zero ey-dee") is a free, open-source, cross-platform real-time strategy game of ancient warfare.

This is currently an incomplete, under-development version of the game. We're always interested in getting more people involved, to help bring the game towards completion and to share the interesting experience of developing a project of this scope.

There are several ways to contact us and find more information:

Running precompiled binaries on Windows

A precompiled, ready-to-play development version of the game is available from a checkout of the nightly-build SVN repository. If you are using the git repository, you have to follow the steps below.

In a checkout of the nightly-build SVN repository, open the "binaries\system" folder.

  • To launch the game: Run pyrogenesis.exe
  • To launch the map editor: Run Atlas.bat or "pyrogenesis.exe -editor"

Compiling the game from source code

The instructions for compiling the game on Windows, Linux and OS X are at BuildInstructions.

Reporting problems

Bugs should be reported on Gitea. For information on reporting problems and finding logs, see ReportingErrors.

Contributing Code

If you want to help out programming for the game, have a look at GettingStartedProgrammers or contact us on #0ad-dev on irc.quakenet.org

Contributing Artwork

If you want to make artwork for the game, have a look at For Artists or visit the forums.

Translating

You can help translating the game at https://www.transifex.com/projects/p/0ad for more information, see Localization

S
Description
Public pull mirror of upstream 0 A.D. from Wildfire Games Gitea.
Readme 14 GiB
Languages
C++ 56.6%
JavaScript 35.3%
C 3.3%
Python 2.2%
Lua 0.6%
Other 1.7%