Bläddra i källkod

Removed default native terrains - breaks neutral faction

Ivan Savenko 2 år sedan
förälder
incheckning
1caec0a8cb
2 ändrade filer med 3 tillägg och 34 borttagningar
  1. 3 29
      lib/CTownHandler.cpp
  2. 0 5
      lib/CTownHandler.h

+ 3 - 29
lib/CTownHandler.cpp

@@ -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 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 =
 const std::map<std::string, CBuilding::EBuildMode> CBuilding::MODES =
 {
 {
 	{ "normal", CBuilding::BUILD_NORMAL },
 	{ "normal", CBuilding::BUILD_NORMAL },
@@ -951,22 +947,6 @@ void CTownHandler::loadPuzzle(CFaction &faction, const JsonNode &source)
 	assert(faction.puzzleMap.size() == GameConstants::PUZZLE_MAP_PIECES);
 	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)
 CFaction * CTownHandler::loadFromJson(const std::string & scope, const JsonNode & source, const std::string & identifier, size_t index)
 {
 {
 	auto faction = new CFaction();
 	auto faction = new CFaction();
@@ -987,16 +967,10 @@ CFaction * CTownHandler::loadFromJson(const std::string & scope, const JsonNode
 	auto preferUndergound = source["preferUndergroundPlacement"];
 	auto preferUndergound = source["preferUndergroundPlacement"];
 	faction->preferUndergroundPlacement = preferUndergound.isNull() ? false : preferUndergound.Bool();
 	faction->preferUndergroundPlacement = preferUndergound.isNull() ? false : preferUndergound.Bool();
 
 
-	//Contructor is not called here, but operator=
-	auto nativeTerrain = source["nativeTerrain"];
-
-	if ( nativeTerrain.isNull())
-	{
-		faction->nativeTerrain = getDefaultTerrainForAlignment(faction->alignment);
-	}
-	else
+	faction->nativeTerrain = ETerrainId::NONE;
+	if ( !source["nativeTerrain"].isNull())
 	{
 	{
-		VLC->modh->identifiers.requestIdentifier("terrain", nativeTerrain, [=](int32_t index){
+		VLC->modh->identifiers.requestIdentifier("terrain", source["nativeTerrain"], [=](int32_t index){
 			faction->nativeTerrain = TerrainId(index);
 			faction->nativeTerrain = TerrainId(index);
 		});
 		});
 	}
 	}

+ 0 - 5
lib/CTownHandler.h

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