CvUnit::canBuyCityState(const CvPlot *, bool) const
- Defined in
- CvUnit.cpp, line 9460
- Class
- CvUnit
- Hook name
CivHooks::CvUnit_canBuyCityState
Hooks
static bool BeforeCvUnit_canBuyCityState(const CvUnit* self, const CvPlot* pPlot, bool bTestVisible, bool& result);static void AfterCvUnit_canBuyCityState(const CvUnit* self, const CvPlot* pPlot, bool bTestVisible, bool& result);static bool ReplaceCvUnit_canBuyCityState(bool (*original)(const CvUnit*, const CvPlot*, bool), const CvUnit* self, const CvPlot* pPlot, bool bTestVisible);CivRegisterBefore<CivHooks::CvUnit_canBuyCityState>(host, &BeforeCvUnit_canBuyCityState);CivRegisterAfter<CivHooks::CvUnit_canBuyCityState>(host, &AfterCvUnit_canBuyCityState);CivRegisterReplace<CivHooks::CvUnit_canBuyCityState>(host, &ReplaceCvUnit_canBuyCityState);
Code
9460bool CvUnit::canBuyCityState(const CvPlot* pPlot, bool bTestVisible) const9461{9462 VALIDATE_OBJECT9463 if(isDelayedDeath())9464 {9465 return false;9466 }94679468 if (!m_pUnitInfo->IsCanBuyCityState())9469 {9470 return false;9471 }94729473 if (GC.getGame().isOption(GAMEOPTION_ONE_CITY_CHALLENGE) && GET_PLAYER(getOwner()).isHuman())9474 {9475 return false;9476 }94779478 // Things that block usage but not visibility9479 if(!bTestVisible)9480 {9481 // Not owned9482 if(pPlot->getOwner() == NO_PLAYER)9483 return false;94849485 // if we don't have a starting city, we can't purchase a city-state.9486#if defined(MOD_BUGFIX_USE_GETTERS)9487 if (GET_MY_PLAYER().getNumCities() <= 0)9488#else9489 if (GET_PLAYER(m_eOwner).getNumCities() <= 0)9490#endif9491 {9492 return false;9493 }94949495 // Owned by a non-minor civ9496 if(!GET_PLAYER(pPlot->getOwner()).isMinorCiv())9497 return false;94989499 if(GET_TEAM(pPlot->getTeam()).isAtWar(getTeam()))9500 {9501 return false;9502 }9503 }95049505 return true;9506}
Calls
- CvGame::isOption(GameOptionTypes) const
- CvGlobals::getGame()
- CvPlayer::getNumCities() const
- CvPlayer::isHuman() const
- CvPlayer::isMinorCiv() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::getOwner() const
- CvPlot::getTeam() const
- CvTeam::getTeam(TeamTypes)
- CvTeam::isAtWar(TeamTypes) const
- CvUnit::getOwner() const
- CvUnit::getTeam() const
- CvUnit::isDelayedDeath() const
- CvUnitEntry::IsCanBuyCityState() const