Hooks
static bool BeforeCvAICityStrategyEntry_CacheResults(CvAICityStrategyEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static void AfterCvAICityStrategyEntry_CacheResults(CvAICityStrategyEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static bool ReplaceCvAICityStrategyEntry_CacheResults(bool (*original)(CvAICityStrategyEntry*, Database::Results&, CvDatabaseUtility&), CvAICityStrategyEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility);CivRegisterBefore<CivHooks::CvAICityStrategyEntry_CacheResults>(host, &BeforeCvAICityStrategyEntry_CacheResults);CivRegisterAfter<CivHooks::CvAICityStrategyEntry_CacheResults>(host, &AfterCvAICityStrategyEntry_CacheResults);CivRegisterReplace<CivHooks::CvAICityStrategyEntry_CacheResults>(host, &ReplaceCvAICityStrategyEntry_CacheResults);
Code
49bool CvAICityStrategyEntry::CacheResults(Database::Results& kResults, CvDatabaseUtility& kUtility)50{51 if(!CvBaseInfo::CacheResults(kResults, kUtility))52 return false;5354 //Basic Properties55 m_bNoMinorCivs = kResults.GetBool("NoMinorCivs");56 m_bPermanent = kResults.GetBool("Permanent");57 m_iCheckTriggerTurnCount = kResults.GetInt("CheckTriggerTurnCount");58 m_iMinimumNumTurnsExecuted = kResults.GetInt("MinimumNumTurnsExecuted");59 m_iWeightThreshold = kResults.GetInt("WeightThreshold");6061 const char* strAdvisor = kResults.GetText("Advisor");62 m_eAdvisor = NO_ADVISOR_TYPE;63 if(strAdvisor)64 {65 if(strcmp(strAdvisor, "MILITARY") == 0)66 {67 m_eAdvisor = ADVISOR_MILITARY;68 }69 else if(strcmp(strAdvisor, "ECONOMIC") == 0)70 {71 m_eAdvisor = ADVISOR_ECONOMIC;72 }73 else if(strcmp(strAdvisor, "FOREIGN") == 0)74 {75 m_eAdvisor = ADVISOR_FOREIGN;76 }77 else if(strcmp(strAdvisor, "SCIENCE") == 0)78 {79 m_eAdvisor = ADVISOR_SCIENCE;80 }81 }8283 m_strAdvisorCounselText = kResults.GetText("AdvisorCounsel");84 m_iAdvisorCounselImportance = kResults.GetInt("AdvisorCounselImportance");8586 //References87 const char* szTextVal;88 szTextVal = kResults.GetText("TechObsolete");89 m_iTechObsolete = GC.getInfoTypeForString(szTextVal, true);9091 szTextVal = kResults.GetText("TechPrereq");92 m_iTechPrereq = GC.getInfoTypeForString(szTextVal, true);9394 //Arrays95 const char* szType = GetType();96 kUtility.SetFlavors(m_piFlavorValue, "AICityStrategy_Flavors",97 "AICityStrategyType", szType);9899 kUtility.SetFlavors(m_piPersonalityFlavorThresholdMod,100 "AICityStrategy_PersonalityFlavorThresholdMods",101 "AICityStrategyType", szType);102103 return true;104}