Bazaar developer reference

CvArmyAI::GetUnitsOfType(MultiunitPositionTypes) const

Defined in
CvArmyAI.cpp, line 450
Class
CvArmyAI
Hook name
CivHooks::CvArmyAI_GetUnitsOfType

Hooks

static bool BeforeCvArmyAI_GetUnitsOfType(const CvArmyAI* self, MultiunitPositionTypes ePosition, int& result);static void AfterCvArmyAI_GetUnitsOfType(const CvArmyAI* self, MultiunitPositionTypes ePosition, int& result);static int ReplaceCvArmyAI_GetUnitsOfType(int (*original)(const CvArmyAI*, MultiunitPositionTypes), const CvArmyAI* self, MultiunitPositionTypes ePosition);CivRegisterBefore<CivHooks::CvArmyAI_GetUnitsOfType>(host, &BeforeCvArmyAI_GetUnitsOfType);CivRegisterAfter<CivHooks::CvArmyAI_GetUnitsOfType>(host, &AfterCvArmyAI_GetUnitsOfType);CivRegisterReplace<CivHooks::CvArmyAI_GetUnitsOfType>(host, &ReplaceCvArmyAI_GetUnitsOfType);

Code

449/// How many units of this type are in army?450int CvArmyAI::GetUnitsOfType(MultiunitPositionTypes ePosition) const451{452	int iRtnValue = 0;453454	for(unsigned int iI = 0; iI < m_FormationEntries.size(); iI++)455	{456		if(m_FormationEntries[iI].m_iUnitID != ARMY_NO_UNIT)457		{458			CvUnit* pUnit = GET_PLAYER(m_eOwner).getUnit(m_FormationEntries[iI].m_iUnitID);459			if(pUnit->getMoves() > 0)460			{461				CvMultiUnitFormationInfo* thisFormation = GC.getMultiUnitFormationInfo(m_iFormationIndex);462				if(thisFormation)463				{464					const CvFormationSlotEntry& thisSlotEntry = thisFormation->getFormationSlotEntry(iI);465					if(thisSlotEntry.m_ePositionType == ePosition)466					{467						iRtnValue++;468					}469				}470			}471		}472	}473	return iRtnValue;474}

Calls

Called by