Bazaar developer reference

CvDiplomacyAI::DoUpdateHumanTradePriority(PlayerTypes, int)

Defined in
CvDiplomacyAI.cpp, line 2402
Class
CvDiplomacyAI
Hook name
CivHooks::CvDiplomacyAI_DoUpdateHumanTradePriority

Hooks

static bool BeforeCvDiplomacyAI_DoUpdateHumanTradePriority(CvDiplomacyAI* self, PlayerTypes ePlayer, int iOpinionWeight);static void AfterCvDiplomacyAI_DoUpdateHumanTradePriority(CvDiplomacyAI* self, PlayerTypes ePlayer, int iOpinionWeight);static void ReplaceCvDiplomacyAI_DoUpdateHumanTradePriority(void (*original)(CvDiplomacyAI*, PlayerTypes, int), CvDiplomacyAI* self, PlayerTypes ePlayer, int iOpinionWeight);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoUpdateHumanTradePriority>(host, &BeforeCvDiplomacyAI_DoUpdateHumanTradePriority);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoUpdateHumanTradePriority>(host, &AfterCvDiplomacyAI_DoUpdateHumanTradePriority);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoUpdateHumanTradePriority>(host, &ReplaceCvDiplomacyAI_DoUpdateHumanTradePriority);

Code

2400#if defined(MOD_AI_MP_DIPLOMACY)2401// JdH => calculate ai to human trade priority for multiplayer2402void CvDiplomacyAI::DoUpdateHumanTradePriority(PlayerTypes ePlayer, int iOpinionWeight)2403{2404	if (m_pDiploData && ePlayer >= 0 && ePlayer < MAX_MAJOR_CIVS)2405	{2406		iOpinionWeight = max(iOpinionWeight, GC.getOPINION_THRESHOLD_ALLY());2407		iOpinionWeight = min(iOpinionWeight, GC.getOPINION_THRESHOLD_UNFORGIVABLE());2408		iOpinionWeight -= GC.getOPINION_THRESHOLD_UNFORGIVABLE(); // make it >= 024092410		float opinion = iOpinionWeight / (float)(GC.getOPINION_THRESHOLD_ALLY() - GC.getOPINION_THRESHOLD_UNFORGIVABLE());24112412		int turnsPassed = GC.getGame().getGameTurn() - GetNumTurnsSinceSomethingSent(ePlayer);24132414		m_pDiploData->m_aTradePriority[ePlayer] = 10.0f * opinion + turnsPassed; // faktor in turns since last contact and the optinion to player.2415	}2416}

Calls

Called by