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
- CvGlobals::getProjectInfo(ProjectTypes)
- CvPlayer::getTeam() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvProjectEntry::GetProductionCost() const
- CvProjectEntry::GetVictoryPrereq() const
- CvProjectEntry::IsSpaceship() const
- CvTeam::getProjectCount(ProjectTypes) const
- CvTeam::getTeam(TeamTypes)
- CvTeam::getVictoryCountdown(VictoryTypes) const
- isWorldProject(ProjectTypes)