CvPlayer::IsPlotConnectedToPlot(CvPlot *, CvPlot *, RouteTypes, bool)
- Defined in
- CvPlayer.cpp, line 5844
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_IsPlotConnectedToPlot
Hooks
static bool BeforeCvPlayer_IsPlotConnectedToPlot(CvPlayer* self, CvPlot* pFromPlot, CvPlot* pToPlot, RouteTypes eRestrictRoute, bool bIgnoreHarbors, bool& result);static void AfterCvPlayer_IsPlotConnectedToPlot(CvPlayer* self, CvPlot* pFromPlot, CvPlot* pToPlot, RouteTypes eRestrictRoute, bool bIgnoreHarbors, bool& result);static bool ReplaceCvPlayer_IsPlotConnectedToPlot(bool (*original)(CvPlayer*, CvPlot*, CvPlot*, RouteTypes, bool), CvPlayer* self, CvPlot* pFromPlot, CvPlot* pToPlot, RouteTypes eRestrictRoute, bool bIgnoreHarbors);CivRegisterBefore<CivHooks::CvPlayer_IsPlotConnectedToPlot>(host, &BeforeCvPlayer_IsPlotConnectedToPlot);CivRegisterAfter<CivHooks::CvPlayer_IsPlotConnectedToPlot>(host, &AfterCvPlayer_IsPlotConnectedToPlot);CivRegisterReplace<CivHooks::CvPlayer_IsPlotConnectedToPlot>(host, &ReplaceCvPlayer_IsPlotConnectedToPlot);
Code
5844bool CvPlayer::IsPlotConnectedToPlot(CvPlot* pFromPlot, CvPlot* pToPlot, RouteTypes eRestrictRoute, bool bIgnoreHarbors)5845{5846 // IMPORTANT NOTE: This is the IsCityConnectedToCity() code from above5847 5848 int iPathfinderFlags = GetID() | MOVE_ROUTE_ALLOW_UNEXPLORED; // Since we just want to know if we are connected or not, allow the check to search unexplored terrain.5849 if(eRestrictRoute == NO_ROUTE)5850 {5851 iPathfinderFlags |= MOVE_ANY_ROUTE;5852 }5853 else5854 {5855 // assuming that there are fewer than 256 players5856 int iRouteValue = eRestrictRoute + 1;5857 iPathfinderFlags |= (iRouteValue << 8);5858 }58595860 if (bIgnoreHarbors)5861 {5862 GC.getRouteFinder().SetNumExtraChildrenFunc(NULL);5863 GC.getRouteFinder().SetExtraChildGetterFunc(NULL);5864 }58655866 GC.getRouteFinder().ForceReset();5867 bool bReturnValue = GC.getRouteFinder().GeneratePath(pFromPlot->getX(), pFromPlot->getY(), pToPlot->getX(), pToPlot->getY(), iPathfinderFlags, false);58685869 if (bIgnoreHarbors)5870 {5871 // reconnect the land route pathfinder water methods5872 GC.getRouteFinder().SetNumExtraChildrenFunc(RouteGetNumExtraChildren);5873 GC.getRouteFinder().SetExtraChildGetterFunc(RouteGetExtraChild);5874 }58755876 return bReturnValue;5877}
Calls
- CvAStar::ForceReset()
- CvAStar::GeneratePath(int, int, int, int, int, bool)
- CvAStar::SetExtraChildGetterFunc(CvAGetExtraChild)
- CvAStar::SetNumExtraChildrenFunc(CvANumExtraChildren)
- CvGlobals::getRouteFinder()
- CvPlayer::GetID() const
- CvPlot::getX() const
- CvPlot::getY() const
- RouteGetExtraChild(CvAStarNode *, int, int &, int &, CvAStar *)
- RouteGetNumExtraChildren(CvAStarNode *, CvAStar *)