Hooks
static bool BeforeCvMilitaryAI_LogDeficitScrapUnit(CvMilitaryAI* self, UnitHandle pUnit);static void AfterCvMilitaryAI_LogDeficitScrapUnit(CvMilitaryAI* self, UnitHandle pUnit);static void ReplaceCvMilitaryAI_LogDeficitScrapUnit(void (*original)(CvMilitaryAI*, UnitHandle), CvMilitaryAI* self, UnitHandle pUnit);CivRegisterBefore<CivHooks::CvMilitaryAI_LogDeficitScrapUnit>(host, &BeforeCvMilitaryAI_LogDeficitScrapUnit);CivRegisterAfter<CivHooks::CvMilitaryAI_LogDeficitScrapUnit>(host, &AfterCvMilitaryAI_LogDeficitScrapUnit);CivRegisterReplace<CivHooks::CvMilitaryAI_LogDeficitScrapUnit>(host, &ReplaceCvMilitaryAI_LogDeficitScrapUnit);
Code
2042/// Log that a unit is being scrapped because of the deficit checks2043void CvMilitaryAI::LogDeficitScrapUnit(UnitHandle pUnit)2044{2045 if(GC.getLogging() && GC.getAILogging())2046 {2047 CvString strOutBuf;2048 CvString strTemp;2049 CvString playerName;2050 FILogFile* pLog;20512052 // Open the right file2053 playerName = m_pPlayer->getCivilizationShortDescription();2054 pLog = LOGFILEMGR.GetLog(GetLogFileName(playerName), FILogFile::kDontTimeStamp);20552056 strOutBuf.Format("%03d, ", GC.getGame().getElapsedGameTurns());2057 strOutBuf += playerName + ", ";2058 strTemp.Format("Scrapping %s, X: %d, Y: %d, ", pUnit->getUnitInfo().GetDescription(), pUnit->getX(), pUnit->getY());2059 strOutBuf += strTemp;2060 strOutBuf += "by DoDeficit(), , "; //extra space so format is consistent with LogScrapUnit()2061 if(pUnit->getDomainType() == DOMAIN_LAND)2062 {2063 strTemp.Format("Num Land Units: %d, In Armies %d, Rec Size: %d, ", m_iNumLandUnits, m_iNumLandUnitsInArmies, m_iRecommendedMilitarySize);2064 }2065 else2066 {2067 strTemp.Format("Num Naval Units: %d, In Armies %d, ", m_iNumNavalUnits, m_iNumNavalUnitsInArmies);2068 }2069 strOutBuf += strTemp;2070 pLog->Msg(strOutBuf);2071 }2072}