Code
3994/// Build log filename3995void CvPlayerCulture::LogCultureData()3996{3997 CvTeam &pTeam = GET_TEAM(m_pPlayer->getTeam());39983999 if(!(GC.getLogging() && GC.getAILogging()))4000 {4001 return;4002 }40034004 static bool bFirstRun = true;4005 bool bBuildHeader = false;4006 CvString strHeader;4007 if(bFirstRun)4008 {4009 bFirstRun = false;4010 bBuildHeader = true;4011 }40124013 CvString strLog;4014 FILogFile* pLog;4015 CvString strPlayerName = m_pPlayer->getCivilizationShortDescription();4016 pLog = LOGFILEMGR.GetLog(GetLogFileName(strPlayerName), FILogFile::kDontTimeStamp);40174018 CvString str;4019 CvCity *pCity;4020 int iSpecialists = 0;40214022 // civ name4023 AppendToLog(strHeader, strLog, "Civ Name", strPlayerName);40244025 // turn4026 AppendToLog(strHeader, strLog, "Turn", GC.getGame().getGameTurn());40274028 // # cities4029 AppendToLog(strHeader, strLog, "# Cities", m_pPlayer->getNumCities());40304031 // Guilds4032 TechTypes eTechDrama = (TechTypes)GC.getInfoTypeForString("TECH_DRAMA", true);4033 TechTypes eTechGuilds = (TechTypes)GC.getInfoTypeForString("TECH_GUILDS", true);4034 TechTypes eTechAcoustics = (TechTypes)GC.getInfoTypeForString("TECH_ACOUSTICS", true);4035 BuildingClassTypes eWritersGuildClass = (BuildingClassTypes)GC.getInfoTypeForString("BUILDINGCLASS_WRITERS_GUILD", true);4036 BuildingClassTypes eArtistsGuildClass = (BuildingClassTypes)GC.getInfoTypeForString("BUILDINGCLASS_ARTISTS_GUILD", true);4037 BuildingClassTypes eMusiciansGuildClass = (BuildingClassTypes)GC.getInfoTypeForString("BUILDINGCLASS_MUSICIANS_GUILD", true);4038 BuildingTypes eWritersGuild = (BuildingTypes)GC.getInfoTypeForString("BUILDING_WRITERS_GUILD", true);4039 BuildingTypes eArtistsGuild = (BuildingTypes)GC.getInfoTypeForString("BUILDING_ARTISTS_GUILD", true);4040 BuildingTypes eMusiciansGuild = (BuildingTypes)GC.getInfoTypeForString("BUILDING_MUSICIANS_GUILD", true);40414042 if (eWritersGuildClass != NO_BUILDINGCLASS && eWritersGuild != NO_BUILDING)4043 {4044 AppendToLog(strHeader, strLog, "Drama", pTeam.GetTeamTechs()->HasTech(eTechDrama) ? "yes" : "no");4045 pCity = m_pPlayer->GetFirstCityWithBuildingClass(eWritersGuildClass);4046 AppendToLog(strHeader, strLog, "Writers' Guild", (pCity != NULL ? pCity->getName() : ""));4047 iSpecialists = (pCity != NULL) ? pCity->GetCityCitizens()->GetNumSpecialistsInBuilding(eWritersGuild) : 0;4048 AppendToLog(strHeader, strLog, "Spclsts", iSpecialists);4049 AppendToLog(strHeader, strLog, "Slots", GetNumAvailableGreatWorkSlots(CvTypes::getGREAT_WORK_SLOT_LITERATURE()));4050 }40514052 if (eArtistsGuildClass != NO_BUILDINGCLASS && eArtistsGuild != NO_BUILDING)4053 {4054 AppendToLog(strHeader, strLog, "Guilds", pTeam.GetTeamTechs()->HasTech(eTechGuilds) ? "yes" : "no");4055 pCity = m_pPlayer->GetFirstCityWithBuildingClass(eArtistsGuildClass);4056 AppendToLog(strHeader, strLog, "Artists' Guild", (pCity != NULL ? pCity->getName() : ""));4057 iSpecialists = (pCity != NULL) ? pCity->GetCityCitizens()->GetNumSpecialistsInBuilding(eArtistsGuild) : 0;4058 AppendToLog(strHeader, strLog, "Spclsts", iSpecialists);4059 AppendToLog(strHeader, strLog, "Slots", GetNumAvailableGreatWorkSlots(CvTypes::getGREAT_WORK_SLOT_ART_ARTIFACT()));4060 }40614062 if (eMusiciansGuildClass != NO_BUILDINGCLASS && eMusiciansGuild != NO_BUILDING)4063 {4064 AppendToLog(strHeader, strLog, "Acoustics", pTeam.GetTeamTechs()->HasTech(eTechAcoustics) ? "yes" : "no");4065 pCity = m_pPlayer->GetFirstCityWithBuildingClass(eMusiciansGuildClass);4066 AppendToLog(strHeader, strLog, "Musicians' Guild", (pCity != NULL ? pCity->getName() : ""));4067 iSpecialists = (pCity != NULL) ? pCity->GetCityCitizens()->GetNumSpecialistsInBuilding(eMusiciansGuild) : 0;4068 AppendToLog(strHeader, strLog, "Spclsts", iSpecialists);4069 AppendToLog(strHeader, strLog, "Slots", GetNumAvailableGreatWorkSlots(CvTypes::getGREAT_WORK_SLOT_MUSIC()));4070 }40714072 AppendToLog(strHeader, strLog, "Great Works", GetNumGreatWorks());4073 AppendToLog(strHeader, strLog, "Tourism", GetTourism());4074 AppendToLog(strHeader, strLog, "Theming Bonuses", GetTotalThemingBonuses());40754076 if(bBuildHeader)4077 {4078 pLog->Msg(strHeader);4079 }4080 pLog->Msg(strLog);40814082 CvCity *pLoopCity;4083 int iLoop;4084 for(pLoopCity = m_pPlayer->firstCity(&iLoop); pLoopCity != NULL; pLoopCity = m_pPlayer->nextCity(&iLoop))4085 {4086 if (pLoopCity->GetCityCulture()->GetNumGreatWorks() > 0)4087 {4088 pLoopCity->GetCityCulture()->LogGreatWorks(pLog);4089 }4090 }4091}