1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-03 13:01:33 +02:00

Removed default native terrains - breaks neutral faction

This commit is contained in:
Ivan Savenko 2023-01-10 20:08:07 +02:00
parent 8c2b1d74be
commit 1caec0a8cb
2 changed files with 3 additions and 34 deletions

View File

@ -28,10 +28,6 @@ VCMI_LIB_NAMESPACE_BEGIN
const int NAMES_PER_TOWN=16; // number of town names per faction in H3 files. Json can define any number
const TerrainId CTownHandler::defaultGoodTerrain(ETerrainId::GRASS);
const TerrainId CTownHandler::defaultEvilTerrain(ETerrainId::LAVA);
const TerrainId CTownHandler::defaultNeutralTerrain(ETerrainId::ROUGH);
const std::map<std::string, CBuilding::EBuildMode> CBuilding::MODES =
{
{ "normal", CBuilding::BUILD_NORMAL },
@ -951,22 +947,6 @@ void CTownHandler::loadPuzzle(CFaction &faction, const JsonNode &source)
assert(faction.puzzleMap.size() == GameConstants::PUZZLE_MAP_PIECES);
}
TerrainId CTownHandler::getDefaultTerrainForAlignment(EAlignment::EAlignment alignment) const
{
TerrainId terrain = defaultGoodTerrain;
switch(alignment)
{
case EAlignment::EAlignment::EVIL:
terrain = defaultEvilTerrain;
break;
case EAlignment::EAlignment::NEUTRAL:
terrain = defaultNeutralTerrain;
break;
}
return terrain;
}
CFaction * CTownHandler::loadFromJson(const std::string & scope, const JsonNode & source, const std::string & identifier, size_t index)
{
auto faction = new CFaction();
@ -987,16 +967,10 @@ CFaction * CTownHandler::loadFromJson(const std::string & scope, const JsonNode
auto preferUndergound = source["preferUndergroundPlacement"];
faction->preferUndergroundPlacement = preferUndergound.isNull() ? false : preferUndergound.Bool();
//Contructor is not called here, but operator=
auto nativeTerrain = source["nativeTerrain"];
if ( nativeTerrain.isNull())
faction->nativeTerrain = ETerrainId::NONE;
if ( !source["nativeTerrain"].isNull())
{
faction->nativeTerrain = getDefaultTerrainForAlignment(faction->alignment);
}
else
{
VLC->modh->identifiers.requestIdentifier("terrain", nativeTerrain, [=](int32_t index){
VLC->modh->identifiers.requestIdentifier("terrain", source["nativeTerrain"], [=](int32_t index){
faction->nativeTerrain = TerrainId(index);
});
}

View File

@ -363,10 +363,6 @@ class DLL_LINKAGE CTownHandler : public CHandlerBase<FactionID, Faction, CFactio
std::vector<BuildingRequirementsHelper> requirementsToLoad;
std::vector<BuildingRequirementsHelper> overriddenBidsToLoad; //list of buildings, which bonuses should be overridden.
const static TerrainId defaultGoodTerrain;
const static TerrainId defaultEvilTerrain;
const static TerrainId defaultNeutralTerrain;
static TPropagatorPtr & emptyPropagator();
void initializeRequirements();
@ -396,7 +392,6 @@ class DLL_LINKAGE CTownHandler : public CHandlerBase<FactionID, Faction, CFactio
void loadPuzzle(CFaction & faction, const JsonNode & source);
TerrainId getDefaultTerrainForAlignment(EAlignment::EAlignment aligment) const;
void loadRandomFaction();