Bazaar developer reference

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

Called by