Bazaar developer reference

CvMilitaryAI::UpdateDefenseState()

Defined in
CvMilitaryAI.cpp, line 2269
Class
CvMilitaryAI
Hook name
CivHooks::CvMilitaryAI_UpdateDefenseState

Hooks

static bool BeforeCvMilitaryAI_UpdateDefenseState(CvMilitaryAI* self);static void AfterCvMilitaryAI_UpdateDefenseState(CvMilitaryAI* self);static void ReplaceCvMilitaryAI_UpdateDefenseState(void (*original)(CvMilitaryAI*), CvMilitaryAI* self);CivRegisterBefore<CivHooks::CvMilitaryAI_UpdateDefenseState>(host, &BeforeCvMilitaryAI_UpdateDefenseState);CivRegisterAfter<CivHooks::CvMilitaryAI_UpdateDefenseState>(host, &AfterCvMilitaryAI_UpdateDefenseState);CivRegisterReplace<CivHooks::CvMilitaryAI_UpdateDefenseState>(host, &ReplaceCvMilitaryAI_UpdateDefenseState);

Code

2268/// Update how we're doing on defensive units2269void CvMilitaryAI::UpdateDefenseState()2270{2271	AI_PERF_FORMAT("Military-AI-perf.csv", ("UpdateDefenseState, Turn %03d, %s", GC.getGame().getElapsedGameTurns(), m_pPlayer->getCivilizationShortDescription()) );22722273	int iLandUnitsNotInArmies;2274	int iNavalUnitsNotInArmies;22752276	// Derive data we'll need2277	iLandUnitsNotInArmies = m_iNumLandUnits;2278	iNavalUnitsNotInArmies = m_iNumNavalUnits;22792280	if(iLandUnitsNotInArmies < m_iMandatoryReserveSize)2281	{2282		m_eLandDefenseState = DEFENSE_STATE_CRITICAL;2283	}2284	else if(iLandUnitsNotInArmies < m_iRecommendedMilitarySize)2285	{2286		m_eLandDefenseState = DEFENSE_STATE_NEEDED;2287	}2288	else if(iLandUnitsNotInArmies < m_iRecommendedMilitarySize * 5 / 4)2289	{2290		m_eLandDefenseState = DEFENSE_STATE_NEUTRAL;2291	}2292	else2293	{2294		m_eLandDefenseState = DEFENSE_STATE_ENOUGH;2295	}22962297	int iNavySize = MilitaryAIHelpers::ComputeRecommendedNavySize(m_pPlayer);22982299	if(iNavalUnitsNotInArmies <= (iNavySize / 2))2300	{2301		m_eNavalDefenseState = DEFENSE_STATE_CRITICAL;2302	}2303	else if(iNavalUnitsNotInArmies <= iNavySize)2304	{2305		m_eNavalDefenseState = DEFENSE_STATE_NEEDED;2306	}2307	else if(iNavalUnitsNotInArmies <= iNavySize * 5 / 4)2308	{2309		m_eNavalDefenseState = DEFENSE_STATE_NEUTRAL;2310	}2311	else2312	{2313		m_eNavalDefenseState = DEFENSE_STATE_ENOUGH;2314	}2315}

Calls

Called by