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

Set room status to "In Game" once gameplay starts

This commit is contained in:
Ivan Savenko
2024-03-12 20:53:39 +02:00
parent 7c9aa9d953
commit 5d188024db
9 changed files with 33 additions and 16 deletions

View File

@@ -60,6 +60,8 @@ NetworkConnectionPtr LobbyServer::findGameRoom(const std::string & gameRoomID) c
void LobbyServer::sendMessage(const NetworkConnectionPtr & target, const JsonNode & json)
{
logGlobal->info("Sending message of type %s", json["type"].String());
assert(JsonUtils::validate(json, "vcmi:lobbyProtocol/" + json["type"].String(), json["type"].String() + " pack"));
target->sendPacket(json.toBytes());
}
@@ -342,6 +344,9 @@ void LobbyServer::onPacketReceived(const NetworkConnectionPtr & connection, cons
if(messageType == "changeRoomDescription")
return receiveChangeRoomDescription(connection, json);
if(messageType == "gameStarted")
return receiveGameStarted(connection, json);
if(messageType == "leaveGameRoom")
return receiveLeaveGameRoom(connection, json);
@@ -597,6 +602,14 @@ void LobbyServer::receiveChangeRoomDescription(const NetworkConnectionPtr & conn
broadcastActiveGameRooms();
}
void LobbyServer::receiveGameStarted(const NetworkConnectionPtr & connection, const JsonNode & json)
{
std::string gameRoomID = activeGameRooms[connection];
database->setGameRoomStatus(gameRoomID, LobbyRoomState::BUSY);
broadcastActiveGameRooms();
}
void LobbyServer::receiveLeaveGameRoom(const NetworkConnectionPtr & connection, const JsonNode & json)
{
std::string accountID = json["accountID"].String();