CvCityStrategyAI::LogSpecializationChange(CitySpecializationTypes)
- Defined in
- CvCityStrategyAI.cpp, line 2102
- Class
- CvCityStrategyAI
- Hook name
CivHooks::CvCityStrategyAI_LogSpecializationChange
Hooks
static bool BeforeCvCityStrategyAI_LogSpecializationChange(CvCityStrategyAI* self, CitySpecializationTypes eSpecialization);static void AfterCvCityStrategyAI_LogSpecializationChange(CvCityStrategyAI* self, CitySpecializationTypes eSpecialization);static void ReplaceCvCityStrategyAI_LogSpecializationChange(void (*original)(CvCityStrategyAI*, CitySpecializationTypes), CvCityStrategyAI* self, CitySpecializationTypes eSpecialization);CivRegisterBefore<CivHooks::CvCityStrategyAI_LogSpecializationChange>(host, &BeforeCvCityStrategyAI_LogSpecializationChange);CivRegisterAfter<CivHooks::CvCityStrategyAI_LogSpecializationChange>(host, &AfterCvCityStrategyAI_LogSpecializationChange);CivRegisterReplace<CivHooks::CvCityStrategyAI_LogSpecializationChange>(host, &ReplaceCvCityStrategyAI_LogSpecializationChange);
Code
2102void CvCityStrategyAI::LogSpecializationChange(CitySpecializationTypes eSpecialization)2103{2104 if(GC.getLogging() && GC.getAILogging())2105 {2106 // Find the name of this civ and city2107 CvString playerName = GET_PLAYER(m_pCity->getOwner()).getCivilizationShortDescription();2108 CvString cityName = m_pCity->getName();21092110 FILogFile* pLog = LOGFILEMGR.GetLog(GetLogFileName(playerName, cityName), FILogFile::kDontTimeStamp);21112112 // Get the leading info for this line2113 CvString strBaseString;2114 strBaseString.Format("%03d, ", GC.getGame().getElapsedGameTurns());2115 strBaseString += playerName + ", " + cityName + ", ";21162117 CvString strOutBuf = strBaseString;21182119 CvCitySpecializationXMLEntry* pCitySpecializationInfo = GC.getCitySpecializationInfo(eSpecialization);2120 if(pCitySpecializationInfo != NULL)2121 {2122 const YieldTypes eYieldType = pCitySpecializationInfo->GetYieldType();21232124 CvString strYieldString = "Unknown";2125 if(eYieldType == NO_YIELD)2126 {2127 strYieldString = "General Economy";2128 }2129 else2130 {2131 CvYieldInfo* pYieldInfo = GC.getYieldInfo(eYieldType);2132 if(pYieldInfo != NULL)2133 {2134 strYieldString = pYieldInfo->GetDescription();2135 }2136 }21372138 CvString strTemp = "NEW SPECIALIZATION: Yield Type = ";2139 strOutBuf += strTemp + strYieldString;2140 }21412142 pLog->Msg(strOutBuf);2143 }2144}
Calls
- CvBaseInfo::GetDescription() const
- CvCity::getName() const
- CvCity::getOwner() const
- CvCitySpecializationXMLEntry::GetYieldType() const
- CvCityStrategyAI::GetLogFileName(CvString &, CvString &) const
- CvGame::getElapsedGameTurns() const
- CvGlobals::getAILogging()
- CvGlobals::getCitySpecializationInfo(CitySpecializationTypes)
- CvGlobals::getGame()
- CvGlobals::getLogging()
- CvGlobals::getYieldInfo(YieldTypes)
- CvPlayer::getCivilizationShortDescription() const
- CvPlayerAI::getPlayer(PlayerTypes)
CvString::CvStringCvString::CvStringCvString::CvStringCvString::FormatCvString::operator const char *CvString::operator=FILogFile::MsgFILogFileMgr::GetInstanceFILogFileMgr::GetLogstd::basic_string::operator+=std::operator+std::operator+