sources » TechnoClass » SelectNavalTargeting
// see ModEnc: NavalTargeting
int TechnoClass::SelectNavalTargetingAgainstTarget(TechnoClass *target) {
isUnderwater = target->GetType()->Underwater;
isOrganic = target->GetType()->Organic;
isUnnatural = target->GetType()->Unnatural;
isHover = target->GetType()->SpeedType == HOVER;
switch (target->GetType()->NavalTargeting) {
case UNDERWATER_NEVER:
if(isUnderwater || target->Cloaked)
return USE_NOTHING;
return USE_PRIMARY;
case UNDERWATER_SECONDARY:
if(isUnderwater)
return USE_SECONDARY;
return USE_PRIMARY;
case UNDERWATER_ONLY:
if(isUnderwater)
return USE_PRIMARY;
return USE_NOTHING;
case ORGANIC_SECONDARY:
if(isOrganic || isUnnatural)
return USE_SECONDARY;
return USE_PRIMARY;
case SEAL_SPECIAL:
if(isHover || isOrganic)
return USE_PRIMARY;
return USE_SECONDARY;
case NAVAL_ALL:
return USE_PRIMARY;
case NAVAL_NONE:
return USE_NOTHING;
case NAVAL_PRIMARY:
return USE_PRIMARY;
default:
return USE_PRIMARY;
}
}