Hooks
static bool BeforeCvFlavorManager_LogFlavors(CvFlavorManager* self, FlavorTypes eFlavor);static void AfterCvFlavorManager_LogFlavors(CvFlavorManager* self, FlavorTypes eFlavor);static void ReplaceCvFlavorManager_LogFlavors(void (*original)(CvFlavorManager*, FlavorTypes), CvFlavorManager* self, FlavorTypes eFlavor);CivRegisterBefore<CivHooks::CvFlavorManager_LogFlavors>(host, &BeforeCvFlavorManager_LogFlavors);CivRegisterAfter<CivHooks::CvFlavorManager_LogFlavors>(host, &AfterCvFlavorManager_LogFlavors);CivRegisterReplace<CivHooks::CvFlavorManager_LogFlavors>(host, &ReplaceCvFlavorManager_LogFlavors);
Code
541void CvFlavorManager::LogFlavors(FlavorTypes eFlavor)542{543 CvString strOutBuf;544 CvString strBaseString;545 CvString strTemp;546 CvString playerName;547 CvString strDesc;548 CvString strLogName;549550 if(GC.getLogging() && GC.getAILogging())551 {552 // Find the name of this civ553 playerName = m_pPlayer->getCivilizationShortDescription();554555 // Open the log file556 if(GC.getPlayerAndCityAILogSplit())557 {558 strLogName = "FlavorAILog_" + playerName + ".csv";559 }560 else561 {562 strLogName = "FlavorAILog.csv";563 }564565 FILogFile* pLog;566 pLog = LOGFILEMGR.GetLog(strLogName, FILogFile::kDontTimeStamp);567568 // Get the leading info for this line569 strBaseString.Format("%03d, ", GC.getGame().getElapsedGameTurns());570 strBaseString += playerName + ", ";571572 // Dump out the setting for each flavor573 if(eFlavor == NO_FLAVOR)574 {575 for(int iI = 0; iI < GC.getNumFlavorTypes(); iI++)576 {577 // Only dump if non-zero578 // if (m_piLatestFlavorValues[iI] > 0)579 {580 strTemp.Format("Flavor, %s, %d", GC.getFlavorTypes((FlavorTypes)iI).GetCString(), GetIndividualFlavor((FlavorTypes) iI));581 strOutBuf = strBaseString + strTemp;582 pLog->Msg(strOutBuf);583 }584 }585 }586 else587 {588 strTemp.Format("Flavor, %s, %d", GC.getFlavorTypes(eFlavor).GetCString(), GetIndividualFlavor(eFlavor));589 strOutBuf = strBaseString + strTemp;590 pLog->Msg(strOutBuf);591 }592 }593}