case AmmoType.T_PXLRM: case AmmoType.T_HSRM: case AmmoType.T_MRM_STREAK:
        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();            // Leg and swarm attacks can't be aimed.            if (wtype.getInternalName().equals(Infantry.LEG_ATTACK) ||                    wtype.getInternalName().equals(Infantry.SWARM_MEK)) {                return false;            }            switch (aimingMode) {                case (IAimingModes.AIM_MODE_NONE):                    return false;                case (IAimingModes.AIM_MODE_IMMOBILE):                    if (atype != null) {                        switch (atype.getAmmoType()) {                            case (AmmoType.T_SRM_STREAK):                            case (AmmoType.T_LRM_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):                            case (AmmoType.T_EXLRM):                            case (AmmoType.T_TBOLT5):                            case (AmmoType.T_TBOLT10):                            case (AmmoType.T_TBOLT15):                            case (AmmoType.T_TBOLT20):                                return false;                        }                        if (((atype.getAmmoType() == AmmoType.T_AC_LBX)                                || (atype.getAmmoType() == AmmoType.T_AC_LBX_THB))                                && (atype.getMunitionType() == AmmoType.M_CLUSTER))                            return false;                    }                    break;                case (IAimingModes.AIM_MODE_TARG_COMP):                    if (!wtype.hasFlag(WeaponType.F_DIRECT_FIRE)) {                        return false;                    }                    if ((atype != null)                            && ((atype.getAmmoType() == AmmoType.T_AC_LBX)                            || (atype.getAmmoType() == AmmoType.T_AC_LBX_THB))                            && (atype.getMunitionType() == AmmoType.M_CLUSTER)) {                        return false;                    }                    break;            }            return true;        }