Explorar o código

Merge pull request #1878 from IvanSavenko/fix_battle_ui

Fix visual glitches in battle UI
Ivan Savenko %!s(int64=2) %!d(string=hai) anos
pai
achega
c675e6878a
Modificáronse 2 ficheiros con 22 adicións e 7 borrados
  1. 12 2
      client/battle/BattleWindow.cpp
  2. 10 5
      client/windows/settings/BattleOptionsTab.cpp

+ 12 - 2
client/battle/BattleWindow.cpp

@@ -89,6 +89,7 @@ void BattleWindow::createQueue()
 
 	//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")
@@ -97,13 +98,16 @@ void BattleWindow::createQueue()
 		embedQueue = GH.screenDimensions().y < 700 || queueSize == "small";
 
 	queue = std::make_shared<StackQueue>(embedQueue, owner);
-	if(!embedQueue && settings["battle"]["showQueue"].Bool())
+	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()
@@ -143,8 +147,8 @@ void BattleWindow::hideQueue()
 		pos.y += queue->pos.h;
 		pos.h -= queue->pos.h;
 		pos = center();
-		GH.totalRedraw();
 	}
+	GH.totalRedraw();
 }
 
 void BattleWindow::showQueue()
@@ -213,9 +217,12 @@ void BattleWindow::tacticPhaseStarted()
 	auto menuTactics = widget<CIntObject>("menuTactics");
 	auto tacticNext = widget<CIntObject>("tacticNext");
 	auto tacticEnd = widget<CIntObject>("tacticEnd");
+	auto alternativeAction = widget<CIntObject>("alternativeAction");
 
 	menuBattle->disable();
 	console->disable();
+	if (alternativeAction)
+		alternativeAction->disable();
 
 	menuTactics->enable();
 	tacticNext->enable();
@@ -231,9 +238,12 @@ void BattleWindow::tacticPhaseEnded()
 	auto menuTactics = widget<CIntObject>("menuTactics");
 	auto tacticNext = widget<CIntObject>("tacticNext");
 	auto tacticEnd = widget<CIntObject>("tacticEnd");
+	auto alternativeAction = widget<CIntObject>("alternativeAction");
 
 	menuBattle->enable();
 	console->enable();
+	if (alternativeAction)
+		alternativeAction->enable();
 
 	menuTactics->disable();
 	tacticNext->disable();

+ 10 - 5
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(sizeText == "none")
 		return -1;
-	if(text == "auto")
+	if(sizeText == "auto")
 		return 0;
-	if(text == "small")
+	if(sizeText == "small")
 		return 1;
-	if(text == "big")
+	if(sizeText == "big")
 		return 2;
 
 	return 0;