瀏覽代碼

possibility to show small queue outside

Laserlicht 1 年之前
父節點
當前提交
5e3f0e631c
共有 2 個文件被更改,包括 9 次插入3 次删除
  1. 4 2
      client/battle/BattleInterfaceClasses.cpp
  2. 5 1
      config/schemas/settings.json

+ 4 - 2
client/battle/BattleInterfaceClasses.cpp

@@ -857,12 +857,14 @@ StackQueue::StackQueue(bool Embedded, BattleInterface & owner)
 
 	if(embedded)
 	{
-		queueSize = std::clamp(static_cast<int>(settings["battle"]["queueSmallSlots"].Float()), 1, 19);
+		int32_t queueSmallOutsideYOffset = 65;
+		bool queueSmallOutside = settings["battle"]["queueSmallOutside"].Bool() && (pos.y - queueSmallOutsideYOffset) >= 0;
+		queueSize = std::clamp(static_cast<int>(settings["battle"]["queueSmallSlots"].Float()), 1, queueSmallOutside ? GH.screenDimensions().x / 41 : 19);
 
 		pos.w = queueSize * 41;
 		pos.h = 49;
 		pos.x += parent->pos.w/2 - pos.w/2;
-		pos.y += 10;
+		pos.y += queueSmallOutside ? -queueSmallOutsideYOffset : 10;
 
 		icons = GH.renderHandler().loadAnimation(AnimationPath::builtin("CPRSMALL"));
 		stateIcons = GH.renderHandler().loadAnimation(AnimationPath::builtin("VCMI/BATTLEQUEUE/STATESSMALL"));

+ 5 - 1
config/schemas/settings.json

@@ -304,7 +304,7 @@
 			"type" : "object",
 			"additionalProperties" : false,
 			"default" : {},
-			"required" : [ "speedFactor", "mouseShadow", "cellBorders", "stackRange", "movementHighlightOnHover", "rangeLimitHighlightOnHover", "showQueue", "swipeAttackDistance", "queueSize", "stickyHeroInfoWindows", "enableAutocombatSpells", "endWithAutocombat", "queueSmallSlots" ],
+			"required" : [ "speedFactor", "mouseShadow", "cellBorders", "stackRange", "movementHighlightOnHover", "rangeLimitHighlightOnHover", "showQueue", "swipeAttackDistance", "queueSize", "stickyHeroInfoWindows", "enableAutocombatSpells", "endWithAutocombat", "queueSmallSlots", "queueSmallOutside" ],
 			"properties" : {
 				"speedFactor" : {
 					"type" : "number",
@@ -358,6 +358,10 @@
 				"queueSmallSlots" : {
 					"type": "number",
 					"default": 10
+				},
+				"queueSmallOutside" : {
+					"type": "boolean",
+					"default": false
 				}
 			}
 		},