1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-03 13:01:33 +02:00

Fix excessive removal of dialogs, e.g. new week or timed events

This commit is contained in:
Ivan Savenko 2024-08-22 16:39:30 +00:00
parent d1aa55de91
commit b6cc409772

View File

@ -193,11 +193,6 @@ void CPlayerInterface::closeAllDialogs()
castleInt->close();
castleInt = nullptr;
// remove all pending dialogs that do not expect query answer
vstd::erase_if(dialogs, [](const std::shared_ptr<CInfoWindow> & window){
return window->ID == QueryID::NONE;
});
}
void CPlayerInterface::playerEndsTurn(PlayerColor player)
@ -207,6 +202,11 @@ void CPlayerInterface::playerEndsTurn(PlayerColor player)
{
makingTurn = false;
closeAllDialogs();
// remove all pending dialogs that do not expect query answer
vstd::erase_if(dialogs, [](const std::shared_ptr<CInfoWindow> & window){
return window->ID == QueryID::NONE;
});
}
}
@ -1511,7 +1511,7 @@ void CPlayerInterface::update()
return;
//if there are any waiting dialogs, show them
if ((CSH->howManyPlayerInterfaces() <= 1 || makingTurn) && !dialogs.empty() && !showingDialog->isBusy())
if (makingTurn && !dialogs.empty() && !showingDialog->isBusy())
{
showingDialog->setBusy();
GH.windows().pushWindow(dialogs.front());