Bazaar developer reference

InitTypeDesc()

Defined in
CvWorldBuilderMapLoader.cpp, line 29
Hook name
CivHooks::InitTypeDesc

Hooks

static bool BeforeInitTypeDesc();static void AfterInitTypeDesc();static void ReplaceInitTypeDesc(void (*original)());CivRegisterBefore<CivHooks::InitTypeDesc>(host, &BeforeInitTypeDesc);CivRegisterAfter<CivHooks::InitTypeDesc>(host, &AfterInitTypeDesc);CivRegisterReplace<CivHooks::InitTypeDesc>(host, &ReplaceInitTypeDesc);

Code

29void InitTypeDesc()30{31	//static bool bFirst = true;32	//if( bFirst ) // Do this every time as mod data may have changed.33	{34		sg_kMapTypeDesc.m_kTerrainTypes.Clear();35		const int iTerrainTypeCount = GC.getNumTerrainInfos();36		for(int i = 0; i < iTerrainTypeCount; ++i)37		{38			const CvTerrainInfo* pkTerrainInfo = GC.getTerrainInfo((TerrainTypes)i);39			if(pkTerrainInfo != NULL)40			{41				sg_kMapTypeDesc.m_kTerrainTypes.Add( pkTerrainInfo->GetType() );42			}43			else44			{45				sg_kMapTypeDesc.m_kTerrainTypes.Add( NULL );46			}47		}4849		sg_kMapTypeDesc.m_kFeatures.Clear();50		const int iFeatureCount = GC.getNumFeatureInfos();51		for(int i = 0; i < iFeatureCount; ++i)52		{53			const CvFeatureInfo* pkFeatureInfo = GC.getFeatureInfo((FeatureTypes)i);54			if(pkFeatureInfo != NULL)55			{56				sg_kMapTypeDesc.m_kFeatures.Add( pkFeatureInfo->GetType() );57				sg_kMapTypeDesc.m_kNaturalWonders.Add( pkFeatureInfo->GetType() );58			}59			else60			{61				sg_kMapTypeDesc.m_kFeatures.Add( NULL );62				sg_kMapTypeDesc.m_kNaturalWonders.Add( NULL );63			}64		}6566		sg_kMapTypeDesc.m_kResources.Clear();67		const int iResourceCount = GC.getNumResourceInfos();68		for(int i = 0; i < iResourceCount; ++i)69		{70			const CvResourceInfo* pkResourceInfo = GC.getResourceInfo((ResourceTypes)i);71			if(pkResourceInfo != NULL)72			{73				sg_kMapTypeDesc.m_kResources.Add( pkResourceInfo->GetType() );74			}75			else76			{77				sg_kMapTypeDesc.m_kResources.Add( NULL );78			}79		}8081		sg_kMapTypeDesc.m_kImprovements.Clear();82		const int iImprovementCount = GC.getNumImprovementInfos();83		for(int i = 0; i < iImprovementCount; ++i)84		{85			const CvImprovementEntry* pkImprovementInfo = GC.getImprovementInfo((ImprovementTypes)i);86			if(pkImprovementInfo != NULL)87			{88				sg_kMapTypeDesc.m_kImprovements.Add( pkImprovementInfo->GetType() );89			}90			else91			{92				sg_kMapTypeDesc.m_kImprovements.Add( NULL );93			}94		}9596		sg_kMapTypeDesc.m_kUnits.Clear();97		const int iUnitCount = GC.getNumUnitInfos();98		for(int i = 0; i < iUnitCount; ++i)99		{100			const CvUnitEntry* pkUnitInfo = GC.getUnitInfo((UnitTypes)i);101			if(pkUnitInfo != NULL)102			{103				sg_kMapTypeDesc.m_kUnits.Add( pkUnitInfo->GetType() );104			}105			else106			{107				sg_kMapTypeDesc.m_kUnits.Add( NULL );108			}109		}110111		sg_kMapTypeDesc.m_kTechs.Clear();112		const int iTechCount = GC.getNumTechInfos();113		for(int i = 0; i < iTechCount; ++i)114		{115			const CvTechEntry* pkTechInfo = GC.getTechInfo((TechTypes)i);116			if(pkTechInfo != NULL)117			{118				sg_kMapTypeDesc.m_kTechs.Add( pkTechInfo->GetType() );119			}120			else121			{122				sg_kMapTypeDesc.m_kTechs.Add( NULL );123			}124		}125126		sg_kMapTypeDesc.m_kPolicies.Clear();127		const int iPolicyCount = GC.getNumPolicyInfos();128		for(int i = 0; i < iPolicyCount; ++i)129		{130			const CvPolicyEntry* pkPolicyInfo = GC.getPolicyInfo((PolicyTypes)i);131			if(pkPolicyInfo != NULL)132			{133				sg_kMapTypeDesc.m_kPolicies.Add( pkPolicyInfo->GetType() );134			}135			else136			{137				sg_kMapTypeDesc.m_kPolicies.Add( NULL );138			}139		}140141		sg_kMapTypeDesc.m_kBuildingTypes.Clear();142		const int iBuildingCount = GC.getNumBuildingInfos();143		for(int i = 0; i < iBuildingCount; ++i)144		{145			const CvBuildingEntry* pkBuildingInfo = GC.getBuildingInfo((BuildingTypes)i);146			if(pkBuildingInfo != NULL)147			{148				sg_kMapTypeDesc.m_kBuildingTypes.Add( pkBuildingInfo->GetType() );149			}150			else151			{152				sg_kMapTypeDesc.m_kBuildingTypes.Add( NULL );153			}154		}155156		sg_kMapTypeDesc.m_kUnitPromotions.Clear();157		const int iPromotionCount = GC.getNumPromotionInfos();158		for(int i = 0; i < iPromotionCount; ++i)159		{160			const CvPromotionEntry* pkPromotionInfo = GC.getPromotionInfo((PromotionTypes)i);161			if(pkPromotionInfo != NULL)162			{163				sg_kMapTypeDesc.m_kUnitPromotions.Add( pkPromotionInfo->GetType() );164			}165			else166			{167				sg_kMapTypeDesc.m_kUnitPromotions.Add( NULL );168			}169		}170171		//bFirst = false;172	}173}

Calls

Called by