CvUnit::isNukeVictim(const CvPlot *, TeamTypes) const
- Defined in
- CvUnit.cpp, line 6406
- Class
- CvUnit
- Hook name
CivHooks::CvUnit_isNukeVictim
Hooks
static bool BeforeCvUnit_isNukeVictim(const CvUnit* self, const CvPlot* pPlot, TeamTypes eTeam, bool& result);static void AfterCvUnit_isNukeVictim(const CvUnit* self, const CvPlot* pPlot, TeamTypes eTeam, bool& result);static bool ReplaceCvUnit_isNukeVictim(bool (*original)(const CvUnit*, const CvPlot*, TeamTypes), const CvUnit* self, const CvPlot* pPlot, TeamTypes eTeam);CivRegisterBefore<CivHooks::CvUnit_isNukeVictim>(host, &BeforeCvUnit_isNukeVictim);CivRegisterAfter<CivHooks::CvUnit_isNukeVictim>(host, &AfterCvUnit_isNukeVictim);CivRegisterReplace<CivHooks::CvUnit_isNukeVictim>(host, &ReplaceCvUnit_isNukeVictim);
Code
6406bool CvUnit::isNukeVictim(const CvPlot* pPlot, TeamTypes eTeam) const6407{6408 VALIDATE_OBJECT6409 CvPlot* pLoopPlot;6410 int iDX, iDY;64116412 if(!(GET_TEAM(eTeam).isAlive()))6413 {6414 return false;6415 }64166417 if(eTeam == getTeam())6418 {6419 return false;6420 }64216422 int iBlastRadius = /*2*/ GC.getNUKE_BLAST_RADIUS();64236424 for(iDX = -(iBlastRadius); iDX <= iBlastRadius; iDX++)6425 {6426 for(iDY = -(iBlastRadius); iDY <= iBlastRadius; iDY++)6427 {6428 pLoopPlot = plotXYWithRangeCheck(pPlot->getX(), pPlot->getY(), iDX, iDY, iBlastRadius);64296430 if(pLoopPlot != NULL)6431 {6432 if(pLoopPlot->getTeam() == eTeam)6433 {6434 return true;6435 }64366437 if(pLoopPlot->plotCheck(PUF_isCombatTeam, eTeam, getTeam()) != NULL)6438 {6439 return true;6440 }6441 }6442 }6443 }64446445 return false;6446}
Calls
- CvGlobals::getNUKE_BLAST_RADIUS()
- CvPlot::getTeam() const
- CvPlot::getX() const
- CvPlot::getY() const
- CvPlot::plotCheck(ConstPlotUnitFunc, int, int, PlayerTypes, TeamTypes, ConstPlotUnitFunc, int, int)
- CvTeam::getTeam(TeamTypes)
- CvTeam::isAlive() const
- CvUnit::getTeam() const
- plotXYWithRangeCheck(int, int, int, int, int)
- PUF_isCombatTeam(const CvUnit *, int, int)