//------------------------------------------------------------------------------ void CvDllNetMessageHandler::ResponseSellBuilding(PlayerTypes ePlayer, int iCityID, BuildingTypes eBuilding) { CvCity* pCity = GET_PLAYER(ePlayer).getCity(iCityID); if(pCity) { pCity->GetCityBuildings()->DoSellBuilding(eBuilding); #if defined(MOD_EVENTS_CITY) if (MOD_EVENTS_CITY) { GAMEEVENTINVOKE_HOOK(GAMEEVENT_CitySoldBuilding, ePlayer, iCityID, eBuilding); } else { #endif ICvEngineScriptSystem1* pkScriptSystem = gDLL->GetScriptSystem(); if (pkScriptSystem) { CvLuaArgsHandle args; args->Push(ePlayer); args->Push(iCityID); args->Push(eBuilding); bool bResult; LuaSupport::CallHook(pkScriptSystem, "CitySoldBuilding", args.get(), bResult); } #if defined(MOD_EVENTS_CITY) } #endif } }
//------------------------------------------------------------------------------ void CvDllNetMessageHandler::ResponseSellBuilding(PlayerTypes ePlayer, int iCityID, BuildingTypes eBuilding) { CvCity* pCity = GET_PLAYER(ePlayer).getCity(iCityID); if(pCity) { pCity->GetCityBuildings()->DoSellBuilding(eBuilding); } }
//------------------------------------------------------------------------------ void CvDllNetMessageHandler::ResponseSellBuilding(PlayerTypes ePlayer, int iCityID, BuildingTypes eBuilding) { CvCity* pCity = GET_PLAYER(ePlayer).getCity(iCityID); if(pCity) { pCity->GetCityBuildings()->DoSellBuilding(eBuilding); #if defined(MOD_EVENTS_CITY) if (MOD_EVENTS_CITY) { GAMEEVENTINVOKE_HOOK(GAMEEVENT_CitySoldBuilding, ePlayer, iCityID, eBuilding); } #endif } }
/// What's the total Happiness benefit we could get from all policies/tenets in the branch based on our current buildings? int CvPolicyAI::GetBranchBuildingHappiness(CvPlayer* pPlayer, PolicyBranchTypes eBranch) { // Policy Building Mods int iSpecialPolicyBuildingHappiness = 0; int iBuildingClassLoop; BuildingClassTypes eBuildingClass; for(int iPolicyLoop = 0; iPolicyLoop < GC.getNumPolicyInfos(); iPolicyLoop++) { PolicyTypes ePolicy = (PolicyTypes)iPolicyLoop; CvPolicyEntry* pkPolicyInfo = GC.getPolicyInfo(ePolicy); if(pkPolicyInfo) { if (pkPolicyInfo->GetPolicyBranchType() == eBranch) { for(iBuildingClassLoop = 0; iBuildingClassLoop < GC.getNumBuildingClassInfos(); iBuildingClassLoop++) { eBuildingClass = (BuildingClassTypes) iBuildingClassLoop; CvBuildingClassInfo* pkBuildingClassInfo = GC.getBuildingClassInfo(eBuildingClass); if (!pkBuildingClassInfo) { continue; } if (pkPolicyInfo->GetBuildingClassHappiness(eBuildingClass) != 0) { BuildingTypes eBuilding = (BuildingTypes)pPlayer->getCivilizationInfo().getCivilizationBuildings(eBuildingClass); if (eBuilding != NO_BUILDING) { CvCity *pCity; int iLoop; for (pCity = pPlayer->firstCity(&iLoop); pCity != NULL; pCity = pPlayer->nextCity(&iLoop)) { if (pCity->GetCityBuildings()->GetNumBuilding(eBuilding) > 0) { iSpecialPolicyBuildingHappiness += pkPolicyInfo->GetBuildingClassHappiness(eBuildingClass); } } } } } } } } return iSpecialPolicyBuildingHappiness; }
//------------------------------------------------------------------------------ void CvDllNetMessageHandler::ResponseSellBuilding(PlayerTypes ePlayer, int iCityID, BuildingTypes eBuilding) { CvCity* pCity = GET_PLAYER(ePlayer).getCity(iCityID); if(pCity) { pCity->GetCityBuildings()->DoSellBuilding(eBuilding); ICvEngineScriptSystem1* pkScriptSystem = gDLL->GetScriptSystem(); if (pkScriptSystem) { CvLuaArgsHandle args; args->Push(ePlayer); args->Push(iCityID); args->Push(eBuilding); bool bResult; LuaSupport::CallHook(pkScriptSystem, "CitySoldBuilding", args.get(), bResult); } } }