Hooks
static bool BeforeInfluenceAdd(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder, int& result);static void AfterInfluenceAdd(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder, int& result);static int ReplaceInfluenceAdd(int (*original)(CvAStarNode*, CvAStarNode*, int, const void*, CvAStar*), CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder);CivRegisterBefore<CivHooks::InfluenceAdd>(host, &BeforeInfluenceAdd);CivRegisterAfter<CivHooks::InfluenceAdd>(host, &AfterInfluenceAdd);CivRegisterReplace<CivHooks::InfluenceAdd>(host, &ReplaceInfluenceAdd);
Code
2296/// Influence path finder - add a new path2297int InfluenceAdd(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder)2298{2299 if(data == ASNC_INITIALADD)2300 {2301 node->m_iData1 = 0;2302 }2303 else2304 {2305 node->m_iData1 = (parent->m_iData1 + 1/*influenceCost(parent,node,data,pointer,finder)*/);2306 }23072308 FAssertMsg(node->m_iData1 >= 0, "node->m_iData1 is expected to be non-negative (invalid Index)");23092310 return 1;2311}