Bazaar developer reference

CvUnit::givePolicies()

Defined in
CvUnit.cpp, line 10093
Class
CvUnit
Hook name
CivHooks::CvUnit_givePolicies

Hooks

static bool BeforeCvUnit_givePolicies(CvUnit* self, bool& result);static void AfterCvUnit_givePolicies(CvUnit* self, bool& result);static bool ReplaceCvUnit_givePolicies(bool (*original)(CvUnit*), CvUnit* self);CivRegisterBefore<CivHooks::CvUnit_givePolicies>(host, &BeforeCvUnit_givePolicies);CivRegisterAfter<CivHooks::CvUnit_givePolicies>(host, &AfterCvUnit_givePolicies);CivRegisterReplace<CivHooks::CvUnit_givePolicies>(host, &ReplaceCvUnit_givePolicies);

Code

10093bool CvUnit::givePolicies()10094{10095	VALIDATE_OBJECT1009610097	CvPlot* pPlot = plot();10098	if(!canGivePolicies(pPlot))10099	{10100		return false;10101	}10102	CvPlayerAI& kPlayer = GET_PLAYER(getOwner());1010310104	// Culture boost based on previous turns10105	int iCultureBonus = getGivePoliciesCulture();10106	if (iCultureBonus != 0)10107	{10108		kPlayer.changeJONSCulture(iCultureBonus);10109		// Refresh - we might get to pick a policy this turn10110	}1011110112	// Free policies10113	int iFreePolicies = m_pUnitInfo->GetFreePolicies();10114	if (iFreePolicies != 0)10115	{10116		kPlayer.ChangeNumFreePolicies(iFreePolicies);10117	}1011810119	if(pPlot->isActiveVisible(false))10120	{10121		auto_ptr<ICvUnit1> pDllUnit(new CvDllUnit(this));10122		gDLL->GameplayUnitActivate(pDllUnit.get());10123	}1012410125	if(IsGreatPerson())10126	{10127#if defined(MOD_EVENTS_GREAT_PEOPLE)10128		kPlayer.DoGreatPersonExpended(getUnitType(), this);10129#else10130		kPlayer.DoGreatPersonExpended(getUnitType());10131#endif10132	}1013310134	kill(true);1013510136	return true;10137}

Calls

Called by