Bazaar developer reference

CvDllDatabaseUtility::ValidatePrefetchProcess()

Defined in
CvDllDatabaseUtility.cpp, line 626
Class
CvDllDatabaseUtility
Hook name
CivHooks::CvDllDatabaseUtility_ValidatePrefetchProcess

Hooks

static bool BeforeCvDllDatabaseUtility_ValidatePrefetchProcess(CvDllDatabaseUtility* self, bool& result);static void AfterCvDllDatabaseUtility_ValidatePrefetchProcess(CvDllDatabaseUtility* self, bool& result);static bool ReplaceCvDllDatabaseUtility_ValidatePrefetchProcess(bool (*original)(CvDllDatabaseUtility*), CvDllDatabaseUtility* self);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllDatabaseUtility_ValidatePrefetchProcess::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllDatabaseUtility_ValidatePrefetchProcess);host->RegisterHook(host->pluginIndex, CivHooks::CvDllDatabaseUtility_ValidatePrefetchProcess::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllDatabaseUtility_ValidatePrefetchProcess);host->RegisterHook(host->pluginIndex, CivHooks::CvDllDatabaseUtility_ValidatePrefetchProcess::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllDatabaseUtility_ValidatePrefetchProcess);

Code

626bool CvDllDatabaseUtility::ValidatePrefetchProcess()627{628	bool bError = false;629	CvGlobals& gc = GC;630631	LogMsg("**** Validating Prefetch Process *****");632	ValidateVectorSize(getNumWorldInfos);633	ValidateVectorSize(getNumClimateInfos);634	ValidateVectorSize(getNumSeaLevelInfos);635	ValidateVectorSize(GetNumColorInfos);636	ValidateVectorSize(GetNumPlayerColorInfos);637	ValidateVectorSize(getNumEntityEventInfos);638	ValidateVectorSize(getNumMultiUnitFormationInfos);639#if defined(MOD_API_PLOT_YIELDS)640	if (MOD_API_PLOT_YIELDS) {641		ValidateVectorSize(getNumPlotInfos);642	}643#endif644	ValidateVectorSize(getNumTerrainInfos);645	ValidateVectorSize(getNumResourceClassInfos);646	ValidateVectorSize(getNumResourceInfos);647	ValidateVectorSize(getNumFeatureInfos);648	ValidateVectorSize(getNumCivilizationInfos);649	ValidateVectorSize(getNumMinorCivInfos);650#if defined(MOD_EVENTS_QUESTS)651	if (MOD_EVENTS_QUESTS) {652		ValidateVectorSize(getNumQuestInfos);653	}654#endif655	ValidateVectorSize(getNumLeaderHeadInfos);656	ValidateVectorSize(getNumTraitInfos);657	ValidateVectorSize(getNumUnitInfos);658	ValidateVectorSize(getNumSpecialUnitInfos);659	ValidateVectorSize(getNumVoteSourceInfos);660	ValidateVectorSize(getNumUnitCombatClassInfos);661662	ValidateCount(gc.getUnitAIInfo().size);663664665	ValidateVectorSize(getNumGameOptionInfos);666	ValidateVectorSize(getNumMPOptionInfos);667668	ValidateCount(gc.getPlayerOptionInfo().size);669	ValidateCount(gc.getYieldInfo().size);670671	ValidateVectorSize(getNumRouteInfos);672	ValidateVectorSize(getNumImprovementInfos);673	ValidateVectorSize(getNumBuildInfos);674	ValidateVectorSize(getNumHandicapInfos);675	ValidateVectorSize(getNumGameSpeedInfos);676	ValidateVectorSize(getNumProcessInfos);677	ValidateVectorSize(getNumVoteInfos);678	ValidateVectorSize(getNumProjectInfos);679	ValidateVectorSize(getNumBuildingClassInfos);680	ValidateVectorSize(getNumBuildingInfos);681	ValidateVectorSize(getNumUnitClassInfos);682	//ValidateVectorSize(getNumActionInfos);	//Action Infos are generated as a post process.683684#if defined(MOD_EVENTS_DIPLO_MODIFIERS)685	if (MOD_EVENTS_DIPLO_MODIFIERS) {686		ValidateVectorSize(getNumDiploModifierInfos);687	}688#endif689690	ValidateCount(gc.getMissionInfo().size);691	ValidateCount(gc.getControlInfo().size);692	ValidateCount(gc.getCommandInfo().size);693694	ValidateVectorSize(getNumAutomateInfos);695	ValidateVectorSize(getNumPromotionInfos);696	ValidateVectorSize(getNumSpecialistInfos);697	ValidateVectorSize(getNumEconomicAIStrategyInfos);698	ValidateVectorSize(getNumCitySpecializationInfos);699	ValidateVectorSize(getNumTacticalMoveInfos);700	ValidateVectorSize(getNumMilitaryAIStrategyInfos);701	ValidateVectorSize(getNumAIGrandStrategyInfos);702	ValidateVectorSize(getNumAICityStrategyInfos);703	ValidateVectorSize(getNumPolicyInfos);704	ValidateVectorSize(getNumPolicyBranchInfos);705	ValidateVectorSize(getNumTechInfos);706	ValidateVectorSize(getNumEraInfos);707	ValidateVectorSize(getNumHurryInfos);708	ValidateVectorSize(getNumEmphasisInfos);709	ValidateVectorSize(getNumVictoryInfos);710711	// The domains are a special case in that the contents must match a populated enum exactly.712#define ValidateDomain(domain) { CvDomainInfo* pkDomainInfo; if (GC.getNumUnitDomainInfos() <= (int)domain || (pkDomainInfo = GC.getUnitDomainInfo(domain)) == NULL || strcmp(pkDomainInfo->GetType(), #domain) != 0) bError = true; }713714	ValidateDomain(DOMAIN_SEA);715	ValidateDomain(DOMAIN_AIR);716	ValidateDomain(DOMAIN_LAND);717	ValidateDomain(DOMAIN_IMMOBILE);718	ValidateDomain(DOMAIN_HOVER);719720	if(bError)721	{722		LogMsg("**** VALIDATION FAILED *****");723	}724	else725	{726		LogMsg("**** Validation Success *****");727	}728729	return !bError;730}

Calls

Called by