CvPlayer::setLeaderType(LeaderHeadTypes)
- Defined in
- CvPlayer.cpp, line 18519
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_setLeaderType
Hooks
static bool BeforeCvPlayer_setLeaderType(CvPlayer* self, LeaderHeadTypes eNewLeader);static void AfterCvPlayer_setLeaderType(CvPlayer* self, LeaderHeadTypes eNewLeader);static void ReplaceCvPlayer_setLeaderType(void (*original)(CvPlayer*, LeaderHeadTypes), CvPlayer* self, LeaderHeadTypes eNewLeader);CivRegisterBefore<CivHooks::CvPlayer_setLeaderType>(host, &BeforeCvPlayer_setLeaderType);CivRegisterAfter<CivHooks::CvPlayer_setLeaderType>(host, &AfterCvPlayer_setLeaderType);CivRegisterReplace<CivHooks::CvPlayer_setLeaderType>(host, &ReplaceCvPlayer_setLeaderType);
Code
18519void CvPlayer::setLeaderType(LeaderHeadTypes eNewLeader)18520{18521 if (isMajorCiv())18522 {18523 LeaderHeadTypes eOldLeader = getLeaderType();18524 18525 // Set the new leader type18526 CvPreGame::setLeaderHead(GetID(), eNewLeader);18527 18528 // Update the player's personality18529 setPersonalityType(eNewLeader);18530 18531 // Update the player's traits (Leader_Traits)18532 GetPlayerTraits()->Reset();18533 GetPlayerTraits()->InitPlayerTraits();18534 recomputePolicyCostModifier();18535 18536 if (!isHuman()) {18537 // Update the player's biases (Leader_MajorCivApproachBiases)18538 // Nothing to do as they are not cached in CvPlayer18539 18540 // Update the player's flavours (Leader_Flavors)18541 GetFlavorManager()->ChangeLeader(eOldLeader, eNewLeader);18542 18543 // Update the player's strategies18544 // Nothing to do as these will auto-update based on the new flavours at the end of the player's turn18545 }18546 }18547}
Calls
- CvFlavorManager::ChangeLeader(LeaderHeadTypes, LeaderHeadTypes)
- CvPlayer::GetFlavorManager() const
- CvPlayer::GetID() const
- CvPlayer::getLeaderType() const
- CvPlayer::GetPlayerTraits() const
- CvPlayer::isHuman() const
- CvPlayer::isMajorCiv() const
- CvPlayer::recomputePolicyCostModifier()
- CvPlayer::setPersonalityType(LeaderHeadTypes)
- CvPlayerTraits::InitPlayerTraits()
- CvPlayerTraits::Reset()
- CvPreGame::setLeaderHead(PlayerTypes, LeaderHeadTypes)