1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-10 22:31:40 +02:00

static const for globals

This commit is contained in:
Laserlicht
2024-12-30 18:16:06 +01:00
parent a345517776
commit c5b8a4fd61

View File

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