CvCitySpecializationAI::LogSpecializationUpdate(CitySpecializationUpdateType)
- Defined in
- CvCitySpecializationAI.cpp, line 1509
- Class
- CvCitySpecializationAI
- Hook name
CivHooks::CvCitySpecializationAI_LogSpecializationUpdate
Hooks
static bool BeforeCvCitySpecializationAI_LogSpecializationUpdate(CvCitySpecializationAI* self, CitySpecializationUpdateType eUpdate);static void AfterCvCitySpecializationAI_LogSpecializationUpdate(CvCitySpecializationAI* self, CitySpecializationUpdateType eUpdate);static void ReplaceCvCitySpecializationAI_LogSpecializationUpdate(void (*original)(CvCitySpecializationAI*, CitySpecializationUpdateType), CvCitySpecializationAI* self, CitySpecializationUpdateType eUpdate);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvCitySpecializationAI_LogSpecializationUpdate::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvCitySpecializationAI_LogSpecializationUpdate);host->RegisterHook(host->pluginIndex, CivHooks::CvCitySpecializationAI_LogSpecializationUpdate::ID, CIV_HOOK_AFTER, (void*)&AfterCvCitySpecializationAI_LogSpecializationUpdate);host->RegisterHook(host->pluginIndex, CivHooks::CvCitySpecializationAI_LogSpecializationUpdate::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvCitySpecializationAI_LogSpecializationUpdate);
Code
1508/// Report the reason for reevaluating specializations1509void CvCitySpecializationAI::LogSpecializationUpdate(CitySpecializationUpdateType eUpdate)1510{1511 if(GC.getLogging() && GC.getAILogging())1512 {1513 CvString strOutBuf;1514 CvString strBaseString;1515 CvString strPlayerName;1516 CvString strTypeString;1517 FILogFile* pLog;15181519 // Find the name of this civ1520 strPlayerName = GetPlayer()->getCivilizationShortDescription();1521 pLog = LOGFILEMGR.GetLog(GetLogFileName(strPlayerName), FILogFile::kDontTimeStamp);15221523 // Get the leading info for this line1524 strBaseString.Format("%03d, ", GC.getGame().getElapsedGameTurns());1525 strBaseString += strPlayerName + ", ";15261527 switch(eUpdate)1528 {1529 case SPECIALIZATION_UPDATE_NEW_GRAND_STRATEGY:1530 {1531 CvAIGrandStrategyXMLEntry* pGrandStrategyInfo = GC.getAIGrandStrategyInfo(m_pPlayer->GetGrandStrategyAI()->GetActiveGrandStrategy());1532 if(NULL != pGrandStrategyInfo)1533 {1534 strTypeString.Format("Update: New grand strategy: %s", pGrandStrategyInfo->GetType());1535 }1536 }1537 break;1538 case SPECIALIZATION_UPDATE_NOW_AT_WAR:1539 strTypeString = "Update: New war";1540 break;1541 case SPECIALIZATION_UPDATE_CITY_FOUNDED:1542 strTypeString = "Update: City founded";1543 break;1544 case SPECIALIZATION_UPDATE_MY_CITY_CAPTURED:1545 strTypeString = "Update: My city captured";1546 break;1547 case SPECIALIZATION_UPDATE_ENEMY_CITY_CAPTURED:1548 strTypeString = "Update: Enemy city captured";1549 break;1550 case SPECIALIZATION_UPDATE_STRATEGY_NOW_ON:1551 strTypeString = "Update: War strategy turned on";1552 break;1553 case SPECIALIZATION_UPDATE_STRATEGY_NOW_OFF:1554 strTypeString = "Update: War strategy turned off";1555 break;1556 case SPECIALIZATION_UPDATE_RESEARCH_COMPLETE:1557 strTypeString = "Update: Tech research complete";1558 break;1559 case SPECIALIZATION_UPDATE_WONDER_BUILT_BY_RIVAL:1560 strTypeString = "Update: wonder built by rival, WONDER";1561 }1562 strOutBuf = strBaseString + strTypeString;1563 pLog->Msg(strOutBuf);1564 }1565}
Calls
- CvBaseInfo::GetType() const
- CvCitySpecializationAI::GetLogFileName(CvString &) const
- CvCitySpecializationAI::GetPlayer()
- CvGame::getElapsedGameTurns() const
- CvGlobals::getAIGrandStrategyInfo(AIGrandStrategyTypes)
- CvGlobals::getAILogging()
- CvGlobals::getGame()
- CvGlobals::getLogging()
- CvGrandStrategyAI::GetActiveGrandStrategy() const
- CvPlayer::getCivilizationShortDescription() const
- CvPlayer::GetGrandStrategyAI() const
CvString::CvStringCvString::FormatCvString::operator const char *CvString::operator=CvString::operator=FILogFile::MsgFILogFileMgr::GetInstanceFILogFileMgr::GetLogstd::basic_string::operator+=std::operator+std::operator+