1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Allow moving double-wide unit 1 tile backwards

This commit is contained in:
Ivan Savenko
2025-05-20 18:02:45 +03:00
parent 184e841b16
commit 797f8f06a6
2 changed files with 27 additions and 19 deletions

View File

@@ -390,24 +390,27 @@ BattleHexArray BattleFieldController::getHighlightedHexesForMovementTarget()
}
}
if(availableHexes.contains(hoveredHex))
if (stack->doubleWide())
{
if(stack->doubleWide())
const bool backwardsMove = stack->unitSide() == BattleSide::ATTACKER ?
hoveredHex.getX() < stack->getPosition().getX():
hoveredHex.getX() > stack->getPosition().getX();
if (backwardsMove && availableHexes.contains(hoveredHex.cloneInDirection(stack->destShiftDir())))
return {hoveredHex, hoveredHex.cloneInDirection(stack->destShiftDir())};
if (availableHexes.contains(hoveredHex))
return {hoveredHex, stack->occupiedHex(hoveredHex)};
else
return {hoveredHex};
}
if(stack->doubleWide())
return {};
}
else
{
for(const auto & hex : availableHexes)
{
if(stack->occupiedHex(hex) == hoveredHex)
return {hoveredHex, hex};
}
if (availableHexes.contains(hoveredHex))
return {hoveredHex};
else
return {};
}
return {};
}
// Range limit highlight helpers