// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: rec_room/persistence/gun_handle_data.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace RecRoom.Protobuf {

  /// <summary>Holder for reflection information generated from rec_room/persistence/gun_handle_data.proto</summary>
  public static partial class GunHandleDataReflection {

    #region Descriptor
    /// <summary>File descriptor for rec_room/persistence/gun_handle_data.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static GunHandleDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CipyZWNfcm9vbS9wZXJzaXN0ZW5jZS9ndW5faGFuZGxlX2RhdGEucHJvdG8S",
            "CHJlY19yb29tIpwICg1HdW5IYW5kbGVEYXRhEhcKD2NvbnRpbnVvdXNfZmly",
            "ZRgBIAEoCBIVCg1tYXhfZmlyZV9yYXRlGAIgASgCEiEKGURFUFJFQ0FURURf",
            "cmVjb2lsX2FuZ2xlX3gYAyABKAISIQoZREVQUkVDQVRFRF9yZWNvaWxfYW5n",
            "bGVfeRgEIAEoAhIiChpERVBSRUNBVEVEX3JlY29pbF9kdXJhdGlvbhgFIAEo",
            "AhIpCiFERVBSRUNBVEVEX3JlY29pbF9zaGFrZV9hbXBsaXR1ZGUYBiABKAIS",
            "KQohREVQUkVDQVRFRF9yZWNvaWxfc2hha2VfZnJlcXVlbmN5GAcgASgCEikK",
            "IURFUFJFQ0FURURfcmVjb2lsX3JldHVybl9kdXJhdGlvbhgIIAEoAhIXCg9y",
            "ZWxvYWRfZHVyYXRpb24YCSABKAISEAoIYWRzX3pvb20YCiABKAISHAoUYWlt",
            "X2ZyaWN0aW9uX2VuYWJsZWQYCyABKAgSJAoccHJvamVjdGlsZV9tYWduZXRp",
            "c21fZW5hYmxlZBgMIAEoCBIoCiBERVBSRUNBVEVEX2F1dG9fYWltX3Rhcmdl",
            "dF9yb2xlcxgNIAMoCRIQCghtYXhfYW1tbxgOIAEoBRIXCg9jcm9zc2hhaXJf",
            "dGlja3MYDyABKAUSHQoVY3Jvc3NoYWlyX2lkbGVfc3ByZWFkGBAgASgCEh0K",
            "FWNyb3NzaGFpcl93YWxrX3NjYWxhchgRIAEoAhIfChdjcm9zc2hhaXJfc3By",
            "aW50X3NjYWxhchgSIAEoAhIfChdjcm9zc2hhaXJfY3JvdWNoX3NjYWxhchgT",
            "IAEoAhIeChZjcm9zc2hhaXJfcHJvbmVfc2NhbGFyGBQgASgCEhwKFGNyb3Nz",
            "aGFpcl9hZHNfc2NhbGFyGBUgASgCEhMKC2Fkc19lbmFibGVkGBYgASgIEh0K",
            "FWFkc19jcm9zc2hhaXJfZW5hYmxlZBgXIAEoCBImCh5ERVBSRUNBVEVEX2Fp",
            "bV9mcmljdGlvbl9yYWRpdXMYGCABKAISQgoMc2NyZWVuc19wb3NlGBkgASgO",
            "MiwucmVjX3Jvb20uR3VuSGFuZGxlRGF0YS5HdW5IYW5kbGVTY3JlZW5zUG9z",
            "ZRIXCg9zdXBwb3J0c19yZWxvYWQYGiABKAgSGAoQZW5hYmxlX2F1dG9fZmly",
            "ZRgbIAEoCCKaAQoUR3VuSGFuZGxlU2NyZWVuc1Bvc2USFAoQUGlzdG9sX09u",
            "ZUhhbmRlZBAAEhQKEFBpc3RvbF9Ud29IYW5kZWQQARIVChFTaG90Z3VuX09u",
            "ZUhhbmRlZBACEhUKEVNob3RndW5fVHdvSGFuZGVkEAMSEwoPUmlmbGVfT25l",
            "SGFuZGVkEAQSEwoPUmlmbGVfVHdvSGFuZGVkEAVCE6oCEFJlY1Jvb20uUHJv",
            "dG9idWZiBnByb3RvMw=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.GunHandleData), global::RecRoom.Protobuf.GunHandleData.Parser, new[]{ "ContinuousFire", "MaxFireRate", "DEPRECATEDRecoilAngleX", "DEPRECATEDRecoilAngleY", "DEPRECATEDRecoilDuration", "DEPRECATEDRecoilShakeAmplitude", "DEPRECATEDRecoilShakeFrequency", "DEPRECATEDRecoilReturnDuration", "ReloadDuration", "AdsZoom", "AimFrictionEnabled", "ProjectileMagnetismEnabled", "DEPRECATEDAutoAimTargetRoles", "MaxAmmo", "CrosshairTicks", "CrosshairIdleSpread", "CrosshairWalkScalar", "CrosshairSprintScalar", "CrosshairCrouchScalar", "CrosshairProneScalar", "CrosshairAdsScalar", "AdsEnabled", "AdsCrosshairEnabled", "DEPRECATEDAimFrictionRadius", "ScreensPose", "SupportsReload", "EnableAutoFire" }, null, new[]{ typeof(global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose) }, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class GunHandleData : pb::IMessage<GunHandleData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<GunHandleData> _parser = new pb::MessageParser<GunHandleData>(() => new GunHandleData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<GunHandleData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.GunHandleDataReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GunHandleData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GunHandleData(GunHandleData other) : this() {
      continuousFire_ = other.continuousFire_;
      maxFireRate_ = other.maxFireRate_;
      dEPRECATEDRecoilAngleX_ = other.dEPRECATEDRecoilAngleX_;
      dEPRECATEDRecoilAngleY_ = other.dEPRECATEDRecoilAngleY_;
      dEPRECATEDRecoilDuration_ = other.dEPRECATEDRecoilDuration_;
      dEPRECATEDRecoilShakeAmplitude_ = other.dEPRECATEDRecoilShakeAmplitude_;
      dEPRECATEDRecoilShakeFrequency_ = other.dEPRECATEDRecoilShakeFrequency_;
      dEPRECATEDRecoilReturnDuration_ = other.dEPRECATEDRecoilReturnDuration_;
      reloadDuration_ = other.reloadDuration_;
      adsZoom_ = other.adsZoom_;
      aimFrictionEnabled_ = other.aimFrictionEnabled_;
      projectileMagnetismEnabled_ = other.projectileMagnetismEnabled_;
      dEPRECATEDAutoAimTargetRoles_ = other.dEPRECATEDAutoAimTargetRoles_.Clone();
      maxAmmo_ = other.maxAmmo_;
      crosshairTicks_ = other.crosshairTicks_;
      crosshairIdleSpread_ = other.crosshairIdleSpread_;
      crosshairWalkScalar_ = other.crosshairWalkScalar_;
      crosshairSprintScalar_ = other.crosshairSprintScalar_;
      crosshairCrouchScalar_ = other.crosshairCrouchScalar_;
      crosshairProneScalar_ = other.crosshairProneScalar_;
      crosshairAdsScalar_ = other.crosshairAdsScalar_;
      adsEnabled_ = other.adsEnabled_;
      adsCrosshairEnabled_ = other.adsCrosshairEnabled_;
      dEPRECATEDAimFrictionRadius_ = other.dEPRECATEDAimFrictionRadius_;
      screensPose_ = other.screensPose_;
      supportsReload_ = other.supportsReload_;
      enableAutoFire_ = other.enableAutoFire_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GunHandleData Clone() {
      return new GunHandleData(this);
    }

    /// <summary>Field number for the "continuous_fire" field.</summary>
    public const int ContinuousFireFieldNumber = 1;
    private bool continuousFire_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ContinuousFire {
      get { return continuousFire_; }
      set {
        continuousFire_ = value;
      }
    }

    /// <summary>Field number for the "max_fire_rate" field.</summary>
    public const int MaxFireRateFieldNumber = 2;
    private float maxFireRate_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float MaxFireRate {
      get { return maxFireRate_; }
      set {
        maxFireRate_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_recoil_angle_x" field.</summary>
    public const int DEPRECATEDRecoilAngleXFieldNumber = 3;
    private float dEPRECATEDRecoilAngleX_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float DEPRECATEDRecoilAngleX {
      get { return dEPRECATEDRecoilAngleX_; }
      set {
        dEPRECATEDRecoilAngleX_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_recoil_angle_y" field.</summary>
    public const int DEPRECATEDRecoilAngleYFieldNumber = 4;
    private float dEPRECATEDRecoilAngleY_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float DEPRECATEDRecoilAngleY {
      get { return dEPRECATEDRecoilAngleY_; }
      set {
        dEPRECATEDRecoilAngleY_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_recoil_duration" field.</summary>
    public const int DEPRECATEDRecoilDurationFieldNumber = 5;
    private float dEPRECATEDRecoilDuration_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float DEPRECATEDRecoilDuration {
      get { return dEPRECATEDRecoilDuration_; }
      set {
        dEPRECATEDRecoilDuration_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_recoil_shake_amplitude" field.</summary>
    public const int DEPRECATEDRecoilShakeAmplitudeFieldNumber = 6;
    private float dEPRECATEDRecoilShakeAmplitude_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float DEPRECATEDRecoilShakeAmplitude {
      get { return dEPRECATEDRecoilShakeAmplitude_; }
      set {
        dEPRECATEDRecoilShakeAmplitude_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_recoil_shake_frequency" field.</summary>
    public const int DEPRECATEDRecoilShakeFrequencyFieldNumber = 7;
    private float dEPRECATEDRecoilShakeFrequency_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float DEPRECATEDRecoilShakeFrequency {
      get { return dEPRECATEDRecoilShakeFrequency_; }
      set {
        dEPRECATEDRecoilShakeFrequency_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_recoil_return_duration" field.</summary>
    public const int DEPRECATEDRecoilReturnDurationFieldNumber = 8;
    private float dEPRECATEDRecoilReturnDuration_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float DEPRECATEDRecoilReturnDuration {
      get { return dEPRECATEDRecoilReturnDuration_; }
      set {
        dEPRECATEDRecoilReturnDuration_ = value;
      }
    }

    /// <summary>Field number for the "reload_duration" field.</summary>
    public const int ReloadDurationFieldNumber = 9;
    private float reloadDuration_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float ReloadDuration {
      get { return reloadDuration_; }
      set {
        reloadDuration_ = value;
      }
    }

    /// <summary>Field number for the "ads_zoom" field.</summary>
    public const int AdsZoomFieldNumber = 10;
    private float adsZoom_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float AdsZoom {
      get { return adsZoom_; }
      set {
        adsZoom_ = value;
      }
    }

    /// <summary>Field number for the "aim_friction_enabled" field.</summary>
    public const int AimFrictionEnabledFieldNumber = 11;
    private bool aimFrictionEnabled_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AimFrictionEnabled {
      get { return aimFrictionEnabled_; }
      set {
        aimFrictionEnabled_ = value;
      }
    }

    /// <summary>Field number for the "projectile_magnetism_enabled" field.</summary>
    public const int ProjectileMagnetismEnabledFieldNumber = 12;
    private bool projectileMagnetismEnabled_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool ProjectileMagnetismEnabled {
      get { return projectileMagnetismEnabled_; }
      set {
        projectileMagnetismEnabled_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_auto_aim_target_roles" field.</summary>
    public const int DEPRECATEDAutoAimTargetRolesFieldNumber = 13;
    private static readonly pb::FieldCodec<string> _repeated_dEPRECATEDAutoAimTargetRoles_codec
        = pb::FieldCodec.ForString(106);
    private readonly pbc::RepeatedField<string> dEPRECATEDAutoAimTargetRoles_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> DEPRECATEDAutoAimTargetRoles {
      get { return dEPRECATEDAutoAimTargetRoles_; }
    }

    /// <summary>Field number for the "max_ammo" field.</summary>
    public const int MaxAmmoFieldNumber = 14;
    private int maxAmmo_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int MaxAmmo {
      get { return maxAmmo_; }
      set {
        maxAmmo_ = value;
      }
    }

    /// <summary>Field number for the "crosshair_ticks" field.</summary>
    public const int CrosshairTicksFieldNumber = 15;
    private int crosshairTicks_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CrosshairTicks {
      get { return crosshairTicks_; }
      set {
        crosshairTicks_ = value;
      }
    }

    /// <summary>Field number for the "crosshair_idle_spread" field.</summary>
    public const int CrosshairIdleSpreadFieldNumber = 16;
    private float crosshairIdleSpread_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float CrosshairIdleSpread {
      get { return crosshairIdleSpread_; }
      set {
        crosshairIdleSpread_ = value;
      }
    }

    /// <summary>Field number for the "crosshair_walk_scalar" field.</summary>
    public const int CrosshairWalkScalarFieldNumber = 17;
    private float crosshairWalkScalar_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float CrosshairWalkScalar {
      get { return crosshairWalkScalar_; }
      set {
        crosshairWalkScalar_ = value;
      }
    }

    /// <summary>Field number for the "crosshair_sprint_scalar" field.</summary>
    public const int CrosshairSprintScalarFieldNumber = 18;
    private float crosshairSprintScalar_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float CrosshairSprintScalar {
      get { return crosshairSprintScalar_; }
      set {
        crosshairSprintScalar_ = value;
      }
    }

    /// <summary>Field number for the "crosshair_crouch_scalar" field.</summary>
    public const int CrosshairCrouchScalarFieldNumber = 19;
    private float crosshairCrouchScalar_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float CrosshairCrouchScalar {
      get { return crosshairCrouchScalar_; }
      set {
        crosshairCrouchScalar_ = value;
      }
    }

    /// <summary>Field number for the "crosshair_prone_scalar" field.</summary>
    public const int CrosshairProneScalarFieldNumber = 20;
    private float crosshairProneScalar_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float CrosshairProneScalar {
      get { return crosshairProneScalar_; }
      set {
        crosshairProneScalar_ = value;
      }
    }

    /// <summary>Field number for the "crosshair_ads_scalar" field.</summary>
    public const int CrosshairAdsScalarFieldNumber = 21;
    private float crosshairAdsScalar_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float CrosshairAdsScalar {
      get { return crosshairAdsScalar_; }
      set {
        crosshairAdsScalar_ = value;
      }
    }

    /// <summary>Field number for the "ads_enabled" field.</summary>
    public const int AdsEnabledFieldNumber = 22;
    private bool adsEnabled_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AdsEnabled {
      get { return adsEnabled_; }
      set {
        adsEnabled_ = value;
      }
    }

    /// <summary>Field number for the "ads_crosshair_enabled" field.</summary>
    public const int AdsCrosshairEnabledFieldNumber = 23;
    private bool adsCrosshairEnabled_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool AdsCrosshairEnabled {
      get { return adsCrosshairEnabled_; }
      set {
        adsCrosshairEnabled_ = value;
      }
    }

    /// <summary>Field number for the "DEPRECATED_aim_friction_radius" field.</summary>
    public const int DEPRECATEDAimFrictionRadiusFieldNumber = 24;
    private float dEPRECATEDAimFrictionRadius_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float DEPRECATEDAimFrictionRadius {
      get { return dEPRECATEDAimFrictionRadius_; }
      set {
        dEPRECATEDAimFrictionRadius_ = value;
      }
    }

    /// <summary>Field number for the "screens_pose" field.</summary>
    public const int ScreensPoseFieldNumber = 25;
    private global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose screensPose_ = global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose.PistolOneHanded;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose ScreensPose {
      get { return screensPose_; }
      set {
        screensPose_ = value;
      }
    }

    /// <summary>Field number for the "supports_reload" field.</summary>
    public const int SupportsReloadFieldNumber = 26;
    private bool supportsReload_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool SupportsReload {
      get { return supportsReload_; }
      set {
        supportsReload_ = value;
      }
    }

    /// <summary>Field number for the "enable_auto_fire" field.</summary>
    public const int EnableAutoFireFieldNumber = 27;
    private bool enableAutoFire_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool EnableAutoFire {
      get { return enableAutoFire_; }
      set {
        enableAutoFire_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as GunHandleData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GunHandleData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ContinuousFire != other.ContinuousFire) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxFireRate, other.MaxFireRate)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DEPRECATEDRecoilAngleX, other.DEPRECATEDRecoilAngleX)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DEPRECATEDRecoilAngleY, other.DEPRECATEDRecoilAngleY)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DEPRECATEDRecoilDuration, other.DEPRECATEDRecoilDuration)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DEPRECATEDRecoilShakeAmplitude, other.DEPRECATEDRecoilShakeAmplitude)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DEPRECATEDRecoilShakeFrequency, other.DEPRECATEDRecoilShakeFrequency)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DEPRECATEDRecoilReturnDuration, other.DEPRECATEDRecoilReturnDuration)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ReloadDuration, other.ReloadDuration)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(AdsZoom, other.AdsZoom)) return false;
      if (AimFrictionEnabled != other.AimFrictionEnabled) return false;
      if (ProjectileMagnetismEnabled != other.ProjectileMagnetismEnabled) return false;
      if(!dEPRECATEDAutoAimTargetRoles_.Equals(other.dEPRECATEDAutoAimTargetRoles_)) return false;
      if (MaxAmmo != other.MaxAmmo) return false;
      if (CrosshairTicks != other.CrosshairTicks) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(CrosshairIdleSpread, other.CrosshairIdleSpread)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(CrosshairWalkScalar, other.CrosshairWalkScalar)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(CrosshairSprintScalar, other.CrosshairSprintScalar)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(CrosshairCrouchScalar, other.CrosshairCrouchScalar)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(CrosshairProneScalar, other.CrosshairProneScalar)) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(CrosshairAdsScalar, other.CrosshairAdsScalar)) return false;
      if (AdsEnabled != other.AdsEnabled) return false;
      if (AdsCrosshairEnabled != other.AdsCrosshairEnabled) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(DEPRECATEDAimFrictionRadius, other.DEPRECATEDAimFrictionRadius)) return false;
      if (ScreensPose != other.ScreensPose) return false;
      if (SupportsReload != other.SupportsReload) return false;
      if (EnableAutoFire != other.EnableAutoFire) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (ContinuousFire != false) hash ^= ContinuousFire.GetHashCode();
      if (MaxFireRate != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MaxFireRate);
      if (DEPRECATEDRecoilAngleX != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DEPRECATEDRecoilAngleX);
      if (DEPRECATEDRecoilAngleY != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DEPRECATEDRecoilAngleY);
      if (DEPRECATEDRecoilDuration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DEPRECATEDRecoilDuration);
      if (DEPRECATEDRecoilShakeAmplitude != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DEPRECATEDRecoilShakeAmplitude);
      if (DEPRECATEDRecoilShakeFrequency != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DEPRECATEDRecoilShakeFrequency);
      if (DEPRECATEDRecoilReturnDuration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DEPRECATEDRecoilReturnDuration);
      if (ReloadDuration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ReloadDuration);
      if (AdsZoom != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(AdsZoom);
      if (AimFrictionEnabled != false) hash ^= AimFrictionEnabled.GetHashCode();
      if (ProjectileMagnetismEnabled != false) hash ^= ProjectileMagnetismEnabled.GetHashCode();
      hash ^= dEPRECATEDAutoAimTargetRoles_.GetHashCode();
      if (MaxAmmo != 0) hash ^= MaxAmmo.GetHashCode();
      if (CrosshairTicks != 0) hash ^= CrosshairTicks.GetHashCode();
      if (CrosshairIdleSpread != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(CrosshairIdleSpread);
      if (CrosshairWalkScalar != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(CrosshairWalkScalar);
      if (CrosshairSprintScalar != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(CrosshairSprintScalar);
      if (CrosshairCrouchScalar != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(CrosshairCrouchScalar);
      if (CrosshairProneScalar != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(CrosshairProneScalar);
      if (CrosshairAdsScalar != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(CrosshairAdsScalar);
      if (AdsEnabled != false) hash ^= AdsEnabled.GetHashCode();
      if (AdsCrosshairEnabled != false) hash ^= AdsCrosshairEnabled.GetHashCode();
      if (DEPRECATEDAimFrictionRadius != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(DEPRECATEDAimFrictionRadius);
      if (ScreensPose != global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose.PistolOneHanded) hash ^= ScreensPose.GetHashCode();
      if (SupportsReload != false) hash ^= SupportsReload.GetHashCode();
      if (EnableAutoFire != false) hash ^= EnableAutoFire.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (ContinuousFire != false) {
        output.WriteRawTag(8);
        output.WriteBool(ContinuousFire);
      }
      if (MaxFireRate != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(MaxFireRate);
      }
      if (DEPRECATEDRecoilAngleX != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(DEPRECATEDRecoilAngleX);
      }
      if (DEPRECATEDRecoilAngleY != 0F) {
        output.WriteRawTag(37);
        output.WriteFloat(DEPRECATEDRecoilAngleY);
      }
      if (DEPRECATEDRecoilDuration != 0F) {
        output.WriteRawTag(45);
        output.WriteFloat(DEPRECATEDRecoilDuration);
      }
      if (DEPRECATEDRecoilShakeAmplitude != 0F) {
        output.WriteRawTag(53);
        output.WriteFloat(DEPRECATEDRecoilShakeAmplitude);
      }
      if (DEPRECATEDRecoilShakeFrequency != 0F) {
        output.WriteRawTag(61);
        output.WriteFloat(DEPRECATEDRecoilShakeFrequency);
      }
      if (DEPRECATEDRecoilReturnDuration != 0F) {
        output.WriteRawTag(69);
        output.WriteFloat(DEPRECATEDRecoilReturnDuration);
      }
      if (ReloadDuration != 0F) {
        output.WriteRawTag(77);
        output.WriteFloat(ReloadDuration);
      }
      if (AdsZoom != 0F) {
        output.WriteRawTag(85);
        output.WriteFloat(AdsZoom);
      }
      if (AimFrictionEnabled != false) {
        output.WriteRawTag(88);
        output.WriteBool(AimFrictionEnabled);
      }
      if (ProjectileMagnetismEnabled != false) {
        output.WriteRawTag(96);
        output.WriteBool(ProjectileMagnetismEnabled);
      }
      dEPRECATEDAutoAimTargetRoles_.WriteTo(output, _repeated_dEPRECATEDAutoAimTargetRoles_codec);
      if (MaxAmmo != 0) {
        output.WriteRawTag(112);
        output.WriteInt32(MaxAmmo);
      }
      if (CrosshairTicks != 0) {
        output.WriteRawTag(120);
        output.WriteInt32(CrosshairTicks);
      }
      if (CrosshairIdleSpread != 0F) {
        output.WriteRawTag(133, 1);
        output.WriteFloat(CrosshairIdleSpread);
      }
      if (CrosshairWalkScalar != 0F) {
        output.WriteRawTag(141, 1);
        output.WriteFloat(CrosshairWalkScalar);
      }
      if (CrosshairSprintScalar != 0F) {
        output.WriteRawTag(149, 1);
        output.WriteFloat(CrosshairSprintScalar);
      }
      if (CrosshairCrouchScalar != 0F) {
        output.WriteRawTag(157, 1);
        output.WriteFloat(CrosshairCrouchScalar);
      }
      if (CrosshairProneScalar != 0F) {
        output.WriteRawTag(165, 1);
        output.WriteFloat(CrosshairProneScalar);
      }
      if (CrosshairAdsScalar != 0F) {
        output.WriteRawTag(173, 1);
        output.WriteFloat(CrosshairAdsScalar);
      }
      if (AdsEnabled != false) {
        output.WriteRawTag(176, 1);
        output.WriteBool(AdsEnabled);
      }
      if (AdsCrosshairEnabled != false) {
        output.WriteRawTag(184, 1);
        output.WriteBool(AdsCrosshairEnabled);
      }
      if (DEPRECATEDAimFrictionRadius != 0F) {
        output.WriteRawTag(197, 1);
        output.WriteFloat(DEPRECATEDAimFrictionRadius);
      }
      if (ScreensPose != global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose.PistolOneHanded) {
        output.WriteRawTag(200, 1);
        output.WriteEnum((int) ScreensPose);
      }
      if (SupportsReload != false) {
        output.WriteRawTag(208, 1);
        output.WriteBool(SupportsReload);
      }
      if (EnableAutoFire != false) {
        output.WriteRawTag(216, 1);
        output.WriteBool(EnableAutoFire);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (ContinuousFire != false) {
        output.WriteRawTag(8);
        output.WriteBool(ContinuousFire);
      }
      if (MaxFireRate != 0F) {
        output.WriteRawTag(21);
        output.WriteFloat(MaxFireRate);
      }
      if (DEPRECATEDRecoilAngleX != 0F) {
        output.WriteRawTag(29);
        output.WriteFloat(DEPRECATEDRecoilAngleX);
      }
      if (DEPRECATEDRecoilAngleY != 0F) {
        output.WriteRawTag(37);
        output.WriteFloat(DEPRECATEDRecoilAngleY);
      }
      if (DEPRECATEDRecoilDuration != 0F) {
        output.WriteRawTag(45);
        output.WriteFloat(DEPRECATEDRecoilDuration);
      }
      if (DEPRECATEDRecoilShakeAmplitude != 0F) {
        output.WriteRawTag(53);
        output.WriteFloat(DEPRECATEDRecoilShakeAmplitude);
      }
      if (DEPRECATEDRecoilShakeFrequency != 0F) {
        output.WriteRawTag(61);
        output.WriteFloat(DEPRECATEDRecoilShakeFrequency);
      }
      if (DEPRECATEDRecoilReturnDuration != 0F) {
        output.WriteRawTag(69);
        output.WriteFloat(DEPRECATEDRecoilReturnDuration);
      }
      if (ReloadDuration != 0F) {
        output.WriteRawTag(77);
        output.WriteFloat(ReloadDuration);
      }
      if (AdsZoom != 0F) {
        output.WriteRawTag(85);
        output.WriteFloat(AdsZoom);
      }
      if (AimFrictionEnabled != false) {
        output.WriteRawTag(88);
        output.WriteBool(AimFrictionEnabled);
      }
      if (ProjectileMagnetismEnabled != false) {
        output.WriteRawTag(96);
        output.WriteBool(ProjectileMagnetismEnabled);
      }
      dEPRECATEDAutoAimTargetRoles_.WriteTo(ref output, _repeated_dEPRECATEDAutoAimTargetRoles_codec);
      if (MaxAmmo != 0) {
        output.WriteRawTag(112);
        output.WriteInt32(MaxAmmo);
      }
      if (CrosshairTicks != 0) {
        output.WriteRawTag(120);
        output.WriteInt32(CrosshairTicks);
      }
      if (CrosshairIdleSpread != 0F) {
        output.WriteRawTag(133, 1);
        output.WriteFloat(CrosshairIdleSpread);
      }
      if (CrosshairWalkScalar != 0F) {
        output.WriteRawTag(141, 1);
        output.WriteFloat(CrosshairWalkScalar);
      }
      if (CrosshairSprintScalar != 0F) {
        output.WriteRawTag(149, 1);
        output.WriteFloat(CrosshairSprintScalar);
      }
      if (CrosshairCrouchScalar != 0F) {
        output.WriteRawTag(157, 1);
        output.WriteFloat(CrosshairCrouchScalar);
      }
      if (CrosshairProneScalar != 0F) {
        output.WriteRawTag(165, 1);
        output.WriteFloat(CrosshairProneScalar);
      }
      if (CrosshairAdsScalar != 0F) {
        output.WriteRawTag(173, 1);
        output.WriteFloat(CrosshairAdsScalar);
      }
      if (AdsEnabled != false) {
        output.WriteRawTag(176, 1);
        output.WriteBool(AdsEnabled);
      }
      if (AdsCrosshairEnabled != false) {
        output.WriteRawTag(184, 1);
        output.WriteBool(AdsCrosshairEnabled);
      }
      if (DEPRECATEDAimFrictionRadius != 0F) {
        output.WriteRawTag(197, 1);
        output.WriteFloat(DEPRECATEDAimFrictionRadius);
      }
      if (ScreensPose != global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose.PistolOneHanded) {
        output.WriteRawTag(200, 1);
        output.WriteEnum((int) ScreensPose);
      }
      if (SupportsReload != false) {
        output.WriteRawTag(208, 1);
        output.WriteBool(SupportsReload);
      }
      if (EnableAutoFire != false) {
        output.WriteRawTag(216, 1);
        output.WriteBool(EnableAutoFire);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (ContinuousFire != false) {
        size += 1 + 1;
      }
      if (MaxFireRate != 0F) {
        size += 1 + 4;
      }
      if (DEPRECATEDRecoilAngleX != 0F) {
        size += 1 + 4;
      }
      if (DEPRECATEDRecoilAngleY != 0F) {
        size += 1 + 4;
      }
      if (DEPRECATEDRecoilDuration != 0F) {
        size += 1 + 4;
      }
      if (DEPRECATEDRecoilShakeAmplitude != 0F) {
        size += 1 + 4;
      }
      if (DEPRECATEDRecoilShakeFrequency != 0F) {
        size += 1 + 4;
      }
      if (DEPRECATEDRecoilReturnDuration != 0F) {
        size += 1 + 4;
      }
      if (ReloadDuration != 0F) {
        size += 1 + 4;
      }
      if (AdsZoom != 0F) {
        size += 1 + 4;
      }
      if (AimFrictionEnabled != false) {
        size += 1 + 1;
      }
      if (ProjectileMagnetismEnabled != false) {
        size += 1 + 1;
      }
      size += dEPRECATEDAutoAimTargetRoles_.CalculateSize(_repeated_dEPRECATEDAutoAimTargetRoles_codec);
      if (MaxAmmo != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxAmmo);
      }
      if (CrosshairTicks != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(CrosshairTicks);
      }
      if (CrosshairIdleSpread != 0F) {
        size += 2 + 4;
      }
      if (CrosshairWalkScalar != 0F) {
        size += 2 + 4;
      }
      if (CrosshairSprintScalar != 0F) {
        size += 2 + 4;
      }
      if (CrosshairCrouchScalar != 0F) {
        size += 2 + 4;
      }
      if (CrosshairProneScalar != 0F) {
        size += 2 + 4;
      }
      if (CrosshairAdsScalar != 0F) {
        size += 2 + 4;
      }
      if (AdsEnabled != false) {
        size += 2 + 1;
      }
      if (AdsCrosshairEnabled != false) {
        size += 2 + 1;
      }
      if (DEPRECATEDAimFrictionRadius != 0F) {
        size += 2 + 4;
      }
      if (ScreensPose != global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose.PistolOneHanded) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ScreensPose);
      }
      if (SupportsReload != false) {
        size += 2 + 1;
      }
      if (EnableAutoFire != false) {
        size += 2 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GunHandleData other) {
      if (other == null) {
        return;
      }
      if (other.ContinuousFire != false) {
        ContinuousFire = other.ContinuousFire;
      }
      if (other.MaxFireRate != 0F) {
        MaxFireRate = other.MaxFireRate;
      }
      if (other.DEPRECATEDRecoilAngleX != 0F) {
        DEPRECATEDRecoilAngleX = other.DEPRECATEDRecoilAngleX;
      }
      if (other.DEPRECATEDRecoilAngleY != 0F) {
        DEPRECATEDRecoilAngleY = other.DEPRECATEDRecoilAngleY;
      }
      if (other.DEPRECATEDRecoilDuration != 0F) {
        DEPRECATEDRecoilDuration = other.DEPRECATEDRecoilDuration;
      }
      if (other.DEPRECATEDRecoilShakeAmplitude != 0F) {
        DEPRECATEDRecoilShakeAmplitude = other.DEPRECATEDRecoilShakeAmplitude;
      }
      if (other.DEPRECATEDRecoilShakeFrequency != 0F) {
        DEPRECATEDRecoilShakeFrequency = other.DEPRECATEDRecoilShakeFrequency;
      }
      if (other.DEPRECATEDRecoilReturnDuration != 0F) {
        DEPRECATEDRecoilReturnDuration = other.DEPRECATEDRecoilReturnDuration;
      }
      if (other.ReloadDuration != 0F) {
        ReloadDuration = other.ReloadDuration;
      }
      if (other.AdsZoom != 0F) {
        AdsZoom = other.AdsZoom;
      }
      if (other.AimFrictionEnabled != false) {
        AimFrictionEnabled = other.AimFrictionEnabled;
      }
      if (other.ProjectileMagnetismEnabled != false) {
        ProjectileMagnetismEnabled = other.ProjectileMagnetismEnabled;
      }
      dEPRECATEDAutoAimTargetRoles_.Add(other.dEPRECATEDAutoAimTargetRoles_);
      if (other.MaxAmmo != 0) {
        MaxAmmo = other.MaxAmmo;
      }
      if (other.CrosshairTicks != 0) {
        CrosshairTicks = other.CrosshairTicks;
      }
      if (other.CrosshairIdleSpread != 0F) {
        CrosshairIdleSpread = other.CrosshairIdleSpread;
      }
      if (other.CrosshairWalkScalar != 0F) {
        CrosshairWalkScalar = other.CrosshairWalkScalar;
      }
      if (other.CrosshairSprintScalar != 0F) {
        CrosshairSprintScalar = other.CrosshairSprintScalar;
      }
      if (other.CrosshairCrouchScalar != 0F) {
        CrosshairCrouchScalar = other.CrosshairCrouchScalar;
      }
      if (other.CrosshairProneScalar != 0F) {
        CrosshairProneScalar = other.CrosshairProneScalar;
      }
      if (other.CrosshairAdsScalar != 0F) {
        CrosshairAdsScalar = other.CrosshairAdsScalar;
      }
      if (other.AdsEnabled != false) {
        AdsEnabled = other.AdsEnabled;
      }
      if (other.AdsCrosshairEnabled != false) {
        AdsCrosshairEnabled = other.AdsCrosshairEnabled;
      }
      if (other.DEPRECATEDAimFrictionRadius != 0F) {
        DEPRECATEDAimFrictionRadius = other.DEPRECATEDAimFrictionRadius;
      }
      if (other.ScreensPose != global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose.PistolOneHanded) {
        ScreensPose = other.ScreensPose;
      }
      if (other.SupportsReload != false) {
        SupportsReload = other.SupportsReload;
      }
      if (other.EnableAutoFire != false) {
        EnableAutoFire = other.EnableAutoFire;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            ContinuousFire = input.ReadBool();
            break;
          }
          case 21: {
            MaxFireRate = input.ReadFloat();
            break;
          }
          case 29: {
            DEPRECATEDRecoilAngleX = input.ReadFloat();
            break;
          }
          case 37: {
            DEPRECATEDRecoilAngleY = input.ReadFloat();
            break;
          }
          case 45: {
            DEPRECATEDRecoilDuration = input.ReadFloat();
            break;
          }
          case 53: {
            DEPRECATEDRecoilShakeAmplitude = input.ReadFloat();
            break;
          }
          case 61: {
            DEPRECATEDRecoilShakeFrequency = input.ReadFloat();
            break;
          }
          case 69: {
            DEPRECATEDRecoilReturnDuration = input.ReadFloat();
            break;
          }
          case 77: {
            ReloadDuration = input.ReadFloat();
            break;
          }
          case 85: {
            AdsZoom = input.ReadFloat();
            break;
          }
          case 88: {
            AimFrictionEnabled = input.ReadBool();
            break;
          }
          case 96: {
            ProjectileMagnetismEnabled = input.ReadBool();
            break;
          }
          case 106: {
            dEPRECATEDAutoAimTargetRoles_.AddEntriesFrom(input, _repeated_dEPRECATEDAutoAimTargetRoles_codec);
            break;
          }
          case 112: {
            MaxAmmo = input.ReadInt32();
            break;
          }
          case 120: {
            CrosshairTicks = input.ReadInt32();
            break;
          }
          case 133: {
            CrosshairIdleSpread = input.ReadFloat();
            break;
          }
          case 141: {
            CrosshairWalkScalar = input.ReadFloat();
            break;
          }
          case 149: {
            CrosshairSprintScalar = input.ReadFloat();
            break;
          }
          case 157: {
            CrosshairCrouchScalar = input.ReadFloat();
            break;
          }
          case 165: {
            CrosshairProneScalar = input.ReadFloat();
            break;
          }
          case 173: {
            CrosshairAdsScalar = input.ReadFloat();
            break;
          }
          case 176: {
            AdsEnabled = input.ReadBool();
            break;
          }
          case 184: {
            AdsCrosshairEnabled = input.ReadBool();
            break;
          }
          case 197: {
            DEPRECATEDAimFrictionRadius = input.ReadFloat();
            break;
          }
          case 200: {
            ScreensPose = (global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose) input.ReadEnum();
            break;
          }
          case 208: {
            SupportsReload = input.ReadBool();
            break;
          }
          case 216: {
            EnableAutoFire = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            ContinuousFire = input.ReadBool();
            break;
          }
          case 21: {
            MaxFireRate = input.ReadFloat();
            break;
          }
          case 29: {
            DEPRECATEDRecoilAngleX = input.ReadFloat();
            break;
          }
          case 37: {
            DEPRECATEDRecoilAngleY = input.ReadFloat();
            break;
          }
          case 45: {
            DEPRECATEDRecoilDuration = input.ReadFloat();
            break;
          }
          case 53: {
            DEPRECATEDRecoilShakeAmplitude = input.ReadFloat();
            break;
          }
          case 61: {
            DEPRECATEDRecoilShakeFrequency = input.ReadFloat();
            break;
          }
          case 69: {
            DEPRECATEDRecoilReturnDuration = input.ReadFloat();
            break;
          }
          case 77: {
            ReloadDuration = input.ReadFloat();
            break;
          }
          case 85: {
            AdsZoom = input.ReadFloat();
            break;
          }
          case 88: {
            AimFrictionEnabled = input.ReadBool();
            break;
          }
          case 96: {
            ProjectileMagnetismEnabled = input.ReadBool();
            break;
          }
          case 106: {
            dEPRECATEDAutoAimTargetRoles_.AddEntriesFrom(ref input, _repeated_dEPRECATEDAutoAimTargetRoles_codec);
            break;
          }
          case 112: {
            MaxAmmo = input.ReadInt32();
            break;
          }
          case 120: {
            CrosshairTicks = input.ReadInt32();
            break;
          }
          case 133: {
            CrosshairIdleSpread = input.ReadFloat();
            break;
          }
          case 141: {
            CrosshairWalkScalar = input.ReadFloat();
            break;
          }
          case 149: {
            CrosshairSprintScalar = input.ReadFloat();
            break;
          }
          case 157: {
            CrosshairCrouchScalar = input.ReadFloat();
            break;
          }
          case 165: {
            CrosshairProneScalar = input.ReadFloat();
            break;
          }
          case 173: {
            CrosshairAdsScalar = input.ReadFloat();
            break;
          }
          case 176: {
            AdsEnabled = input.ReadBool();
            break;
          }
          case 184: {
            AdsCrosshairEnabled = input.ReadBool();
            break;
          }
          case 197: {
            DEPRECATEDAimFrictionRadius = input.ReadFloat();
            break;
          }
          case 200: {
            ScreensPose = (global::RecRoom.Protobuf.GunHandleData.Types.GunHandleScreensPose) input.ReadEnum();
            break;
          }
          case 208: {
            SupportsReload = input.ReadBool();
            break;
          }
          case 216: {
            EnableAutoFire = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// <summary>Container for nested types declared in the GunHandleData message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      public enum GunHandleScreensPose {
        [pbr::OriginalName("Pistol_OneHanded")] PistolOneHanded = 0,
        [pbr::OriginalName("Pistol_TwoHanded")] PistolTwoHanded = 1,
        [pbr::OriginalName("Shotgun_OneHanded")] ShotgunOneHanded = 2,
        [pbr::OriginalName("Shotgun_TwoHanded")] ShotgunTwoHanded = 3,
        [pbr::OriginalName("Rifle_OneHanded")] RifleOneHanded = 4,
        [pbr::OriginalName("Rifle_TwoHanded")] RifleTwoHanded = 5,
      }

    }
    #endregion

  }

  #endregion

}

#endregion Designer generated code
