Преглед изворни кода

Merge pull request #1835 from rilian-la-te/fix-native-type

CCreatureHandler: fix native terrain for any
Ivan Savenko пре 2 година
родитељ
комит
a3074e2741
1 измењених фајлова са 3 додато и 3 уклоњено
  1. 3 3
      lib/CCreatureHandler.cpp

+ 3 - 3
lib/CCreatureHandler.cpp

@@ -327,12 +327,12 @@ bool CCreature::isItNativeTerrain(TerrainId terrain) const
 
 TerrainId CCreature::getNativeTerrain() const
 {
-	const std::string cachingStringNoTerrainPenalty = "type_NO_TERRAIN_PENALTY";
-	static const auto selectorNoTerrainPenalty = Selector::type()(Bonus::NO_TERRAIN_PENALTY);
+	const std::string cachingStringNoTerrainPenalty = "type_NO_TERRAIN_PENALTY_sANY";
+	static const auto selectorNoTerrainPenalty = Selector::typeSubtype(Bonus::NO_TERRAIN_PENALTY, static_cast<int>(ETerrainId::ANY_TERRAIN));
 
 	//this code is used in the CreatureTerrainLimiter::limit to setup battle bonuses
 	//and in the CGHeroInstance::getNativeTerrain() to setup movement bonuses or/and penalties.
-	return hasBonus(selectorNoTerrainPenalty, selectorNoTerrainPenalty)
+	return hasBonus(selectorNoTerrainPenalty, cachingStringNoTerrainPenalty)
 		? TerrainId(ETerrainId::ANY_TERRAIN)
 		: (*VLC->townh)[faction]->nativeTerrain;
 }