Browse Source

Remove custom flag from Quick spell panel

Ivan Savenko 4 months ago
parent
commit
14a3f5a004

+ 2 - 9
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)

+ 0 - 1
client/battle/QuickSpellPanel.cpp

@@ -31,7 +31,6 @@
 QuickSpellPanel::QuickSpellPanel(BattleInterface & owner)
 	: CIntObject(0)
 	, owner(owner)
-	, isEnabled(true)
 {
 	OBJECT_CONSTRUCTION;
 

+ 0 - 2
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();

+ 5 - 0
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)

+ 3 - 0
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);