Bazaar developer reference

CvDiplomacyAIHelpers::GetWarmongerOffset(PlayerTypes, bool)

Defined in
CvDiplomacyAI.cpp, line 28440
Hook name
CivHooks::CvDiplomacyAIHelpers_GetWarmongerOffset

Hooks

static bool BeforeCvDiplomacyAIHelpers_GetWarmongerOffset(PlayerTypes eOriginalOwner, bool bIsCapital, int& result);static void AfterCvDiplomacyAIHelpers_GetWarmongerOffset(PlayerTypes eOriginalOwner, bool bIsCapital, int& result);static int ReplaceCvDiplomacyAIHelpers_GetWarmongerOffset(int (*original)(PlayerTypes, bool), PlayerTypes eOriginalOwner, bool bIsCapital);CivRegisterBefore<CivHooks::CvDiplomacyAIHelpers_GetWarmongerOffset>(host, &BeforeCvDiplomacyAIHelpers_GetWarmongerOffset);CivRegisterAfter<CivHooks::CvDiplomacyAIHelpers_GetWarmongerOffset>(host, &AfterCvDiplomacyAIHelpers_GetWarmongerOffset);CivRegisterReplace<CivHooks::CvDiplomacyAIHelpers_GetWarmongerOffset>(host, &ReplaceCvDiplomacyAIHelpers_GetWarmongerOffset);

Code

28439#if defined(MOD_CONFIG_AI_IN_XML)28440int CvDiplomacyAIHelpers::GetWarmongerOffset(PlayerTypes eOriginalOwner, bool bIsCapital)28441#else28442int CvDiplomacyAIHelpers::GetWarmongerOffset(int iNumCitiesRemaining, bool bIsMinor)28443#endif28444{28445	int iEstimatedCitiesOnMap = GC.getMap().getWorldInfo().GetEstimatedNumCities();28446	int iActualCitiesOnMap = GC.getGame().getNumCities();28447	int iNumCitiesRemaining = max(GET_PLAYER(eOriginalOwner).getNumCities(), 1);2844828449#if defined(MOD_CONFIG_AI_IN_XML)28450	int iWarmongerWeight = GET_PLAYER(eOriginalOwner).isMinorCiv() ? GC.getWARMONGER_THREAT_MINOR_CITY_WEIGHT() : GC.getWARMONGER_THREAT_MAJOR_CITY_WEIGHT();28451	if (bIsCapital) iWarmongerWeight *= GC.getWARMONGER_THREAT_CAPITAL_CITY_PERCENT() / 100;2845228453	// TODO - WH - WARMONGER_THREAT_CITY_SIZE_ENABLED28454	// if RemainingCities is 0, use iWarmongerWeight, otherwise28455	// (iWarmongerWeight / iNumCitiesRemaining) * (CapturedCityPop / (RemainingTotalPop/iNumCitiesRemaining))28456	int iWarmongerOffset = (iWarmongerWeight * iEstimatedCitiesOnMap) / (iNumCitiesRemaining * max(iActualCitiesOnMap, 1));28457#else28458	int iWarmongerOffset = (1000 * iEstimatedCitiesOnMap) / (max(iActualCitiesOnMap, 1) * iNumCitiesRemaining);2845928460	// Minor power targeted, half penalty28461	if (bIsMinor)28462	{28463		iWarmongerOffset = (iWarmongerOffset * GC.getWARMONGER_ON_CITY_STATE_MULTIPLIER()) / 100;28464	}28465#endif2846628467	// CUSTOMLOG("GetWarmongerOffset(owner=%i, capital=%s) = %i", ((int) eOriginalOwner), (bIsCapital ? "true" : "false"), iWarmongerOffset);28468	return iWarmongerOffset;28469}

Calls

Called by