mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-25 21:38:59 +02:00
Fixed crash in pathfinder
This commit is contained in:
parent
fa31309eed
commit
e53613caa7
@ -1027,7 +1027,7 @@ TurnInfo::TurnInfo(const CGHeroInstance * Hero, const int turn)
|
||||
{
|
||||
bonuses = hero->getAllBonuses(Selector::days(turn), Selector::all, nullptr, "");
|
||||
bonusCache = make_unique<BonusCache>(bonuses);
|
||||
nativeTerrain = VLC->terrainTypeHandler->terrains()[hero->getNativeTerrain()];
|
||||
nativeTerrain = hero->getNativeTerrain();
|
||||
}
|
||||
|
||||
bool TurnInfo::isLayerAvailable(const EPathfindingLayer layer) const
|
||||
|
@ -523,7 +523,7 @@ struct DLL_LINKAGE TurnInfo
|
||||
TConstBonusListPtr bonuses;
|
||||
mutable int maxMovePointsLand;
|
||||
mutable int maxMovePointsWater;
|
||||
const TerrainType * nativeTerrain;
|
||||
TTerrain nativeTerrain;
|
||||
|
||||
TurnInfo(const CGHeroInstance * Hero, const int Turn = 0);
|
||||
bool isLayerAvailable(const EPathfindingLayer layer) const;
|
||||
|
@ -98,10 +98,9 @@ ui32 CGHeroInstance::getTileCost(const TerrainTile & dest, const TerrainTile & f
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(ti->nativeTerrain->id != from.terType->id //the terrain is not native
|
||||
&& ti->nativeTerrain != nullptr //no special creature bonus
|
||||
&& !ti->hasBonusOfType(Bonus::NO_TERRAIN_PENALTY, from.terType->id) //no special movement bonus
|
||||
)
|
||||
else if(ti->nativeTerrain != from.terType->id &&//the terrain is not native
|
||||
ti->nativeTerrain != Terrain::ANY_TERRAIN && //no special creature bonus
|
||||
!ti->hasBonusOfType(Bonus::NO_TERRAIN_PENALTY, from.terType->id)) //no special movement bonus
|
||||
{
|
||||
|
||||
ret = VLC->heroh->terrCosts[from.terType->id];
|
||||
@ -128,7 +127,7 @@ TTerrain CGHeroInstance::getNativeTerrain() const
|
||||
|
||||
if(stackNativeTerrain == Terrain::BORDER) //where does this value come from?
|
||||
continue;
|
||||
if(nativeTerrain == Terrain::BORDER) //FIXME: this statement is always true
|
||||
if(nativeTerrain == Terrain::BORDER)
|
||||
nativeTerrain = stackNativeTerrain;
|
||||
else if(nativeTerrain != stackNativeTerrain)
|
||||
return Terrain::BORDER;
|
||||
|
Loading…
x
Reference in New Issue
Block a user