Punched out a quick and dirty function for checking. I really, really don't want to play ping pong with filters on this (it gets complicated very quickly), but this should do the trick.
Rome can now get: all UBs, regardless of national wonder status, and all non-national-wonder buildings.
Everyone else: the same as before
Code:bool CvPlayer::IsValidBuildingForPlayer(CvCity* pCity, BuildingTypes eBuilding, bool bGift, bool bRecapture) { CvBuildingEntry* pkLoopBuildingInfo = GC.getBuildingInfo(eBuilding); if (!pkLoopBuildingInfo) return false; if (pkLoopBuildingInfo->IsDummy()) return false; const CvBuildingClassInfo& pkClassInfo = pkLoopBuildingInfo->GetBuildingClassInfo(); bool bIsNationalWonder = ::isNationalWonderClass(pkClassInfo); bool bCivUnique = pkClassInfo.getDefaultBuildingIndex() != eBuilding; bool bProductionMaxed = isProductionMaxedBuildingClass((BuildingClassTypes)pkLoopBuildingInfo->GetBuildingClassType(), true); if (GetPlayerTraits()->IsKeepConqueredBuildings()) { if (bProductionMaxed || (bIsNationalWonder && !bCivUnique)) return false; } else { if (pkLoopBuildingInfo->IsNeverCapture() || bProductionMaxed || bIsNationalWonder) return false; if (bGift || bRecapture) return true; int iConquestChance = GC.getGame().getSmallFakeRandNum(34, *pCity->plot()) + GC.getGame().getSmallFakeRandNum(34, pkLoopBuildingInfo->GetID()) + GC.getGame().getSmallFakeRandNum(32, GC.getGame().GetCultureAverage()); return iConquestChance <= pkLoopBuildingInfo->GetConquestProbability(); } return true; }
Modders: if you see a small change you want added, let me know. Otherwise I'll hotfix this in this afternoon.
G
So what are some examples of buildings they get now (in 10-10) thst they would not get with the hotfix?