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

fix castle replay

This commit is contained in:
Laserlicht
2024-02-28 22:25:14 +01:00
parent 8d86216332
commit b0b3b9bb84
3 changed files with 10 additions and 14 deletions

View File

@@ -19,17 +19,10 @@
#include "../../lib/battle/SideInBattle.h"
#include "../../lib/CPlayerState.h"
#include "../../lib/mapObjects/CGObjectInstance.h"
#include "../../lib/mapObjects/CGTownInstance.h"
#include "../../lib/networkPacks/PacksForServer.h"
#include "../../lib/serializer/Cast.h"
void CBattleQuery::notifyObjectAboutRemoval(const CObjectVisitQuery & objectVisit) const
{
assert(result);
if(result)
objectVisit.visitedObject->battleFinished(objectVisit.visitingHero, *result);
}
CBattleQuery::CBattleQuery(CGameHandler * owner, const IBattleInfo * bi):
CQuery(owner),
battleID(bi->getBattleID())
@@ -75,9 +68,10 @@ void CBattleQuery::onExposure(QueryPtr topQuery)
owner->popQuery(*this);
}
CBattleDialogQuery::CBattleDialogQuery(CGameHandler * owner, const IBattleInfo * bi):
CBattleDialogQuery::CBattleDialogQuery(CGameHandler * owner, const IBattleInfo * bi, std::optional<BattleResult> Br):
CDialogQuery(owner),
bi(bi)
bi(bi),
result(Br)
{
addPlayer(bi->getSidePlayer(0));
addPlayer(bi->getSidePlayer(1));
@@ -104,6 +98,9 @@ void CBattleDialogQuery::onRemoval(PlayerColor color)
}
else
{
if(result && bi->getDefendedTown())
bi->getDefendedTown()->battleFinished(bi->getSideHero(BattleSide::ATTACKER), *result);
gh->battles->endBattleConfirm(bi->getBattleID());
}
}