Bazaar developer reference

CvUnit::CanBuildSpaceship(const CvPlot *, bool) const

Defined in
CvUnit.cpp, line 9657
Class
CvUnit
Hook name
CivHooks::CvUnit_CanBuildSpaceship

Hooks

static bool BeforeCvUnit_CanBuildSpaceship(const CvUnit* self, const CvPlot* pPlot, bool bVisible, bool& result);static void AfterCvUnit_CanBuildSpaceship(const CvUnit* self, const CvPlot* pPlot, bool bVisible, bool& result);static bool ReplaceCvUnit_CanBuildSpaceship(bool (*original)(const CvUnit*, const CvPlot*, bool), const CvUnit* self, const CvPlot* pPlot, bool bVisible);CivRegisterBefore<CivHooks::CvUnit_CanBuildSpaceship>(host, &BeforeCvUnit_CanBuildSpaceship);CivRegisterAfter<CivHooks::CvUnit_CanBuildSpaceship>(host, &AfterCvUnit_CanBuildSpaceship);CivRegisterReplace<CivHooks::CvUnit_CanBuildSpaceship>(host, &ReplaceCvUnit_CanBuildSpaceship);

Code

9656/// Can this Unit build a spaceship part at pPlot??9657bool CvUnit::CanBuildSpaceship(const CvPlot* pPlot, bool bVisible) const9658{9659	VALIDATE_OBJECT96609661	// Delayed death9662	if(isDelayedDeath())9663		return false;96649665	if(GAMESTATE_ON != GC.getGame().getGameState())9666		return false;96679668	// Can this unit actually build a part?9669	ProjectTypes eSpaceshipProject = (ProjectTypes) getUnitInfo().GetSpaceshipProject();9670	if(eSpaceshipProject == NO_PROJECT)9671		return false;96729673	// Things that block usage but not visibility9674	if(!bVisible)9675	{9676		CvCity* pCity = pPlot->getPlotCity();96779678		// Not in a city9679		if(pCity == NULL)9680			return false;96819682		// Must be our city9683		if(pCity->getOwner() != getOwner())9684			return false;96859686		// Can only build SS part in our capital9687		if(!pCity->isCapital())9688			return false;9689	}96909691	return true;9692}

Calls

Called by