diff --git a/server/battles/BattleFlowProcessor.cpp b/server/battles/BattleFlowProcessor.cpp index c21bd1830..540ff4166 100644 --- a/server/battles/BattleFlowProcessor.cpp +++ b/server/battles/BattleFlowProcessor.cpp @@ -677,8 +677,7 @@ void BattleFlowProcessor::stackTurnTrigger(const CBattleInfoCallback & battle, c } if(st->hasBonusOfType(BonusType::MANA_DRAIN) && !st->drainedMana) { - const PlayerColor opponent = battle.otherPlayer(battle.battleGetOwner(st)); - const CGHeroInstance * opponentHero = battle.battleGetFightingHero(opponent); + const CGHeroInstance * opponentHero = battle.battleGetFightingHero(battle.otherSide(st->unitSide())); if(opponentHero) { ui32 manaDrained = st->valOfBonuses(BonusType::MANA_DRAIN); diff --git a/server/battles/BattleResultProcessor.cpp b/server/battles/BattleResultProcessor.cpp index 52c4e7e6b..c4d45af8d 100644 --- a/server/battles/BattleResultProcessor.cpp +++ b/server/battles/BattleResultProcessor.cpp @@ -498,10 +498,10 @@ void BattleResultProcessor::endBattleConfirm(const CBattleInfoCallback & battle) BattleResultAccepted raccepted; raccepted.battleID = battle.getBattle()->getBattleID(); - raccepted.heroResult[0].army = const_cast(battle.battleGetArmyObject(0)); - raccepted.heroResult[1].army = const_cast(battle.battleGetArmyObject(1)); - raccepted.heroResult[0].hero = const_cast(battle.battleGetFightingHero(0)); - raccepted.heroResult[1].hero = const_cast(battle.battleGetFightingHero(1)); + raccepted.heroResult[0].army = const_cast(battle.battleGetArmyObject(BattleSide::ATTACKER)); + raccepted.heroResult[1].army = const_cast(battle.battleGetArmyObject(BattleSide::DEFENDER)); + raccepted.heroResult[0].hero = const_cast(battle.battleGetFightingHero(BattleSide::ATTACKER)); + raccepted.heroResult[1].hero = const_cast(battle.battleGetFightingHero(BattleSide::DEFENDER)); raccepted.heroResult[0].exp = battleResult->exp[0]; raccepted.heroResult[1].exp = battleResult->exp[1]; raccepted.winnerSide = finishingBattle->winnerSide;