Bazaar developer reference

CvArmyAI::GetMovementRate()

Defined in
CvArmyAI.cpp, line 194
Class
CvArmyAI
Hook name
CivHooks::CvArmyAI_GetMovementRate

Hooks

static bool BeforeCvArmyAI_GetMovementRate(CvArmyAI* self, int& result);static void AfterCvArmyAI_GetMovementRate(CvArmyAI* self, int& result);static int ReplaceCvArmyAI_GetMovementRate(int (*original)(CvArmyAI*), CvArmyAI* self);CivRegisterBefore<CivHooks::CvArmyAI_GetMovementRate>(host, &BeforeCvArmyAI_GetMovementRate);CivRegisterAfter<CivHooks::CvArmyAI_GetMovementRate>(host, &AfterCvArmyAI_GetMovementRate);CivRegisterReplace<CivHooks::CvArmyAI_GetMovementRate>(host, &ReplaceCvArmyAI_GetMovementRate);

Code

193/// Find average speed of units in army194int CvArmyAI::GetMovementRate()195{196	int iMovementAverage = 2;   // A reasonable default197	int iNumUnits = 0;198	int iTotalMovementAllowance = 0;199	UnitHandle pUnit;200201	pUnit = GetFirstUnit();202	while(pUnit)203	{204		iNumUnits++;205		iTotalMovementAllowance += pUnit->baseMoves();206		pUnit = GetNextUnit();207	}208209	if(iNumUnits > 0)210	{211		iMovementAverage = (iTotalMovementAllowance + (iNumUnits / 2)) / iNumUnits;212	}213214	return iMovementAverage;215}

Calls

Called by