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}