Bazaar developer reference

CvPlayer::canSpyDestroyProject(PlayerTypes, ProjectTypes) const

Defined in
CvPlayer.cpp, line 26194
Class
CvPlayer
Hook name
CivHooks::CvPlayer_canSpyDestroyProject

Hooks

static bool BeforeCvPlayer_canSpyDestroyProject(const CvPlayer* self, PlayerTypes eTarget, ProjectTypes eProject, bool& result);static void AfterCvPlayer_canSpyDestroyProject(const CvPlayer* self, PlayerTypes eTarget, ProjectTypes eProject, bool& result);static bool ReplaceCvPlayer_canSpyDestroyProject(bool (*original)(const CvPlayer*, PlayerTypes, ProjectTypes), const CvPlayer* self, PlayerTypes eTarget, ProjectTypes eProject);CivRegisterBefore<CivHooks::CvPlayer_canSpyDestroyProject>(host, &BeforeCvPlayer_canSpyDestroyProject);CivRegisterAfter<CivHooks::CvPlayer_canSpyDestroyProject>(host, &AfterCvPlayer_canSpyDestroyProject);CivRegisterReplace<CivHooks::CvPlayer_canSpyDestroyProject>(host, &ReplaceCvPlayer_canSpyDestroyProject);

Code

26194bool CvPlayer::canSpyDestroyProject(PlayerTypes eTarget, ProjectTypes eProject) const26195{26196	CvProjectEntry& kProject = *GC.getProjectInfo(eProject);26197	if(kProject.GetProductionCost() <= 0)26198	{26199		return false;26200	}2620126202	if(GET_TEAM(GET_PLAYER(eTarget).getTeam()).getProjectCount(eProject) <= 0)26203	{26204		return false;26205	}2620626207	if(::isWorldProject(eProject))26208	{26209		return false;26210	}2621126212	if(!kProject.IsSpaceship())26213	{26214		return false;26215	}26216	else26217	{26218		VictoryTypes eVictory = (VictoryTypes)kProject.GetVictoryPrereq();26219		if(NO_VICTORY != eVictory)26220		{26221			// Can't destroy spaceship components if we have already launched26222			if(GET_TEAM(GET_PLAYER(eTarget).getTeam()).getVictoryCountdown(eVictory) >= 0)26223			{26224				return false;26225			}26226		}26227	}2622826229	return true;26230}

Calls