Hooks
static bool BeforeCvPolicyBranchEntry_CacheResults(CvPolicyBranchEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static void AfterCvPolicyBranchEntry_CacheResults(CvPolicyBranchEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static bool ReplaceCvPolicyBranchEntry_CacheResults(bool (*original)(CvPolicyBranchEntry*, Database::Results&, CvDatabaseUtility&), CvPolicyBranchEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility);CivRegisterBefore<CivHooks::CvPolicyBranchEntry_CacheResults>(host, &BeforeCvPolicyBranchEntry_CacheResults);CivRegisterAfter<CivHooks::CvPolicyBranchEntry_CacheResults>(host, &AfterCvPolicyBranchEntry_CacheResults);CivRegisterReplace<CivHooks::CvPolicyBranchEntry_CacheResults>(host, &ReplaceCvPolicyBranchEntry_CacheResults);
Code
2317/// Read from XML file (pass 1)2318bool CvPolicyBranchEntry::CacheResults(Database::Results& kResults, CvDatabaseUtility& kUtility)2319{2320 if(!CvBaseInfo::CacheResults(kResults, kUtility))2321 return false;23222323 //References2324 const char* szEraPrereq = kResults.GetText("EraPrereq");2325 m_iEraPrereq = GC.getInfoTypeForString(szEraPrereq, true);23262327 const char* szFreePolicy = kResults.GetText("FreePolicy");2328 m_iFreePolicy = GC.getInfoTypeForString(szFreePolicy, true);23292330 const char* szFreeFinishingPolicy = kResults.GetText("FreeFinishingPolicy");2331 m_iFreeFinishingPolicy = GC.getInfoTypeForString(szFreeFinishingPolicy, true);23322333 m_iFirstAdopterFreePolicies = kResults.GetInt("FirstAdopterFreePolicies");2334 m_iSecondAdopterFreePolicies = kResults.GetInt("SecondAdopterFreePolicies");23352336 const char* szPolicyBranchType = GetType();23372338 m_bPurchaseByLevel = kResults.GetBool("PurchaseByLevel");2339 m_bLockedWithoutReligion = kResults.GetBool("LockedWithoutReligion");2340 m_bMutuallyExclusive = kResults.GetBool("AIMutuallyExclusive");23412342 m_bDelayWhenNoReligion = kResults.GetBool("AIDelayNoReligion");2343 m_bDelayWhenNoCulture = kResults.GetBool("AIDelayNoCulture");2344 m_bDelayWhenNoCityStates = kResults.GetBool("AIDelayNoCityStates");2345 m_bDelayWhenNoScience = kResults.GetBool("AIDelayNoScience");23462347 //PolicyBranch_Disables2348 {2349 kUtility.InitializeArray(m_piPolicyBranchDisables, "PolicyBranchTypes", (int)NO_POLICY_BRANCH_TYPE);23502351 std::string sqlKey = "m_piPolicyBranchDisables";2352 Database::Results* pResults = kUtility.GetResults(sqlKey);2353 if(pResults == NULL)2354 {2355 const char* szSQL = "select PolicyBranchTypes.ID from PolicyBranch_Disables inner join PolicyBranchTypes on PolicyBranchTypes.Type = PolicyBranchDisable where PolicyBranchType = ?";2356 pResults = kUtility.PrepareResults(sqlKey, szSQL);2357 }23582359 pResults->Bind(1, szPolicyBranchType, false);23602361 int iID;2362 while(pResults->Step())2363 {2364 iID = pResults->GetInt(0);2365 m_piPolicyBranchDisables[iID] = 1;2366 }23672368 pResults->Reset();2369 }23702371 return true;2372}