Bazaar developer reference

CvMinorCivAI::GetHappinessPerLuxuryAlliesBonus(PlayerTypes, EraTypes)

Defined in
CvMinorCivAI.cpp, line 8010
Class
CvMinorCivAI
Hook name
CivHooks::CvMinorCivAI_GetHappinessPerLuxuryAlliesBonus

Hooks

static bool BeforeCvMinorCivAI_GetHappinessPerLuxuryAlliesBonus(CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eAssumeEra, int& result);static void AfterCvMinorCivAI_GetHappinessPerLuxuryAlliesBonus(CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eAssumeEra, int& result);static int ReplaceCvMinorCivAI_GetHappinessPerLuxuryAlliesBonus(int (*original)(CvMinorCivAI*, PlayerTypes, EraTypes), CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eAssumeEra);CivRegisterBefore<CivHooks::CvMinorCivAI_GetHappinessPerLuxuryAlliesBonus>(host, &BeforeCvMinorCivAI_GetHappinessPerLuxuryAlliesBonus);CivRegisterAfter<CivHooks::CvMinorCivAI_GetHappinessPerLuxuryAlliesBonus>(host, &AfterCvMinorCivAI_GetHappinessPerLuxuryAlliesBonus);CivRegisterReplace<CivHooks::CvMinorCivAI_GetHappinessPerLuxuryAlliesBonus>(host, &ReplaceCvMinorCivAI_GetHappinessPerLuxuryAlliesBonus);

Code

8009/// Cumulative per luxury happiness bonus from being allies with a minor8010int CvMinorCivAI::GetHappinessPerLuxuryAlliesBonus(PlayerTypes ePlayer, EraTypes eAssumeEra)8011{8012	//antonjs: consider: optimize8013	int iNumLuxuries = 0;8014	ResourceTypes eResource;8015	for(int iResourceLoop = 0; iResourceLoop < GC.getNumResourceInfos(); iResourceLoop++)8016	{8017		eResource = (ResourceTypes) iResourceLoop;80188019		if(GET_PLAYER(ePlayer).getNumResourceAvailable(eResource) > 0)8020		{8021			const CvResourceInfo* pkResourceInfo = GC.getResourceInfo(eResource);8022			if(pkResourceInfo != NULL && pkResourceInfo->getResourceUsage() == RESOURCEUSAGE_LUXURY)8023			{8024				iNumLuxuries++;8025			}8026		}8027	}80288029	EraTypes eCurrentEra = eAssumeEra;8030	if(eCurrentEra == NO_ERA)8031		eCurrentEra = GET_TEAM(GET_PLAYER(ePlayer).getTeam()).GetCurrentEra();80328033	EraTypes eIndustrial = (EraTypes) GC.getInfoTypeForString("ERA_INDUSTRIAL", true);8034	EraTypes eMedieval = (EraTypes) GC.getInfoTypeForString("ERA_MEDIEVAL", true);80358036	// Industrial era or Later8037	if(eCurrentEra >= eIndustrial)8038		return (iNumLuxuries * GC.getALLIES_HAPPINESS_PER_LUXURY_BONUS_AMOUNT_INDUSTRIAL());80398040	// Medieval era or later8041	else if(eCurrentEra >= eMedieval)8042		return (iNumLuxuries * GC.getALLIES_HAPPINESS_PER_LUXURY_BONUS_AMOUNT_MEDIEVAL());80438044	// Pre-Medieval8045	else8046		return (iNumLuxuries * GC.getALLIES_HAPPINESS_PER_LUXURY_BONUS_AMOUNT_ANCIENT());8047}

Calls

Called by