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
- CvAIOperation::BuyFinalUnit()
- CvAIOperation::HasOneMoreSlotToFill() const
- CvDiplomacyAI::GetStateAllWars() const
- CvGlobals::getInfoTypeForString(const char *, bool) const
- CvMilitaryAI::IsUsingStrategy(MilitaryAIStrategyTypes)
- CvPlayer::GetDiplomacyAI() const
- CvPlayer::getFirstAIOperation()
- CvPlayer::getNextAIOperation()