mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Fixed bug #71. Little redesign of town buildings handling.
This commit is contained in:
@@ -1561,9 +1561,8 @@ void CGTownInstance::onHeroVisit(const CGHeroInstance * h) const
|
|||||||
cb->setOwner(id, h->tempOwner);
|
cb->setOwner(id, h->tempOwner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cb->heroVisitCastle(id, h->id);
|
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
|
void CGTownInstance::onHeroLeave(const CGHeroInstance * h) const
|
||||||
|
@@ -1624,7 +1624,15 @@ void CGameHandler::heroVisitCastle(int obj, int heroID)
|
|||||||
vc.tid = obj;
|
vc.tid = obj;
|
||||||
vc.flags |= 1;
|
vc.flags |= 1;
|
||||||
sendAndApply(&vc);
|
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)
|
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;
|
sr.val = gs->getPlayer(t->tempOwner)->resources[6] - 2500;
|
||||||
sendAndApply(&sr);
|
sendAndApply(&sr);
|
||||||
|
|
||||||
giveSpells(t,nh);
|
vistiCastleObjects (t, nh);
|
||||||
|
giveSpells (t,nh);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -123,6 +123,7 @@ public:
|
|||||||
void giveCreatures (int objid, const CGHeroInstance * h, CCreatureSet creatures);
|
void giveCreatures (int objid, const CGHeroInstance * h, CCreatureSet creatures);
|
||||||
void showCompInfo(ShowInInfobox * comp);
|
void showCompInfo(ShowInInfobox * comp);
|
||||||
void heroVisitCastle(int obj, int heroID);
|
void heroVisitCastle(int obj, int heroID);
|
||||||
|
void vistiCastleObjects (const CGTownInstance *t, const CGHeroInstance *h);
|
||||||
void stopHeroVisitCastle(int obj, int heroID);
|
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 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);
|
void moveArtifact(int hid, int oldPosition, int destPos);
|
||||||
|
Reference in New Issue
Block a user