Browse Source

make configurable

Laserlicht 5 months ago
parent
commit
15a1373911

+ 5 - 3
client/mainmenu/CHighScoreScreen.cpp

@@ -279,15 +279,17 @@ int CHighScoreInputScreen::addEntry(std::string text) {
 		ser.serializeStruct("statistic", stat);
 	}
 
-	if (baseNode.size() > HIGHSCORE_ROW_SAVE - 1)
-		baseNode.resize(HIGHSCORE_ROW_SAVE - 1);
+	int highscoreEntriesCap = settings["general"]["highscoreEntriesCap"].Integer();
+	if (baseNode.size() > highscoreEntriesCap - 1)
+		baseNode.resize(highscoreEntriesCap - 1);
+
 	baseNode.push_back(newNode);
 	boost::range::sort(baseNode, sortFunctor);
 
 	int pos = -1;
 	for (int i = 0; i < baseNode.size(); i++)
 	{
-		if(!baseNode[i]["statistic"].isNull() && i >= Statistic::STAT_ROW_SAVE && baseNode[i]["posFlag"].isNull())
+		if(!baseNode[i]["statistic"].isNull() && i >= settings["general"]["highscoreStatisticEntriesCap"].Integer() && baseNode[i]["posFlag"].isNull())
 			baseNode[i]["statistic"].clear();
 
 		if(!baseNode[i]["posFlag"].isNull())

+ 0 - 2
client/mainmenu/CHighScoreScreen.h

@@ -76,8 +76,6 @@ public:
 
 class CHighScoreInputScreen : public CWindowObject, public IVideoHolder
 {
-	const int HIGHSCORE_ROW_SAVE = 100;
-
 	std::vector<std::shared_ptr<CLabel>> texts;
 	std::shared_ptr<CHighScoreInput> input;
 	std::shared_ptr<TransparentFilledRectangle> background;

+ 11 - 1
config/schemas/settings.json

@@ -46,7 +46,9 @@
 				"enableOverlay",
 				"lastKindomInterface",
 				"enableSubtitle",
-				"ignoreMuteSwitch"
+				"ignoreMuteSwitch",
+				"highscoreEntriesCap",
+				"highscoreStatisticEntriesCap"
 			],
 			"properties" : {
 				"playerName" : {
@@ -166,6 +168,14 @@
 				"ignoreMuteSwitch" : {
 					"type": "boolean",
 					"default": true
+				},
+				"highscoreEntriesCap" : {
+					"type" : "number",
+					"default" : 100
+				},
+				"highscoreStatisticEntriesCap" : {
+					"type" : "number",
+					"default" : 15
 				}
 			}
 		},

+ 0 - 2
lib/gameState/GameStatistics.h

@@ -155,8 +155,6 @@ public:
 class DLL_LINKAGE Statistic
 {
 public:
-	static const int STAT_ROW_SAVE = 15;
-
 	static int getNumberOfArts(const PlayerState * ps);
 	static int getNumberOfDwellings(const PlayerState * ps);
 	static si64 getArmyStrength(const PlayerState * ps, bool withTownGarrison = false);