CvMinorCivAI::DoUpdateAlliesResourceBonus(PlayerTypes, PlayerTypes)
- Defined in
- CvMinorCivAI.cpp, line 6433
- Class
- CvMinorCivAI
- Hook name
CivHooks::CvMinorCivAI_DoUpdateAlliesResourceBonus
Hooks
static bool BeforeCvMinorCivAI_DoUpdateAlliesResourceBonus(CvMinorCivAI* self, PlayerTypes eNewAlly, PlayerTypes eOldAlly);static void AfterCvMinorCivAI_DoUpdateAlliesResourceBonus(CvMinorCivAI* self, PlayerTypes eNewAlly, PlayerTypes eOldAlly);static void ReplaceCvMinorCivAI_DoUpdateAlliesResourceBonus(void (*original)(CvMinorCivAI*, PlayerTypes, PlayerTypes), CvMinorCivAI* self, PlayerTypes eNewAlly, PlayerTypes eOldAlly);CivRegisterBefore<CivHooks::CvMinorCivAI_DoUpdateAlliesResourceBonus>(host, &BeforeCvMinorCivAI_DoUpdateAlliesResourceBonus);CivRegisterAfter<CivHooks::CvMinorCivAI_DoUpdateAlliesResourceBonus>(host, &AfterCvMinorCivAI_DoUpdateAlliesResourceBonus);CivRegisterReplace<CivHooks::CvMinorCivAI_DoUpdateAlliesResourceBonus>(host, &ReplaceCvMinorCivAI_DoUpdateAlliesResourceBonus);
Code
6432/// Update Best Relations Resource Bonus6433void CvMinorCivAI::DoUpdateAlliesResourceBonus(PlayerTypes eNewAlly, PlayerTypes eOldAlly)6434{6435 FAssertMsg(eNewAlly != NO_PLAYER || eOldAlly != NO_PLAYER, "MINOR CIV AI: Updating Allied resource bonus and both players are not defined!");64366437 // Change gifted Resources6438 ResourceTypes eResource;6439 ResourceUsageTypes eUsage;6440 int iResourceQuantity;6441 for(int iResourceLoop = 0; iResourceLoop < GC.getNumResourceInfos(); iResourceLoop++)6442 {6443 eResource = (ResourceTypes) iResourceLoop;64446445 const CvResourceInfo* pkResourceInfo = GC.getResourceInfo(eResource);6446 if (pkResourceInfo == NULL)6447 continue;64486449 eUsage = pkResourceInfo->getResourceUsage();64506451 if(eUsage == RESOURCEUSAGE_STRATEGIC || eUsage == RESOURCEUSAGE_LUXURY)6452 {6453 // Someone is losing the bonus :(6454 if(eOldAlly != NO_PLAYER)6455 {6456 iResourceQuantity = GetPlayer()->getResourceExport(eResource);64576458 if(iResourceQuantity > 0)6459 {6460 GET_PLAYER(eOldAlly).changeResourceFromMinors(eResource, -iResourceQuantity);6461 GetPlayer()->changeResourceExport(eResource, -iResourceQuantity);6462 }6463 }64646465 // Someone new is getting the bonus :D6466 if(eNewAlly != NO_PLAYER)6467 {6468 iResourceQuantity = GetPlayer()->getNumResourceTotal(eResource);64696470 if(iResourceQuantity > 0)6471 {6472 GET_PLAYER(eNewAlly).changeResourceFromMinors(eResource, iResourceQuantity);6473 GetPlayer()->changeResourceExport(eResource, iResourceQuantity);6474 }6475 }6476 }6477 }6478}
Calls
- CvGlobals::getNumResourceInfos()
- CvGlobals::getResourceInfo(ResourceTypes)
- CvMinorCivAI::GetPlayer()
- CvPlayer::changeResourceExport(ResourceTypes, int)
- CvPlayer::changeResourceFromMinors(ResourceTypes, int)
- CvPlayer::getNumResourceTotal(ResourceTypes, bool) const
- CvPlayer::getResourceExport(ResourceTypes) const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvResourceInfo::getResourceUsage() const