mirror of
https://github.com/vcmi/vcmi.git
synced 2025-07-15 01:24:45 +02:00
Fix locked UI on starting multiplayer game
This commit is contained in:
@ -279,7 +279,14 @@ void CPlayerInterface::yourTurn(QueryID queryID)
|
|||||||
CTutorialWindow::openWindowFirstTime(TutorialMode::TOUCH_ADVENTUREMAP);
|
CTutorialWindow::openWindowFirstTime(TutorialMode::TOUCH_ADVENTUREMAP);
|
||||||
|
|
||||||
EVENT_HANDLER_CALLED_BY_CLIENT;
|
EVENT_HANDLER_CALLED_BY_CLIENT;
|
||||||
{
|
|
||||||
|
int humanPlayersCount = 0;
|
||||||
|
for(const auto & info : cb->getStartInfo()->playerInfos)
|
||||||
|
if (info.second.isControlledByHuman())
|
||||||
|
humanPlayersCount++;
|
||||||
|
|
||||||
|
bool hotseatWait = humanPlayersCount > 1;
|
||||||
|
|
||||||
LOCPLINT = this;
|
LOCPLINT = this;
|
||||||
GH.curInt = this;
|
GH.curInt = this;
|
||||||
|
|
||||||
@ -289,12 +296,7 @@ void CPlayerInterface::yourTurn(QueryID queryID)
|
|||||||
performAutosave();
|
performAutosave();
|
||||||
}
|
}
|
||||||
|
|
||||||
int humanPlayersCount = 0;
|
if (hotseatWait) //hot seat or MP message
|
||||||
for(const auto & info : cb->getStartInfo()->playerInfos)
|
|
||||||
if (info.second.isControlledByHuman())
|
|
||||||
humanPlayersCount++;
|
|
||||||
|
|
||||||
if (humanPlayersCount > 1) //hot seat or MP message
|
|
||||||
{
|
{
|
||||||
adventureInt->onHotseatWaitStarted(playerID);
|
adventureInt->onHotseatWaitStarted(playerID);
|
||||||
|
|
||||||
@ -310,11 +312,11 @@ void CPlayerInterface::yourTurn(QueryID queryID)
|
|||||||
makingTurn = true;
|
makingTurn = true;
|
||||||
adventureInt->onPlayerTurnStarted(playerID);
|
adventureInt->onPlayerTurnStarted(playerID);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
acceptTurn(queryID);
|
acceptTurn(queryID, hotseatWait);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlayerInterface::acceptTurn(QueryID queryID)
|
void CPlayerInterface::acceptTurn(QueryID queryID, bool hotseatWait)
|
||||||
{
|
{
|
||||||
if (settings["session"]["autoSkip"].Bool())
|
if (settings["session"]["autoSkip"].Bool())
|
||||||
{
|
{
|
||||||
@ -322,7 +324,7 @@ void CPlayerInterface::acceptTurn(QueryID queryID)
|
|||||||
iw->close();
|
iw->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CSH->howManyPlayerInterfaces() > 1)
|
if(hotseatWait)
|
||||||
{
|
{
|
||||||
waitWhileDialog(); // wait for player to accept turn in hot-seat mode
|
waitWhileDialog(); // wait for player to accept turn in hot-seat mode
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ private:
|
|||||||
void heroKilled(const CGHeroInstance* hero);
|
void heroKilled(const CGHeroInstance* hero);
|
||||||
void garrisonsChanged(std::vector<const CArmedInstance *> objs);
|
void garrisonsChanged(std::vector<const CArmedInstance *> objs);
|
||||||
void requestReturningToMainMenu(bool won);
|
void requestReturningToMainMenu(bool won);
|
||||||
void acceptTurn(QueryID queryID); //used during hot seat after your turn message is close
|
void acceptTurn(QueryID queryID, bool hotseatWait); //used during hot seat after your turn message is close
|
||||||
void initializeHeroTownList();
|
void initializeHeroTownList();
|
||||||
int getLastIndex(std::string namePrefix);
|
int getLastIndex(std::string namePrefix);
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user