case (AIM_MODE_TARG_COMP) :
case (IAimingModes.AIM_MODE_TARG_COMP) :
      public boolean allowAimedShotWith(Mounted weapon) {      WeaponType wtype = (WeaponType)weapon.getType();      boolean isWeaponInfantry = wtype.hasFlag(WeaponType.F_INFANTRY);      boolean usesAmmo = wtype.getAmmoType() != AmmoType.T_NA &&        wtype.getAmmoType() != AmmoType.T_BA_MG &&        wtype.getAmmoType() != AmmoType.T_BA_SMALL_LASER &&      !isWeaponInfantry;      Mounted ammo = usesAmmo ? weapon.getLinked() : null;      AmmoType atype = ammo == null ? null : (AmmoType)ammo.getType();      switch (aimingMode) {        case (AIM_MODE_NONE) :        return false;        case (AIM_MODE_IMMOBILE) :        if (atype != null) {            switch (atype.getAmmoType()) {              case (AmmoType.T_SRM_STREAK) :              case (AmmoType.T_LRM) :              case (AmmoType.T_LRM_TORPEDO) :              case (AmmoType.T_SRM) :              case (AmmoType.T_SRM_TORPEDO) :              case (AmmoType.T_MRM) :              case (AmmoType.T_NARC) :              case (AmmoType.T_AMS) :              case (AmmoType.T_ARROW_IV) :              case (AmmoType.T_LONG_TOM) :              case (AmmoType.T_SNIPER) :              case (AmmoType.T_THUMPER) :              case (AmmoType.T_SRM_ADVANCED) :              case (AmmoType.T_BA_INFERNO) :              case (AmmoType.T_LRM_TORPEDO_COMBO) :              case (AmmoType.T_ATM) :              return false;            }            switch (atype.getMunitionType()) {              case (AmmoType.M_CLUSTER):              return false;            }          }          break;          case (AIM_MODE_TARG_COMP) :          if (!wtype.hasFlag(WeaponType.F_DIRECT_FIRE)) {            return false;          }          if ((atype != null) &&             (atype.getMunitionType() == AmmoType.M_CLUSTER)) {            return false;          }          break;        }        return true;      }