Bazaar developer reference

CvMinorCivAI::DoMajorCivEraChange(PlayerTypes, EraTypes)

Defined in
CvMinorCivAI.cpp, line 7539
Class
CvMinorCivAI
Hook name
CivHooks::CvMinorCivAI_DoMajorCivEraChange

Hooks

static bool BeforeCvMinorCivAI_DoMajorCivEraChange(CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eNewEra, bool& result);static void AfterCvMinorCivAI_DoMajorCivEraChange(CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eNewEra, bool& result);static bool ReplaceCvMinorCivAI_DoMajorCivEraChange(bool (*original)(CvMinorCivAI*, PlayerTypes, EraTypes), CvMinorCivAI* self, PlayerTypes ePlayer, EraTypes eNewEra);CivRegisterBefore<CivHooks::CvMinorCivAI_DoMajorCivEraChange>(host, &BeforeCvMinorCivAI_DoMajorCivEraChange);CivRegisterAfter<CivHooks::CvMinorCivAI_DoMajorCivEraChange>(host, &AfterCvMinorCivAI_DoMajorCivEraChange);CivRegisterReplace<CivHooks::CvMinorCivAI_DoMajorCivEraChange>(host, &ReplaceCvMinorCivAI_DoMajorCivEraChange);

Code

7538/// Someone changed eras - does this affect their bonuses?7539bool CvMinorCivAI::DoMajorCivEraChange(PlayerTypes ePlayer, EraTypes eNewEra)7540{7541	bool bSomethingChanged = false;75427543	MinorCivTraitTypes eTrait = GetTrait();75447545	// MARITIME7546	if(eTrait == MINOR_CIV_TRAIT_MARITIME)7547	{7548		// Friends7549		if(IsFriends(ePlayer))7550		{7551			int iOldFood, iNewFood;75527553			// Capital7554			iOldFood = GetFriendsCapitalFoodBonus(ePlayer);7555			iNewFood = GetFriendsCapitalFoodBonus(ePlayer, eNewEra);75567557			if(iOldFood != iNewFood)7558			{7559				bSomethingChanged = true;7560#if defined(MOD_BUGFIX_MINOR)7561				GET_PLAYER(ePlayer).ChangeCapitalYieldChangeTimes100(YIELD_FOOD, iNewFood - iOldFood);7562#else7563				GET_PLAYER(ePlayer).ChangeCapitalYieldChange(YIELD_FOOD, iNewFood - iOldFood);7564#endif7565			}75667567			// Other Cities7568			iOldFood = GetFriendsOtherCityFoodBonus(ePlayer);7569			iNewFood = GetFriendsOtherCityFoodBonus(ePlayer, eNewEra);75707571			if(iOldFood != iNewFood)7572			{7573				bSomethingChanged = true;7574#if defined(MOD_BUGFIX_MINOR)7575				GET_PLAYER(ePlayer).ChangeCityYieldChangeTimes100(YIELD_FOOD, iNewFood - iOldFood);7576#else7577				GET_PLAYER(ePlayer).ChangeCityYieldChange(YIELD_FOOD, iNewFood - iOldFood);7578#endif7579			}7580		}75817582		// Allies7583		if(IsAllies(ePlayer))7584		{7585			int iOldFood, iNewFood;75867587			// Capital7588			iOldFood = GetAlliesCapitalFoodBonus(ePlayer);7589			iNewFood = GetAlliesCapitalFoodBonus(ePlayer);75907591			if(iOldFood != iNewFood)7592			{7593				bSomethingChanged = true;7594#if defined(MOD_BUGFIX_MINOR)7595				GET_PLAYER(ePlayer).ChangeCapitalYieldChangeTimes100(YIELD_FOOD, iNewFood - iOldFood);7596#else7597				GET_PLAYER(ePlayer).ChangeCapitalYieldChange(YIELD_FOOD, iNewFood - iOldFood);7598#endif7599			}76007601			// Other Cities7602			iOldFood = GetAlliesOtherCityFoodBonus(ePlayer);7603			iNewFood = GetAlliesOtherCityFoodBonus(ePlayer);76047605			if(iOldFood != iNewFood)7606			{7607				bSomethingChanged = true;7608#if defined(MOD_BUGFIX_MINOR)7609				GET_PLAYER(ePlayer).ChangeCityYieldChangeTimes100(YIELD_FOOD, iNewFood - iOldFood);7610#else7611				GET_PLAYER(ePlayer).ChangeCityYieldChange(YIELD_FOOD, iNewFood - iOldFood);7612#endif7613			}7614		}7615	}76167617	// CULTURED7618	else if(eTrait == MINOR_CIV_TRAIT_CULTURED)7619	{7620		// Friends7621		if(IsFriends(ePlayer))7622		{7623			int iOldCulture = GetCultureFlatFriendshipBonus(ePlayer) + GetCulturePerBuildingFriendshipBonus(ePlayer);7624			int iNewCulture = GetCultureFlatFriendshipBonus(ePlayer, eNewEra) + GetCulturePerBuildingFriendshipBonus(ePlayer, eNewEra);76257626			if(iOldCulture != iNewCulture)7627			{7628				bSomethingChanged = true;7629			}7630		}76317632		// Allies7633		if(IsAllies(ePlayer))7634		{7635			int iOldCulture = GetCultureFlatAlliesBonus(ePlayer) + GetCulturePerBuildingAlliesBonus(ePlayer);7636			int iNewCulture = GetCultureFlatAlliesBonus(ePlayer, eNewEra) + GetCulturePerBuildingAlliesBonus(ePlayer, eNewEra);76377638			if(iOldCulture != iNewCulture)7639			{7640				bSomethingChanged = true;7641			}7642		}7643	}76447645	// MERCANTILE7646	else if(eTrait == MINOR_CIV_TRAIT_MERCANTILE)7647	{7648		// Friends7649		if(IsFriends(ePlayer))7650		{7651			int iOldHappiness, iNewHappiness;76527653			iOldHappiness = GetHappinessFlatFriendshipBonus(ePlayer) + GetHappinessPerLuxuryFriendshipBonus(ePlayer);7654			iNewHappiness = GetHappinessFlatFriendshipBonus(ePlayer, eNewEra) + GetHappinessPerLuxuryFriendshipBonus(ePlayer, eNewEra);76557656			if(iOldHappiness != iNewHappiness)7657			{7658				bSomethingChanged = true;7659				GET_PLAYER(ePlayer).DoUpdateHappiness();7660			}7661		}76627663		// Allies7664		if(IsAllies(ePlayer))7665		{7666			int iOldHappiness, iNewHappiness;76677668			iOldHappiness = GetHappinessFlatAlliesBonus(ePlayer) + GetHappinessPerLuxuryAlliesBonus(ePlayer);7669			iNewHappiness = GetHappinessFlatAlliesBonus(ePlayer, eNewEra) + GetHappinessPerLuxuryAlliesBonus(ePlayer, eNewEra);76707671			if(iOldHappiness != iNewHappiness)7672			{7673				bSomethingChanged = true;7674				GET_PLAYER(ePlayer).DoUpdateHappiness();7675			}7676		}7677	}76787679	// RELIGIOUS7680	else if(eTrait == MINOR_CIV_TRAIT_RELIGIOUS)7681	{7682		// Friends7683		if(IsFriends(ePlayer))7684		{7685			int iOldFaith = GetFaithFlatFriendshipBonus(ePlayer);7686			int iNewFaith = GetFaithFlatFriendshipBonus(ePlayer, eNewEra);76877688			if(iOldFaith != iNewFaith)7689			{7690				bSomethingChanged = true;7691			}7692		}76937694		// Allies7695		if(IsAllies(ePlayer))7696		{7697			int iOldFaith = GetFaithFlatAlliesBonus(ePlayer);7698			int iNewFaith = GetFaithFlatAlliesBonus(ePlayer, eNewEra);76997700			if(iOldFaith != iNewFaith)7701			{7702				bSomethingChanged = true;7703			}7704		}7705	}77067707	return bSomethingChanged;7708}

Calls

Called by