/// Should this unit be ignored when creating the danger plots? bool CvDangerPlots::ShouldIgnoreUnit (CvUnit* pUnit, bool bIgnoreVisibility) { if (!pUnit->IsCanAttack()) { return true; } if (!pUnit->plot()->isVisible(GET_PLAYER(m_ePlayer).getTeam())) { return true; } if (pUnit->isInvisible(GET_PLAYER(m_ePlayer).getTeam(), false)) { return true; } CvPlot* pPlot = pUnit->plot(); CvAssertMsg(pPlot, "Plot is null?") if (pPlot && !pPlot->isVisibleOtherUnit(m_ePlayer) && !bIgnoreVisibility) { return true; } // fix post-gold! if (pUnit->getDomainType() == DOMAIN_AIR) { return true; } return false; }
/// Should this unit be ignored when creating the danger plots? bool CvDangerPlots::ShouldIgnoreUnit(CvUnit* pUnit, bool bIgnoreVisibility) { if(!m_bArrayAllocated || m_ePlayer==NO_PLAYER) return true; if(!pUnit->IsCanAttack()) { return true; } #if defined(AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MAJORS_SEE_BARBARIANS_IN_FOG) || defined(AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MINORS_SEE_MAJORS) if (pUnit->isInvisible(GET_PLAYER(m_ePlayer).getTeam(), false)) { return true; } #endif // AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MAJORS_SEE_BARBARIANS_IN_FOG if (pUnit->getDomainType() == DOMAIN_AIR) { return true; } #ifdef AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MAJORS_SEE_BARBARIANS_IN_FOG if (!GET_PLAYER(m_ePlayer).isMinorCiv() && !GET_PLAYER(m_ePlayer).isBarbarian() && pUnit->isBarbarian() && pUnit->plot()->isRevealed(GET_PLAYER(m_ePlayer).getTeam())) if (pUnit->plot()->isAdjacentVisible(GET_PLAYER(m_ePlayer).getTeam())) bIgnoreVisibility = true; #endif // AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MAJORS_SEE_BARBARIANS_IN_FOG #ifdef AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MINORS_SEE_MAJORS if (GET_PLAYER(m_ePlayer).isMinorCiv() && !GET_PLAYER(pUnit->getOwner()).isMinorCiv() && !pUnit->isBarbarian() && GET_PLAYER(m_ePlayer).GetClosestCity(pUnit->plot(), AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MINORS_SEE_MAJORS, true)) bIgnoreVisibility = true; #endif // AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MINORS_SEE_MAJORS if(!pUnit->plot()->isVisible(GET_PLAYER(m_ePlayer).getTeam()) && !bIgnoreVisibility) { return true; } #if !defined(AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MAJORS_SEE_BARBARIANS_IN_FOG) && !defined(AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MINORS_SEE_MAJORS) if(pUnit->isInvisible(GET_PLAYER(m_ePlayer).getTeam(), false)) { return true; } #endif // AUI_DANGER_PLOTS_SHOULD_IGNORE_UNIT_MAJORS_SEE_BARBARIANS_IN_FOG CvPlot* pPlot = pUnit->plot(); CvAssertMsg(pPlot, "Plot is null?") if(NULL != pPlot && !pPlot->isVisibleOtherUnit(m_ePlayer) && !bIgnoreVisibility) { return true; } return false; }