mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
doMoveHero: only allow to stop at accessible or land/sail nodes
This commit is contained in:
parent
ab9680a7d9
commit
511bb54644
@ -2642,7 +2642,18 @@ void CPlayerInterface::doMoveHero(const CGHeroInstance * h, CGPath path)
|
|||||||
ETerrainType newTerrain;
|
ETerrainType newTerrain;
|
||||||
int sh = -1;
|
int sh = -1;
|
||||||
|
|
||||||
for(i=path.nodes.size()-1; i>0 && (stillMoveHero.data == CONTINUE_MOVE); i--)
|
auto canStop = [&](CGPathNode * node) -> bool
|
||||||
|
{
|
||||||
|
if(node->layer == EPathfindingLayer::LAND || node->layer == EPathfindingLayer::SAIL)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if(node->accessible == CGPathNode::ACCESSIBLE)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
for(i=path.nodes.size()-1; i>0 && (stillMoveHero.data == CONTINUE_MOVE || !canStop(&path.nodes[i])); i--)
|
||||||
{
|
{
|
||||||
int3 currentCoord = path.nodes[i].coord;
|
int3 currentCoord = path.nodes[i].coord;
|
||||||
int3 nextCoord = path.nodes[i-1].coord;
|
int3 nextCoord = path.nodes[i-1].coord;
|
||||||
|
Loading…
Reference in New Issue
Block a user