Bazaar developer reference

CvDiplomacyAI::ChangeRecentTradeValue(PlayerTypes, int)

Defined in
CvDiplomacyAI.cpp, line 7976
Class
CvDiplomacyAI
Hook name
CivHooks::CvDiplomacyAI_ChangeRecentTradeValue

Hooks

static bool BeforeCvDiplomacyAI_ChangeRecentTradeValue(CvDiplomacyAI* self, PlayerTypes ePlayer, int iChange);static void AfterCvDiplomacyAI_ChangeRecentTradeValue(CvDiplomacyAI* self, PlayerTypes ePlayer, int iChange);static void ReplaceCvDiplomacyAI_ChangeRecentTradeValue(void (*original)(CvDiplomacyAI*, PlayerTypes, int), CvDiplomacyAI* self, PlayerTypes ePlayer, int iChange);CivRegisterBefore<CivHooks::CvDiplomacyAI_ChangeRecentTradeValue>(host, &BeforeCvDiplomacyAI_ChangeRecentTradeValue);CivRegisterAfter<CivHooks::CvDiplomacyAI_ChangeRecentTradeValue>(host, &AfterCvDiplomacyAI_ChangeRecentTradeValue);CivRegisterReplace<CivHooks::CvDiplomacyAI_ChangeRecentTradeValue>(host, &ReplaceCvDiplomacyAI_ChangeRecentTradeValue);

Code

7975/// Set value of recent trades7976void CvDiplomacyAI::ChangeRecentTradeValue(PlayerTypes ePlayer, int iChange)7977{7978	if(iChange != 0)7979	{7980		CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");7981		CvAssertMsg(ePlayer < MAX_MAJOR_CIVS, "DIPLOMACY_AI: Invalid Player Index.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");79827983		m_paiTradeValue[ePlayer] += iChange;7984		short iMaxOpinionValue = GC.getDEAL_VALUE_PER_OPINION_WEIGHT() * -(GC.getOPINION_WEIGHT_TRADE_MAX());79857986		// Must be between 0 and maximum possible boost to opinion7987		if(m_paiTradeValue[ePlayer] < 0)7988		{7989			m_paiTradeValue[ePlayer] = 0;7990		}7991		else if(m_paiTradeValue[ePlayer] > iMaxOpinionValue)7992		{7993			m_paiTradeValue[ePlayer] = iMaxOpinionValue;7994		}7995	}7996}

Calls

Called by