mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	add extra button for campaigns
This commit is contained in:
		| @@ -15,6 +15,7 @@ | ||||
| #include <vcmi/spells/Service.h> | ||||
|  | ||||
| #include "CSelectionBase.h" | ||||
| #include "ExtraOptionsTab.h" | ||||
|  | ||||
| #include "../CGameInfo.h" | ||||
| #include "../CMusicHandler.h" | ||||
| @@ -103,8 +104,8 @@ CBonusSelection::CBonusSelection() | ||||
|  | ||||
| 	if(getCampaign()->playerSelectedDifficulty()) | ||||
| 	{ | ||||
| 		buttonDifficultyLeft = std::make_shared<CButton>(Point(694, 508), AnimationPath::builtin("SCNRBLF.DEF"), CButton::tooltip(), std::bind(&CBonusSelection::decreaseDifficulty, this)); | ||||
| 		buttonDifficultyRight = std::make_shared<CButton>(Point(738, 508), AnimationPath::builtin("SCNRBRT.DEF"), CButton::tooltip(), std::bind(&CBonusSelection::increaseDifficulty, this)); | ||||
| 		buttonDifficultyLeft = std::make_shared<CButton>(settings["general"]["enableUiEnhancements"].Bool() ? Point(693, 470) : Point(694, 508), AnimationPath::builtin("SCNRBLF.DEF"), CButton::tooltip(), std::bind(&CBonusSelection::decreaseDifficulty, this)); | ||||
| 		buttonDifficultyRight = std::make_shared<CButton>(settings["general"]["enableUiEnhancements"].Bool() ? Point(739, 470) : Point(738, 508), AnimationPath::builtin("SCNRBRT.DEF"), CButton::tooltip(), std::bind(&CBonusSelection::increaseDifficulty, this)); | ||||
| 	} | ||||
|  | ||||
| 	for(auto scenarioID : getCampaign()->allScenarios()) | ||||
| @@ -117,6 +118,16 @@ CBonusSelection::CBonusSelection() | ||||
|  | ||||
| 	if (!getCampaign()->getMusic().empty()) | ||||
| 		CCS->musich->playMusic( getCampaign()->getMusic(), true, false); | ||||
|  | ||||
| 	if(settings["general"]["enableUiEnhancements"].Bool()) | ||||
| 	{ | ||||
| 		tabExtraOptions = std::make_shared<ExtraOptionsTab>(); | ||||
| 		tabExtraOptions->recActions = UPDATE | SHOWALL | LCLICK | RCLICK_POPUP; | ||||
| 		tabExtraOptions->recreate(true); | ||||
| 		tabExtraOptions->setEnabled(false); | ||||
| 		buttonExtraOptions = std::make_shared<CButton>(Point(642, 509), AnimationPath::builtin("GSPBUT2.DEF"), CGI->generaltexth->zelp[46], [this]{ tabExtraOptions->setEnabled(!tabExtraOptions->isActive()); GH.windows().totalRedraw(); }, EShortcut::NONE); | ||||
| 		buttonExtraOptions->addTextOverlay(CGI->generaltexth->translate("vcmi.optionsTab.extraOptions.hover"), FONT_SMALL, Colors::WHITE); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void CBonusSelection::createBonusesIcons() | ||||
|   | ||||
| @@ -27,6 +27,7 @@ class CAnimImage; | ||||
| class CLabel; | ||||
| class CFlagBox; | ||||
| class ISelectionScreenInfo; | ||||
| class ExtraOptionsTab; | ||||
|  | ||||
| /// Campaign screen where you can choose one out of three starting bonuses | ||||
| class CBonusSelection : public CWindowObject | ||||
| @@ -82,4 +83,7 @@ public: | ||||
| 	std::shared_ptr<CButton> buttonDifficultyLeft; | ||||
| 	std::shared_ptr<CButton> buttonDifficultyRight; | ||||
| 	std::shared_ptr<CAnimImage> iconsMapSizes; | ||||
|  | ||||
| 	std::shared_ptr<ExtraOptionsTab> tabExtraOptions; | ||||
| 	std::shared_ptr<CButton> buttonExtraOptions; | ||||
| }; | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
| #include "CSelectionBase.h" | ||||
|  | ||||
| #include "../widgets/ComboBox.h" | ||||
| #include "../widgets/Images.h" | ||||
| #include "../widgets/Slider.h" | ||||
| #include "../widgets/TextControls.h" | ||||
| #include "../CServerHandler.h" | ||||
| @@ -295,7 +296,7 @@ OptionsTabBase::OptionsTabBase(const JsonPath & configPath) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void OptionsTabBase::recreate() | ||||
| void OptionsTabBase::recreate(bool campaign) | ||||
| { | ||||
| 	auto const & generateSimturnsDurationText = [](int days) -> std::string | ||||
| 	{ | ||||
| @@ -417,4 +418,10 @@ void OptionsTabBase::recreate() | ||||
| 		buttonUnlimitedReplay->setSelectedSilent(SEL->getStartInfo()->extraOptionsInfo.unlimitedReplay); | ||||
| 		buttonUnlimitedReplay->block(SEL->screenType == ESelectionScreen::loadGame); | ||||
| 	} | ||||
|  | ||||
| 	if(auto textureCampaignOverdraw = widget<CFilledTexture>("textureCampaignOverdraw")) | ||||
| 	{ | ||||
| 		if(!campaign) | ||||
| 			textureCampaignOverdraw->disable(); | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -28,5 +28,5 @@ class OptionsTabBase : public InterfaceObjectConfigurable | ||||
| public: | ||||
| 	OptionsTabBase(const JsonPath & configPath); | ||||
|  | ||||
| 	void recreate(); | ||||
| 	void recreate(bool campaign = false); | ||||
| }; | ||||
|   | ||||
| @@ -9,6 +9,13 @@ | ||||
| 			"image": "ADVOPTBK", | ||||
| 			"position": {"x": 0, "y": 6} | ||||
| 		}, | ||||
| 		{ | ||||
| 			"name": "textureCampaignOverdraw", | ||||
| 			"type": "texture", | ||||
| 			"color" : "blue",  | ||||
| 			"image": "DIBOXBCK", | ||||
| 			"rect": {"x": 391, "y": 14, "w": 82, "h": 569} | ||||
| 		}, | ||||
| 		{ | ||||
| 			"name": "labelTitle", | ||||
| 			"type": "label", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user