Bazaar developer reference

estimateDirection(int, int)

Defined in
CvGameCoreUtils.cpp, line 137
Hook name
CivHooks::estimateDirection

Hooks

static bool BeforeestimateDirection(int iDX, int iDY, DirectionTypes& result);static void AfterestimateDirection(int iDX, int iDY, DirectionTypes& result);static DirectionTypes ReplaceestimateDirection(DirectionTypes (*original)(int, int), int iDX, int iDY);CivRegisterBefore<CivHooks::estimateDirection>(host, &BeforeestimateDirection);CivRegisterAfter<CivHooks::estimateDirection>(host, &AfterestimateDirection);CivRegisterReplace<CivHooks::estimateDirection>(host, &ReplaceestimateDirection);

Code

137DirectionTypes estimateDirection(int iDX, int iDY)138{139	const int displacementSize = 6;140	//														NE				E		SE					SW					W			NW141	static double displacements[displacementSize][2] = { {0.5, 0.866025}, {1, 0}, {0.5, -0.866025}, {-0.5, -0.866025}, {-1, 0}, {-0.5, -0.866025}};142	double maximum = 0;143	int maximumIndex = -1;144	for(int i=0; i<displacementSize; i++)145	{146		double dotProduct = iDX * displacements[i][0] + iDY * displacements[i][1];147		if(dotProduct > maximum)148		{149			maximum = dotProduct;150			maximumIndex = i;151		}152	}153154	return (DirectionTypes) maximumIndex;155}

Called by