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
- CvDllUnit::CvDllUnit(CvUnit *)
- CvGlobals::getDLLIFace()
- CvPlayer::changeJONSCulture(int)
- CvPlayer::ChangeNumFreePolicies(int)
- CvPlayer::DoGreatPersonExpended(UnitTypes, CvUnit *)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::isActiveVisible(bool) const
- CvUnit::canGivePolicies(const CvPlot *, bool) const
- CvUnit::getGivePoliciesCulture()
- CvUnit::getOwner() const
- CvUnit::getUnitType() const
- CvUnit::IsGreatPerson() const
- CvUnit::kill(bool, PlayerTypes)
- CvUnit::plot() const
- CvUnitEntry::GetFreePolicies() const
ICvEngineUtility1::GameplayUnitActivatestd::auto_ptr::auto_ptrstd::auto_ptr::get