Bazaar developer reference

CvPlayer::IsBuildBlockedByFeature(BuildTypes, FeatureTypes) const

Defined in
CvPlayer.cpp, line 9473
Class
CvPlayer
Hook name
CivHooks::CvPlayer_IsBuildBlockedByFeature

Hooks

static bool BeforeCvPlayer_IsBuildBlockedByFeature(const CvPlayer* self, BuildTypes eBuild, FeatureTypes eFeature, bool& result);static void AfterCvPlayer_IsBuildBlockedByFeature(const CvPlayer* self, BuildTypes eBuild, FeatureTypes eFeature, bool& result);static bool ReplaceCvPlayer_IsBuildBlockedByFeature(bool (*original)(const CvPlayer*, BuildTypes, FeatureTypes), const CvPlayer* self, BuildTypes eBuild, FeatureTypes eFeature);CivRegisterBefore<CivHooks::CvPlayer_IsBuildBlockedByFeature>(host, &BeforeCvPlayer_IsBuildBlockedByFeature);CivRegisterAfter<CivHooks::CvPlayer_IsBuildBlockedByFeature>(host, &AfterCvPlayer_IsBuildBlockedByFeature);CivRegisterReplace<CivHooks::CvPlayer_IsBuildBlockedByFeature>(host, &ReplaceCvPlayer_IsBuildBlockedByFeature);

Code

9472/// Are we prevented from eBuild-ing because of a Feature on this plot?9473bool CvPlayer::IsBuildBlockedByFeature(BuildTypes eBuild, FeatureTypes eFeature) const9474{9475	// No Feature here to block us9476	if(eFeature == NO_FEATURE)9477	{9478		return false;9479	}94809481	// Build does not remove the Feature on pPlot9482	if(!GC.getBuildInfo(eBuild)->isFeatureRemove(eFeature))9483	{9484		return false;9485	}94869487	TechTypes ePrereqTech = (TechTypes) GC.getBuildInfo(eBuild)->getFeatureTech(eFeature);94889489	// Clearing Feature doesn't require any Tech, so we can do it right now if we have to9490	if(ePrereqTech == NO_TECH)9491	{9492		return false;9493	}94949495	// Clearing eFeature requires a Tech, but we have it9496	if(GET_TEAM(getTeam()).GetTeamTechs()->HasTech(ePrereqTech))9497	{9498		return false;9499	}95009501	// Feature is blocking us!9502	return true;9503}

Calls

Called by