CvDeal::GetNumResource(PlayerTypes, ResourceTypes)
- Defined in
- CvDealClasses.cpp, line 828
- Class
- CvDeal
- Hook name
CivHooks::CvDeal_GetNumResource
Hooks
static bool BeforeCvDeal_GetNumResource(CvDeal* self, PlayerTypes ePlayer, ResourceTypes eResource, int& result);static void AfterCvDeal_GetNumResource(CvDeal* self, PlayerTypes ePlayer, ResourceTypes eResource, int& result);static int ReplaceCvDeal_GetNumResource(int (*original)(CvDeal*, PlayerTypes, ResourceTypes), CvDeal* self, PlayerTypes ePlayer, ResourceTypes eResource);CivRegisterBefore<CivHooks::CvDeal_GetNumResource>(host, &BeforeCvDeal_GetNumResource);CivRegisterAfter<CivHooks::CvDeal_GetNumResource>(host, &AfterCvDeal_GetNumResource);CivRegisterReplace<CivHooks::CvDeal_GetNumResource>(host, &ReplaceCvDeal_GetNumResource);
Code
827/// Get the number of resources available according to the deal being renewed and what's not on the table828int CvDeal::GetNumResource(PlayerTypes ePlayer, ResourceTypes eResource)829{830 int iNumAvailable = GET_PLAYER(ePlayer).getNumResourceAvailable(eResource, false);831 int iNumInRenewDeal = 0;832 int iNumInExistingDeal = 0;833834835 CvDeal* pRenewDeal = GET_PLAYER(ePlayer).GetDiplomacyAI()->GetDealToRenew();836 if (!pRenewDeal)837 {838 PlayerTypes eOtherPlayer = GetOtherPlayer(ePlayer);839 if (eOtherPlayer != NO_PLAYER)840 {841 pRenewDeal = GET_PLAYER(eOtherPlayer).GetDiplomacyAI()->GetDealToRenew();842 }843 }844845 if (pRenewDeal)846 {847 // count any that are in the renew deal848 TradedItemList::iterator it;849 for(it = pRenewDeal->m_TradedItems.begin(); it != pRenewDeal->m_TradedItems.end(); ++it)850 {851 if(it->m_eItemType == TRADE_ITEM_RESOURCES && it->m_eFromPlayer == ePlayer && (ResourceTypes)it->m_iData1 == eResource)852 {853 // credit the amount854 iNumInRenewDeal += it->m_iData2;855 }856 }857858 // remove any that are in this deal859 for(it = m_TradedItems.begin(); it != m_TradedItems.end(); ++it)860 {861 if(it->m_eItemType == TRADE_ITEM_RESOURCES && it->m_eFromPlayer == ePlayer && (ResourceTypes)it->m_iData1 == eResource)862 {863 iNumInExistingDeal += it->m_iData2;864 }865 }866 }867868 return iNumAvailable + iNumInRenewDeal - iNumInExistingDeal;869}
Calls
- CvDeal::GetOtherPlayer(PlayerTypes) const
- CvDiplomacyAI::GetDealToRenew(int *)
- CvPlayer::GetDiplomacyAI() const
- CvPlayer::getNumResourceAvailable(ResourceTypes, bool) const
- CvPlayerAI::getPlayer(PlayerTypes)
FCustomList_Core::base_iterator::operator++FFastList::iterator::iteratorFFastList::iterator::operator->