AreaValid(CvAStarNode *, CvAStarNode *, int, const void *, CvAStar *)
- Defined in
- CvAStar.cpp, line 2722
- Hook name
CivHooks::AreaValid
Hooks
static bool BeforeAreaValid(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder, int& result);static void AfterAreaValid(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder, int& result);static int ReplaceAreaValid(int (*original)(CvAStarNode*, CvAStarNode*, int, const void*, CvAStar*), CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder);CivRegisterBefore<CivHooks::AreaValid>(host, &BeforeAreaValid);CivRegisterAfter<CivHooks::AreaValid>(host, &AfterAreaValid);CivRegisterReplace<CivHooks::AreaValid>(host, &ReplaceAreaValid);
Code
2721/// Area path finder - check validity of a coordinate2722int AreaValid(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder)2723{2724 if(parent == NULL)2725 {2726 return TRUE;2727 }27282729 CvMap& kMap = GC.getMap();2730 if(kMap.plotUnchecked(parent->m_iX, parent->m_iY)->isImpassable() != kMap.plotUnchecked(node->m_iX, node->m_iY)->isImpassable())2731 {2732 return FALSE;2733 }27342735 return ((kMap.plotUnchecked(parent->m_iX, parent->m_iY)->isWater() == kMap.plotUnchecked(node->m_iX, node->m_iY)->isWater()) ? TRUE : FALSE);2736}