1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-25 21:38:59 +02:00

Fix crash on obstacle creation (e.g. moat)

This commit is contained in:
Ivan Savenko 2023-09-08 16:35:43 +03:00
parent 24ad06b5c3
commit c4e2417326
4 changed files with 4 additions and 0 deletions

View File

@ -874,6 +874,7 @@ bool CBattleInfoCallback::handleObstacleTriggersForUnit(SpellCastEnvironment & s
changedObstacle.revealed = true;
BattleObstaclesChanged bocp;
bocp.battleID = getBattle()->getBattleID();
bocp.changes.emplace_back(spellObstacle.uniqueID, operation);
changedObstacle.toInfo(bocp.changes.back(), operation);
spellEnv.apply(&bocp);

View File

@ -128,6 +128,7 @@ void Moat::placeObstacles(ServerCallback * server, const Mechanics * m, const Ef
assert(m->casterSide == BattleSide::DEFENDER); // Moats are always cast by defender
BattleObstaclesChanged pack;
pack.battleID = m->battle()->getBattle()->getBattleID();
auto all = m->battle()->battleGetAllObstacles(BattlePerspective::ALL_KNOWING);

View File

@ -270,6 +270,7 @@ void Obstacle::placeObstacles(ServerCallback * server, const Mechanics * m, cons
const ObstacleSideOptions & options = sideOptions.at(m->casterSide);
BattleObstaclesChanged pack;
pack.battleID = m->battle()->getBattle()->getBattleID();
auto all = m->battle()->battleGetAllObstacles(BattlePerspective::ALL_KNOWING);

View File

@ -44,6 +44,7 @@ bool RemoveObstacle::applicable(Problem & problem, const Mechanics * m, const Ef
void RemoveObstacle::apply(ServerCallback * server, const Mechanics * m, const EffectTarget & target) const
{
BattleObstaclesChanged pack;
pack.battleID = m->battle()->getBattle()->getBattleID();
for(const auto & obstacle : getTargets(m, target, false))
{