Bazaar developer reference

EconomicAIHelpers::IsAreaSafeForQuickColony(int, CvPlayer *)

Defined in
CvEconomicAI.cpp, line 3019
Hook name
CivHooks::EconomicAIHelpers_IsAreaSafeForQuickColony

Hooks

static bool BeforeEconomicAIHelpers_IsAreaSafeForQuickColony(int iAreaID, CvPlayer* pPlayer, bool& result);static void AfterEconomicAIHelpers_IsAreaSafeForQuickColony(int iAreaID, CvPlayer* pPlayer, bool& result);static bool ReplaceEconomicAIHelpers_IsAreaSafeForQuickColony(bool (*original)(int, CvPlayer*), int iAreaID, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::EconomicAIHelpers_IsAreaSafeForQuickColony>(host, &BeforeEconomicAIHelpers_IsAreaSafeForQuickColony);CivRegisterAfter<CivHooks::EconomicAIHelpers_IsAreaSafeForQuickColony>(host, &AfterEconomicAIHelpers_IsAreaSafeForQuickColony);CivRegisterReplace<CivHooks::EconomicAIHelpers_IsAreaSafeForQuickColony>(host, &ReplaceEconomicAIHelpers_IsAreaSafeForQuickColony);

Code

3018/// Do we have an island clear of hostile units to settle on?3019bool EconomicAIHelpers::IsAreaSafeForQuickColony(int iAreaID, CvPlayer* pPlayer)3020{3021	if(iAreaID == -1)3022	{3023		return false;3024	}30253026	// Can't be capitals area3027	CvCity* pCapitalCity = pPlayer->getCapitalCity();3028	if(pCapitalCity != NULL)3029	{3030		if(iAreaID == pCapitalCity->getArea())3031		{3032			return false;3033		}3034	}30353036	CvArea* pArea = GC.getMap().getArea(iAreaID);3037	int iBeginSearchX = pArea->getAreaBoundaries().m_iWestEdge;3038	int iBeginSearchY = pArea->getAreaBoundaries().m_iSouthEdge;3039	int iEndSearchX   = pArea->getAreaBoundaries().m_iEastEdge;3040	int iEndSearchY   = pArea->getAreaBoundaries().m_iNorthEdge;30413042	for(int iPlotX = iBeginSearchX; iPlotX <= iEndSearchX; iPlotX++)3043	{3044		for(int iPlotY = iBeginSearchY; iPlotY <= iEndSearchY; iPlotY++)3045		{3046			CvPlot* pPlot = GC.getMap().plotCheckInvalid(iPlotX, iPlotY);3047			if(!pPlot)3048			{3049				continue;3050			}30513052			if(pPlot->getArea() != iAreaID)3053			{3054				continue;3055			}30563057			if(pPlot->isVisibleEnemyUnit(pPlayer->GetID()))3058			{3059				return false;3060			}3061		}3062	}3063	return true;3064}

Calls

Called by