فهرست منبع

#1054 - fix crash and UI

Andrii Danylchenko 3 سال پیش
والد
کامیت
b83a40db87

+ 2 - 2
client/CMakeLists.txt

@@ -203,8 +203,8 @@ if(WIN32)
 	if(MSVC)
 		add_custom_command(TARGET vcmiclient POST_BUILD
 			WORKING_DIRECTORY "$<TARGET_FILE_DIR:vcmiclient>"
-			COMMAND ${CMAKE_COMMAND} -E rename AI/fuzzylite.dll fuzzylite.dll
-			COMMAND ${CMAKE_COMMAND} -E rename AI/tbb.dll tbb.dll
+			COMMAND ${CMAKE_COMMAND} -E copy AI/fuzzylite.dll fuzzylite.dll
+			COMMAND ${CMAKE_COMMAND} -E copy AI/tbb.dll tbb.dll
 		)
 	endif()
 elseif(APPLE_IOS)

+ 1 - 1
client/windows/CCreatureWindow.cpp

@@ -737,7 +737,7 @@ void CStackWindow::init()
 	OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
 
 	if(!info->stackNode)
-		info->stackNode = new CStackInstance(info->creature, 1);// FIXME: free data
+		info->stackNode = new CStackInstance(info->creature, 1, true);// FIXME: free data
 
 	selectedIcon = nullptr;
 	selectedSkill = -1;

+ 5 - 6
client/windows/CreaturePurchaseCard.cpp

@@ -47,8 +47,8 @@ void CreaturePurchaseCard::switchCreatureLevel()
 	auto index = vstd::find_pos(upgradesID, creatureOnTheCard->idNumber);
 	auto nextCreatureId = vstd::circularAt(upgradesID, ++index);
 	creatureOnTheCard = nextCreatureId.toCreature();
-	creatureClickArea = std::make_shared<CCreatureClickArea>(Point(pos.x + CCreatureClickArea::CREATURE_X_POS, pos.y + CCreatureClickArea::CREATURE_Y_POS), picture, creatureOnTheCard);
 	picture = std::make_shared<CCreaturePic>(parent->pos.x, parent->pos.y, creatureOnTheCard);
+	creatureClickArea = std::make_shared<CCreatureClickArea>(Point(parent->pos.x, parent->pos.y), picture, creatureOnTheCard);
 	parent->updateAllSliders();
 	cost->set(creatureOnTheCard->cost * slider->getValue());
 }
@@ -98,12 +98,11 @@ void CreaturePurchaseCard::initView()
 {
 	picture = std::make_shared<CCreaturePic>(pos.x, pos.y, creatureOnTheCard);
 	background = std::make_shared<CPicture>("QuickRecruitmentWindow/CreaturePurchaseCard.png", pos.x-4, pos.y-50);
-	initButtons();
-
-	creatureClickArea = std::make_shared<CCreatureClickArea>(Point(pos.x + CCreatureClickArea::CREATURE_X_POS, pos.y + CCreatureClickArea::CREATURE_Y_POS), picture, creatureOnTheCard);
+	creatureClickArea = std::make_shared<CCreatureClickArea>(Point(pos.x, pos.y), picture, creatureOnTheCard);
 
 	initAmountInfo();
 	initSlider();
+	initButtons(); // order important! buttons need slider!
 	initCostBox();
 }
 
@@ -111,8 +110,8 @@ CreaturePurchaseCard::CCreatureClickArea::CCreatureClickArea(const Point & posit
 	: CIntObject(RCLICK),
 	creatureOnTheCard(creatureOnTheCard)
 {
-	pos.x = position.x;
-	pos.y = position.y;
+	pos.x += position.x;
+	pos.y += position.y;
 	pos.w = CREATURE_WIDTH;
 	pos.h = CREATURE_HEIGHT;
 }

+ 0 - 2
client/windows/CreaturePurchaseCard.h

@@ -56,8 +56,6 @@ private:
 		// used to set positions were obtained; commit messages don't document it
 		static constexpr int CREATURE_WIDTH = 110;
 		static constexpr int CREATURE_HEIGHT = 132;
-		static constexpr int CREATURE_X_POS = 15;
-		static constexpr int CREATURE_Y_POS = 44;
 	};
 
 	std::shared_ptr<CButton> maxButton, minButton, creatureSwitcher;