WaterRouteValid(CvAStarNode *, CvAStarNode *, int, const void *, CvAStar *)
- Defined in
- CvAStar.cpp, line 2575
- Hook name
CivHooks::WaterRouteValid
Hooks
static bool BeforeWaterRouteValid(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder, int& result);static void AfterWaterRouteValid(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder, int& result);static int ReplaceWaterRouteValid(int (*original)(CvAStarNode*, CvAStarNode*, int, const void*, CvAStar*), CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder);CivRegisterBefore<CivHooks::WaterRouteValid>(host, &BeforeWaterRouteValid);CivRegisterAfter<CivHooks::WaterRouteValid>(host, &AfterWaterRouteValid);CivRegisterReplace<CivHooks::WaterRouteValid>(host, &ReplaceWaterRouteValid);
Code
2574/// Water route valid finder - check the validity of a coordinate2575int WaterRouteValid(CvAStarNode* parent, CvAStarNode* node, int data, const void* pointer, CvAStar* finder)2576{2577 CvPlot* pNewPlot;25782579 if(parent == NULL)2580 {2581 return TRUE;2582 }25832584 PlayerTypes ePlayer = (PlayerTypes)(finder->GetInfo());2585 TeamTypes eTeam = GET_PLAYER(ePlayer).getTeam();25862587 pNewPlot = GC.getMap().plotUnchecked(node->m_iX, node->m_iY);25882589 if(!(pNewPlot->isRevealed(eTeam)))2590 {2591 return FALSE;2592 }25932594#if defined(MOD_GLOBAL_PASSABLE_FORTS)2595 if (pNewPlot->isFriendlyCityOrPassableImprovement(ePlayer, true))2596#else2597 CvCity* pCity = pNewPlot->getPlotCity();2598 if(pCity && pCity->getTeam() == eTeam)2599#endif2600 {2601 return TRUE;2602 }26032604 if(pNewPlot->isWater())2605 {2606 return TRUE;2607 }26082609 return FALSE;2610}