Bazaar developer reference

CvMinorCivAI::GetNumResourcesMajorLacks(PlayerTypes)

Defined in
CvMinorCivAI.cpp, line 10569
Class
CvMinorCivAI
Hook name
CivHooks::CvMinorCivAI_GetNumResourcesMajorLacks

Hooks

static bool BeforeCvMinorCivAI_GetNumResourcesMajorLacks(CvMinorCivAI* self, PlayerTypes eMajor, int& result);static void AfterCvMinorCivAI_GetNumResourcesMajorLacks(CvMinorCivAI* self, PlayerTypes eMajor, int& result);static int ReplaceCvMinorCivAI_GetNumResourcesMajorLacks(int (*original)(CvMinorCivAI*, PlayerTypes), CvMinorCivAI* self, PlayerTypes eMajor);CivRegisterBefore<CivHooks::CvMinorCivAI_GetNumResourcesMajorLacks>(host, &BeforeCvMinorCivAI_GetNumResourcesMajorLacks);CivRegisterAfter<CivHooks::CvMinorCivAI_GetNumResourcesMajorLacks>(host, &AfterCvMinorCivAI_GetNumResourcesMajorLacks);CivRegisterReplace<CivHooks::CvMinorCivAI_GetNumResourcesMajorLacks>(host, &ReplaceCvMinorCivAI_GetNumResourcesMajorLacks);

Code

10568/// How many resources does this minor own that eMajor doesn't?10569int CvMinorCivAI::GetNumResourcesMajorLacks(PlayerTypes eMajor)10570{10571	CvAssertMsg(eMajor >= 0, "ePlayer is expected to be non-negative (invalid Index)");10572	CvAssertMsg(eMajor < MAX_MAJOR_CIVS, "ePlayer is expected to be within maximum bounds (invalid Index)");1057310574	int iNumTheyLack = 0;1057510576	// Loop through all resources to see what this minor has10577	ResourceTypes eResource;10578	for(int iResourceLoop = 0; iResourceLoop < GC.getNumResourceInfos(); iResourceLoop++)10579	{10580		eResource = (ResourceTypes) iResourceLoop;1058110582		const CvResourceInfo* pkResourceInfo = GC.getResourceInfo(eResource);10583		// Must not be a Bonus resource10584		if(pkResourceInfo == NULL || pkResourceInfo->getResourceUsage() == RESOURCEUSAGE_BONUS)10585			continue;1058610587		// We must have it10588		if(GetPlayer()->getNumResourceTotal(eResource, /*bIncludeImport*/ false) == 0)10589			continue;1059010591		// They must not have it10592		if(GET_PLAYER(eMajor).getNumResourceTotal(eResource, /*bIncludeImport*/ false) > 0)10593			continue;1059410595		iNumTheyLack++;10596	}1059710598	return iNumTheyLack;10599}

Calls

Called by