1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-04-23 12:08:45 +02:00

Close all dialogs on start of new turn in MP

This commit is contained in:
Ivan Savenko 2024-07-29 15:57:49 +00:00
parent 434a2fb0fb
commit 5f0e6f7ce1
2 changed files with 34 additions and 28 deletions

View File

@ -169,13 +169,8 @@ void CPlayerInterface::initGameInterface(std::shared_ptr<Environment> ENV, std::
adventureInt.reset(new AdventureMapInterface()); adventureInt.reset(new AdventureMapInterface());
} }
void CPlayerInterface::playerEndsTurn(PlayerColor player) void CPlayerInterface::closeAllDialogs()
{ {
EVENT_HANDLER_CALLED_BY_CLIENT;
if (player == playerID)
{
makingTurn = false;
// remove all active dialogs that do not expect query answer // remove all active dialogs that do not expect query answer
for (;;) for (;;)
{ {
@ -203,6 +198,15 @@ void CPlayerInterface::playerEndsTurn(PlayerColor player)
vstd::erase_if(dialogs, [](const std::shared_ptr<CInfoWindow> & window){ vstd::erase_if(dialogs, [](const std::shared_ptr<CInfoWindow> & window){
return window->ID == QueryID::NONE; return window->ID == QueryID::NONE;
}); });
}
void CPlayerInterface::playerEndsTurn(PlayerColor player)
{
EVENT_HANDLER_CALLED_BY_CLIENT;
if (player == playerID)
{
makingTurn = false;
closeAllDialogs();
} }
} }
@ -284,6 +288,7 @@ void CPlayerInterface::gamePause(bool pause)
void CPlayerInterface::yourTurn(QueryID queryID) void CPlayerInterface::yourTurn(QueryID queryID)
{ {
closeAllDialogs();
CTutorialWindow::openWindowFirstTime(TutorialMode::TOUCH_ADVENTUREMAP); CTutorialWindow::openWindowFirstTime(TutorialMode::TOUCH_ADVENTUREMAP);
EVENT_HANDLER_CALLED_BY_CLIENT; EVENT_HANDLER_CALLED_BY_CLIENT;

View File

@ -203,6 +203,7 @@ public: // public interface for use by client via LOCPLINT access
void performAutosave(); void performAutosave();
void gamePause(bool pause); void gamePause(bool pause);
void endNetwork(); void endNetwork();
void closeAllDialogs();
///returns true if all events are processed internally ///returns true if all events are processed internally
bool capturedAllEvents(); bool capturedAllEvents();