Bazaar developer reference

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

Called by