Ver Fonte

campaign unlock to gamesettings

Laserlicht há 2 meses atrás
pai
commit
d9ac7755d6

+ 2 - 1
client/mainmenu/CCampaignScreen.cpp

@@ -33,6 +33,7 @@
 #include "../../lib/CCreatureHandler.h"
 #include "../../lib/CSkillHandler.h"
 #include "../../lib/GameLibrary.h"
+#include "../../lib/IGameSettings.h"
 #include "../../lib/campaign/CampaignHandler.h"
 #include "../../lib/filesystem/Filesystem.h"
 #include "../../lib/mapObjects/CGHeroInstance.h"
@@ -177,7 +178,7 @@ CCampaignScreen::CCampaignButton::CCampaignButton(const JsonNode & config, const
 		}
 	}
 
-	if(persistentStorage["unlockAllCampaigns"].Bool())
+	if(LIBRARY->engineSettings()->getBoolean(EGameSettings::CAMPAIGN_UNLOCK_ALL))
 		status = CCampaignScreen::ENABLED;
 
 	if(status != CCampaignScreen::DISABLED)

+ 6 - 0
config/gameConfig.json

@@ -823,6 +823,12 @@
 				"teal" :   [ -0.13,  0.23,  0.23,  0.90, 1.20, 2.20 ],
 				"pink" :   [  0.44,  0.15,  0.25,  1.00, 1.00, 1.75 ]
 			}
+		},
+
+		"campaign" :
+		{
+			// Unlock all campaigns
+			"unlockAll" : false
 		}
 	}
 }

+ 7 - 0
config/schemas/gameSettings.json

@@ -67,6 +67,13 @@
 				"baseScoutingRange" :                    { "type" : "number" }
 			}
 		},
+		"campaign": {
+			"type" : "object",
+			"additionalProperties" : false,
+			"properties" : {
+				"unlockAll" : { "type" : "boolean" }
+			}
+		},
 		"combat": {
 			"type" : "object",
 			"additionalProperties" : false,

+ 1 - 0
lib/GameSettings.cpp

@@ -45,6 +45,7 @@ const std::vector<GameSettings::SettingOption> GameSettings::settingProperties =
 		{EGameSettings::BANKS_SHOW_GUARDS_COMPOSITION,                    "banks",     "showGuardsComposition"                },
 		{EGameSettings::BONUSES_GLOBAL,                                   "bonuses",   "global"                               },
 		{EGameSettings::BONUSES_PER_HERO,                                 "bonuses",   "perHero"                              },
+		{EGameSettings::CAMPAIGN_UNLOCK_ALL,                              "campaign",  "unlockAll"                            },
 		{EGameSettings::COMBAT_ABILITY_BIAS,                              "combat",    "abilityBias"                          },
 		{EGameSettings::COMBAT_AREA_SHOT_CAN_TARGET_EMPTY_HEX,            "combat",    "areaShotCanTargetEmptyHex"            },
 		{EGameSettings::COMBAT_ATTACK_POINT_DAMAGE_FACTOR,                "combat",    "attackPointDamageFactor"              },

+ 1 - 0
lib/IGameSettings.h

@@ -18,6 +18,7 @@ enum class EGameSettings
 	BANKS_SHOW_GUARDS_COMPOSITION,
 	BONUSES_GLOBAL,
 	BONUSES_PER_HERO,
+	CAMPAIGN_UNLOCK_ALL,
 	COMBAT_ABILITY_BIAS,
 	COMBAT_AREA_SHOT_CAN_TARGET_EMPTY_HEX,
 	COMBAT_ATTACK_POINT_DAMAGE_FACTOR,