Bazaar developer reference

CvLuaPlayer::lGetExtraBuildingHappinessFromPolicies(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 10014
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetExtraBuildingHappinessFromPolicies

Hooks

static bool BeforeCvLuaPlayer_lGetExtraBuildingHappinessFromPolicies(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetExtraBuildingHappinessFromPolicies(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetExtraBuildingHappinessFromPolicies(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetExtraBuildingHappinessFromPolicies>(host, &BeforeCvLuaPlayer_lGetExtraBuildingHappinessFromPolicies);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetExtraBuildingHappinessFromPolicies>(host, &AfterCvLuaPlayer_lGetExtraBuildingHappinessFromPolicies);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetExtraBuildingHappinessFromPolicies>(host, &ReplaceCvLuaPlayer_lGetExtraBuildingHappinessFromPolicies);

Code

10014int CvLuaPlayer::lGetExtraBuildingHappinessFromPolicies(lua_State* L)10015{10016	CvPlayer* pkPlayer = GetInstance(L);10017	if(pkPlayer)10018	{10019		const BuildingTypes eBuilding = (BuildingTypes) lua_tointeger(L, 2);10020		CvBuildingEntry* pkBuildingInfo = GC.getBuildingInfo(eBuilding);10021		if(pkBuildingInfo)10022		{10023			BuildingClassTypes eBuildingClass = (BuildingClassTypes)pkBuildingInfo->GetBuildingClassType();1002410025			int iExtraHappiness = 0;1002610027			for(int iPolicyLoop = 0; iPolicyLoop < GC.getNumPolicyInfos(); iPolicyLoop++)10028			{10029				const PolicyTypes ePolicy = static_cast<PolicyTypes>(iPolicyLoop);10030				CvPolicyEntry* pkPolicyInfo = GC.getPolicyInfo(ePolicy);10031				if(pkPolicyInfo)10032				{10033					if(pkPlayer->GetPlayerPolicies()->HasPolicy(ePolicy) && !pkPlayer->GetPlayerPolicies()->IsPolicyBlocked(ePolicy))10034					{10035						iExtraHappiness += pkPolicyInfo->GetBuildingClassHappiness(eBuildingClass);10036					}10037				}10038			}1003910040			lua_pushinteger(L, iExtraHappiness);10041			return 1;10042		}10043	}1004410045	//BUG: This can't be right...10046	lua_pushinteger(L, -1);10047	return 0;10048}

Calls

Called by