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
- CvTacticalDominanceZone::GetDominanceFlag() const
- CvTacticalDominanceZone::GetEnemyStrength() const
- CvTacticalDominanceZone::GetEnemyUnitCount() const
- CvTacticalDominanceZone::GetFriendlyStrength() const
- CvTacticalDominanceZone::GetTerritoryType() const
- CvTacticalDominanceZone::SetDominanceFlag(eTacticalDominanceFlags)