Add a new command to reverse turn order (#3802)

This commit is contained in:
ctrlaltca
2019-08-28 02:04:27 +02:00
committed by Zach H
parent 013137c418
commit f54165025e
13 changed files with 113 additions and 7 deletions

View File

@@ -66,7 +66,8 @@ Server_Game::Server_Game(const ServerInfo_User &_creatorInfo,
onlyRegistered(_onlyRegistered), spectatorsAllowed(_spectatorsAllowed),
spectatorsNeedPassword(_spectatorsNeedPassword), spectatorsCanTalk(_spectatorsCanTalk),
spectatorsSeeEverything(_spectatorsSeeEverything), inactivityCounter(0), startTimeOfThisGame(0),
secondsElapsed(0), firstGameStarted(false), startTime(QDateTime::currentDateTime()), gameMutex(QMutex::Recursive)
secondsElapsed(0), firstGameStarted(false), turnOrderReversed(false), startTime(QDateTime::currentDateTime()),
gameMutex(QMutex::Recursive)
{
currentReplay = new GameReplay;
currentReplay->set_replay_id(room->getServer()->getDatabaseInterface()->getNextReplayId());
@@ -657,9 +658,17 @@ void Server_Game::nextTurn()
if (activePlayer != -1)
listPos = keys.indexOf(activePlayer);
do {
++listPos;
if (listPos == keys.size())
listPos = 0;
if (turnOrderReversed) {
--listPos;
if (listPos < 0) {
listPos = keys.size() - 1;
}
} else {
++listPos;
if (listPos == keys.size()) {
listPos = 0;
}
}
} while (players.value(keys[listPos])->getSpectator() || players.value(keys[listPos])->getConceded());
setActivePlayer(keys[listPos]);