1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00

Implemented simple versioning system for multiplayer

This commit is contained in:
Ivan Savenko
2024-05-29 20:08:32 +00:00
parent 5c2ca380ab
commit 888149c6f6
9 changed files with 42 additions and 5 deletions

View File

@@ -46,11 +46,16 @@ void ClientPermissionsCheckerNetPackVisitor::visitLobbyClientConnected(LobbyClie
void ApplyOnServerNetPackVisitor::visitLobbyClientConnected(LobbyClientConnected & pack)
{
auto compatibleVersion = std::min(pack.version, ESerializationVersion::CURRENT);
pack.c->setSerializationVersion(compatibleVersion);
srv.clientConnected(pack.c, pack.names, pack.uuid, pack.mode);
// Server need to pass some data to newly connected client
pack.clientId = pack.c->connectionID;
pack.mode = srv.si->mode;
pack.hostClientId = srv.hostClientId;
pack.version = compatibleVersion;
result = true;
}