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
- CvBuildingEntry::GetBuildingClassType() const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getNumPolicyInfos()
- CvGlobals::getPolicyInfo(PolicyTypes)
CvLuaScopedInstance::GetInstance- CvPlayer::GetPlayerPolicies() const
- CvPlayerPolicies::HasPolicy(PolicyTypes) const
- CvPlayerPolicies::IsPolicyBlocked(PolicyTypes) const
- CvPolicyEntry::GetBuildingClassHappiness(int) const
lua_pushintegerlua_tointeger