Bazaar developer reference

CvMilitaryAI::MakeEmergencyPurchases()

Defined in
CvMilitaryAI.cpp, line 3365
Class
CvMilitaryAI
Hook name
CivHooks::CvMilitaryAI_MakeEmergencyPurchases

Hooks

static bool BeforeCvMilitaryAI_MakeEmergencyPurchases(CvMilitaryAI* self);static void AfterCvMilitaryAI_MakeEmergencyPurchases(CvMilitaryAI* self);static void ReplaceCvMilitaryAI_MakeEmergencyPurchases(void (*original)(CvMilitaryAI*), CvMilitaryAI* self);CivRegisterBefore<CivHooks::CvMilitaryAI_MakeEmergencyPurchases>(host, &BeforeCvMilitaryAI_MakeEmergencyPurchases);CivRegisterAfter<CivHooks::CvMilitaryAI_MakeEmergencyPurchases>(host, &AfterCvMilitaryAI_MakeEmergencyPurchases);CivRegisterReplace<CivHooks::CvMilitaryAI_MakeEmergencyPurchases>(host, &ReplaceCvMilitaryAI_MakeEmergencyPurchases);

Code

3363/// Spend money on units/buildings for military contingencies3364//  NOTE: The defensive side of this is done in dominance zone processing in the Tactical AI; this is spending to speed operations3365void CvMilitaryAI::MakeEmergencyPurchases()3366{3367	AI_PERF_FORMAT("Military-AI-perf.csv", ("MakeEmergencyPurchases, Turn %03d, %s", GC.getGame().getElapsedGameTurns(), m_pPlayer->getCivilizationShortDescription()) );33683369	CvAIOperation* nextOp;33703371	// Are we winning all the wars we are in?3372	MilitaryAIStrategyTypes eStrategyAtWar = (MilitaryAIStrategyTypes) GC.getInfoTypeForString("MILITARYAISTRATEGY_AT_WAR");3373	if(!IsUsingStrategy(eStrategyAtWar) || m_pPlayer->GetDiplomacyAI()->GetStateAllWars() == STATE_ALL_WARS_WINNING)3374	{3375		// Is there an operation waiting for one more unit?3376		nextOp = m_pPlayer->getFirstAIOperation();3377		while(nextOp != NULL)3378		{3379			if(nextOp->HasOneMoreSlotToFill())3380			{3381				// Can we buy a unit to fill that slot?3382				if(nextOp->BuyFinalUnit())3383				{3384					break;3385				}3386			}3387			nextOp = m_pPlayer->getNextAIOperation();3388		}3389	}3390}

Calls

Called by