CvCityCulture::GetBaseTourismBeforeModifiers()
- Defined in
- CvCultureClasses.cpp, line 4436
- Class
- CvCityCulture
- Hook name
CivHooks::CvCityCulture_GetBaseTourismBeforeModifiers
Hooks
static bool BeforeCvCityCulture_GetBaseTourismBeforeModifiers(CvCityCulture* self, int& result);static void AfterCvCityCulture_GetBaseTourismBeforeModifiers(CvCityCulture* self, int& result);static int ReplaceCvCityCulture_GetBaseTourismBeforeModifiers(int (*original)(CvCityCulture*), CvCityCulture* self);CivRegisterBefore<CivHooks::CvCityCulture_GetBaseTourismBeforeModifiers>(host, &BeforeCvCityCulture_GetBaseTourismBeforeModifiers);CivRegisterAfter<CivHooks::CvCityCulture_GetBaseTourismBeforeModifiers>(host, &AfterCvCityCulture_GetBaseTourismBeforeModifiers);CivRegisterReplace<CivHooks::CvCityCulture_GetBaseTourismBeforeModifiers>(host, &ReplaceCvCityCulture_GetBaseTourismBeforeModifiers);
Code
4435/// Compute raw tourism from this city4436int CvCityCulture::GetBaseTourismBeforeModifiers()4437{4438 // If we're in Resistance, then no Tourism!4439 if(m_pCity->IsResistance() || m_pCity->IsRazing())4440 {4441 return 0;4442 }44434444#if defined(MOD_GLOBAL_GREATWORK_YIELDTYPES)4445 // Ignore those Great Works in storage (ie not generating a yield)4446 int iBase = GetNumGreatWorks(false) * GC.getBASE_TOURISM_PER_GREAT_WORK();4447#else4448 int iBase = GetNumGreatWorks() * GC.getBASE_TOURISM_PER_GREAT_WORK();4449#endif4450 int iBonus = (m_pCity->GetCityBuildings()->GetGreatWorksTourismModifier() * iBase / 100);4451 iBase += iBonus;44524453#if defined(MOD_GLOBAL_GREATWORK_YIELDTYPES)4454 iBase += m_pCity->GetCityBuildings()->GetThemingBonuses(YIELD_CULTURE);4455#else4456 iBase += m_pCity->GetCityBuildings()->GetThemingBonuses();4457#endif44584459#if defined(MOD_API_UNIFIED_YIELDS_TOURISM)4460 // Add in all the tourism from yields4461 iBase += m_pCity->getYieldRate(YIELD_TOURISM, false);4462#endif44634464 int iPercent = m_pCity->GetCityBuildings()->GetLandmarksTourismPercent();4465 if (iPercent > 0)4466 {4467 int iFromWonders = GetCultureFromWonders();4468 int iFromNaturalWonders = GetCultureFromNaturalWonders();4469#if defined(MOD_API_UNIFIED_YIELDS)4470 int iFromImprovements = GetYieldFromImprovements(YIELD_CULTURE);4471#else4472 int iFromImprovements = GetCultureFromImprovements();4473#endif4474 iBase += ((iFromWonders + iFromNaturalWonders + iFromImprovements) * iPercent / 100);4475 }44764477 ReligionTypes eMajority = m_pCity->GetCityReligions()->GetReligiousMajority();4478 const CvReligion* pReligion = GC.getGame().GetGameReligions()->GetReligion(eMajority, m_pCity->getOwner());4479 if(pReligion)4480 {4481 int iFaithBuildingTourism = pReligion->m_Beliefs.GetFaithBuildingTourism();4482 if (iFaithBuildingTourism > 0)4483 {4484 iBase += m_pCity->GetCityBuildings()->GetNumBuildingsFromFaith() * iFaithBuildingTourism;4485 }44864487 // Buildings4488 for(int jJ = 0; jJ < GC.getNumBuildingClassInfos(); jJ++)4489 {4490 BuildingClassTypes eBuildingClass = (BuildingClassTypes)jJ;44914492 CvBuildingClassInfo* pkBuildingClassInfo = GC.getBuildingClassInfo(eBuildingClass);4493 if(!pkBuildingClassInfo)4494 {4495 continue;4496 }44974498 CvCivilizationInfo& playerCivilizationInfo = GET_PLAYER(m_pCity->getOwner()).getCivilizationInfo();4499 BuildingTypes eBuilding = (BuildingTypes)playerCivilizationInfo.getCivilizationBuildings(eBuildingClass);45004501 if(eBuilding != NO_BUILDING)4502 {4503 if(m_pCity->GetCityBuildings()->GetNumBuilding(eBuilding) > 0)4504 {4505#if defined(MOD_BUGFIX_MINOR)4506 iBase += pReligion->m_Beliefs.GetBuildingClassTourism(eBuildingClass) * m_pCity->GetCityBuildings()->GetNumBuilding(eBuilding);4507#else4508 iBase += pReligion->m_Beliefs.GetBuildingClassTourism(eBuildingClass);4509#endif4510 }4511 }4512 }4513 }45144515 // Tech enhanced Tourism4516 for(int jJ = 0; jJ < GC.getNumBuildingClassInfos(); jJ++)4517 {4518 BuildingClassTypes eBuildingClass = (BuildingClassTypes)jJ;45194520 CvBuildingClassInfo* pkBuildingClassInfo = GC.getBuildingClassInfo(eBuildingClass);4521 if(!pkBuildingClassInfo)4522 {4523 continue;4524 }45254526 CvCivilizationInfo& playerCivilizationInfo = GET_PLAYER(m_pCity->getOwner()).getCivilizationInfo();4527 BuildingTypes eBuilding = (BuildingTypes)playerCivilizationInfo.getCivilizationBuildings(eBuildingClass);45284529 if(eBuilding != NO_BUILDING)4530 {4531 CvBuildingEntry *pkEntry = GC.getBuildingInfo(eBuilding);4532 if(pkEntry && m_pCity->GetCityBuildings()->GetNumBuilding(eBuilding) > 0)4533 {4534 int iTourism = pkEntry->GetTechEnhancedTourism();4535 if (iTourism > 0 && GET_TEAM(m_pCity->getTeam()).GetTeamTechs()->HasTech((TechTypes)pkEntry->GetEnhancedYieldTech()))4536 {4537#if defined(MOD_BUGFIX_MINOR)4538 iBase += iTourism * m_pCity->GetCityBuildings()->GetNumBuilding(eBuilding);4539#else4540 iBase += iTourism;4541#endif4542 }4543 }4544 }4545 }45464547 return iBase;4548}
Calls
- CvBuildingEntry::GetEnhancedYieldTech() const
- CvBuildingEntry::GetTechEnhancedTourism() const
- CvCity::GetCityBuildings() const
- CvCity::GetCityReligions() const
- CvCity::getOwner() const
- CvCity::getTeam() const
- CvCity::getYieldRate(YieldTypes, bool) const
- CvCity::IsRazing() const
- CvCity::IsResistance() const
- CvCityBuildings::GetGreatWorksTourismModifier() const
- CvCityBuildings::GetLandmarksTourismPercent() const
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvCityBuildings::GetNumBuildingsFromFaith() const
- CvCityBuildings::GetThemingBonuses(YieldTypes) const
- CvCityCulture::GetCultureFromNaturalWonders() const
- CvCityCulture::GetCultureFromWonders() const
- CvCityCulture::GetNumGreatWorks(bool) const
- CvCityCulture::GetYieldFromImprovements(YieldTypes) const
- CvCityReligions::GetReligiousMajority()
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGame::GetGameReligions()
- CvGameReligions::GetReligion(ReligionTypes, PlayerTypes) const
- CvGlobals::getBASE_TOURISM_PER_GREAT_WORK()
- CvGlobals::getBuildingClassInfo(BuildingClassTypes)
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getGame()
- CvGlobals::getNumBuildingClassInfos()
- CvPlayer::getCivilizationInfo() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvReligionBeliefs::GetBuildingClassTourism(BuildingClassTypes) const
- CvReligionBeliefs::GetFaithBuildingTourism() const
- CvTeam::getTeam(TeamTypes)
- CvTeam::GetTeamTechs() const
- CvTeamTechs::HasTech(TechTypes) const