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
- CvBeliefEntry::GetBuildingClassYieldChange(int, int) const
- CvBeliefEntry::GetMinFollowers() const
- CvBeliefXMLEntries::GetEntry(int)
- CvCity::GetCityReligions() const
- CvCity::getOwner() const
- CvCityReligions::GetNumFollowers(ReligionTypes)
- CvCityReligions::GetReligiousMajority()
- CvCityReligions::GetSecondaryReligion()
- CvCityReligions::GetSecondaryReligionPantheonBelief()
- CvGame::GetGameReligions()
- CvGameReligions::GetReligion(ReligionTypes, PlayerTypes) const
- CvGlobals::getGame()
- CvGlobals::GetGameBeliefs() const
CvLuaScopedInstance::GetInstance- CvReligionBeliefs::GetBuildingClassYieldChange(BuildingClassTypes, YieldTypes, int) const
lua_pushintegerlua_tointeger