Bazaar developer reference

CvPlayerCulture::LogCultureData()

Defined in
CvCultureClasses.cpp, line 3995
Class
CvPlayerCulture
Hook name
CivHooks::CvPlayerCulture_LogCultureData

Hooks

static bool BeforeCvPlayerCulture_LogCultureData(CvPlayerCulture* self);static void AfterCvPlayerCulture_LogCultureData(CvPlayerCulture* self);static void ReplaceCvPlayerCulture_LogCultureData(void (*original)(CvPlayerCulture*), CvPlayerCulture* self);CivRegisterBefore<CivHooks::CvPlayerCulture_LogCultureData>(host, &BeforeCvPlayerCulture_LogCultureData);CivRegisterAfter<CivHooks::CvPlayerCulture_LogCultureData>(host, &AfterCvPlayerCulture_LogCultureData);CivRegisterReplace<CivHooks::CvPlayerCulture_LogCultureData>(host, &ReplaceCvPlayerCulture_LogCultureData);

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}

Calls

Called by