CvCitySiteEvaluator::ComputeTradeableResourceValue(CvPlot *, CvPlayer *)
- Defined in
- CvSiteEvaluationClasses.cpp, line 1002
- Class
- CvCitySiteEvaluator
- Hook name
CivHooks::CvCitySiteEvaluator_ComputeTradeableResourceValue
Hooks
static bool BeforeCvCitySiteEvaluator_ComputeTradeableResourceValue(CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer, int& result);static void AfterCvCitySiteEvaluator_ComputeTradeableResourceValue(CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer, int& result);static int ReplaceCvCitySiteEvaluator_ComputeTradeableResourceValue(int (*original)(CvCitySiteEvaluator*, CvPlot*, CvPlayer*), CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::CvCitySiteEvaluator_ComputeTradeableResourceValue>(host, &BeforeCvCitySiteEvaluator_ComputeTradeableResourceValue);CivRegisterAfter<CivHooks::CvCitySiteEvaluator_ComputeTradeableResourceValue>(host, &AfterCvCitySiteEvaluator_ComputeTradeableResourceValue);CivRegisterReplace<CivHooks::CvCitySiteEvaluator_ComputeTradeableResourceValue>(host, &ReplaceCvCitySiteEvaluator_ComputeTradeableResourceValue);
Code
1001/// Value of plot for providing tradeable resources1002int CvCitySiteEvaluator::ComputeTradeableResourceValue(CvPlot* pPlot, CvPlayer* pPlayer)1003{1004 int rtnValue = 0;10051006 CvAssert(pPlot);1007 if(!pPlot) return rtnValue;10081009 // If we already own this Tile then we already have access to the Strategic Resource1010 if(pPlot->isOwned())1011 {1012 return rtnValue;1013 }10141015 TeamTypes eTeam = NO_TEAM;1016 if(pPlayer != NULL)1017 {1018 eTeam = pPlayer->getTeam();1019 }10201021 ResourceTypes eResource;1022 eResource = pPlot->getResourceType(eTeam);10231024 if(eResource != NO_RESOURCE)1025 {1026 ResourceUsageTypes eResourceUsage = GC.getResourceInfo(eResource)->getResourceUsage();10271028 // Multiply number of tradeable resources by flavor value1029 if(eResourceUsage == RESOURCEUSAGE_LUXURY || eResourceUsage == RESOURCEUSAGE_STRATEGIC)1030 {1031 rtnValue += pPlot->getNumResource() * m_iFlavorMultiplier[SITE_EVALUATION_RESOURCES];10321033 if(pPlayer)1034 {1035 // If we don't have this resource yet, increase it's value1036 if(pPlayer->getNumResourceTotal(eResource) == 0)1037 rtnValue *= 3;1038 }1039 }1040 }10411042 return rtnValue;1043}