Bazaar developer reference

CvAINavalOperation::FindInitialUnit()

Defined in
CvAIOperation.cpp, line 3886
Class
CvAINavalOperation
Hook name
CivHooks::CvAINavalOperation_FindInitialUnit

Hooks

static bool BeforeCvAINavalOperation_FindInitialUnit(CvAINavalOperation* self, CvUnit*& result);static void AfterCvAINavalOperation_FindInitialUnit(CvAINavalOperation* self, CvUnit*& result);static CvUnit* ReplaceCvAINavalOperation_FindInitialUnit(CvUnit* (*original)(CvAINavalOperation*), CvAINavalOperation* self);CivRegisterBefore<CivHooks::CvAINavalOperation_FindInitialUnit>(host, &BeforeCvAINavalOperation_FindInitialUnit);CivRegisterAfter<CivHooks::CvAINavalOperation_FindInitialUnit>(host, &AfterCvAINavalOperation_FindInitialUnit);CivRegisterReplace<CivHooks::CvAINavalOperation_FindInitialUnit>(host, &ReplaceCvAINavalOperation_FindInitialUnit);

Code

3885/// Which unit would we like to use to kick off this operation?3886CvUnit* CvAINavalOperation::FindInitialUnit()3887{3888	int iUnitLoop;3889	CvUnit* pLoopUnit;38903891	for(pLoopUnit = GET_PLAYER(m_eOwner).firstUnit(&iUnitLoop); pLoopUnit != NULL; pLoopUnit = GET_PLAYER(m_eOwner).nextUnit(&iUnitLoop))3892	{3893		if(pLoopUnit != NULL)3894		{3895			if(pLoopUnit->AI_getUnitAIType() != UNITAI_EXPLORE_SEA)3896			{3897				CvUnitEntry* pkUnitEntry = GC.getUnitInfo(pLoopUnit->getUnitType());3898				if(pkUnitEntry && pkUnitEntry->GetUnitAIType(UNITAI_ATTACK_SEA))3899				{3900					if(pLoopUnit->getArmyID() == FFreeList::INVALID_INDEX)3901					{3902						return pLoopUnit;3903					}3904				}3905			}3906		}3907	}3908	return NULL;3909}

Calls

Called by