diff --git a/lib/VCMI_lib.cbp b/lib/VCMI_lib.cbp index 76967df72..67eae96cf 100644 --- a/lib/VCMI_lib.cbp +++ b/lib/VCMI_lib.cbp @@ -30,6 +30,7 @@ + @@ -57,6 +58,7 @@ + diff --git a/server/CGameHandler.cpp b/server/CGameHandler.cpp index 5fe7b8fad..e2da798c9 100644 --- a/server/CGameHandler.cpp +++ b/server/CGameHandler.cpp @@ -1605,6 +1605,15 @@ void CGameHandler::run(bool resume) } } } + //additional check that game is not finished + bool activePlayer = false; + for(auto player : playerTurnOrder) + { + if(gs->players[player].status == EPlayerStatus::INGAME) + activePlayer = true; + } + if(!activePlayer) + end2 = true; } while(conns.size() && (*conns.begin())->isOpen()) boost::this_thread::sleep(boost::posix_time::milliseconds(5)); //give time client to close socket