|
@@ -431,6 +431,7 @@ VCAI::VCAI(void)
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
myCb = NULL;
|
|
myCb = NULL;
|
|
makingTurn = NULL;
|
|
makingTurn = NULL;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -443,6 +444,7 @@ void VCAI::availableCreaturesChanged(const CGDwelling *town)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroMoved(const TryMoveHero & details)
|
|
void VCAI::heroMoved(const TryMoveHero & details)
|
|
@@ -463,48 +465,56 @@ void VCAI::heroMoved(const TryMoveHero & details)
|
|
logAi->debugStream() << boost::format("Found a pair of subterranean gates between %s and %s!") % from % to;
|
|
logAi->debugStream() << boost::format("Found a pair of subterranean gates between %s and %s!") % from % to;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::stackChagedCount(const StackLocation &location, const TQuantity &change, bool isAbsolute)
|
|
void VCAI::stackChagedCount(const StackLocation &location, const TQuantity &change, bool isAbsolute)
|
|
{
|
|
{
|
|
- NET_EVENT_HANDLER;
|
|
|
|
TRACE_BEGIN_PARAMS(logAi, "isAbsolute '%i'", isAbsolute);
|
|
TRACE_BEGIN_PARAMS(logAi, "isAbsolute '%i'", isAbsolute);
|
|
|
|
+ NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroInGarrisonChange(const CGTownInstance *town)
|
|
void VCAI::heroInGarrisonChange(const CGTownInstance *town)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::centerView(int3 pos, int focusTime)
|
|
void VCAI::centerView(int3 pos, int focusTime)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "focusTime '%i'", focusTime);
|
|
TRACE_BEGIN_PARAMS(logAi, "focusTime '%i'", focusTime);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::artifactMoved(const ArtifactLocation &src, const ArtifactLocation &dst)
|
|
void VCAI::artifactMoved(const ArtifactLocation &src, const ArtifactLocation &dst)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::artifactAssembled(const ArtifactLocation &al)
|
|
void VCAI::artifactAssembled(const ArtifactLocation &al)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showTavernWindow(const CGObjectInstance *townOrTavern)
|
|
void VCAI::showTavernWindow(const CGObjectInstance *townOrTavern)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showThievesGuildWindow (const CGObjectInstance * obj)
|
|
void VCAI::showThievesGuildWindow (const CGObjectInstance * obj)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::playerBlocked(int reason)
|
|
void VCAI::playerBlocked(int reason)
|
|
@@ -513,18 +523,21 @@ void VCAI::playerBlocked(int reason)
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
if (reason == PlayerBlocked::UPCOMING_BATTLE)
|
|
if (reason == PlayerBlocked::UPCOMING_BATTLE)
|
|
status.setBattle(UPCOMING_BATTLE);
|
|
status.setBattle(UPCOMING_BATTLE);
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showPuzzleMap()
|
|
void VCAI::showPuzzleMap()
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showShipyardDialog(const IShipyard *obj)
|
|
void VCAI::showShipyardDialog(const IShipyard *obj)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::gameOver(PlayerColor player, bool victory)
|
|
void VCAI::gameOver(PlayerColor player, bool victory)
|
|
@@ -556,30 +569,35 @@ void VCAI::gameOver(PlayerColor player, bool victory)
|
|
|
|
|
|
finish();
|
|
finish();
|
|
}
|
|
}
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::artifactPut(const ArtifactLocation &al)
|
|
void VCAI::artifactPut(const ArtifactLocation &al)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::artifactRemoved(const ArtifactLocation &al)
|
|
void VCAI::artifactRemoved(const ArtifactLocation &al)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::stacksErased(const StackLocation &location)
|
|
void VCAI::stacksErased(const StackLocation &location)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::artifactDisassembled(const ArtifactLocation &al)
|
|
void VCAI::artifactDisassembled(const ArtifactLocation &al)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -595,12 +613,14 @@ void VCAI::heroVisit(const CGHeroInstance *visitor, const CGObjectInstance *visi
|
|
remove_if_present(reservedHeroesMap[visitor], visitedObj);
|
|
remove_if_present(reservedHeroesMap[visitor], visitedObj);
|
|
completeGoal (CGoal(GET_OBJ).sethero(visitor)); //we don't need to visit in anymore
|
|
completeGoal (CGoal(GET_OBJ).sethero(visitor)); //we don't need to visit in anymore
|
|
}
|
|
}
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::availableArtifactsChanged(const CGBlackMarket *bm /*= NULL*/)
|
|
void VCAI::availableArtifactsChanged(const CGBlackMarket *bm /*= NULL*/)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroVisitsTown(const CGHeroInstance* hero, const CGTownInstance * town)
|
|
void VCAI::heroVisitsTown(const CGHeroInstance* hero, const CGTownInstance * town)
|
|
@@ -609,6 +629,7 @@ void VCAI::heroVisitsTown(const CGHeroInstance* hero, const CGTownInstance * tow
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
//buildArmyIn(town);
|
|
//buildArmyIn(town);
|
|
//moveCreaturesToHero(town);
|
|
//moveCreaturesToHero(town);
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::tileHidden(const boost::unordered_set<int3, ShashInt3> &pos)
|
|
void VCAI::tileHidden(const boost::unordered_set<int3, ShashInt3> &pos)
|
|
@@ -619,6 +640,7 @@ void VCAI::tileHidden(const boost::unordered_set<int3, ShashInt3> &pos)
|
|
// BOOST_FOREACH(const CGObjectInstance *obj, cb->getVisitableObjs(tile))
|
|
// BOOST_FOREACH(const CGObjectInstance *obj, cb->getVisitableObjs(tile))
|
|
// remove_if_present(visitableObjs, obj);
|
|
// remove_if_present(visitableObjs, obj);
|
|
visitableObjs.erase(boost::remove_if(visitableObjs, [&](const CGObjectInstance *obj){return !myCb->getObj(obj->id);}), visitableObjs.end());
|
|
visitableObjs.erase(boost::remove_if(visitableObjs, [&](const CGObjectInstance *obj){return !myCb->getObj(obj->id);}), visitableObjs.end());
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::tileRevealed(const boost::unordered_set<int3, ShashInt3> &pos)
|
|
void VCAI::tileRevealed(const boost::unordered_set<int3, ShashInt3> &pos)
|
|
@@ -628,6 +650,7 @@ void VCAI::tileRevealed(const boost::unordered_set<int3, ShashInt3> &pos)
|
|
BOOST_FOREACH(int3 tile, pos)
|
|
BOOST_FOREACH(int3 tile, pos)
|
|
BOOST_FOREACH(const CGObjectInstance *obj, myCb->getVisitableObjs(tile))
|
|
BOOST_FOREACH(const CGObjectInstance *obj, myCb->getVisitableObjs(tile))
|
|
addVisitableObj(obj);
|
|
addVisitableObj(obj);
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroExchangeStarted(ObjectInstanceID hero1, ObjectInstanceID hero2)
|
|
void VCAI::heroExchangeStarted(ObjectInstanceID hero1, ObjectInstanceID hero2)
|
|
@@ -649,36 +672,42 @@ void VCAI::heroExchangeStarted(ObjectInstanceID hero1, ObjectInstanceID hero2)
|
|
completeGoal(CGoal(VISIT_HERO).sethero(secondHero));
|
|
completeGoal(CGoal(VISIT_HERO).sethero(secondHero));
|
|
//TODO: exchange artifacts
|
|
//TODO: exchange artifacts
|
|
});
|
|
});
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroPrimarySkillChanged(const CGHeroInstance * hero, int which, si64 val)
|
|
void VCAI::heroPrimarySkillChanged(const CGHeroInstance * hero, int which, si64 val)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "which '%i', val '%i'", which % val);
|
|
TRACE_BEGIN_PARAMS(logAi, "which '%i', val '%i'", which % val);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showRecruitmentDialog(const CGDwelling *dwelling, const CArmedInstance *dst, int level)
|
|
void VCAI::showRecruitmentDialog(const CGDwelling *dwelling, const CArmedInstance *dst, int level)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "level '%i'", level);
|
|
TRACE_BEGIN_PARAMS(logAi, "level '%i'", level);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroMovePointsChanged(const CGHeroInstance * hero)
|
|
void VCAI::heroMovePointsChanged(const CGHeroInstance * hero)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::stackChangedType(const StackLocation &location, const CCreature &newType)
|
|
void VCAI::stackChangedType(const StackLocation &location, const CCreature &newType)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::stacksRebalanced(const StackLocation &src, const StackLocation &dst, TQuantity count)
|
|
void VCAI::stacksRebalanced(const StackLocation &src, const StackLocation &dst, TQuantity count)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::newObject(const CGObjectInstance * obj)
|
|
void VCAI::newObject(const CGObjectInstance * obj)
|
|
@@ -687,6 +716,7 @@ void VCAI::newObject(const CGObjectInstance * obj)
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
if(obj->isVisitable())
|
|
if(obj->isVisitable())
|
|
addVisitableObj(obj);
|
|
addVisitableObj(obj);
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::objectRemoved(const CGObjectInstance *obj)
|
|
void VCAI::objectRemoved(const CGObjectInstance *obj)
|
|
@@ -708,6 +738,7 @@ void VCAI::objectRemoved(const CGObjectInstance *obj)
|
|
{
|
|
{
|
|
lostHero(cb->getHero(obj->id)); //we can promote, since objectRemoved is killed just before actual deletion
|
|
lostHero(cb->getHero(obj->id)); //we can promote, since objectRemoved is killed just before actual deletion
|
|
}
|
|
}
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showHillFortWindow(const CGObjectInstance *object, const CGHeroInstance *visitor)
|
|
void VCAI::showHillFortWindow(const CGObjectInstance *object, const CGHeroInstance *visitor)
|
|
@@ -719,36 +750,42 @@ void VCAI::showHillFortWindow(const CGObjectInstance *object, const CGHeroInstan
|
|
{
|
|
{
|
|
makePossibleUpgrades(visitor);
|
|
makePossibleUpgrades(visitor);
|
|
});
|
|
});
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::playerBonusChanged(const Bonus &bonus, bool gain)
|
|
void VCAI::playerBonusChanged(const Bonus &bonus, bool gain)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "gain '%i'", gain);
|
|
TRACE_BEGIN_PARAMS(logAi, "gain '%i'", gain);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::newStackInserted(const StackLocation &location, const CStackInstance &stack)
|
|
void VCAI::newStackInserted(const StackLocation &location, const CStackInstance &stack)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroCreated(const CGHeroInstance*)
|
|
void VCAI::heroCreated(const CGHeroInstance*)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::advmapSpellCast(const CGHeroInstance * caster, int spellID)
|
|
void VCAI::advmapSpellCast(const CGHeroInstance * caster, int spellID)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "spellID '%i", spellID);
|
|
TRACE_BEGIN_PARAMS(logAi, "spellID '%i", spellID);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showInfoDialog(const std::string &text, const std::vector<Component*> &components, int soundID)
|
|
void VCAI::showInfoDialog(const std::string &text, const std::vector<Component*> &components, int soundID)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "soundID '%i'", soundID);
|
|
TRACE_BEGIN_PARAMS(logAi, "soundID '%i'", soundID);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::requestRealized(PackageApplied *pa)
|
|
void VCAI::requestRealized(PackageApplied *pa)
|
|
@@ -766,36 +803,42 @@ void VCAI::requestRealized(PackageApplied *pa)
|
|
{
|
|
{
|
|
status.receivedAnswerConfirmation(pa->requestID, pa->result);
|
|
status.receivedAnswerConfirmation(pa->requestID, pa->result);
|
|
}
|
|
}
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::receivedResource(int type, int val)
|
|
void VCAI::receivedResource(int type, int val)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "type '%i', val '%i'", type % val);
|
|
TRACE_BEGIN_PARAMS(logAi, "type '%i', val '%i'", type % val);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::stacksSwapped(const StackLocation &loc1, const StackLocation &loc2)
|
|
void VCAI::stacksSwapped(const StackLocation &loc1, const StackLocation &loc2)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showUniversityWindow(const IMarket *market, const CGHeroInstance *visitor)
|
|
void VCAI::showUniversityWindow(const IMarket *market, const CGHeroInstance *visitor)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroManaPointsChanged(const CGHeroInstance * hero)
|
|
void VCAI::heroManaPointsChanged(const CGHeroInstance * hero)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroSecondarySkillChanged(const CGHeroInstance * hero, int which, int val)
|
|
void VCAI::heroSecondarySkillChanged(const CGHeroInstance * hero, int which, int val)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "which '%', val '%'", which % val);
|
|
TRACE_BEGIN_PARAMS(logAi, "which '%', val '%'", which % val);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::battleResultsApplied()
|
|
void VCAI::battleResultsApplied()
|
|
@@ -804,6 +847,7 @@ void VCAI::battleResultsApplied()
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
assert(status.getBattle() == ENDING_BATTLE);
|
|
assert(status.getBattle() == ENDING_BATTLE);
|
|
status.setBattle(NO_BATTLE);
|
|
status.setBattle(NO_BATTLE);
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::objectPropertyChanged(const SetObjectProperty * sop)
|
|
void VCAI::objectPropertyChanged(const SetObjectProperty * sop)
|
|
@@ -816,24 +860,28 @@ void VCAI::objectPropertyChanged(const SetObjectProperty * sop)
|
|
remove_if_present(visitableObjs, myCb->getObj(sop->id));
|
|
remove_if_present(visitableObjs, myCb->getObj(sop->id));
|
|
//TODO restore lost obj
|
|
//TODO restore lost obj
|
|
}
|
|
}
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::buildChanged(const CGTownInstance *town, BuildingID buildingID, int what)
|
|
void VCAI::buildChanged(const CGTownInstance *town, BuildingID buildingID, int what)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "what '%i'", what);
|
|
TRACE_BEGIN_PARAMS(logAi, "what '%i'", what);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroBonusChanged(const CGHeroInstance *hero, const Bonus &bonus, bool gain)
|
|
void VCAI::heroBonusChanged(const CGHeroInstance *hero, const Bonus &bonus, bool gain)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "gain '%i'", gain);
|
|
TRACE_BEGIN_PARAMS(logAi, "gain '%i'", gain);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showMarketWindow(const IMarket *market, const CGHeroInstance *visitor)
|
|
void VCAI::showMarketWindow(const IMarket *market, const CGHeroInstance *visitor)
|
|
{
|
|
{
|
|
TRACE_BEGIN(logAi);
|
|
TRACE_BEGIN(logAi);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::init(CCallback * CB)
|
|
void VCAI::init(CCallback * CB)
|
|
@@ -850,6 +898,7 @@ void VCAI::init(CCallback * CB)
|
|
fh = new FuzzyHelper();
|
|
fh = new FuzzyHelper();
|
|
|
|
|
|
retreiveVisitableObjs(visitableObjs);
|
|
retreiveVisitableObjs(visitableObjs);
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::yourTurn()
|
|
void VCAI::yourTurn()
|
|
@@ -858,6 +907,7 @@ void VCAI::yourTurn()
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
status.startedTurn();
|
|
status.startedTurn();
|
|
makingTurn = new boost::thread(&VCAI::makeTurn, this);
|
|
makingTurn = new boost::thread(&VCAI::makeTurn, this);
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::heroGotLevel(const CGHeroInstance *hero, PrimarySkill::PrimarySkill pskill, std::vector<SecondarySkill> &skills, int queryID)
|
|
void VCAI::heroGotLevel(const CGHeroInstance *hero, PrimarySkill::PrimarySkill pskill, std::vector<SecondarySkill> &skills, int queryID)
|
|
@@ -866,6 +916,7 @@ void VCAI::heroGotLevel(const CGHeroInstance *hero, PrimarySkill::PrimarySkill p
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
status.addQuery(queryID, boost::str(boost::format("Hero %s got level %d") % hero->name % hero->level));
|
|
status.addQuery(queryID, boost::str(boost::format("Hero %s got level %d") % hero->name % hero->level));
|
|
requestActionASAP([=]{ answerQuery(queryID, 0); });
|
|
requestActionASAP([=]{ answerQuery(queryID, 0); });
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::commanderGotLevel (const CCommanderInstance * commander, std::vector<ui32> skills, int queryID)
|
|
void VCAI::commanderGotLevel (const CCommanderInstance * commander, std::vector<ui32> skills, int queryID)
|
|
@@ -874,6 +925,7 @@ void VCAI::commanderGotLevel (const CCommanderInstance * commander, std::vector<
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
status.addQuery(queryID, boost::str(boost::format("Commander %s of %s got level %d") % commander->name % commander->armyObj->nodeName() % (int)commander->level));
|
|
status.addQuery(queryID, boost::str(boost::format("Commander %s of %s got level %d") % commander->name % commander->armyObj->nodeName() % (int)commander->level));
|
|
requestActionASAP([=]{ answerQuery(queryID, 0); });
|
|
requestActionASAP([=]{ answerQuery(queryID, 0); });
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showBlockingDialog(const std::string &text, const std::vector<Component> &components, ui32 askID, const int soundID, bool selection, bool cancel)
|
|
void VCAI::showBlockingDialog(const std::string &text, const std::vector<Component> &components, ui32 askID, const int soundID, bool selection, bool cancel)
|
|
@@ -894,6 +946,7 @@ void VCAI::showBlockingDialog(const std::string &text, const std::vector<Compone
|
|
{
|
|
{
|
|
answerQuery(askID, sel);
|
|
answerQuery(askID, sel);
|
|
});
|
|
});
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::showGarrisonDialog(const CArmedInstance *up, const CGHeroInstance *down, bool removableUnits, int queryID)
|
|
void VCAI::showGarrisonDialog(const CArmedInstance *up, const CGHeroInstance *down, bool removableUnits, int queryID)
|
|
@@ -912,18 +965,21 @@ void VCAI::showGarrisonDialog(const CArmedInstance *up, const CGHeroInstance *do
|
|
pickBestCreatures (down, up);
|
|
pickBestCreatures (down, up);
|
|
answerQuery(queryID, 0);
|
|
answerQuery(queryID, 0);
|
|
});
|
|
});
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::serialize(COSer<CSaveFile> &h, const int version)
|
|
void VCAI::serialize(COSer<CSaveFile> &h, const int version)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "version '%i'", version);
|
|
TRACE_BEGIN_PARAMS(logAi, "version '%i'", version);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void VCAI::serialize(CISer<CLoadFile> &h, const int version)
|
|
void VCAI::serialize(CISer<CLoadFile> &h, const int version)
|
|
{
|
|
{
|
|
TRACE_BEGIN_PARAMS(logAi, "version '%i'", version);
|
|
TRACE_BEGIN_PARAMS(logAi, "version '%i'", version);
|
|
NET_EVENT_HANDLER;
|
|
NET_EVENT_HANDLER;
|
|
|
|
+ TRACE_END(logAi);
|
|
}
|
|
}
|
|
|
|
|
|
void makePossibleUpgrades(const CArmedInstance *obj)
|
|
void makePossibleUpgrades(const CArmedInstance *obj)
|