Bazaar developer reference

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

Defined in
CvTechClasses.cpp, line 90
Class
CvTechEntry
Hook name
CivHooks::CvTechEntry_CacheResults
Overrides
CvBaseInfo::CacheResults(Database::Results &, CvDatabaseUtility &)

Hooks

static bool BeforeCvTechEntry_CacheResults(CvTechEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static void AfterCvTechEntry_CacheResults(CvTechEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static bool ReplaceCvTechEntry_CacheResults(bool (*original)(CvTechEntry*, Database::Results&, CvDatabaseUtility&), CvTechEntry* self, Database::Results& kResults, CvDatabaseUtility& kUtility);CivRegisterBefore<CivHooks::CvTechEntry_CacheResults>(host, &BeforeCvTechEntry_CacheResults);CivRegisterAfter<CivHooks::CvTechEntry_CacheResults>(host, &AfterCvTechEntry_CacheResults);CivRegisterReplace<CivHooks::CvTechEntry_CacheResults>(host, &ReplaceCvTechEntry_CacheResults);

Code

90bool CvTechEntry::CacheResults(Database::Results& kResults, CvDatabaseUtility& kUtility)91{92	if(!CvBaseInfo::CacheResults(kResults, kUtility))93		return false;9495	//Basic Properties96	m_iAIWeight = kResults.GetInt("AIWeight");97	m_iAITradeModifier = kResults.GetInt("AITradeModifier");98	m_iResearchCost = kResults.GetInt("Cost");99	m_iAdvancedStartCost = kResults.GetInt("AdvancedStartCost");100	m_iFeatureProductionModifier = kResults.GetInt("FeatureProductionModifier");101	m_iUnitFortificationModifier = kResults.GetInt("UnitFortificationModifier");102	m_iUnitBaseHealModifier = kResults.GetInt("UnitBaseHealModifier");103	m_iWorkerSpeedModifier = kResults.GetInt("WorkerSpeedModifier");104	m_iFirstFreeTechs = kResults.GetInt("FirstFreeTechs");105	m_iEmbarkedMoveChange = kResults.GetInt("EmbarkedMoveChange");106	m_iInternationalTradeRoutesChange = kResults.GetInt("InternationalTradeRoutesChange");107	m_iInfluenceSpreadModifier = kResults.GetInt("InfluenceSpreadModifier");108	m_iExtraVotesPerDiplomat = kResults.GetInt("ExtraVotesPerDiplomat");109	m_bEndsGame = kResults.GetBool("EndsGame");110	m_bAllowsEmbarking = kResults.GetBool("AllowsEmbarking");111	m_bAllowsDefensiveEmbarking = kResults.GetBool("AllowsDefensiveEmbarking");112	m_bEmbarkedAllWaterPassage = kResults.GetBool("EmbarkedAllWaterPassage");113	m_bAllowsBarbarianBoats = kResults.GetBool("AllowsBarbarianBoats");114	m_bRepeat = kResults.GetBool("Repeat");115	m_bTrade = kResults.GetBool("Trade");116	m_bDisable = kResults.GetBool("Disable");117	m_bGoodyTech = kResults.GetBool("GoodyTech");118	m_bTriggersArchaeologicalSites = kResults.GetBool("TriggersArchaeologicalSites");119	m_bAllowsWorldCongress = kResults.GetBool("AllowsWorldCongress");120	m_bExtraWaterSeeFrom = kResults.GetBool("ExtraWaterSeeFrom");121	m_bMapCentering = kResults.GetBool("MapCentering");122	m_bMapVisible = kResults.GetBool("MapVisible");123	m_bMapTrading = kResults.GetBool("MapTrading");124	m_bTechTrading = kResults.GetBool("TechTrading");125	m_bGoldTrading = kResults.GetBool("GoldTrading");126	m_bAllowEmbassyTradingAllowed = kResults.GetBool("AllowEmbassyTradingAllowed");127	m_bOpenBordersTradingAllowed = kResults.GetBool("OpenBordersTradingAllowed");128	m_bDefensivePactTradingAllowed = kResults.GetBool("DefensivePactTradingAllowed");129	m_bResearchAgreementTradingAllowed = kResults.GetBool("ResearchAgreementTradingAllowed");130	m_bTradeAgreementTradingAllowed = kResults.GetBool("TradeAgreementTradingAllowed");131	m_bPermanentAllianceTrading = kResults.GetBool("PermanentAllianceTradingAllowed");132#if defined(MOD_TECHS_CITY_WORKING)133	m_iCityWorkingChange = kResults.GetInt("CityWorkingChange");134#endif135#if defined(MOD_TECHS_CITY_AUTOMATON_WORKERS)136	m_iCityAutomatonWorkersChange = kResults.GetInt("CityAutomatonWorkersChange");137#endif138	m_bBridgeBuilding = kResults.GetBool("BridgeBuilding");139	m_bWaterWork = kResults.GetBool("WaterWork");140	m_iGridX = kResults.GetInt("GridX");141	m_iGridY = kResults.GetInt("GridY");142143	//References144	const char* szTextVal = NULL;145	szTextVal = kResults.GetText("Era");146	m_iEra = GC.getInfoTypeForString(szTextVal, true);147148	szTextVal = kResults.GetText("FirstFreeUnitClass");149	m_iFirstFreeUnitClass = GC.getInfoTypeForString(szTextVal, true);150151	szTextVal = kResults.GetText("Quote");152	SetQuoteKey(szTextVal);153154	szTextVal = kResults.GetText("AudioIntro");155	SetSound(szTextVal);156157	szTextVal = kResults.GetText("AudioIntroHeader");158	SetSoundMP(szTextVal);159160	//Arrays161	const char* szTechType = GetType();162	kUtility.PopulateArrayByValue(m_piDomainExtraMoves, "Domains", "Technology_DomainExtraMoves", "DomainType", "TechType", szTechType, "Moves", 0, NUM_DOMAIN_TYPES);163	kUtility.PopulateArrayByValue(m_piTradeRouteDomainExtraRange, "Domains", "Technology_TradeRouteDomainExtraRange", "DomainType", "TechType", szTechType, "Range", 0, NUM_DOMAIN_TYPES);164	kUtility.PopulateArrayByExistence(m_pabFreePromotion, "UnitPromotions", "Technology_FreePromotions", "PromotionType", "TechType", szTechType);165	kUtility.SetFlavors(m_piFlavorValue, "Technology_Flavors", "TechType", szTechType);166167	const size_t TechnologiesCount = kUtility.MaxRows("Technologies");168169	//ORPrereqTechs170	{171		//PrereqTech array must be initialized to NO_TECH.172173		kUtility.InitializeArray(m_piPrereqOrTechs, TechnologiesCount, NO_TECH);174175		std::string strKey = "Technologies - Technology_ORPrereqTechs";176		Database::Results* pResults = kUtility.GetResults(strKey);177		if(pResults == NULL)178		{179			pResults = kUtility.PrepareResults(strKey, "select Technologies.ID from Technology_ORPrereqTechs inner join Technologies on Technologies.Type = PrereqTech where TechType = ?;");180		}181182		pResults->Bind(1, szTechType, -1, false);183184		int i = 0;185		while(pResults->Step())186		{187			m_piPrereqOrTechs[i++] = pResults->GetInt(0);188		}189190		pResults->Reset();191	}192193	//PrereqTechs194	{195		//PrereqTech array must be initialized to NO_TECH.196		kUtility.InitializeArray(m_piPrereqAndTechs, TechnologiesCount, NO_TECH);197198		std::string strKey = "Technologies - Technology_PrereqTechs";199		Database::Results* pResults = kUtility.GetResults(strKey);200		if(pResults == NULL)201		{202			pResults = kUtility.PrepareResults(strKey, "select Technologies.ID from Technology_PrereqTechs inner join Technologies on Technologies.Type = PrereqTech where TechType = ?;");203		}204205		pResults->Bind(1, szTechType, -1, false);206207		int i = 0;208		while(pResults->Step())209		{210			m_piPrereqAndTechs[i++] = pResults->GetInt(0);211		}212213		pResults->Reset();214	}215216	return true;217}

Calls