mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-25 21:38:59 +02:00
Fixed bug #71. Little redesign of town buildings handling.
This commit is contained in:
parent
0fabf5f31d
commit
9792c64cbf
@ -1561,9 +1561,8 @@ void CGTownInstance::onHeroVisit(const CGHeroInstance * h) const
|
||||
cb->setOwner(id, h->tempOwner);
|
||||
}
|
||||
}
|
||||
|
||||
cb->heroVisitCastle(id, h->id);
|
||||
for (std::vector<CGTownBuilding*>::const_iterator i = bonusingBuildings.begin(); i != bonusingBuildings.end(); i++)
|
||||
(*i)->onHeroVisit (h); //put it inside heroVisitCastle call, make sure *visitingHero is set
|
||||
}
|
||||
|
||||
void CGTownInstance::onHeroLeave(const CGHeroInstance * h) const
|
||||
|
@ -1624,7 +1624,15 @@ void CGameHandler::heroVisitCastle(int obj, int heroID)
|
||||
vc.tid = obj;
|
||||
vc.flags |= 1;
|
||||
sendAndApply(&vc);
|
||||
giveSpells(getTown(obj),getHero(heroID));
|
||||
vistiCastleObjects (getTown(obj), getHero(heroID));
|
||||
giveSpells (getTown(obj), getHero(heroID));
|
||||
}
|
||||
|
||||
void CGameHandler::vistiCastleObjects (const CGTownInstance *t, const CGHeroInstance *h)
|
||||
{
|
||||
std::vector<CGTownBuilding*>::const_iterator i;
|
||||
for (i = t->bonusingBuildings.begin(); i != t->bonusingBuildings.end(); i++)
|
||||
(*i)->onHeroVisit (h);
|
||||
}
|
||||
|
||||
void CGameHandler::stopHeroVisitCastle(int obj, int heroID)
|
||||
@ -2414,7 +2422,8 @@ bool CGameHandler::hireHero( ui32 tid, ui8 hid )
|
||||
sr.val = gs->getPlayer(t->tempOwner)->resources[6] - 2500;
|
||||
sendAndApply(&sr);
|
||||
|
||||
giveSpells(t,nh);
|
||||
vistiCastleObjects (t, nh);
|
||||
giveSpells (t,nh);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -123,6 +123,7 @@ public:
|
||||
void giveCreatures (int objid, const CGHeroInstance * h, CCreatureSet creatures);
|
||||
void showCompInfo(ShowInInfobox * comp);
|
||||
void heroVisitCastle(int obj, int heroID);
|
||||
void vistiCastleObjects (const CGTownInstance *t, const CGHeroInstance *h);
|
||||
void stopHeroVisitCastle(int obj, int heroID);
|
||||
void giveHeroArtifact(int artid, int hid, int position); //pos==-1 - first free slot in backpack; pos==-2 - default if available or backpack
|
||||
void moveArtifact(int hid, int oldPosition, int destPos);
|
||||
|
Loading…
x
Reference in New Issue
Block a user