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

Fix regressions from battlehex PR (mostly related to towers)

This commit is contained in:
Ivan Savenko
2025-01-12 11:07:50 +00:00
parent 14320fb100
commit 5bfc837a8f
4 changed files with 38 additions and 20 deletions

View File

@@ -134,8 +134,24 @@ const BattleHexArray & Unit::getHexes(BattleHex assumedPos, bool twoHex, BattleS
precomputeUnitHexes(BattleSide::DEFENDER, true),
};
int index = side == BattleSide::ATTACKER ? 0 : 2;
return precomputed[index + twoHex][assumedPos.toInt()];
static const std::array<BattleHexArray, 5> invalidHexes = {
BattleHexArray({BattleHex( 0)}),
BattleHexArray({BattleHex(-1)}),
BattleHexArray({BattleHex(-2)}),
BattleHexArray({BattleHex(-3)}),
BattleHexArray({BattleHex(-4)})
};
if (assumedPos.isValid())
{
int index = side == BattleSide::ATTACKER ? 0 : 2;
return precomputed[index + twoHex][assumedPos.toInt()];
}
else
{
// Towers and such
return invalidHexes.at(-assumedPos.toInt());
}
}
BattleHex Unit::occupiedHex() const