Hooks
static bool BeforeCvCityCulture_GetThemingTooltip(const CvCityCulture* self, BuildingClassTypes eBuildingClass, CvString& result);static void AfterCvCityCulture_GetThemingTooltip(const CvCityCulture* self, BuildingClassTypes eBuildingClass, CvString& result);static CvString ReplaceCvCityCulture_GetThemingTooltip(CvString (*original)(const CvCityCulture*, BuildingClassTypes), const CvCityCulture* self, BuildingClassTypes eBuildingClass);CivRegisterBefore<CivHooks::CvCityCulture_GetThemingTooltip>(host, &BeforeCvCityCulture_GetThemingTooltip);CivRegisterAfter<CivHooks::CvCityCulture_GetThemingTooltip>(host, &AfterCvCityCulture_GetThemingTooltip);CivRegisterReplace<CivHooks::CvCityCulture_GetThemingTooltip>(host, &ReplaceCvCityCulture_GetThemingTooltip);
Code
5173CvString CvCityCulture::GetThemingTooltip(BuildingClassTypes eBuildingClass) const5174{5175 CvPlayer &kPlayer = GET_PLAYER(m_pCity->getOwner());5176 CvString szBonusString = "";5177 CvString szThemeDescription = "";5178 CvString szRtnValue = "";51795180 if (IsThemingBonusPossible(eBuildingClass))5181 {5182 BuildingTypes eBuilding = (BuildingTypes)kPlayer.getCivilizationInfo().getCivilizationBuildings(eBuildingClass);5183 CvBuildingEntry *pkBuilding = GC.GetGameBuildings()->GetEntry(eBuilding);5184 if (pkBuilding)5185 {5186 int iIndex = GetThemingBonusIndex(eBuildingClass);5187 if (iIndex >= 0)5188 {5189 szBonusString.Format("+%d: ", GetThemingBonus(eBuildingClass));51905191 if (pkBuilding->GetBuildingClassType() == (BuildingClassTypes)GC.getInfoTypeForString("BUILDINGCLASS_LOUVRE") ||5192 pkBuilding->GetBuildingClassType() == (BuildingClassTypes)GC.getInfoTypeForString("BUILDINGCLASS_HERMITAGE"))5193 {5194 szThemeDescription = GetLocalizedText(pkBuilding->GetThemingBonusInfo(iIndex)->GetDescription());5195 }5196 else5197 {5198 int iGreatWork = m_pCity->GetCityBuildings()->GetBuildingGreatWork(eBuildingClass, 0);5199 CvGreatWork work = GC.getGame().GetGameCulture()->m_CurrentGreatWorks[iGreatWork];5200 CvString szEraString = GC.getEraInfo(work.m_eEra)->getShortDesc();5201 CvString szCivAdj = GET_PLAYER(m_pCity->getOwner()).getCivilizationAdjectiveKey();5202 switch (iIndex)5203 {5204 case 0:5205 case 2:5206 szThemeDescription = GetLocalizedText(pkBuilding->GetThemingBonusInfo(iIndex)->GetDescription(), szEraString, szCivAdj);5207 break;5208 case 1:5209 case 3:5210 szCivAdj = "TXT_KEY_CO_WORLD_MUSEUM";5211 szThemeDescription = GetLocalizedText(pkBuilding->GetThemingBonusInfo(iIndex)->GetDescription(), szEraString, szCivAdj);5212 break;5213 case 4:5214 case 5:5215 case 7:5216 szThemeDescription = GetLocalizedText(pkBuilding->GetThemingBonusInfo(iIndex)->GetDescription(), szEraString);5217 break;5218 case 6:5219 szThemeDescription = GetLocalizedText(pkBuilding->GetThemingBonusInfo(iIndex)->GetDescription(), szCivAdj, szEraString);5220 break;5221 case 8:5222 case 10:5223 szThemeDescription = GetLocalizedText(pkBuilding->GetThemingBonusInfo(iIndex)->GetDescription(), szCivAdj);5224 break;5225 case 9:5226 case 11:5227 szCivAdj = "TXT_KEY_CO_WORLD_MUSEUM";5228 szThemeDescription = GetLocalizedText(pkBuilding->GetThemingBonusInfo(iIndex)->GetDescription(), szCivAdj);5229 break;5230 }5231 }5232 szRtnValue = szBonusString + szThemeDescription;5233 }5234 else5235 {5236 szRtnValue = GetLocalizedText("TXT_KEY_CO_NO_THEME");5237 szRtnValue += "[NEWLINE][NEWLINE]";5238 szRtnValue += GetLocalizedText(pkBuilding->GetThemingBonusHelp());5239 }5240 }5241 }52425243 return szRtnValue;5244}