diff --git a/client/battle/BattleWindow.cpp b/client/battle/BattleWindow.cpp index b9d308764..bd520e67a 100644 --- a/client/battle/BattleWindow.cpp +++ b/client/battle/BattleWindow.cpp @@ -86,30 +86,34 @@ BattleWindow::BattleWindow(BattleInterface & owner): void BattleWindow::createQueue() { OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE; - - //create stack queue and adjust our own position - bool embedQueue; - std::string queueSize = settings["battle"]["queueSize"].String(); - - if(queueSize == "auto") - embedQueue = GH.screenDimensions().y < 700; - else - embedQueue = GH.screenDimensions().y < 700 || queueSize == "small"; - - queue = std::make_shared(embedQueue, owner); - if(!embedQueue && settings["battle"]["showQueue"].Bool()) - { - //re-center, taking into account stack queue position - pos.y -= queue->pos.h; - pos.h += queue->pos.h; - pos = center(); - } -} - -BattleWindow::~BattleWindow() -{ - CPlayerInterface::battleInt = nullptr; -} + + //create stack queue and adjust our own position + bool embedQueue; + bool showQueue = settings["battle"]["showQueue"].Bool(); + std::string queueSize = settings["battle"]["queueSize"].String(); + + if(queueSize == "auto") + embedQueue = GH.screenDimensions().y < 700; + else + embedQueue = GH.screenDimensions().y < 700 || queueSize == "small"; + + queue = std::make_shared(embedQueue, owner); + if(!embedQueue && showQueue) + { + //re-center, taking into account stack queue position + pos.y -= queue->pos.h; + pos.h += queue->pos.h; + pos = center(); + } + + if (!showQueue) + queue->disable(); +} + +BattleWindow::~BattleWindow() +{ + CPlayerInterface::battleInt = nullptr; +} std::shared_ptr BattleWindow::buildBattleConsole(const JsonNode & config) const { @@ -140,14 +144,14 @@ void BattleWindow::hideQueue() if (!queue->embedded) { //re-center, taking into account stack queue position - pos.y += queue->pos.h; - pos.h -= queue->pos.h; - pos = center(); - GH.totalRedraw(); - } -} - -void BattleWindow::showQueue() + pos.y += queue->pos.h; + pos.h -= queue->pos.h; + pos = center(); + } + GH.totalRedraw(); +} + +void BattleWindow::showQueue() { if(settings["battle"]["showQueue"].Bool() == true) return; diff --git a/client/windows/settings/BattleOptionsTab.cpp b/client/windows/settings/BattleOptionsTab.cpp index fdd82feb4..65b62341f 100644 --- a/client/windows/settings/BattleOptionsTab.cpp +++ b/client/windows/settings/BattleOptionsTab.cpp @@ -84,14 +84,19 @@ int BattleOptionsTab::getAnimSpeed() const int BattleOptionsTab::getQueueSizeId() const { - std::string text = settings["battle"]["queueSize"].String(); - if(text == "none") + std::string sizeText = settings["battle"]["queueSize"].String(); + bool visible = settings["battle"]["showQueue"].Bool(); + + if(!visible) return -1; - if(text == "auto") + + if(sizeText == "none") + return -1; + if(sizeText == "auto") return 0; - if(text == "small") + if(sizeText == "small") return 1; - if(text == "big") + if(sizeText == "big") return 2; return 0;