浏览代码

static const for globals

Laserlicht 9 月之前
父节点
当前提交
c5b8a4fd61
共有 1 个文件被更改,包括 10 次插入10 次删除
  1. 10 10
      lib/campaign/CampaignHandler.cpp

+ 10 - 10
lib/campaign/CampaignHandler.cpp

@@ -255,14 +255,14 @@ JsonNode CampaignHandler::writeScenarioToJson(const CampaignScenario & scenario)
 	return node;
 }
 
-std::map<std::string, CampaignStartOptions> startOptionsMap = {
+static const std::map<std::string, CampaignStartOptions> startOptionsMap = {
 	{"none", CampaignStartOptions::NONE},
 	{"bonus", CampaignStartOptions::START_BONUS},
 	{"crossover", CampaignStartOptions::HERO_CROSSOVER},
 	{"hero", CampaignStartOptions::HERO_OPTIONS}
 };
 
-std::map<std::string, CampaignBonusType> bonusTypeMap = {
+static const std::map<std::string, CampaignBonusType> bonusTypeMap = {
 	{"spell", CampaignBonusType::SPELL},
 	{"creature", CampaignBonusType::MONSTER},
 	{"building", CampaignBonusType::BUILDING},
@@ -275,20 +275,20 @@ std::map<std::string, CampaignBonusType> bonusTypeMap = {
 	//{"hero", CScenarioTravel::STravelBonus::EBonusType::HERO},
 };
 
-std::map<std::string, ui32> primarySkillsMap = {
+static const std::map<std::string, ui32> primarySkillsMap = {
 	{"attack", 0},
 	{"defence", 8},
 	{"spellpower", 16},
 	{"knowledge", 24},
 };
 
-std::map<std::string, ui16> heroSpecialMap = {
+static const std::map<std::string, ui16> heroSpecialMap = {
 	{"strongest", 0xFFFD},
 	{"generated", 0xFFFE},
 	{"random", 0xFFFF}
 };
 
-std::map<std::string, ui8> resourceTypeMap = {
+static const std::map<std::string, ui8> resourceTypeMap = {
 	//FD - wood+ore
 	//FE - mercury+sulfur+crystal+gem
 	{"wood", 0},
@@ -330,7 +330,7 @@ CampaignTravel CampaignHandler::readScenarioTravelFromJson(JsonNode & reader)
 			logGlobal->warn("VCMP Loading: keepArtifacts contains unresolved identifier %s", k.String());
 	}
 
-	ret.startOptions = startOptionsMap[reader["startOptions"].String()];
+	ret.startOptions = startOptionsMap.at(reader["startOptions"].String());
 	switch(ret.startOptions)
 	{
 	case CampaignStartOptions::NONE:
@@ -342,11 +342,11 @@ CampaignTravel CampaignHandler::readScenarioTravelFromJson(JsonNode & reader)
 			for(auto & bjson : reader["bonuses"].Vector())
 			{
 				CampaignBonus bonus;
-				bonus.type = bonusTypeMap[bjson["what"].String()];
+				bonus.type = bonusTypeMap.at(bjson["what"].String());
 				switch (bonus.type)
 				{
 					case CampaignBonusType::RESOURCE:
-						bonus.info1 = resourceTypeMap[bjson["type"].String()];
+						bonus.info1 = resourceTypeMap.at(bjson["type"].String());
 						bonus.info2 = bjson["amount"].Integer();
 						break;
 						
@@ -357,7 +357,7 @@ CampaignTravel CampaignHandler::readScenarioTravelFromJson(JsonNode & reader)
 						break;
 						
 					default:
-						if(int heroId = heroSpecialMap[bjson["hero"].String()])
+						if(int heroId = heroSpecialMap.at(bjson["hero"].String()))
 							bonus.info1 = heroId;
 						else
 							if(auto identifier = VLC->identifiers()->getIdentifier(ModScope::scopeMap(), "hero", bjson["hero"].String()))
@@ -420,7 +420,7 @@ CampaignTravel CampaignHandler::readScenarioTravelFromJson(JsonNode & reader)
 				bonus.type = CampaignBonusType::HERO;
 				bonus.info1 = bjson["playerColor"].Integer(); //player color
 				
-				if(int heroId = heroSpecialMap[bjson["hero"].String()])
+				if(int heroId = heroSpecialMap.at(bjson["hero"].String()))
 					bonus.info2 = heroId;
 				else
 					if (auto identifier = VLC->identifiers()->getIdentifier(ModScope::scopeMap(), "hero", bjson["hero"].String()))