Bazaar developer reference

CvDealAI::GetTradeItemValue(TradeableItems, bool, PlayerTypes, int, int, int, bool, int, bool)

Defined in
CvDealAI.cpp, line 891
Class
CvDealAI
Hook name
CivHooks::CvDealAI_GetTradeItemValue

Hooks

static bool BeforeCvDealAI_GetTradeItemValue(CvDealAI* self, TradeableItems eItem, bool bFromMe, PlayerTypes eOtherPlayer, int iData1, int iData2, int iData3, bool bFlag1, int iDuration, bool bUseEvenValue, int& result);static void AfterCvDealAI_GetTradeItemValue(CvDealAI* self, TradeableItems eItem, bool bFromMe, PlayerTypes eOtherPlayer, int iData1, int iData2, int iData3, bool bFlag1, int iDuration, bool bUseEvenValue, int& result);static int ReplaceCvDealAI_GetTradeItemValue(int (*original)(CvDealAI*, TradeableItems, bool, PlayerTypes, int, int, int, bool, int, bool), CvDealAI* self, TradeableItems eItem, bool bFromMe, PlayerTypes eOtherPlayer, int iData1, int iData2, int iData3, bool bFlag1, int iDuration, bool bUseEvenValue);CivRegisterBefore<CivHooks::CvDealAI_GetTradeItemValue>(host, &BeforeCvDealAI_GetTradeItemValue);CivRegisterAfter<CivHooks::CvDealAI_GetTradeItemValue>(host, &AfterCvDealAI_GetTradeItemValue);CivRegisterReplace<CivHooks::CvDealAI_GetTradeItemValue>(host, &ReplaceCvDealAI_GetTradeItemValue);

Code

890/// What is a particular item worth?891int CvDealAI::GetTradeItemValue(TradeableItems eItem, bool bFromMe, PlayerTypes eOtherPlayer, int iData1, int iData2, int iData3, bool bFlag1, int iDuration, bool bUseEvenValue)892{893	CvAssert(eOtherPlayer >= 0);894	CvAssert(eOtherPlayer < MAX_MAJOR_CIVS);895	CvAssertMsg(GetPlayer()->GetID() != eOtherPlayer, "DEAL_AI: Trying to get deal item value for trading to oneself.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");896	CvAssertMsg(eItem != TRADE_ITEM_NONE, "DEAL_AI: Trying to get value of TRADE_ITEM_NONE.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");897898	int iItemValue = 0;899900	if(eItem == TRADE_ITEM_GOLD)901		iItemValue = GetGoldForForValueExchange(/*Gold Amount*/ iData1, /*bNumGoldFromValue*/ false, bFromMe, eOtherPlayer, bUseEvenValue, /*bRoundUp*/ false);902	else if(eItem == TRADE_ITEM_GOLD_PER_TURN)903		iItemValue = GetGPTforForValueExchange(/*Gold Per Turn Amount*/ iData1, /*bNumGPTFromValue*/ false, iDuration, bFromMe, eOtherPlayer, bUseEvenValue, /*bRoundUp*/ false);904	else if(eItem == TRADE_ITEM_RESOURCES)905		iItemValue = GetResourceValue(/*ResourceType*/ (ResourceTypes) iData1, /*Quantity*/ iData2, iDuration, bFromMe, eOtherPlayer);906	else if(eItem == TRADE_ITEM_CITIES)907		iItemValue = GetCityValue(/*iX*/ iData1, /*iY*/ iData2, bFromMe, eOtherPlayer, bUseEvenValue);908	else if(eItem == TRADE_ITEM_ALLOW_EMBASSY)909		iItemValue = GetEmbassyValue(bFromMe, eOtherPlayer, bUseEvenValue);910	else if(eItem == TRADE_ITEM_OPEN_BORDERS)911		iItemValue = GetOpenBordersValue(bFromMe, eOtherPlayer, bUseEvenValue);912	else if(eItem == TRADE_ITEM_DEFENSIVE_PACT)913		iItemValue = GetDefensivePactValue(bFromMe, eOtherPlayer, bUseEvenValue);914	else if(eItem == TRADE_ITEM_RESEARCH_AGREEMENT)915		iItemValue = GetResearchAgreementValue(bFromMe, eOtherPlayer, bUseEvenValue);916	else if(eItem == TRADE_ITEM_TRADE_AGREEMENT)917		iItemValue = GetTradeAgreementValue(bFromMe, eOtherPlayer, bUseEvenValue);918	else if(eItem == TRADE_ITEM_PEACE_TREATY)919		iItemValue = GetPeaceTreatyValue(eOtherPlayer);920	else if(eItem == TRADE_ITEM_THIRD_PARTY_PEACE)921		iItemValue = GetThirdPartyPeaceValue(bFromMe, eOtherPlayer, /*eWithTeam*/ (TeamTypes) iData1);922	else if(eItem == TRADE_ITEM_THIRD_PARTY_WAR)923		iItemValue = GetThirdPartyWarValue(bFromMe, eOtherPlayer, /*eWithTeam*/ (TeamTypes) iData1);924	else if(eItem == TRADE_ITEM_VOTE_COMMITMENT)925		iItemValue = GetVoteCommitmentValue(bFromMe, eOtherPlayer, iData1, iData2, iData3, bFlag1, bUseEvenValue);926927	CvAssertMsg(iItemValue >= 0, "DEAL_AI: Trade Item value is negative.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");928929	return iItemValue;930}

Calls

Called by