Bazaar developer reference

CvAIOperation::CreateOperation(AIOperationTypes, PlayerTypes)

Defined in
CvAIOperation.cpp, line 274
Class
CvAIOperation
Hook name
CivHooks::CvAIOperation_CreateOperation

Hooks

static bool BeforeCvAIOperation_CreateOperation(AIOperationTypes eAIOperationType, PlayerTypes ePlayer, CvAIOperation*& result);static void AfterCvAIOperation_CreateOperation(AIOperationTypes eAIOperationType, PlayerTypes ePlayer, CvAIOperation*& result);static CvAIOperation* ReplaceCvAIOperation_CreateOperation(CvAIOperation* (*original)(AIOperationTypes, PlayerTypes), AIOperationTypes eAIOperationType, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvAIOperation_CreateOperation>(host, &BeforeCvAIOperation_CreateOperation);CivRegisterAfter<CivHooks::CvAIOperation_CreateOperation>(host, &AfterCvAIOperation_CreateOperation);CivRegisterReplace<CivHooks::CvAIOperation_CreateOperation>(host, &ReplaceCvAIOperation_CreateOperation);

Code

273/// Factory method: you are responsible for cleaning up the operation created by this routine!274CvAIOperation* CvAIOperation::CreateOperation(AIOperationTypes eAIOperationType, PlayerTypes ePlayer)275{276	switch(eAIOperationType)277	{278	case AI_OPERATION_BASIC_CITY_ATTACK:279		return FNEW(CvAIOperationBasicCityAttack(), c_eCiv5GameplayDLL, 0);280	case AI_OPERATION_DESTROY_BARBARIAN_CAMP:281		return FNEW(CvAIOperationDestroyBarbarianCamp(), c_eCiv5GameplayDLL, 0);282	case AI_OPERATION_FOUND_CITY:283		return FNEW(CvAIOperationFoundCity(), c_eCiv5GameplayDLL, 0);284	case AI_OPERATION_MERCHANT_DELEGATION:285		return FNEW(CvAIOperationMerchantDelegation(), c_eCiv5GameplayDLL, 0);286	case AI_OPERATION_CONCERT_TOUR:287		return FNEW(CvAIOperationConcertTour(), c_eCiv5GameplayDLL, 0);288	case AI_OPERATION_NAVAL_BOMBARDMENT:289		return FNEW(CvAIOperationNavalBombardment(), c_eCiv5GameplayDLL, 0);290	case AI_OPERATION_NAVAL_SUPERIORITY:291		return FNEW(CvAIOperationNavalSuperiority(), c_eCiv5GameplayDLL, 0);292	case AI_OPERATION_PURE_NAVAL_CITY_ATTACK:293		return FNEW(CvAIOperationPureNavalCityAttack(), c_eCiv5GameplayDLL, 0);294	case AI_OPERATION_COLONIZE:295		return FNEW(CvAINavalEscortedOperation(), c_eCiv5GameplayDLL, 0);296	case AI_OPERATION_QUICK_COLONIZE:297		return FNEW(CvAIOperationQuickColonize(), c_eCiv5GameplayDLL, 0);298	case AI_OPERATION_PILLAGE_ENEMY:299		return FNEW(CvAIOperationPillageEnemy(), c_eCiv5GameplayDLL, 0);300	case AI_OPERATION_CITY_CLOSE_DEFENSE:301		return FNEW(CvAIOperationCityCloseDefense(), c_eCiv5GameplayDLL, 0);302	case AI_OPERATION_RAPID_RESPONSE:303		return FNEW(CvAIOperationRapidResponse(), c_eCiv5GameplayDLL, 0);304	case AI_OPERATION_SNEAK_CITY_ATTACK:305	{306		if(GC.getGame().getGameTurn() < 50 && GET_PLAYER(ePlayer).GetDiplomacyAI()->GetBoldness() >= 5)307		{308			return FNEW(CvAIOperationQuickSneakCityAttack(), c_eCiv5GameplayDLL, 0);309		}310		return FNEW(CvAIOperationSneakCityAttack(), c_eCiv5GameplayDLL, 0);311	}312	case AI_OPERATION_SMALL_CITY_ATTACK:313		return FNEW(CvAIOperationSmallCityAttack(), c_eCiv5GameplayDLL, 0);314	case AI_OPERATION_CITY_STATE_ATTACK:315		return FNEW(CvAIOperationCityStateAttack(), c_eCiv5GameplayDLL, 0);316	case AI_OPERATION_NAVAL_ATTACK:317		return FNEW(CvAIOperationNavalAttack(), c_eCiv5GameplayDLL, 0);318	case AI_OPERATION_NAVAL_SNEAK_ATTACK:319		return FNEW(CvAIOperationNavalSneakAttack(), c_eCiv5GameplayDLL, 0);320	case AI_OPERATION_CITY_STATE_NAVAL_ATTACK:321		return FNEW(CvAIOperationNavalCityStateAttack(), c_eCiv5GameplayDLL, 0);322	case AI_OPERATION_NUKE_ATTACK:323		return FNEW(CvAIOperationNukeAttack(), c_eCiv5GameplayDLL, 0);324	}325326	return 0;327}

Calls

Called by