public static bool HasWeaponDefaults(this MechDef mech, ChassisLocations location)
        {
            if (mech == null)
            {
                return(false);
            }

            if (!have_defaults.TryGetValue(mech.ChassisID, out var result))
            {
                Control.LogDebug(DType.WeaponDefaults, $"Build Weapon Defaults for {mech.ChassisID}");
                result = ChassisLocations.None;

                var defs = mech.GetWeaponDefaults();
                if (defs != null)
                {
                    var list = defs.ToList();
                    foreach (var wd in list)
                    {
                        Control.LogDebug(DType.WeaponDefaults, $"-- add {wd.Location}");
                        result = result.Set(wd.Location);
                    }

                    Control.LogDebug(DType.WeaponDefaults, $"- complete - {result}");
                }
                else
                {
                    Control.LogDebug(DType.WeaponDefaults, $"- no defaults - {result}");
                }

                have_defaults[mech.ChassisID] = result;
            }

            Control.LogDebug(DType.WeaponDefaults, $"HasWeaponDefaults {result} - {location} - {result.HasFlag(location)}");

            return(result.HasFlag(location));
        }