Bazaar developer reference

CvTacticalAnalysisMap::ComputeDominance(CvTacticalDominanceZone *)

Defined in
CvTacticalAnalysisMap.cpp, line 1226
Class
CvTacticalAnalysisMap
Hook name
CivHooks::CvTacticalAnalysisMap_ComputeDominance

Hooks

static bool BeforeCvTacticalAnalysisMap_ComputeDominance(CvTacticalAnalysisMap* self, CvTacticalDominanceZone* pZone, eTacticalDominanceFlags& result);static void AfterCvTacticalAnalysisMap_ComputeDominance(CvTacticalAnalysisMap* self, CvTacticalDominanceZone* pZone, eTacticalDominanceFlags& result);static eTacticalDominanceFlags ReplaceCvTacticalAnalysisMap_ComputeDominance(eTacticalDominanceFlags (*original)(CvTacticalAnalysisMap*, CvTacticalDominanceZone*), CvTacticalAnalysisMap* self, CvTacticalDominanceZone* pZone);CivRegisterBefore<CivHooks::CvTacticalAnalysisMap_ComputeDominance>(host, &BeforeCvTacticalAnalysisMap_ComputeDominance);CivRegisterAfter<CivHooks::CvTacticalAnalysisMap_ComputeDominance>(host, &AfterCvTacticalAnalysisMap_ComputeDominance);CivRegisterReplace<CivHooks::CvTacticalAnalysisMap_ComputeDominance>(host, &ReplaceCvTacticalAnalysisMap_ComputeDominance);

Code

1225/// Who is dominant in this one zone?1226eTacticalDominanceFlags CvTacticalAnalysisMap::ComputeDominance(CvTacticalDominanceZone* pZone)1227{1228	// Look at ratio of friendly to enemy strength1229	if(pZone->GetTerritoryType() != TACTICAL_TERRITORY_ENEMY && pZone->GetEnemyUnitCount() <= 0)1230	{1231		pZone->SetDominanceFlag(TACTICAL_DOMINANCE_NO_UNITS_VISIBLE);1232	}12331234	else1235	{1236		// Otherwise compute it by strength1237		if(pZone->GetEnemyStrength() <= 0)1238		{1239			pZone->SetDominanceFlag(TACTICAL_DOMINANCE_FRIENDLY);1240		}1241		else1242		{1243			int iRatio = (pZone->GetFriendlyStrength()  * 100) / pZone->GetEnemyStrength();1244			if(iRatio > 100 + m_iDominancePercentage)1245			{1246				pZone->SetDominanceFlag(TACTICAL_DOMINANCE_FRIENDLY);1247			}1248			else if(iRatio < 100 - m_iDominancePercentage)1249			{1250				pZone->SetDominanceFlag(TACTICAL_DOMINANCE_ENEMY);1251			}1252			else1253			{1254				pZone->SetDominanceFlag(TACTICAL_DOMINANCE_EVEN);1255			}1256		}1257	}12581259	return pZone->GetDominanceFlag();1260}

Calls

Called by