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}