Bazaar developer reference

CvGameCulture::GetGreatWorkTooltip(int, PlayerTypes) const

Defined in
CvCultureClasses.cpp, line 165
Class
CvGameCulture
Hook name
CivHooks::CvGameCulture_GetGreatWorkTooltip

Hooks

static bool BeforeCvGameCulture_GetGreatWorkTooltip(const CvGameCulture* self, int iIndex, PlayerTypes eOwner, CvString& result);static void AfterCvGameCulture_GetGreatWorkTooltip(const CvGameCulture* self, int iIndex, PlayerTypes eOwner, CvString& result);static CvString ReplaceCvGameCulture_GetGreatWorkTooltip(CvString (*original)(const CvGameCulture*, int, PlayerTypes), const CvGameCulture* self, int iIndex, PlayerTypes eOwner);CivRegisterBefore<CivHooks::CvGameCulture_GetGreatWorkTooltip>(host, &BeforeCvGameCulture_GetGreatWorkTooltip);CivRegisterAfter<CivHooks::CvGameCulture_GetGreatWorkTooltip>(host, &AfterCvGameCulture_GetGreatWorkTooltip);CivRegisterReplace<CivHooks::CvGameCulture_GetGreatWorkTooltip>(host, &ReplaceCvGameCulture_GetGreatWorkTooltip);

Code

164/// Returns UI tooltip for this Great Work165CvString CvGameCulture::GetGreatWorkTooltip(int iIndex, PlayerTypes eOwner) const166{167	CvAssertMsg (iIndex < GetNumGreatWorks(), "Bad Great Work index");168	CvString szTooltip = "";169170	const CvGreatWork *pWork = &m_CurrentGreatWorks[iIndex];171172	CvString strYearString;173	CvGameTextMgr::setDateStr(strYearString,174		pWork->m_iTurnFounded,175		false /*bSave*/,176		GC.getGame().getCalendar(),177		GC.getGame().getStartYear(),178		GC.getGame().getGameSpeedType());179180	Localization::String strGreatWorkName = Localization::Lookup(CultureHelpers::GetGreatWorkName(pWork->m_eType));181182	szTooltip = strGreatWorkName.toUTF8();183	szTooltip += "[NEWLINE]";184185	if (strlen(pWork->m_szGreatPersonName) > 0)186	{187		szTooltip += pWork->m_szGreatPersonName;188		szTooltip += "[NEWLINE]";189	}190	szTooltip += GET_PLAYER(pWork->m_ePlayer).getCivilizationShortDescription();191	szTooltip += "[NEWLINE]";192	szTooltip += GC.getEraInfo(pWork->m_eEra)->GetDescription();193	szTooltip += " (";194	szTooltip += strYearString;195	szTooltip += ")";196	szTooltip += "[NEWLINE]";197	CvString cultureString;198199#if defined(MOD_API_UNIFIED_YIELDS)200	cultureString = "";201	char* sPrefix = "";202	int iTourismPerWork = GC.getBASE_TOURISM_PER_GREAT_WORK();203	int iValue;204	205	for (int iYield = 0; iYield < NUM_YIELD_TYPES; iYield++) {206		YieldTypes eYield = (YieldTypes) iYield;207		208		if (eYield == YIELD_CULTURE) {209			iValue = GC.getBASE_CULTURE_PER_GREAT_WORK();210#if defined(MOD_API_UNIFIED_YIELDS_TOURISM)211		} else if (eYield == YIELD_TOURISM) {212			iValue = iTourismPerWork;213#endif214		} else {215			iValue = 0;216		}217218		iValue += GET_PLAYER(eOwner).GetGreatWorkYieldChange(eYield);219		iValue += GET_PLAYER(eOwner).GetPlayerTraits()->GetGreatWorkYieldChanges(eYield);220221		CvCity* pCity = GetGreatWorkCity(iIndex);222		if (pCity) {223			ReligionTypes eMajority = pCity->GetCityReligions()->GetReligiousMajority();224			if(eMajority >= RELIGION_PANTHEON)225			{226				const CvReligion* pReligion = GC.getGame().GetGameReligions()->GetReligion(eMajority, pCity->getOwner());227				if(pReligion)228				{229					iValue += pReligion->m_Beliefs.GetGreatWorkYieldChange(pCity->getPopulation(), eYield);230					BeliefTypes eSecondaryPantheon = pCity->GetCityReligions()->GetSecondaryReligionPantheonBelief();231					if (eSecondaryPantheon != NO_BELIEF)232					{233						iValue += GC.GetGameBeliefs()->GetEntry(eSecondaryPantheon)->GetGreatWorkYieldChange(eYield);234					}235				}236			}237		}238239		if (iValue > 0) {240			cultureString.Format("%s%s+%d %s", cultureString.c_str(), sPrefix, iValue, GC.getYieldInfo(eYield)->getIconString());241			sPrefix = ", ";242		}243	}244	245#if !defined(MOD_API_UNIFIED_YIELDS_TOURISM)246	cultureString.Format("%s, +%d [ICON_TOURISM]", cultureString.c_str(), iTourismPerWork);247#endif248#else249	int iCulturePerWork = GC.getBASE_CULTURE_PER_GREAT_WORK();250	iCulturePerWork += GET_PLAYER(eOwner).GetGreatWorkYieldChange(YIELD_CULTURE);251	int iTourismPerWork = GC.getBASE_TOURISM_PER_GREAT_WORK();252		cultureString.Format ("+%d [ICON_CULTURE], +%d [ICON_TOURISM]", iCulturePerWork, iTourismPerWork);253#endif254255	szTooltip += cultureString;256257	return szTooltip;258}

Calls

Called by