Bazaar developer reference

CvBuildInfo::CacheResults(Database::Results &, CvDatabaseUtility &)

Defined in
CvInfos.cpp, line 3910
Class
CvBuildInfo
Hook name
CivHooks::CvBuildInfo_CacheResults
Overrides
CvHotKeyInfo::CacheResults(Database::Results &, CvDatabaseUtility &)

Hooks

static bool BeforeCvBuildInfo_CacheResults(CvBuildInfo* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static void AfterCvBuildInfo_CacheResults(CvBuildInfo* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static bool ReplaceCvBuildInfo_CacheResults(bool (*original)(CvBuildInfo*, Database::Results&, CvDatabaseUtility&), CvBuildInfo* self, Database::Results& kResults, CvDatabaseUtility& kUtility);CivRegisterBefore<CivHooks::CvBuildInfo_CacheResults>(host, &BeforeCvBuildInfo_CacheResults);CivRegisterAfter<CivHooks::CvBuildInfo_CacheResults>(host, &AfterCvBuildInfo_CacheResults);CivRegisterReplace<CivHooks::CvBuildInfo_CacheResults>(host, &ReplaceCvBuildInfo_CacheResults);

Code

3910bool CvBuildInfo::CacheResults(Database::Results& kResults, CvDatabaseUtility& kUtility)3911{3912	if(!CvHotKeyInfo::CacheResults(kResults, kUtility))3913		return false;39143915	m_iTime = kResults.GetInt("Time");3916	m_iCost = kResults.GetInt("Cost");3917	m_iCostIncreasePerImprovement = kResults.GetInt("CostIncreasePerImprovement");3918	m_bKill = kResults.GetBool("Kill");3919	m_bRepair = kResults.GetBool("Repair");3920	m_bRemoveRoute = kResults.GetBool("RemoveRoute");3921	m_bWater = kResults.GetBool("Water");3922	m_bCanBeEmbarked = kResults.GetBool("CanBeEmbarked");39233924	const char* szPrereqTech = kResults.GetText("PrereqTech");3925	m_iTechPrereq = GC.getInfoTypeForString(szPrereqTech, true);39263927	const char* szImprovementType = kResults.GetText("ImprovementType");3928	m_iImprovement = GC.getInfoTypeForString(szImprovementType, true);39293930	const char* szRouteType = kResults.GetText("RouteType");3931	m_iRoute = GC.getInfoTypeForString(szRouteType, true);39323933	const char* szEntityEvent = kResults.GetText("EntityEvent");3934	m_iEntityEvent = GC.getInfoTypeForString(szEntityEvent, true);39353936	//NOTE: Why isn't this really a struct? o_O3937	//HACK: Temporary until the stored proc system is finished3938	//FeatureStructs3939	{3940		kUtility.InitializeArray(m_paiFeatureTech, "Features");3941		kUtility.InitializeArray(m_paiFeatureTime, "Features");3942		kUtility.InitializeArray(m_paiFeatureProduction, "Features");3943		kUtility.InitializeArray(m_paiFeatureCost, "Features");3944		kUtility.InitializeArray(m_pabFeatureRemove, "Features");3945#if defined(MOD_BUGFIX_FEATURE_REMOVAL)3946		kUtility.InitializeArray(m_paiFeatureObsoleteTech, "Features");3947		kUtility.InitializeArray(m_pabFeatureRemoveOnly, "Features");3948#endif39493950		char szQuery[512];3951		const char* szFeatureQuery = "select * from BuildFeatures where BuildType = '%s'";3952		sprintf_s(szQuery, 512, szFeatureQuery, GetType());39533954		Database::Results kArrayResults;3955		if(DB.Execute(kArrayResults, szQuery))3956		{3957			while(kArrayResults.Step())3958			{3959				const char* szFeatureType			= kArrayResults.GetText("FeatureType");3960				const int iFeatureIdx				= GC.getInfoTypeForString(szFeatureType, true);39613962				const char* szFeatureTech			= kArrayResults.GetText("PrereqTech");39633964				CvAssert(iFeatureIdx > -1);3965				m_paiFeatureTech[iFeatureIdx]		= GC.getInfoTypeForString(szFeatureTech, true);3966				m_paiFeatureTime[iFeatureIdx]		= kArrayResults.GetInt("Time");3967				m_paiFeatureProduction[iFeatureIdx] = kArrayResults.GetInt("Production");3968				m_paiFeatureCost[iFeatureIdx]		= kArrayResults.GetInt("Cost");3969				m_pabFeatureRemove[iFeatureIdx]		= kArrayResults.GetBool("Remove");3970#if defined(MOD_BUGFIX_FEATURE_REMOVAL)3971				m_paiFeatureObsoleteTech[iFeatureIdx]= GC.getInfoTypeForString(kArrayResults.GetText("ObsoleteTech"), true);3972				m_pabFeatureRemoveOnly[iFeatureIdx]	= kArrayResults.GetBool("RemoveOnly");3973#endif3974			}3975		}3976	}3977	3978	const char* szBuildType = GetType();3979	kUtility.PopulateArrayByValue(m_paiTechTimeChange, "Technologies", "Build_TechTimeChanges", "TechType", "BuildType", szBuildType, "TimeChange");39803981	return true;3982}

Calls