1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00

Rework and simplify logic of attaching heroes to bonus system

This commit is contained in:
Ivan Savenko
2025-06-17 14:37:25 +03:00
parent 0218e47c25
commit 0ad4e80c7d
12 changed files with 57 additions and 103 deletions

View File

@@ -2548,33 +2548,6 @@ void CGameHandler::moveArmy(const CArmedInstance *src, const CArmedInstance *dst
}
}
bool CGameHandler::swapGarrisonOnSiege(ObjectInstanceID tid)
{
const CGTownInstance * town = gameInfo().getTown(tid);
if(!town->getGarrisonHero() == !town->getVisitingHero())
return false;
SetHeroesInTown intown;
intown.tid = tid;
if(town->getGarrisonHero()) //garrison -> vising
{
intown.garrison = ObjectInstanceID();
intown.visiting = town->getGarrisonHero()->id;
}
else //visiting -> garrison
{
if(town->armedGarrison())
town->mergeGarrisonOnSiege(*this);
intown.visiting = ObjectInstanceID();
intown.garrison = town->getVisitingHero()->id;
}
sendAndApply(intown);
return true;
}
bool CGameHandler::garrisonSwap(ObjectInstanceID tid)
{
const CGTownInstance * town = gameInfo().getTown(tid);