Bazaar developer reference

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}

Calls

Called by