Bazaar developer reference

CvLuaCity::lGetReligionBuildingClassYieldChange(lua_State *)

Defined in
Lua/CvLuaCity.cpp, line 2672
Class
CvLuaCity
Hook name
CivHooks::CvLuaCity_lGetReligionBuildingClassYieldChange

Hooks

static bool BeforeCvLuaCity_lGetReligionBuildingClassYieldChange(lua_State* L, int& result);static void AfterCvLuaCity_lGetReligionBuildingClassYieldChange(lua_State* L, int& result);static int ReplaceCvLuaCity_lGetReligionBuildingClassYieldChange(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaCity_lGetReligionBuildingClassYieldChange>(host, &BeforeCvLuaCity_lGetReligionBuildingClassYieldChange);CivRegisterAfter<CivHooks::CvLuaCity_lGetReligionBuildingClassYieldChange>(host, &AfterCvLuaCity_lGetReligionBuildingClassYieldChange);CivRegisterReplace<CivHooks::CvLuaCity_lGetReligionBuildingClassYieldChange>(host, &ReplaceCvLuaCity_lGetReligionBuildingClassYieldChange);

Code

2671//int GetReligionBuildingClassYieldChange(eBuildingClass, eYieldType) const;2672int CvLuaCity::lGetReligionBuildingClassYieldChange(lua_State* L)2673{2674	int iYieldFromBuilding = 0;26752676	CvCity* pkCity = GetInstance(L);2677	BuildingClassTypes eBuildingClass = (BuildingClassTypes)lua_tointeger(L, 2);2678	YieldTypes eYieldType = (YieldTypes)lua_tointeger(L, 3);26792680	ReligionTypes eMajority = pkCity->GetCityReligions()->GetReligiousMajority();2681	if(eMajority != NO_RELIGION)2682	{2683		const CvReligion* pReligion = GC.getGame().GetGameReligions()->GetReligion(eMajority, pkCity->getOwner());2684		if(pReligion)2685		{	2686			int iFollowers = pkCity->GetCityReligions()->GetNumFollowers(eMajority);2687			iYieldFromBuilding += pReligion->m_Beliefs.GetBuildingClassYieldChange(eBuildingClass, eYieldType, iFollowers);2688			BeliefTypes eSecondaryPantheon = pkCity->GetCityReligions()->GetSecondaryReligionPantheonBelief();2689			if (eSecondaryPantheon != NO_BELIEF)2690			{2691				iFollowers =  pkCity->GetCityReligions()->GetNumFollowers(pkCity->GetCityReligions()->GetSecondaryReligion());2692				if (iFollowers >= GC.GetGameBeliefs()->GetEntry(eSecondaryPantheon)->GetMinFollowers())2693				{2694					iYieldFromBuilding += GC.GetGameBeliefs()->GetEntry(eSecondaryPantheon)->GetBuildingClassYieldChange(eBuildingClass, eYieldType);2695				}2696			}2697		}2698	}2699	lua_pushinteger(L, iYieldFromBuilding);2700	return 1;2701}

Calls

Called by