CvPlayer::getCivilizationCityName(CvString &, CivilizationTypes) const
- Defined in
- CvPlayer.cpp, line 3283
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_getCivilizationCityName
Hooks
static bool BeforeCvPlayer_getCivilizationCityName(const CvPlayer* self, CvString& szBuffer, CivilizationTypes eCivilization);static void AfterCvPlayer_getCivilizationCityName(const CvPlayer* self, CvString& szBuffer, CivilizationTypes eCivilization);static void ReplaceCvPlayer_getCivilizationCityName(void (*original)(const CvPlayer*, CvString&, CivilizationTypes), const CvPlayer* self, CvString& szBuffer, CivilizationTypes eCivilization);CivRegisterBefore<CivHooks::CvPlayer_getCivilizationCityName>(host, &BeforeCvPlayer_getCivilizationCityName);CivRegisterAfter<CivHooks::CvPlayer_getCivilizationCityName>(host, &AfterCvPlayer_getCivilizationCityName);CivRegisterReplace<CivHooks::CvPlayer_getCivilizationCityName>(host, &ReplaceCvPlayer_getCivilizationCityName);
Code
3283void CvPlayer::getCivilizationCityName(CvString& szBuffer, CivilizationTypes eCivilization) const3284{3285 int iRandOffset;3286 int iLoopName;32873288 CvCivilizationInfo* pkCivilizationInfo = GC.getCivilizationInfo(eCivilization);3289 if(pkCivilizationInfo == NULL)3290 {3291 //This should never happen.3292 return;3293 }32943295 if(isBarbarian())3296 {3297 iRandOffset = GC.getGame().getJonRandNum(pkCivilizationInfo->getNumCityNames(), "Random Barb Name");3298 }3299 else3300 {3301 iRandOffset = 0;3302 }33033304 // Minor Civs use special lists3305 if(isMinorCiv())3306 {3307 CvMinorCivInfo* pkMinorCivInfo = GC.getMinorCivInfo(GetMinorCivAI()->GetMinorCivType());3308 if(pkMinorCivInfo)3309 {3310 CvMinorCivInfo& kMinorCivInfo = *pkMinorCivInfo;3311 for(int iI = 0; iI < kMinorCivInfo.getNumCityNames(); iI++)3312 {3313 iLoopName = ((iI + iRandOffset) % kMinorCivInfo.getNumCityNames());33143315 const CvString strCityName = kMinorCivInfo.getCityNames(iLoopName);3316 CvString strName = GetLocalizedText(strCityName.c_str());33173318 if(isCityNameValid(strName, true))3319 {3320 szBuffer = strCityName;3321 break;3322 }3323 }3324 }3325 }3326 else3327 {3328 CvCivilizationInfo& kCivInfo = *pkCivilizationInfo;3329 for(int iI = 0; iI < kCivInfo.getNumCityNames(); iI++)3330 {3331 iLoopName = ((iI + iRandOffset) % kCivInfo.getNumCityNames());33323333 const CvString strCityName = kCivInfo.getCityNames(iLoopName);3334 CvString strName = GetLocalizedText(strCityName.c_str());33353336 if(isCityNameValid(strName, true))3337 {3338 szBuffer = strCityName;3339 break;3340 }3341 }3342 }3343}
Calls
- CvCivilizationInfo::getCityNames(int) const
- CvCivilizationInfo::getNumCityNames() const
- CvGame::getJonRandNum(int, const char *)
- CvGlobals::getCivilizationInfo(CivilizationTypes)
- CvGlobals::getGame()
- CvGlobals::getMinorCivInfo(MinorCivTypes)
- CvMinorCivAI::GetMinorCivType() const
- CvMinorCivInfo::getCityNames(int) const
- CvMinorCivInfo::getNumCityNames() const
- CvPlayer::GetMinorCivAI() const
- CvPlayer::isBarbarian() const
- CvPlayer::isCityNameValid(CvString &, bool) const
- CvPlayer::isMinorCiv() const
CvString::CvStringCvString::CvStringCvString::operator=- GetLocalizedText(const char *)
std::basic_string::c_str