CvPlayer::GetUnhappinessFromCityForUI(CvCity *) const
- Defined in
- CvPlayer.cpp, line 12454
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_GetUnhappinessFromCityForUI
Hooks
static bool BeforeCvPlayer_GetUnhappinessFromCityForUI(const CvPlayer* self, CvCity* pCity, int& result);static void AfterCvPlayer_GetUnhappinessFromCityForUI(const CvPlayer* self, CvCity* pCity, int& result);static int ReplaceCvPlayer_GetUnhappinessFromCityForUI(int (*original)(const CvPlayer*, CvCity*), const CvPlayer* self, CvCity* pCity);CivRegisterBefore<CivHooks::CvPlayer_GetUnhappinessFromCityForUI>(host, &BeforeCvPlayer_GetUnhappinessFromCityForUI);CivRegisterAfter<CivHooks::CvPlayer_GetUnhappinessFromCityForUI>(host, &AfterCvPlayer_GetUnhappinessFromCityForUI);CivRegisterReplace<CivHooks::CvPlayer_GetUnhappinessFromCityForUI>(host, &ReplaceCvPlayer_GetUnhappinessFromCityForUI);
Code
12453/// Used for providing info to the player12454int CvPlayer::GetUnhappinessFromCityForUI(CvCity* pCity) const12455{12456 int iNumCitiesUnhappinessTimes100 = 0;12457 int iPopulationUnhappinessTimes100 = 0;1245812459 int iPopulation = pCity->getPopulation() * 100;1246012461 // No Unhappiness from Specialist Pop? (Policies, etc.)12462 if(isHalfSpecialistUnhappiness())12463 {12464 int iSpecialistCount = pCity->GetCityCitizens()->GetTotalSpecialistCount() * 100;12465 iPopulation -= (iSpecialistCount / 2);12466 }1246712468 // Occupied?12469 if(pCity->IsOccupied() && !pCity->IsIgnoreCityForHappiness())12470 {12471 iNumCitiesUnhappinessTimes100 += (100 * /*5*/ GC.getUNHAPPINESS_PER_CAPTURED_CITY());12472 iPopulationUnhappinessTimes100 += int(iPopulation* /*1.34f*/ GC.getUNHAPPINESS_PER_OCCUPIED_POPULATION());1247312474 // Mod (Policies, etc.)12475 if(GetOccupiedPopulationUnhappinessMod() != 0)12476 {12477 iPopulationUnhappinessTimes100 *= (100 + GetOccupiedPopulationUnhappinessMod());12478 iPopulationUnhappinessTimes100 /= 100;12479 }12480 }12481 // Normal City12482 else12483 {12484 iNumCitiesUnhappinessTimes100 += (100 * /*2*/ GC.getUNHAPPINESS_PER_CITY());12485 iPopulationUnhappinessTimes100 += (iPopulation* /*1*/ GC.getUNHAPPINESS_PER_POPULATION());1248612487 if(pCity->isCapital() && GetCapitalUnhappinessMod() != 0)12488 {12489 iPopulationUnhappinessTimes100 *= (100 + GetCapitalUnhappinessMod());12490 iPopulationUnhappinessTimes100 /= 100;12491 }1249212493 iPopulationUnhappinessTimes100 *= (100 + GetUnhappinessMod());12494 iPopulationUnhappinessTimes100 /= 100;1249512496 iPopulationUnhappinessTimes100 *= 100 + GetPlayerTraits()->GetPopulationUnhappinessModifier();12497 iPopulationUnhappinessTimes100 /= 100;12498 }1249912500 // Population Handicap mod12501 iPopulationUnhappinessTimes100 *= getHandicapInfo().getPopulationUnhappinessMod();12502 iPopulationUnhappinessTimes100 /= 100;1250312504 // City Count Player mod12505 int iMod = 0;12506 iMod += GetCityCountUnhappinessMod();12507 iMod += GetPlayerTraits()->GetCityUnhappinessModifier();1250812509 iNumCitiesUnhappinessTimes100 *= (100 + iMod);12510 iNumCitiesUnhappinessTimes100 /= 100;1251112512 // City Count Handicap mod12513 iNumCitiesUnhappinessTimes100 *= getHandicapInfo().getNumCitiesUnhappinessMod();12514 iNumCitiesUnhappinessTimes100 /= 100;1251512516 // City Count Map size mod12517 iNumCitiesUnhappinessTimes100 *= GC.getMap().getWorldInfo().getNumCitiesUnhappinessPercent();12518 iNumCitiesUnhappinessTimes100 /= 100;1251912520 return iNumCitiesUnhappinessTimes100 + iPopulationUnhappinessTimes100;12521}
Calls
- CvCity::GetCityCitizens() const
- CvCity::getPopulation(bool) const
- CvCity::isCapital() const
- CvCity::IsIgnoreCityForHappiness() const
- CvCity::IsOccupied() const
- CvCityCitizens::GetTotalSpecialistCount() const
- CvGlobals::getMap()
- CvGlobals::getUNHAPPINESS_PER_CAPTURED_CITY()
- CvGlobals::getUNHAPPINESS_PER_CITY()
- CvGlobals::getUNHAPPINESS_PER_OCCUPIED_POPULATION()
- CvGlobals::getUNHAPPINESS_PER_POPULATION()
- CvHandicapInfo::getNumCitiesUnhappinessMod() const
- CvHandicapInfo::getPopulationUnhappinessMod() const
- CvMap::getWorldInfo() const
- CvPlayer::GetCapitalUnhappinessMod() const
- CvPlayer::GetCityCountUnhappinessMod() const
- CvPlayer::getHandicapInfo() const
- CvPlayer::GetOccupiedPopulationUnhappinessMod() const
- CvPlayer::GetPlayerTraits() const
- CvPlayer::GetUnhappinessMod() const
- CvPlayer::isHalfSpecialistUnhappiness() const
- CvPlayerTraits::GetCityUnhappinessModifier() const
- CvPlayerTraits::GetPopulationUnhappinessModifier() const
- CvWorldInfo::getNumCitiesUnhappinessPercent() const