1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-17 01:32:21 +02:00

Remove network connection from local games

This removes need for TCP network connection in single-player games.

Instead, game will now create internal pseudo-connection that performs
client<->server communication by posting sent messages to client/server
asio::io_service'a.

This should fix gameplay aborting on switching to another app on iOS (and
apparently, on Android in some cases)
This commit is contained in:
Ivan Savenko
2025-02-02 17:47:37 +00:00
parent e113622dc3
commit d9244cf061
12 changed files with 141 additions and 5 deletions

View File

@ -73,6 +73,17 @@ void NetworkHandler::createTimer(INetworkTimerListener & listener, std::chrono::
});
}
void NetworkHandler::createInternalConnection(INetworkClientListener & listener, INetworkServer & server)
{
auto localConnection = std::make_shared<InternalConnection>(listener, io);
server.receiveInternalConnection(localConnection);
io->post([&listener, localConnection](){
listener.onConnectionEstablished(localConnection);
});
}
void NetworkHandler::stop()
{
io->stop();