extra logging; minor server crash fix
This commit is contained in:
parent
c8813bb2aa
commit
b38f0e2100
2 changed files with 20 additions and 19 deletions
|
@ -56,7 +56,7 @@ Server_Game::~Server_Game()
|
||||||
|
|
||||||
room->removeGame(this);
|
room->removeGame(this);
|
||||||
delete creatorInfo;
|
delete creatorInfo;
|
||||||
qDebug("Server_Game destructor");
|
qDebug() << "Server_Game destructor: gameId=" << gameId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Server_Game::pingClockTimeout()
|
void Server_Game::pingClockTimeout()
|
||||||
|
|
|
@ -207,25 +207,26 @@ void Server_ProtocolHandler::processCommandContainer(CommandContainer *cont)
|
||||||
gameListMutex.lock();
|
gameListMutex.lock();
|
||||||
GameEventContainer *gQPublic = cont->getGameEventQueuePublic();
|
GameEventContainer *gQPublic = cont->getGameEventQueuePublic();
|
||||||
if (gQPublic) {
|
if (gQPublic) {
|
||||||
Server_Game *game = games.value(gQPublic->getGameId()).first;
|
QPair<Server_Game *, Server_Player *> gamePlayerPair = games.value(gQPublic->getGameId());
|
||||||
Server_Player *player = games.value(gQPublic->getGameId()).second;
|
if (gamePlayerPair.first) {
|
||||||
GameEventContainer *gQPrivate = cont->getGameEventQueuePrivate();
|
GameEventContainer *gQPrivate = cont->getGameEventQueuePrivate();
|
||||||
GameEventContainer *gQOmniscient = cont->getGameEventQueueOmniscient();
|
GameEventContainer *gQOmniscient = cont->getGameEventQueueOmniscient();
|
||||||
if (gQPrivate) {
|
if (gQPrivate) {
|
||||||
int privatePlayerId = cont->getPrivatePlayerId();
|
int privatePlayerId = cont->getPrivatePlayerId();
|
||||||
Server_Player *privatePlayer;
|
Server_Player *privatePlayer;
|
||||||
if (privatePlayerId == -1)
|
if (privatePlayerId == -1)
|
||||||
privatePlayer = player;
|
privatePlayer = gamePlayerPair.second;
|
||||||
else
|
else
|
||||||
privatePlayer = game->getPlayer(privatePlayerId);
|
privatePlayer = gamePlayerPair.first->getPlayer(privatePlayerId);
|
||||||
if (gQOmniscient) {
|
if (gQOmniscient) {
|
||||||
game->sendGameEventContainer(gQPublic, privatePlayer, true);
|
gamePlayerPair.first->sendGameEventContainer(gQPublic, privatePlayer, true);
|
||||||
game->sendGameEventContainerOmniscient(gQOmniscient, privatePlayer);
|
gamePlayerPair.first->sendGameEventContainerOmniscient(gQOmniscient, privatePlayer);
|
||||||
|
} else
|
||||||
|
gamePlayerPair.first->sendGameEventContainer(gQPublic, privatePlayer);
|
||||||
|
privatePlayer->sendProtocolItem(gQPrivate);
|
||||||
} else
|
} else
|
||||||
game->sendGameEventContainer(gQPublic, privatePlayer);
|
gamePlayerPair.first->sendGameEventContainer(gQPublic);
|
||||||
privatePlayer->sendProtocolItem(gQPrivate);
|
}
|
||||||
} else
|
|
||||||
game->sendGameEventContainer(gQPublic);
|
|
||||||
}
|
}
|
||||||
gameListMutex.unlock();
|
gameListMutex.unlock();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue