diff --git a/client/battle/BattleWindow.cpp b/client/battle/BattleWindow.cpp index 027883c15..ca0dbb2bc 100644 --- a/client/battle/BattleWindow.cpp +++ b/client/battle/BattleWindow.cpp @@ -214,7 +214,6 @@ void BattleWindow::hideStickyQuickSpellWindow() showStickyQuickSpellWindow->Bool() = false; quickSpellWindow->disable(); - quickSpellWindow->isEnabled = false; setPositionInfoWindow(); createTimerInfoWindows(); @@ -229,15 +228,9 @@ void BattleWindow::showStickyQuickSpellWindow() auto hero = owner.getBattle()->battleGetMyHero(); if(ENGINE->screenDimensions().x >= 1050 && hero != nullptr && hero->hasSpellbook()) - { quickSpellWindow->enable(); - quickSpellWindow->isEnabled = true; - } else - { quickSpellWindow->disable(); - quickSpellWindow->isEnabled = false; - } setPositionInfoWindow(); createTimerInfoWindows(); @@ -248,7 +241,7 @@ void BattleWindow::createTimerInfoWindows() { OBJECT_CONSTRUCTION; - int xOffsetAttacker = quickSpellWindow->isEnabled ? -53 : 0; + int xOffsetAttacker = quickSpellWindow->isDisabled() ? 0 : -53; if(GAME->interface()->cb->getStartInfo()->turnTimerInfo.battleTimer != 0 || GAME->interface()->cb->getStartInfo()->turnTimerInfo.unitTimer != 0) { @@ -385,7 +378,7 @@ void BattleWindow::updateQueue() void BattleWindow::setPositionInfoWindow() { - int xOffsetAttacker = quickSpellWindow->isEnabled ? -53 : 0; + int xOffsetAttacker = quickSpellWindow->isDisabled() ? 0 : -53; if(defenderHeroWindow) { Point position = (ENGINE->screenDimensions().x >= 1000) diff --git a/client/battle/QuickSpellPanel.cpp b/client/battle/QuickSpellPanel.cpp index 7f0fc19da..b178d6097 100644 --- a/client/battle/QuickSpellPanel.cpp +++ b/client/battle/QuickSpellPanel.cpp @@ -31,7 +31,6 @@ QuickSpellPanel::QuickSpellPanel(BattleInterface & owner) : CIntObject(0) , owner(owner) - , isEnabled(true) { OBJECT_CONSTRUCTION; diff --git a/client/battle/QuickSpellPanel.h b/client/battle/QuickSpellPanel.h index 7a1604c3c..f4b2716a5 100644 --- a/client/battle/QuickSpellPanel.h +++ b/client/battle/QuickSpellPanel.h @@ -32,8 +32,6 @@ private: public: static constexpr int QUICKSPELL_SLOTS = 12; - bool isEnabled; // isActive() is not working on multiple conditions, because of this we need a seperate flag - QuickSpellPanel(BattleInterface & owner); void create(); diff --git a/client/gui/CIntObject.cpp b/client/gui/CIntObject.cpp index 7f27713f5..8333020e1 100644 --- a/client/gui/CIntObject.cpp +++ b/client/gui/CIntObject.cpp @@ -121,6 +121,11 @@ void CIntObject::enable() recActions = ALL_ACTIONS; } +bool CIntObject::isDisabled() +{ + return recActions == NO_ACTIONS; +} + void CIntObject::setEnabled(bool on) { if (on) diff --git a/client/gui/CIntObject.h b/client/gui/CIntObject.h index a93e42a3a..30b6667ce 100644 --- a/client/gui/CIntObject.h +++ b/client/gui/CIntObject.h @@ -73,6 +73,9 @@ public: void disable(); /// activates if needed, all activity enabled (Warning: may not be symmetric with disable if recActions was limited!) void enable(); + /// returns true if element was disabled via disable() call + bool isDisabled(); + /// deactivates or activates UI element based on flag void setEnabled(bool on);