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}