// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: t4mp.proto

#include "t4mp.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_t4mp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ConnectAck_t4mp_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_t4mp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PlayerSnap_t4mp_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_t4mp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ServerSnap_t4mp_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_t4mp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ServerSnap_PlayerData_t4mp_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_t4mp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ServerSnap_PlayerData_WeaponWheel_t4mp_2eproto;
class PacketDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Packet> _instance;
} _Packet_default_instance_;
class ConnectAckDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ConnectAck> _instance;
} _ConnectAck_default_instance_;
class PlayerSnapDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PlayerSnap> _instance;
} _PlayerSnap_default_instance_;
class ServerSnap_PlayerData_WeaponWheelDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ServerSnap_PlayerData_WeaponWheel> _instance;
} _ServerSnap_PlayerData_WeaponWheel_default_instance_;
class ServerSnap_PlayerDataDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ServerSnap_PlayerData> _instance;
} _ServerSnap_PlayerData_default_instance_;
class ServerSnapDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ServerSnap> _instance;
} _ServerSnap_default_instance_;
static void InitDefaultsscc_info_ConnectAck_t4mp_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::_ConnectAck_default_instance_;
    new (ptr) ::ConnectAck();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::ConnectAck::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ConnectAck_t4mp_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ConnectAck_t4mp_2eproto}, {}};

static void InitDefaultsscc_info_Packet_t4mp_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::_Packet_default_instance_;
    new (ptr) ::Packet();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Packet::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Packet_t4mp_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_Packet_t4mp_2eproto}, {
      &scc_info_PlayerSnap_t4mp_2eproto.base,
      &scc_info_ServerSnap_t4mp_2eproto.base,
      &scc_info_ConnectAck_t4mp_2eproto.base,}};

static void InitDefaultsscc_info_PlayerSnap_t4mp_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::_PlayerSnap_default_instance_;
    new (ptr) ::PlayerSnap();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::PlayerSnap::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PlayerSnap_t4mp_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_PlayerSnap_t4mp_2eproto}, {}};

static void InitDefaultsscc_info_ServerSnap_t4mp_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::_ServerSnap_default_instance_;
    new (ptr) ::ServerSnap();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::ServerSnap::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ServerSnap_t4mp_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ServerSnap_t4mp_2eproto}, {
      &scc_info_ServerSnap_PlayerData_t4mp_2eproto.base,}};

static void InitDefaultsscc_info_ServerSnap_PlayerData_t4mp_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::_ServerSnap_PlayerData_default_instance_;
    new (ptr) ::ServerSnap_PlayerData();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::ServerSnap_PlayerData::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_ServerSnap_PlayerData_t4mp_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_ServerSnap_PlayerData_t4mp_2eproto}, {
      &scc_info_ServerSnap_PlayerData_WeaponWheel_t4mp_2eproto.base,}};

static void InitDefaultsscc_info_ServerSnap_PlayerData_WeaponWheel_t4mp_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::_ServerSnap_PlayerData_WeaponWheel_default_instance_;
    new (ptr) ::ServerSnap_PlayerData_WeaponWheel();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::ServerSnap_PlayerData_WeaponWheel::InitAsDefaultInstance();
}

::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ServerSnap_PlayerData_WeaponWheel_t4mp_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ServerSnap_PlayerData_WeaponWheel_t4mp_2eproto}, {}};

static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_t4mp_2eproto[6];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_t4mp_2eproto[1];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_t4mp_2eproto = nullptr;

const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_t4mp_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Packet, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::Packet, type_),
  PROTOBUF_FIELD_OFFSET(::Packet, player_snapshot_),
  PROTOBUF_FIELD_OFFSET(::Packet, server_snapshot_),
  PROTOBUF_FIELD_OFFSET(::Packet, connect_ack_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::ConnectAck, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::ConnectAck, index_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, x_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, y_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, z_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, viewx_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, viewy_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, walk_forward_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, walk_backward_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, walk_left_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, walk_right_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, jump_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, crouch_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, fire_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, fire_hold_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, fire_hold_time_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, fire_release_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, fire_release_time_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, weapon_switch_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, weapon_switch_time_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, weapon_slot_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, packet_sequence_),
  PROTOBUF_FIELD_OFFSET(::PlayerSnap, modify_weapon_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bwarclub_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_bow_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bow_normal_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bow_explosive_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bow_poison_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_tekbow_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, tekbow_normalammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, tekbow_explosiveammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, tekbow_posionammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_spikegrenade_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, spikegrenade_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_pistol_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, pistol_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_shotgun_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, shotgun_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_flecheete_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, fleechete_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, minigun_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_rocketlauncher_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, rocket_ammo1_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, rocket_ammo2_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, rocket_ammo3_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_plasmacannon_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, plasma_ammo1_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, plasma_ammo2_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, plasma_ammo3_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_flamethrower_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, flamethrower_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_spidermine_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, spidermine_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_gravitygun_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, gravitygun_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, gravitygun_ammo2_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_darkmatter_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, darkmatter_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, bhas_crossbow_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, crossbow_normal_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, crossbow_explosive_ammo_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData_WeaponWheel, crossbow_poison_ammo_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, x_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, y_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, z_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, viewx_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, viewy_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, walk_forward_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, walk_backward_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, walk_left_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, walk_right_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, jump_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, crouch_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, fire_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, fire_hold_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, fire_hold_time_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, fire_release_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, fire_release_time_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, max_health_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, current_health_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, weapon_switch_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, weapon_switch_time_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, weapon_slot_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, weapons_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, index_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, death_type_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap_PlayerData, modify_weapon_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::ServerSnap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::ServerSnap, player_),
  PROTOBUF_FIELD_OFFSET(::ServerSnap, packet_sequence_),
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::Packet)},
  { 9, -1, sizeof(::ConnectAck)},
  { 15, -1, sizeof(::PlayerSnap)},
  { 41, -1, sizeof(::ServerSnap_PlayerData_WeaponWheel)},
  { 85, -1, sizeof(::ServerSnap_PlayerData)},
  { 115, -1, sizeof(::ServerSnap)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::_Packet_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::_ConnectAck_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::_PlayerSnap_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::_ServerSnap_PlayerData_WeaponWheel_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::_ServerSnap_PlayerData_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::_ServerSnap_default_instance_),
};

const char descriptor_table_protodef_t4mp_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\nt4mp.proto\"\335\001\n\006Packet\022\032\n\004type\030\001 \001(\0162\014."
  "Packet.Type\022$\n\017player_snapshot\030\002 \001(\0132\013.P"
  "layerSnap\022$\n\017server_snapshot\030\003 \001(\0132\013.Ser"
  "verSnap\022 \n\013connect_ack\030\004 \001(\0132\013.ConnectAc"
  "k\"I\n\004Type\022\013\n\007invalid\020\000\022\022\n\016client_connect"
  "\020\001\022\017\n\013server_snap\020\002\022\017\n\013client_snap\020\003\"\033\n\n"
  "ConnectAck\022\r\n\005index\030\001 \001(\005\"\237\003\n\nPlayerSnap"
  "\022\t\n\001X\030\001 \001(\002\022\t\n\001Y\030\002 \001(\002\022\t\n\001Z\030\003 \001(\002\022\r\n\005Vie"
  "wX\030\004 \001(\002\022\r\n\005ViewY\030\005 \001(\002\022\024\n\014Walk_forward\030"
  "\006 \001(\010\022\025\n\rWalk_backward\030\007 \001(\010\022\021\n\tWalk_lef"
  "t\030\010 \001(\010\022\022\n\nWalk_right\030\t \001(\010\022\014\n\004Jump\030\n \001("
  "\010\022\016\n\006Crouch\030\013 \001(\010\022\014\n\004Fire\030\014 \001(\010\022\021\n\tFire_"
  "hold\030\r \001(\010\022\026\n\016Fire_hold_time\030\016 \001(\002\022\024\n\014Fi"
  "re_release\030\017 \001(\010\022\031\n\021Fire_release_time\030\020 "
  "\001(\002\022\025\n\rWeapon_switch\030\021 \001(\005\022\032\n\022Weapon_swi"
  "tch_time\030\022 \001(\002\022\023\n\013Weapon_slot\030\023 \001(\005\022\027\n\017p"
  "acket_sequence\030\024 \001(\005\022\025\n\rmodify_weapon\030\025 "
  "\001(\010\"\255\014\n\nServerSnap\022&\n\006player\030\001 \003(\0132\026.Ser"
  "verSnap.PlayerData\022\027\n\017packet_sequence\030\002 "
  "\001(\005\032\335\013\n\nPlayerData\022\t\n\001X\030\001 \001(\002\022\t\n\001Y\030\002 \001(\002"
  "\022\t\n\001Z\030\003 \001(\002\022\r\n\005ViewX\030\004 \001(\002\022\r\n\005ViewY\030\005 \001("
  "\002\022\024\n\014Walk_forward\030\006 \001(\010\022\025\n\rWalk_backward"
  "\030\007 \001(\010\022\021\n\tWalk_left\030\010 \001(\010\022\022\n\nWalk_right\030"
  "\t \001(\010\022\014\n\004Jump\030\n \001(\010\022\016\n\006Crouch\030\013 \001(\010\022\014\n\004F"
  "ire\030\014 \001(\010\022\021\n\tFire_hold\030\r \001(\010\022\026\n\016Fire_hol"
  "d_time\030\016 \001(\002\022\024\n\014Fire_release\030\017 \001(\010\022\031\n\021Fi"
  "re_release_time\030\020 \001(\002\022\022\n\nMax_health\030\021 \001("
  "\002\022\026\n\016Current_health\030\022 \001(\002\022\025\n\rWeapon_swit"
  "ch\030\023 \001(\005\022\032\n\022Weapon_switch_time\030\024 \001(\002\022\023\n\013"
  "Weapon_slot\030\025 \001(\005\0223\n\007weapons\030\026 \001(\0132\".Ser"
  "verSnap.PlayerData.WeaponWheel\022\r\n\005index\030"
  "\027 \001(\005\022\022\n\ndeath_type\030\030 \001(\005\022\025\n\rmodify_weap"
  "on\030\031 \001(\010\032\320\007\n\013WeaponWheel\022\020\n\010bWarClub\030\001 \001"
  "(\010\022\020\n\010bHas_Bow\030\002 \001(\010\022\027\n\017bow_Normal_Ammo\030"
  "\003 \001(\005\022\032\n\022bow_Explosive_Ammo\030\004 \001(\005\022\027\n\017bow"
  "_Poison_Ammo\030\005 \001(\005\022\023\n\013bHas_TekBow\030\006 \001(\010\022"
  "\031\n\021TekBow_NormalAmmo\030\007 \001(\005\022\034\n\024TekBow_Exp"
  "losiveAmmo\030\010 \001(\005\022\031\n\021TekBow_PosionAmmo\030\t "
  "\001(\005\022\031\n\021bHas_SpikeGrenade\030\n \001(\010\022\031\n\021SpikeG"
  "renade_Ammo\030\013 \001(\005\022\023\n\013bHas_Pistol\030\014 \001(\010\022\023"
  "\n\013Pistol_Ammo\030\r \001(\005\022\024\n\014bHas_ShotGun\030\016 \001("
  "\010\022\024\n\014ShotGun_Ammo\030\017 \001(\005\022\026\n\016bHas_Flecheet"
  "e\030\020 \001(\010\022\026\n\016Fleechete_Ammo\030\021 \001(\005\022\024\n\014MiniG"
  "un_Ammo\030\022 \001(\005\022\033\n\023bHas_RocketLauncher\030\023 \001"
  "(\010\022\024\n\014Rocket_Ammo1\030\024 \001(\005\022\024\n\014Rocket_Ammo2"
  "\030\025 \001(\005\022\024\n\014Rocket_Ammo3\030\026 \001(\005\022\031\n\021bHas_Pla"
  "smaCannon\030\027 \001(\010\022\024\n\014Plasma_Ammo1\030\030 \001(\005\022\024\n"
  "\014Plasma_Ammo2\030\031 \001(\005\022\024\n\014Plasma_Ammo3\030\032 \001("
  "\005\022\031\n\021bHas_FlameThrower\030\033 \001(\010\022\031\n\021FlameThr"
  "ower_Ammo\030\034 \001(\005\022\027\n\017bHas_SpiderMine\030\035 \001(\010"
  "\022\027\n\017SpiderMine_Ammo\030\036 \001(\005\022\027\n\017bHas_Gravit"
  "yGun\030\037 \001(\010\022\027\n\017GravityGun_Ammo\030  \001(\005\022\030\n\020G"
  "ravityGun_Ammo2\030! \001(\005\022\027\n\017bHas_DarkMatter"
  "\030\" \001(\010\022\027\n\017DarkMatter_Ammo\030# \001(\005\022\025\n\rbHas_"
  "CrossBow\030$ \001(\010\022\034\n\024CrossBow_Normal_Ammo\030%"
  " \001(\005\022\037\n\027CrossBow_Explosive_Ammo\030& \001(\005\022\034\n"
  "\024CrossBow_Poison_Ammo\030\' \001(\005b\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_t4mp_2eproto_deps[1] = {
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_t4mp_2eproto_sccs[6] = {
  &scc_info_ConnectAck_t4mp_2eproto.base,
  &scc_info_Packet_t4mp_2eproto.base,
  &scc_info_PlayerSnap_t4mp_2eproto.base,
  &scc_info_ServerSnap_t4mp_2eproto.base,
  &scc_info_ServerSnap_PlayerData_t4mp_2eproto.base,
  &scc_info_ServerSnap_PlayerData_WeaponWheel_t4mp_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_t4mp_2eproto_once;
static bool descriptor_table_t4mp_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_t4mp_2eproto = {
  &descriptor_table_t4mp_2eproto_initialized, descriptor_table_protodef_t4mp_2eproto, "t4mp.proto", 2275,
  &descriptor_table_t4mp_2eproto_once, descriptor_table_t4mp_2eproto_sccs, descriptor_table_t4mp_2eproto_deps, 6, 0,
  schemas, file_default_instances, TableStruct_t4mp_2eproto::offsets,
  file_level_metadata_t4mp_2eproto, 6, file_level_enum_descriptors_t4mp_2eproto, file_level_service_descriptors_t4mp_2eproto,
};

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_t4mp_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_t4mp_2eproto), true);
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Packet_Type_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_t4mp_2eproto);
  return file_level_enum_descriptors_t4mp_2eproto[0];
}
bool Packet_Type_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
constexpr Packet_Type Packet::invalid;
constexpr Packet_Type Packet::client_connect;
constexpr Packet_Type Packet::server_snap;
constexpr Packet_Type Packet::client_snap;
constexpr Packet_Type Packet::Type_MIN;
constexpr Packet_Type Packet::Type_MAX;
constexpr int Packet::Type_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)

// ===================================================================

void Packet::InitAsDefaultInstance() {
  ::_Packet_default_instance_._instance.get_mutable()->player_snapshot_ = const_cast< ::PlayerSnap*>(
      ::PlayerSnap::internal_default_instance());
  ::_Packet_default_instance_._instance.get_mutable()->server_snapshot_ = const_cast< ::ServerSnap*>(
      ::ServerSnap::internal_default_instance());
  ::_Packet_default_instance_._instance.get_mutable()->connect_ack_ = const_cast< ::ConnectAck*>(
      ::ConnectAck::internal_default_instance());
}
class Packet::_Internal {
 public:
  static const ::PlayerSnap& player_snapshot(const Packet* msg);
  static const ::ServerSnap& server_snapshot(const Packet* msg);
  static const ::ConnectAck& connect_ack(const Packet* msg);
};

const ::PlayerSnap&
Packet::_Internal::player_snapshot(const Packet* msg) {
  return *msg->player_snapshot_;
}
const ::ServerSnap&
Packet::_Internal::server_snapshot(const Packet* msg) {
  return *msg->server_snapshot_;
}
const ::ConnectAck&
Packet::_Internal::connect_ack(const Packet* msg) {
  return *msg->connect_ack_;
}
Packet::Packet()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:Packet)
}
Packet::Packet(const Packet& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from._internal_has_player_snapshot()) {
    player_snapshot_ = new ::PlayerSnap(*from.player_snapshot_);
  } else {
    player_snapshot_ = nullptr;
  }
  if (from._internal_has_server_snapshot()) {
    server_snapshot_ = new ::ServerSnap(*from.server_snapshot_);
  } else {
    server_snapshot_ = nullptr;
  }
  if (from._internal_has_connect_ack()) {
    connect_ack_ = new ::ConnectAck(*from.connect_ack_);
  } else {
    connect_ack_ = nullptr;
  }
  type_ = from.type_;
  // @@protoc_insertion_point(copy_constructor:Packet)
}

void Packet::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Packet_t4mp_2eproto.base);
  ::memset(&player_snapshot_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&type_) -
      reinterpret_cast<char*>(&player_snapshot_)) + sizeof(type_));
}

Packet::~Packet() {
  // @@protoc_insertion_point(destructor:Packet)
  SharedDtor();
}

void Packet::SharedDtor() {
  if (this != internal_default_instance()) delete player_snapshot_;
  if (this != internal_default_instance()) delete server_snapshot_;
  if (this != internal_default_instance()) delete connect_ack_;
}

void Packet::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Packet& Packet::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Packet_t4mp_2eproto.base);
  return *internal_default_instance();
}


void Packet::Clear() {
// @@protoc_insertion_point(message_clear_start:Packet)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && player_snapshot_ != nullptr) {
    delete player_snapshot_;
  }
  player_snapshot_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && server_snapshot_ != nullptr) {
    delete server_snapshot_;
  }
  server_snapshot_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && connect_ack_ != nullptr) {
    delete connect_ack_;
  }
  connect_ack_ = nullptr;
  type_ = 0;
  _internal_metadata_.Clear();
}

const char* Packet::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // .Packet.Type type = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
          _internal_set_type(static_cast<::Packet_Type>(val));
        } else goto handle_unusual;
        continue;
      // .PlayerSnap player_snapshot = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_player_snapshot(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .ServerSnap server_snapshot = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_server_snapshot(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .ConnectAck connect_ack = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_connect_ack(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* Packet::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Packet)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .Packet.Type type = 1;
  if (this->type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_type(), target);
  }

  // .PlayerSnap player_snapshot = 2;
  if (this->has_player_snapshot()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::player_snapshot(this), target, stream);
  }

  // .ServerSnap server_snapshot = 3;
  if (this->has_server_snapshot()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::server_snapshot(this), target, stream);
  }

  // .ConnectAck connect_ack = 4;
  if (this->has_connect_ack()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::connect_ack(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Packet)
  return target;
}

size_t Packet::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Packet)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .PlayerSnap player_snapshot = 2;
  if (this->has_player_snapshot()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *player_snapshot_);
  }

  // .ServerSnap server_snapshot = 3;
  if (this->has_server_snapshot()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *server_snapshot_);
  }

  // .ConnectAck connect_ack = 4;
  if (this->has_connect_ack()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *connect_ack_);
  }

  // .Packet.Type type = 1;
  if (this->type() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_type());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Packet::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Packet)
  GOOGLE_DCHECK_NE(&from, this);
  const Packet* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Packet>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Packet)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Packet)
    MergeFrom(*source);
  }
}

void Packet::MergeFrom(const Packet& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Packet)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_player_snapshot()) {
    _internal_mutable_player_snapshot()->::PlayerSnap::MergeFrom(from._internal_player_snapshot());
  }
  if (from.has_server_snapshot()) {
    _internal_mutable_server_snapshot()->::ServerSnap::MergeFrom(from._internal_server_snapshot());
  }
  if (from.has_connect_ack()) {
    _internal_mutable_connect_ack()->::ConnectAck::MergeFrom(from._internal_connect_ack());
  }
  if (from.type() != 0) {
    _internal_set_type(from._internal_type());
  }
}

void Packet::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Packet)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Packet::CopyFrom(const Packet& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Packet)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Packet::IsInitialized() const {
  return true;
}

void Packet::InternalSwap(Packet* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(player_snapshot_, other->player_snapshot_);
  swap(server_snapshot_, other->server_snapshot_);
  swap(connect_ack_, other->connect_ack_);
  swap(type_, other->type_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Packet::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ConnectAck::InitAsDefaultInstance() {
}
class ConnectAck::_Internal {
 public:
};

ConnectAck::ConnectAck()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:ConnectAck)
}
ConnectAck::ConnectAck(const ConnectAck& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  index_ = from.index_;
  // @@protoc_insertion_point(copy_constructor:ConnectAck)
}

void ConnectAck::SharedCtor() {
  index_ = 0;
}

ConnectAck::~ConnectAck() {
  // @@protoc_insertion_point(destructor:ConnectAck)
  SharedDtor();
}

void ConnectAck::SharedDtor() {
}

void ConnectAck::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ConnectAck& ConnectAck::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ConnectAck_t4mp_2eproto.base);
  return *internal_default_instance();
}


void ConnectAck::Clear() {
// @@protoc_insertion_point(message_clear_start:ConnectAck)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  index_ = 0;
  _internal_metadata_.Clear();
}

const char* ConnectAck::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 index = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ConnectAck::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:ConnectAck)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 index = 1;
  if (this->index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ConnectAck)
  return target;
}

size_t ConnectAck::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ConnectAck)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 index = 1;
  if (this->index() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_index());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ConnectAck::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ConnectAck)
  GOOGLE_DCHECK_NE(&from, this);
  const ConnectAck* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ConnectAck>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ConnectAck)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ConnectAck)
    MergeFrom(*source);
  }
}

void ConnectAck::MergeFrom(const ConnectAck& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ConnectAck)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.index() != 0) {
    _internal_set_index(from._internal_index());
  }
}

void ConnectAck::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ConnectAck)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ConnectAck::CopyFrom(const ConnectAck& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ConnectAck)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ConnectAck::IsInitialized() const {
  return true;
}

void ConnectAck::InternalSwap(ConnectAck* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(index_, other->index_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ConnectAck::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void PlayerSnap::InitAsDefaultInstance() {
}
class PlayerSnap::_Internal {
 public:
};

PlayerSnap::PlayerSnap()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:PlayerSnap)
}
PlayerSnap::PlayerSnap(const PlayerSnap& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&x_, &from.x_,
    static_cast<size_t>(reinterpret_cast<char*>(&packet_sequence_) -
    reinterpret_cast<char*>(&x_)) + sizeof(packet_sequence_));
  // @@protoc_insertion_point(copy_constructor:PlayerSnap)
}

void PlayerSnap::SharedCtor() {
  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&packet_sequence_) -
      reinterpret_cast<char*>(&x_)) + sizeof(packet_sequence_));
}

PlayerSnap::~PlayerSnap() {
  // @@protoc_insertion_point(destructor:PlayerSnap)
  SharedDtor();
}

void PlayerSnap::SharedDtor() {
}

void PlayerSnap::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const PlayerSnap& PlayerSnap::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PlayerSnap_t4mp_2eproto.base);
  return *internal_default_instance();
}


void PlayerSnap::Clear() {
// @@protoc_insertion_point(message_clear_start:PlayerSnap)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&packet_sequence_) -
      reinterpret_cast<char*>(&x_)) + sizeof(packet_sequence_));
  _internal_metadata_.Clear();
}

const char* PlayerSnap::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float X = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float Y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float Z = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          z_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float ViewX = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          viewx_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float ViewY = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          viewy_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool Walk_forward = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          walk_forward_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Walk_backward = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          walk_backward_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Walk_left = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          walk_left_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Walk_right = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
          walk_right_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Jump = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
          jump_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Crouch = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
          crouch_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Fire = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          fire_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Fire_hold = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
          fire_hold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float Fire_hold_time = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 117)) {
          fire_hold_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool Fire_release = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
          fire_release_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float Fire_release_time = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 133)) {
          fire_release_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 Weapon_switch = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
          weapon_switch_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float Weapon_switch_time = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 149)) {
          weapon_switch_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 Weapon_slot = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
          weapon_slot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 packet_sequence = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
          packet_sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool modify_weapon = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
          modify_weapon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* PlayerSnap::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:PlayerSnap)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float X = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
  }

  // float Y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
  }

  // float Z = 3;
  if (!(this->z() <= 0 && this->z() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_z(), target);
  }

  // float ViewX = 4;
  if (!(this->viewx() <= 0 && this->viewx() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_viewx(), target);
  }

  // float ViewY = 5;
  if (!(this->viewy() <= 0 && this->viewy() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_viewy(), target);
  }

  // bool Walk_forward = 6;
  if (this->walk_forward() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_walk_forward(), target);
  }

  // bool Walk_backward = 7;
  if (this->walk_backward() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(7, this->_internal_walk_backward(), target);
  }

  // bool Walk_left = 8;
  if (this->walk_left() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(8, this->_internal_walk_left(), target);
  }

  // bool Walk_right = 9;
  if (this->walk_right() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(9, this->_internal_walk_right(), target);
  }

  // bool Jump = 10;
  if (this->jump() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(10, this->_internal_jump(), target);
  }

  // bool Crouch = 11;
  if (this->crouch() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_crouch(), target);
  }

  // bool Fire = 12;
  if (this->fire() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(12, this->_internal_fire(), target);
  }

  // bool Fire_hold = 13;
  if (this->fire_hold() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_fire_hold(), target);
  }

  // float Fire_hold_time = 14;
  if (!(this->fire_hold_time() <= 0 && this->fire_hold_time() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(14, this->_internal_fire_hold_time(), target);
  }

  // bool Fire_release = 15;
  if (this->fire_release() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_fire_release(), target);
  }

  // float Fire_release_time = 16;
  if (!(this->fire_release_time() <= 0 && this->fire_release_time() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(16, this->_internal_fire_release_time(), target);
  }

  // int32 Weapon_switch = 17;
  if (this->weapon_switch() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(17, this->_internal_weapon_switch(), target);
  }

  // float Weapon_switch_time = 18;
  if (!(this->weapon_switch_time() <= 0 && this->weapon_switch_time() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(18, this->_internal_weapon_switch_time(), target);
  }

  // int32 Weapon_slot = 19;
  if (this->weapon_slot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_weapon_slot(), target);
  }

  // int32 packet_sequence = 20;
  if (this->packet_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_packet_sequence(), target);
  }

  // bool modify_weapon = 21;
  if (this->modify_weapon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(21, this->_internal_modify_weapon(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:PlayerSnap)
  return target;
}

size_t PlayerSnap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:PlayerSnap)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // float X = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    total_size += 1 + 4;
  }

  // float Y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    total_size += 1 + 4;
  }

  // float Z = 3;
  if (!(this->z() <= 0 && this->z() >= 0)) {
    total_size += 1 + 4;
  }

  // float ViewX = 4;
  if (!(this->viewx() <= 0 && this->viewx() >= 0)) {
    total_size += 1 + 4;
  }

  // float ViewY = 5;
  if (!(this->viewy() <= 0 && this->viewy() >= 0)) {
    total_size += 1 + 4;
  }

  // bool Walk_forward = 6;
  if (this->walk_forward() != 0) {
    total_size += 1 + 1;
  }

  // bool Walk_backward = 7;
  if (this->walk_backward() != 0) {
    total_size += 1 + 1;
  }

  // bool Walk_left = 8;
  if (this->walk_left() != 0) {
    total_size += 1 + 1;
  }

  // bool Walk_right = 9;
  if (this->walk_right() != 0) {
    total_size += 1 + 1;
  }

  // bool Jump = 10;
  if (this->jump() != 0) {
    total_size += 1 + 1;
  }

  // bool Crouch = 11;
  if (this->crouch() != 0) {
    total_size += 1 + 1;
  }

  // bool Fire = 12;
  if (this->fire() != 0) {
    total_size += 1 + 1;
  }

  // bool Fire_hold = 13;
  if (this->fire_hold() != 0) {
    total_size += 1 + 1;
  }

  // float Fire_hold_time = 14;
  if (!(this->fire_hold_time() <= 0 && this->fire_hold_time() >= 0)) {
    total_size += 1 + 4;
  }

  // float Fire_release_time = 16;
  if (!(this->fire_release_time() <= 0 && this->fire_release_time() >= 0)) {
    total_size += 2 + 4;
  }

  // int32 Weapon_switch = 17;
  if (this->weapon_switch() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_weapon_switch());
  }

  // float Weapon_switch_time = 18;
  if (!(this->weapon_switch_time() <= 0 && this->weapon_switch_time() >= 0)) {
    total_size += 2 + 4;
  }

  // bool Fire_release = 15;
  if (this->fire_release() != 0) {
    total_size += 1 + 1;
  }

  // bool modify_weapon = 21;
  if (this->modify_weapon() != 0) {
    total_size += 2 + 1;
  }

  // int32 Weapon_slot = 19;
  if (this->weapon_slot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_weapon_slot());
  }

  // int32 packet_sequence = 20;
  if (this->packet_sequence() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_packet_sequence());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void PlayerSnap::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:PlayerSnap)
  GOOGLE_DCHECK_NE(&from, this);
  const PlayerSnap* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PlayerSnap>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:PlayerSnap)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:PlayerSnap)
    MergeFrom(*source);
  }
}

void PlayerSnap::MergeFrom(const PlayerSnap& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:PlayerSnap)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.z() <= 0 && from.z() >= 0)) {
    _internal_set_z(from._internal_z());
  }
  if (!(from.viewx() <= 0 && from.viewx() >= 0)) {
    _internal_set_viewx(from._internal_viewx());
  }
  if (!(from.viewy() <= 0 && from.viewy() >= 0)) {
    _internal_set_viewy(from._internal_viewy());
  }
  if (from.walk_forward() != 0) {
    _internal_set_walk_forward(from._internal_walk_forward());
  }
  if (from.walk_backward() != 0) {
    _internal_set_walk_backward(from._internal_walk_backward());
  }
  if (from.walk_left() != 0) {
    _internal_set_walk_left(from._internal_walk_left());
  }
  if (from.walk_right() != 0) {
    _internal_set_walk_right(from._internal_walk_right());
  }
  if (from.jump() != 0) {
    _internal_set_jump(from._internal_jump());
  }
  if (from.crouch() != 0) {
    _internal_set_crouch(from._internal_crouch());
  }
  if (from.fire() != 0) {
    _internal_set_fire(from._internal_fire());
  }
  if (from.fire_hold() != 0) {
    _internal_set_fire_hold(from._internal_fire_hold());
  }
  if (!(from.fire_hold_time() <= 0 && from.fire_hold_time() >= 0)) {
    _internal_set_fire_hold_time(from._internal_fire_hold_time());
  }
  if (!(from.fire_release_time() <= 0 && from.fire_release_time() >= 0)) {
    _internal_set_fire_release_time(from._internal_fire_release_time());
  }
  if (from.weapon_switch() != 0) {
    _internal_set_weapon_switch(from._internal_weapon_switch());
  }
  if (!(from.weapon_switch_time() <= 0 && from.weapon_switch_time() >= 0)) {
    _internal_set_weapon_switch_time(from._internal_weapon_switch_time());
  }
  if (from.fire_release() != 0) {
    _internal_set_fire_release(from._internal_fire_release());
  }
  if (from.modify_weapon() != 0) {
    _internal_set_modify_weapon(from._internal_modify_weapon());
  }
  if (from.weapon_slot() != 0) {
    _internal_set_weapon_slot(from._internal_weapon_slot());
  }
  if (from.packet_sequence() != 0) {
    _internal_set_packet_sequence(from._internal_packet_sequence());
  }
}

void PlayerSnap::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:PlayerSnap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PlayerSnap::CopyFrom(const PlayerSnap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:PlayerSnap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PlayerSnap::IsInitialized() const {
  return true;
}

void PlayerSnap::InternalSwap(PlayerSnap* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(x_, other->x_);
  swap(y_, other->y_);
  swap(z_, other->z_);
  swap(viewx_, other->viewx_);
  swap(viewy_, other->viewy_);
  swap(walk_forward_, other->walk_forward_);
  swap(walk_backward_, other->walk_backward_);
  swap(walk_left_, other->walk_left_);
  swap(walk_right_, other->walk_right_);
  swap(jump_, other->jump_);
  swap(crouch_, other->crouch_);
  swap(fire_, other->fire_);
  swap(fire_hold_, other->fire_hold_);
  swap(fire_hold_time_, other->fire_hold_time_);
  swap(fire_release_time_, other->fire_release_time_);
  swap(weapon_switch_, other->weapon_switch_);
  swap(weapon_switch_time_, other->weapon_switch_time_);
  swap(fire_release_, other->fire_release_);
  swap(modify_weapon_, other->modify_weapon_);
  swap(weapon_slot_, other->weapon_slot_);
  swap(packet_sequence_, other->packet_sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PlayerSnap::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ServerSnap_PlayerData_WeaponWheel::InitAsDefaultInstance() {
}
class ServerSnap_PlayerData_WeaponWheel::_Internal {
 public:
};

ServerSnap_PlayerData_WeaponWheel::ServerSnap_PlayerData_WeaponWheel()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:ServerSnap.PlayerData.WeaponWheel)
}
ServerSnap_PlayerData_WeaponWheel::ServerSnap_PlayerData_WeaponWheel(const ServerSnap_PlayerData_WeaponWheel& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&bow_normal_ammo_, &from.bow_normal_ammo_,
    static_cast<size_t>(reinterpret_cast<char*>(&crossbow_poison_ammo_) -
    reinterpret_cast<char*>(&bow_normal_ammo_)) + sizeof(crossbow_poison_ammo_));
  // @@protoc_insertion_point(copy_constructor:ServerSnap.PlayerData.WeaponWheel)
}

void ServerSnap_PlayerData_WeaponWheel::SharedCtor() {
  ::memset(&bow_normal_ammo_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&crossbow_poison_ammo_) -
      reinterpret_cast<char*>(&bow_normal_ammo_)) + sizeof(crossbow_poison_ammo_));
}

ServerSnap_PlayerData_WeaponWheel::~ServerSnap_PlayerData_WeaponWheel() {
  // @@protoc_insertion_point(destructor:ServerSnap.PlayerData.WeaponWheel)
  SharedDtor();
}

void ServerSnap_PlayerData_WeaponWheel::SharedDtor() {
}

void ServerSnap_PlayerData_WeaponWheel::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ServerSnap_PlayerData_WeaponWheel& ServerSnap_PlayerData_WeaponWheel::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ServerSnap_PlayerData_WeaponWheel_t4mp_2eproto.base);
  return *internal_default_instance();
}


void ServerSnap_PlayerData_WeaponWheel::Clear() {
// @@protoc_insertion_point(message_clear_start:ServerSnap.PlayerData.WeaponWheel)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&bow_normal_ammo_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&crossbow_poison_ammo_) -
      reinterpret_cast<char*>(&bow_normal_ammo_)) + sizeof(crossbow_poison_ammo_));
  _internal_metadata_.Clear();
}

const char* ServerSnap_PlayerData_WeaponWheel::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // bool bWarClub = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          bwarclub_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_Bow = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          bhas_bow_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 bow_Normal_Ammo = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          bow_normal_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 bow_Explosive_Ammo = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          bow_explosive_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 bow_Poison_Ammo = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          bow_poison_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_TekBow = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          bhas_tekbow_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 TekBow_NormalAmmo = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          tekbow_normalammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 TekBow_ExplosiveAmmo = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          tekbow_explosiveammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 TekBow_PosionAmmo = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
          tekbow_posionammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_SpikeGrenade = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
          bhas_spikegrenade_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 SpikeGrenade_Ammo = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
          spikegrenade_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_Pistol = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          bhas_pistol_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 Pistol_Ammo = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
          pistol_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_ShotGun = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
          bhas_shotgun_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 ShotGun_Ammo = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
          shotgun_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_Flecheete = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 128)) {
          bhas_flecheete_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 Fleechete_Ammo = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 136)) {
          fleechete_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 MiniGun_Ammo = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144)) {
          minigun_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_RocketLauncher = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
          bhas_rocketlauncher_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 Rocket_Ammo1 = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 160)) {
          rocket_ammo1_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 Rocket_Ammo2 = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
          rocket_ammo2_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 Rocket_Ammo3 = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 176)) {
          rocket_ammo3_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_PlasmaCannon = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
          bhas_plasmacannon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 Plasma_Ammo1 = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
          plasma_ammo1_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 Plasma_Ammo2 = 25;
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
          plasma_ammo2_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 Plasma_Ammo3 = 26;
      case 26:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 208)) {
          plasma_ammo3_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_FlameThrower = 27;
      case 27:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 216)) {
          bhas_flamethrower_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 FlameThrower_Ammo = 28;
      case 28:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 224)) {
          flamethrower_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_SpiderMine = 29;
      case 29:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 232)) {
          bhas_spidermine_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 SpiderMine_Ammo = 30;
      case 30:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 240)) {
          spidermine_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_GravityGun = 31;
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 248)) {
          bhas_gravitygun_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 GravityGun_Ammo = 32;
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 0)) {
          gravitygun_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 GravityGun_Ammo2 = 33;
      case 33:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          gravitygun_ammo2_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_DarkMatter = 34;
      case 34:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          bhas_darkmatter_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 DarkMatter_Ammo = 35;
      case 35:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          darkmatter_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool bHas_CrossBow = 36;
      case 36:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          bhas_crossbow_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 CrossBow_Normal_Ammo = 37;
      case 37:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          crossbow_normal_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 CrossBow_Explosive_Ammo = 38;
      case 38:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          crossbow_explosive_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 CrossBow_Poison_Ammo = 39;
      case 39:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          crossbow_poison_ammo_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ServerSnap_PlayerData_WeaponWheel::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:ServerSnap.PlayerData.WeaponWheel)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool bWarClub = 1;
  if (this->bwarclub() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(1, this->_internal_bwarclub(), target);
  }

  // bool bHas_Bow = 2;
  if (this->bhas_bow() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_bhas_bow(), target);
  }

  // int32 bow_Normal_Ammo = 3;
  if (this->bow_normal_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_bow_normal_ammo(), target);
  }

  // int32 bow_Explosive_Ammo = 4;
  if (this->bow_explosive_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_bow_explosive_ammo(), target);
  }

  // int32 bow_Poison_Ammo = 5;
  if (this->bow_poison_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_bow_poison_ammo(), target);
  }

  // bool bHas_TekBow = 6;
  if (this->bhas_tekbow() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_bhas_tekbow(), target);
  }

  // int32 TekBow_NormalAmmo = 7;
  if (this->tekbow_normalammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_tekbow_normalammo(), target);
  }

  // int32 TekBow_ExplosiveAmmo = 8;
  if (this->tekbow_explosiveammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(8, this->_internal_tekbow_explosiveammo(), target);
  }

  // int32 TekBow_PosionAmmo = 9;
  if (this->tekbow_posionammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(9, this->_internal_tekbow_posionammo(), target);
  }

  // bool bHas_SpikeGrenade = 10;
  if (this->bhas_spikegrenade() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(10, this->_internal_bhas_spikegrenade(), target);
  }

  // int32 SpikeGrenade_Ammo = 11;
  if (this->spikegrenade_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(11, this->_internal_spikegrenade_ammo(), target);
  }

  // bool bHas_Pistol = 12;
  if (this->bhas_pistol() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(12, this->_internal_bhas_pistol(), target);
  }

  // int32 Pistol_Ammo = 13;
  if (this->pistol_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(13, this->_internal_pistol_ammo(), target);
  }

  // bool bHas_ShotGun = 14;
  if (this->bhas_shotgun() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(14, this->_internal_bhas_shotgun(), target);
  }

  // int32 ShotGun_Ammo = 15;
  if (this->shotgun_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(15, this->_internal_shotgun_ammo(), target);
  }

  // bool bHas_Flecheete = 16;
  if (this->bhas_flecheete() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(16, this->_internal_bhas_flecheete(), target);
  }

  // int32 Fleechete_Ammo = 17;
  if (this->fleechete_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(17, this->_internal_fleechete_ammo(), target);
  }

  // int32 MiniGun_Ammo = 18;
  if (this->minigun_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(18, this->_internal_minigun_ammo(), target);
  }

  // bool bHas_RocketLauncher = 19;
  if (this->bhas_rocketlauncher() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(19, this->_internal_bhas_rocketlauncher(), target);
  }

  // int32 Rocket_Ammo1 = 20;
  if (this->rocket_ammo1() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(20, this->_internal_rocket_ammo1(), target);
  }

  // int32 Rocket_Ammo2 = 21;
  if (this->rocket_ammo2() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(21, this->_internal_rocket_ammo2(), target);
  }

  // int32 Rocket_Ammo3 = 22;
  if (this->rocket_ammo3() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(22, this->_internal_rocket_ammo3(), target);
  }

  // bool bHas_PlasmaCannon = 23;
  if (this->bhas_plasmacannon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(23, this->_internal_bhas_plasmacannon(), target);
  }

  // int32 Plasma_Ammo1 = 24;
  if (this->plasma_ammo1() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(24, this->_internal_plasma_ammo1(), target);
  }

  // int32 Plasma_Ammo2 = 25;
  if (this->plasma_ammo2() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(25, this->_internal_plasma_ammo2(), target);
  }

  // int32 Plasma_Ammo3 = 26;
  if (this->plasma_ammo3() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(26, this->_internal_plasma_ammo3(), target);
  }

  // bool bHas_FlameThrower = 27;
  if (this->bhas_flamethrower() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(27, this->_internal_bhas_flamethrower(), target);
  }

  // int32 FlameThrower_Ammo = 28;
  if (this->flamethrower_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(28, this->_internal_flamethrower_ammo(), target);
  }

  // bool bHas_SpiderMine = 29;
  if (this->bhas_spidermine() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(29, this->_internal_bhas_spidermine(), target);
  }

  // int32 SpiderMine_Ammo = 30;
  if (this->spidermine_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(30, this->_internal_spidermine_ammo(), target);
  }

  // bool bHas_GravityGun = 31;
  if (this->bhas_gravitygun() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(31, this->_internal_bhas_gravitygun(), target);
  }

  // int32 GravityGun_Ammo = 32;
  if (this->gravitygun_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(32, this->_internal_gravitygun_ammo(), target);
  }

  // int32 GravityGun_Ammo2 = 33;
  if (this->gravitygun_ammo2() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(33, this->_internal_gravitygun_ammo2(), target);
  }

  // bool bHas_DarkMatter = 34;
  if (this->bhas_darkmatter() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(34, this->_internal_bhas_darkmatter(), target);
  }

  // int32 DarkMatter_Ammo = 35;
  if (this->darkmatter_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(35, this->_internal_darkmatter_ammo(), target);
  }

  // bool bHas_CrossBow = 36;
  if (this->bhas_crossbow() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(36, this->_internal_bhas_crossbow(), target);
  }

  // int32 CrossBow_Normal_Ammo = 37;
  if (this->crossbow_normal_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(37, this->_internal_crossbow_normal_ammo(), target);
  }

  // int32 CrossBow_Explosive_Ammo = 38;
  if (this->crossbow_explosive_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(38, this->_internal_crossbow_explosive_ammo(), target);
  }

  // int32 CrossBow_Poison_Ammo = 39;
  if (this->crossbow_poison_ammo() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(39, this->_internal_crossbow_poison_ammo(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ServerSnap.PlayerData.WeaponWheel)
  return target;
}

size_t ServerSnap_PlayerData_WeaponWheel::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ServerSnap.PlayerData.WeaponWheel)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 bow_Normal_Ammo = 3;
  if (this->bow_normal_ammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_bow_normal_ammo());
  }

  // int32 bow_Explosive_Ammo = 4;
  if (this->bow_explosive_ammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_bow_explosive_ammo());
  }

  // bool bWarClub = 1;
  if (this->bwarclub() != 0) {
    total_size += 1 + 1;
  }

  // bool bHas_Bow = 2;
  if (this->bhas_bow() != 0) {
    total_size += 1 + 1;
  }

  // bool bHas_TekBow = 6;
  if (this->bhas_tekbow() != 0) {
    total_size += 1 + 1;
  }

  // bool bHas_SpikeGrenade = 10;
  if (this->bhas_spikegrenade() != 0) {
    total_size += 1 + 1;
  }

  // int32 bow_Poison_Ammo = 5;
  if (this->bow_poison_ammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_bow_poison_ammo());
  }

  // int32 TekBow_NormalAmmo = 7;
  if (this->tekbow_normalammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_tekbow_normalammo());
  }

  // int32 TekBow_ExplosiveAmmo = 8;
  if (this->tekbow_explosiveammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_tekbow_explosiveammo());
  }

  // int32 TekBow_PosionAmmo = 9;
  if (this->tekbow_posionammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_tekbow_posionammo());
  }

  // int32 SpikeGrenade_Ammo = 11;
  if (this->spikegrenade_ammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_spikegrenade_ammo());
  }

  // int32 Pistol_Ammo = 13;
  if (this->pistol_ammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_pistol_ammo());
  }

  // int32 ShotGun_Ammo = 15;
  if (this->shotgun_ammo() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_shotgun_ammo());
  }

  // bool bHas_Pistol = 12;
  if (this->bhas_pistol() != 0) {
    total_size += 1 + 1;
  }

  // bool bHas_ShotGun = 14;
  if (this->bhas_shotgun() != 0) {
    total_size += 1 + 1;
  }

  // bool bHas_Flecheete = 16;
  if (this->bhas_flecheete() != 0) {
    total_size += 2 + 1;
  }

  // bool bHas_RocketLauncher = 19;
  if (this->bhas_rocketlauncher() != 0) {
    total_size += 2 + 1;
  }

  // int32 Fleechete_Ammo = 17;
  if (this->fleechete_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_fleechete_ammo());
  }

  // int32 MiniGun_Ammo = 18;
  if (this->minigun_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_minigun_ammo());
  }

  // int32 Rocket_Ammo1 = 20;
  if (this->rocket_ammo1() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_rocket_ammo1());
  }

  // int32 Rocket_Ammo2 = 21;
  if (this->rocket_ammo2() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_rocket_ammo2());
  }

  // int32 Rocket_Ammo3 = 22;
  if (this->rocket_ammo3() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_rocket_ammo3());
  }

  // int32 Plasma_Ammo1 = 24;
  if (this->plasma_ammo1() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_plasma_ammo1());
  }

  // int32 Plasma_Ammo2 = 25;
  if (this->plasma_ammo2() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_plasma_ammo2());
  }

  // int32 Plasma_Ammo3 = 26;
  if (this->plasma_ammo3() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_plasma_ammo3());
  }

  // bool bHas_PlasmaCannon = 23;
  if (this->bhas_plasmacannon() != 0) {
    total_size += 2 + 1;
  }

  // bool bHas_FlameThrower = 27;
  if (this->bhas_flamethrower() != 0) {
    total_size += 2 + 1;
  }

  // bool bHas_SpiderMine = 29;
  if (this->bhas_spidermine() != 0) {
    total_size += 2 + 1;
  }

  // bool bHas_GravityGun = 31;
  if (this->bhas_gravitygun() != 0) {
    total_size += 2 + 1;
  }

  // int32 FlameThrower_Ammo = 28;
  if (this->flamethrower_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_flamethrower_ammo());
  }

  // int32 SpiderMine_Ammo = 30;
  if (this->spidermine_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_spidermine_ammo());
  }

  // int32 GravityGun_Ammo = 32;
  if (this->gravitygun_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_gravitygun_ammo());
  }

  // int32 GravityGun_Ammo2 = 33;
  if (this->gravitygun_ammo2() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_gravitygun_ammo2());
  }

  // int32 DarkMatter_Ammo = 35;
  if (this->darkmatter_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_darkmatter_ammo());
  }

  // bool bHas_DarkMatter = 34;
  if (this->bhas_darkmatter() != 0) {
    total_size += 2 + 1;
  }

  // bool bHas_CrossBow = 36;
  if (this->bhas_crossbow() != 0) {
    total_size += 2 + 1;
  }

  // int32 CrossBow_Normal_Ammo = 37;
  if (this->crossbow_normal_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_crossbow_normal_ammo());
  }

  // int32 CrossBow_Explosive_Ammo = 38;
  if (this->crossbow_explosive_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_crossbow_explosive_ammo());
  }

  // int32 CrossBow_Poison_Ammo = 39;
  if (this->crossbow_poison_ammo() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_crossbow_poison_ammo());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ServerSnap_PlayerData_WeaponWheel::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ServerSnap.PlayerData.WeaponWheel)
  GOOGLE_DCHECK_NE(&from, this);
  const ServerSnap_PlayerData_WeaponWheel* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ServerSnap_PlayerData_WeaponWheel>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ServerSnap.PlayerData.WeaponWheel)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ServerSnap.PlayerData.WeaponWheel)
    MergeFrom(*source);
  }
}

void ServerSnap_PlayerData_WeaponWheel::MergeFrom(const ServerSnap_PlayerData_WeaponWheel& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ServerSnap.PlayerData.WeaponWheel)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.bow_normal_ammo() != 0) {
    _internal_set_bow_normal_ammo(from._internal_bow_normal_ammo());
  }
  if (from.bow_explosive_ammo() != 0) {
    _internal_set_bow_explosive_ammo(from._internal_bow_explosive_ammo());
  }
  if (from.bwarclub() != 0) {
    _internal_set_bwarclub(from._internal_bwarclub());
  }
  if (from.bhas_bow() != 0) {
    _internal_set_bhas_bow(from._internal_bhas_bow());
  }
  if (from.bhas_tekbow() != 0) {
    _internal_set_bhas_tekbow(from._internal_bhas_tekbow());
  }
  if (from.bhas_spikegrenade() != 0) {
    _internal_set_bhas_spikegrenade(from._internal_bhas_spikegrenade());
  }
  if (from.bow_poison_ammo() != 0) {
    _internal_set_bow_poison_ammo(from._internal_bow_poison_ammo());
  }
  if (from.tekbow_normalammo() != 0) {
    _internal_set_tekbow_normalammo(from._internal_tekbow_normalammo());
  }
  if (from.tekbow_explosiveammo() != 0) {
    _internal_set_tekbow_explosiveammo(from._internal_tekbow_explosiveammo());
  }
  if (from.tekbow_posionammo() != 0) {
    _internal_set_tekbow_posionammo(from._internal_tekbow_posionammo());
  }
  if (from.spikegrenade_ammo() != 0) {
    _internal_set_spikegrenade_ammo(from._internal_spikegrenade_ammo());
  }
  if (from.pistol_ammo() != 0) {
    _internal_set_pistol_ammo(from._internal_pistol_ammo());
  }
  if (from.shotgun_ammo() != 0) {
    _internal_set_shotgun_ammo(from._internal_shotgun_ammo());
  }
  if (from.bhas_pistol() != 0) {
    _internal_set_bhas_pistol(from._internal_bhas_pistol());
  }
  if (from.bhas_shotgun() != 0) {
    _internal_set_bhas_shotgun(from._internal_bhas_shotgun());
  }
  if (from.bhas_flecheete() != 0) {
    _internal_set_bhas_flecheete(from._internal_bhas_flecheete());
  }
  if (from.bhas_rocketlauncher() != 0) {
    _internal_set_bhas_rocketlauncher(from._internal_bhas_rocketlauncher());
  }
  if (from.fleechete_ammo() != 0) {
    _internal_set_fleechete_ammo(from._internal_fleechete_ammo());
  }
  if (from.minigun_ammo() != 0) {
    _internal_set_minigun_ammo(from._internal_minigun_ammo());
  }
  if (from.rocket_ammo1() != 0) {
    _internal_set_rocket_ammo1(from._internal_rocket_ammo1());
  }
  if (from.rocket_ammo2() != 0) {
    _internal_set_rocket_ammo2(from._internal_rocket_ammo2());
  }
  if (from.rocket_ammo3() != 0) {
    _internal_set_rocket_ammo3(from._internal_rocket_ammo3());
  }
  if (from.plasma_ammo1() != 0) {
    _internal_set_plasma_ammo1(from._internal_plasma_ammo1());
  }
  if (from.plasma_ammo2() != 0) {
    _internal_set_plasma_ammo2(from._internal_plasma_ammo2());
  }
  if (from.plasma_ammo3() != 0) {
    _internal_set_plasma_ammo3(from._internal_plasma_ammo3());
  }
  if (from.bhas_plasmacannon() != 0) {
    _internal_set_bhas_plasmacannon(from._internal_bhas_plasmacannon());
  }
  if (from.bhas_flamethrower() != 0) {
    _internal_set_bhas_flamethrower(from._internal_bhas_flamethrower());
  }
  if (from.bhas_spidermine() != 0) {
    _internal_set_bhas_spidermine(from._internal_bhas_spidermine());
  }
  if (from.bhas_gravitygun() != 0) {
    _internal_set_bhas_gravitygun(from._internal_bhas_gravitygun());
  }
  if (from.flamethrower_ammo() != 0) {
    _internal_set_flamethrower_ammo(from._internal_flamethrower_ammo());
  }
  if (from.spidermine_ammo() != 0) {
    _internal_set_spidermine_ammo(from._internal_spidermine_ammo());
  }
  if (from.gravitygun_ammo() != 0) {
    _internal_set_gravitygun_ammo(from._internal_gravitygun_ammo());
  }
  if (from.gravitygun_ammo2() != 0) {
    _internal_set_gravitygun_ammo2(from._internal_gravitygun_ammo2());
  }
  if (from.darkmatter_ammo() != 0) {
    _internal_set_darkmatter_ammo(from._internal_darkmatter_ammo());
  }
  if (from.bhas_darkmatter() != 0) {
    _internal_set_bhas_darkmatter(from._internal_bhas_darkmatter());
  }
  if (from.bhas_crossbow() != 0) {
    _internal_set_bhas_crossbow(from._internal_bhas_crossbow());
  }
  if (from.crossbow_normal_ammo() != 0) {
    _internal_set_crossbow_normal_ammo(from._internal_crossbow_normal_ammo());
  }
  if (from.crossbow_explosive_ammo() != 0) {
    _internal_set_crossbow_explosive_ammo(from._internal_crossbow_explosive_ammo());
  }
  if (from.crossbow_poison_ammo() != 0) {
    _internal_set_crossbow_poison_ammo(from._internal_crossbow_poison_ammo());
  }
}

void ServerSnap_PlayerData_WeaponWheel::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ServerSnap.PlayerData.WeaponWheel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ServerSnap_PlayerData_WeaponWheel::CopyFrom(const ServerSnap_PlayerData_WeaponWheel& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ServerSnap.PlayerData.WeaponWheel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ServerSnap_PlayerData_WeaponWheel::IsInitialized() const {
  return true;
}

void ServerSnap_PlayerData_WeaponWheel::InternalSwap(ServerSnap_PlayerData_WeaponWheel* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(bow_normal_ammo_, other->bow_normal_ammo_);
  swap(bow_explosive_ammo_, other->bow_explosive_ammo_);
  swap(bwarclub_, other->bwarclub_);
  swap(bhas_bow_, other->bhas_bow_);
  swap(bhas_tekbow_, other->bhas_tekbow_);
  swap(bhas_spikegrenade_, other->bhas_spikegrenade_);
  swap(bow_poison_ammo_, other->bow_poison_ammo_);
  swap(tekbow_normalammo_, other->tekbow_normalammo_);
  swap(tekbow_explosiveammo_, other->tekbow_explosiveammo_);
  swap(tekbow_posionammo_, other->tekbow_posionammo_);
  swap(spikegrenade_ammo_, other->spikegrenade_ammo_);
  swap(pistol_ammo_, other->pistol_ammo_);
  swap(shotgun_ammo_, other->shotgun_ammo_);
  swap(bhas_pistol_, other->bhas_pistol_);
  swap(bhas_shotgun_, other->bhas_shotgun_);
  swap(bhas_flecheete_, other->bhas_flecheete_);
  swap(bhas_rocketlauncher_, other->bhas_rocketlauncher_);
  swap(fleechete_ammo_, other->fleechete_ammo_);
  swap(minigun_ammo_, other->minigun_ammo_);
  swap(rocket_ammo1_, other->rocket_ammo1_);
  swap(rocket_ammo2_, other->rocket_ammo2_);
  swap(rocket_ammo3_, other->rocket_ammo3_);
  swap(plasma_ammo1_, other->plasma_ammo1_);
  swap(plasma_ammo2_, other->plasma_ammo2_);
  swap(plasma_ammo3_, other->plasma_ammo3_);
  swap(bhas_plasmacannon_, other->bhas_plasmacannon_);
  swap(bhas_flamethrower_, other->bhas_flamethrower_);
  swap(bhas_spidermine_, other->bhas_spidermine_);
  swap(bhas_gravitygun_, other->bhas_gravitygun_);
  swap(flamethrower_ammo_, other->flamethrower_ammo_);
  swap(spidermine_ammo_, other->spidermine_ammo_);
  swap(gravitygun_ammo_, other->gravitygun_ammo_);
  swap(gravitygun_ammo2_, other->gravitygun_ammo2_);
  swap(darkmatter_ammo_, other->darkmatter_ammo_);
  swap(bhas_darkmatter_, other->bhas_darkmatter_);
  swap(bhas_crossbow_, other->bhas_crossbow_);
  swap(crossbow_normal_ammo_, other->crossbow_normal_ammo_);
  swap(crossbow_explosive_ammo_, other->crossbow_explosive_ammo_);
  swap(crossbow_poison_ammo_, other->crossbow_poison_ammo_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ServerSnap_PlayerData_WeaponWheel::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ServerSnap_PlayerData::InitAsDefaultInstance() {
  ::_ServerSnap_PlayerData_default_instance_._instance.get_mutable()->weapons_ = const_cast< ::ServerSnap_PlayerData_WeaponWheel*>(
      ::ServerSnap_PlayerData_WeaponWheel::internal_default_instance());
}
class ServerSnap_PlayerData::_Internal {
 public:
  static const ::ServerSnap_PlayerData_WeaponWheel& weapons(const ServerSnap_PlayerData* msg);
};

const ::ServerSnap_PlayerData_WeaponWheel&
ServerSnap_PlayerData::_Internal::weapons(const ServerSnap_PlayerData* msg) {
  return *msg->weapons_;
}
ServerSnap_PlayerData::ServerSnap_PlayerData()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:ServerSnap.PlayerData)
}
ServerSnap_PlayerData::ServerSnap_PlayerData(const ServerSnap_PlayerData& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from._internal_has_weapons()) {
    weapons_ = new ::ServerSnap_PlayerData_WeaponWheel(*from.weapons_);
  } else {
    weapons_ = nullptr;
  }
  ::memcpy(&x_, &from.x_,
    static_cast<size_t>(reinterpret_cast<char*>(&death_type_) -
    reinterpret_cast<char*>(&x_)) + sizeof(death_type_));
  // @@protoc_insertion_point(copy_constructor:ServerSnap.PlayerData)
}

void ServerSnap_PlayerData::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ServerSnap_PlayerData_t4mp_2eproto.base);
  ::memset(&weapons_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&death_type_) -
      reinterpret_cast<char*>(&weapons_)) + sizeof(death_type_));
}

ServerSnap_PlayerData::~ServerSnap_PlayerData() {
  // @@protoc_insertion_point(destructor:ServerSnap.PlayerData)
  SharedDtor();
}

void ServerSnap_PlayerData::SharedDtor() {
  if (this != internal_default_instance()) delete weapons_;
}

void ServerSnap_PlayerData::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ServerSnap_PlayerData& ServerSnap_PlayerData::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ServerSnap_PlayerData_t4mp_2eproto.base);
  return *internal_default_instance();
}


void ServerSnap_PlayerData::Clear() {
// @@protoc_insertion_point(message_clear_start:ServerSnap.PlayerData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && weapons_ != nullptr) {
    delete weapons_;
  }
  weapons_ = nullptr;
  ::memset(&x_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&death_type_) -
      reinterpret_cast<char*>(&x_)) + sizeof(death_type_));
  _internal_metadata_.Clear();
}

const char* ServerSnap_PlayerData::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // float X = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 13)) {
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float Y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) {
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float Z = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) {
          z_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float ViewX = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) {
          viewx_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float ViewY = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) {
          viewy_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool Walk_forward = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
          walk_forward_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Walk_backward = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56)) {
          walk_backward_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Walk_left = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) {
          walk_left_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Walk_right = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 72)) {
          walk_right_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Jump = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
          jump_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Crouch = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
          crouch_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Fire = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
          fire_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool Fire_hold = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
          fire_hold_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float Fire_hold_time = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 117)) {
          fire_hold_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // bool Fire_release = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 120)) {
          fire_release_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float Fire_release_time = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 133)) {
          fire_release_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float Max_health = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 141)) {
          max_health_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // float Current_health = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 149)) {
          current_health_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 Weapon_switch = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152)) {
          weapon_switch_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // float Weapon_switch_time = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 165)) {
          weapon_switch_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else goto handle_unusual;
        continue;
      // int32 Weapon_slot = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 168)) {
          weapon_slot_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // .ServerSnap.PlayerData.WeaponWheel weapons = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_weapons(), ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 index = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184)) {
          index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 death_type = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
          death_type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bool modify_weapon = 25;
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
          modify_weapon_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ServerSnap_PlayerData::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:ServerSnap.PlayerData)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // float X = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
  }

  // float Y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
  }

  // float Z = 3;
  if (!(this->z() <= 0 && this->z() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_z(), target);
  }

  // float ViewX = 4;
  if (!(this->viewx() <= 0 && this->viewx() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_viewx(), target);
  }

  // float ViewY = 5;
  if (!(this->viewy() <= 0 && this->viewy() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_viewy(), target);
  }

  // bool Walk_forward = 6;
  if (this->walk_forward() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_walk_forward(), target);
  }

  // bool Walk_backward = 7;
  if (this->walk_backward() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(7, this->_internal_walk_backward(), target);
  }

  // bool Walk_left = 8;
  if (this->walk_left() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(8, this->_internal_walk_left(), target);
  }

  // bool Walk_right = 9;
  if (this->walk_right() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(9, this->_internal_walk_right(), target);
  }

  // bool Jump = 10;
  if (this->jump() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(10, this->_internal_jump(), target);
  }

  // bool Crouch = 11;
  if (this->crouch() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_crouch(), target);
  }

  // bool Fire = 12;
  if (this->fire() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(12, this->_internal_fire(), target);
  }

  // bool Fire_hold = 13;
  if (this->fire_hold() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(13, this->_internal_fire_hold(), target);
  }

  // float Fire_hold_time = 14;
  if (!(this->fire_hold_time() <= 0 && this->fire_hold_time() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(14, this->_internal_fire_hold_time(), target);
  }

  // bool Fire_release = 15;
  if (this->fire_release() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(15, this->_internal_fire_release(), target);
  }

  // float Fire_release_time = 16;
  if (!(this->fire_release_time() <= 0 && this->fire_release_time() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(16, this->_internal_fire_release_time(), target);
  }

  // float Max_health = 17;
  if (!(this->max_health() <= 0 && this->max_health() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(17, this->_internal_max_health(), target);
  }

  // float Current_health = 18;
  if (!(this->current_health() <= 0 && this->current_health() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(18, this->_internal_current_health(), target);
  }

  // int32 Weapon_switch = 19;
  if (this->weapon_switch() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(19, this->_internal_weapon_switch(), target);
  }

  // float Weapon_switch_time = 20;
  if (!(this->weapon_switch_time() <= 0 && this->weapon_switch_time() >= 0)) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(20, this->_internal_weapon_switch_time(), target);
  }

  // int32 Weapon_slot = 21;
  if (this->weapon_slot() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(21, this->_internal_weapon_slot(), target);
  }

  // .ServerSnap.PlayerData.WeaponWheel weapons = 22;
  if (this->has_weapons()) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        22, _Internal::weapons(this), target, stream);
  }

  // int32 index = 23;
  if (this->index() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(23, this->_internal_index(), target);
  }

  // int32 death_type = 24;
  if (this->death_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(24, this->_internal_death_type(), target);
  }

  // bool modify_weapon = 25;
  if (this->modify_weapon() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(25, this->_internal_modify_weapon(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ServerSnap.PlayerData)
  return target;
}

size_t ServerSnap_PlayerData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ServerSnap.PlayerData)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .ServerSnap.PlayerData.WeaponWheel weapons = 22;
  if (this->has_weapons()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *weapons_);
  }

  // float X = 1;
  if (!(this->x() <= 0 && this->x() >= 0)) {
    total_size += 1 + 4;
  }

  // float Y = 2;
  if (!(this->y() <= 0 && this->y() >= 0)) {
    total_size += 1 + 4;
  }

  // float Z = 3;
  if (!(this->z() <= 0 && this->z() >= 0)) {
    total_size += 1 + 4;
  }

  // float ViewX = 4;
  if (!(this->viewx() <= 0 && this->viewx() >= 0)) {
    total_size += 1 + 4;
  }

  // float ViewY = 5;
  if (!(this->viewy() <= 0 && this->viewy() >= 0)) {
    total_size += 1 + 4;
  }

  // bool Walk_forward = 6;
  if (this->walk_forward() != 0) {
    total_size += 1 + 1;
  }

  // bool Walk_backward = 7;
  if (this->walk_backward() != 0) {
    total_size += 1 + 1;
  }

  // bool Walk_left = 8;
  if (this->walk_left() != 0) {
    total_size += 1 + 1;
  }

  // bool Walk_right = 9;
  if (this->walk_right() != 0) {
    total_size += 1 + 1;
  }

  // bool Jump = 10;
  if (this->jump() != 0) {
    total_size += 1 + 1;
  }

  // bool Crouch = 11;
  if (this->crouch() != 0) {
    total_size += 1 + 1;
  }

  // bool Fire = 12;
  if (this->fire() != 0) {
    total_size += 1 + 1;
  }

  // bool Fire_hold = 13;
  if (this->fire_hold() != 0) {
    total_size += 1 + 1;
  }

  // float Fire_hold_time = 14;
  if (!(this->fire_hold_time() <= 0 && this->fire_hold_time() >= 0)) {
    total_size += 1 + 4;
  }

  // float Fire_release_time = 16;
  if (!(this->fire_release_time() <= 0 && this->fire_release_time() >= 0)) {
    total_size += 2 + 4;
  }

  // float Max_health = 17;
  if (!(this->max_health() <= 0 && this->max_health() >= 0)) {
    total_size += 2 + 4;
  }

  // float Current_health = 18;
  if (!(this->current_health() <= 0 && this->current_health() >= 0)) {
    total_size += 2 + 4;
  }

  // int32 Weapon_switch = 19;
  if (this->weapon_switch() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_weapon_switch());
  }

  // float Weapon_switch_time = 20;
  if (!(this->weapon_switch_time() <= 0 && this->weapon_switch_time() >= 0)) {
    total_size += 2 + 4;
  }

  // bool Fire_release = 15;
  if (this->fire_release() != 0) {
    total_size += 1 + 1;
  }

  // bool modify_weapon = 25;
  if (this->modify_weapon() != 0) {
    total_size += 2 + 1;
  }

  // int32 Weapon_slot = 21;
  if (this->weapon_slot() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_weapon_slot());
  }

  // int32 index = 23;
  if (this->index() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_index());
  }

  // int32 death_type = 24;
  if (this->death_type() != 0) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_death_type());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ServerSnap_PlayerData::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ServerSnap.PlayerData)
  GOOGLE_DCHECK_NE(&from, this);
  const ServerSnap_PlayerData* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ServerSnap_PlayerData>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ServerSnap.PlayerData)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ServerSnap.PlayerData)
    MergeFrom(*source);
  }
}

void ServerSnap_PlayerData::MergeFrom(const ServerSnap_PlayerData& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ServerSnap.PlayerData)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_weapons()) {
    _internal_mutable_weapons()->::ServerSnap_PlayerData_WeaponWheel::MergeFrom(from._internal_weapons());
  }
  if (!(from.x() <= 0 && from.x() >= 0)) {
    _internal_set_x(from._internal_x());
  }
  if (!(from.y() <= 0 && from.y() >= 0)) {
    _internal_set_y(from._internal_y());
  }
  if (!(from.z() <= 0 && from.z() >= 0)) {
    _internal_set_z(from._internal_z());
  }
  if (!(from.viewx() <= 0 && from.viewx() >= 0)) {
    _internal_set_viewx(from._internal_viewx());
  }
  if (!(from.viewy() <= 0 && from.viewy() >= 0)) {
    _internal_set_viewy(from._internal_viewy());
  }
  if (from.walk_forward() != 0) {
    _internal_set_walk_forward(from._internal_walk_forward());
  }
  if (from.walk_backward() != 0) {
    _internal_set_walk_backward(from._internal_walk_backward());
  }
  if (from.walk_left() != 0) {
    _internal_set_walk_left(from._internal_walk_left());
  }
  if (from.walk_right() != 0) {
    _internal_set_walk_right(from._internal_walk_right());
  }
  if (from.jump() != 0) {
    _internal_set_jump(from._internal_jump());
  }
  if (from.crouch() != 0) {
    _internal_set_crouch(from._internal_crouch());
  }
  if (from.fire() != 0) {
    _internal_set_fire(from._internal_fire());
  }
  if (from.fire_hold() != 0) {
    _internal_set_fire_hold(from._internal_fire_hold());
  }
  if (!(from.fire_hold_time() <= 0 && from.fire_hold_time() >= 0)) {
    _internal_set_fire_hold_time(from._internal_fire_hold_time());
  }
  if (!(from.fire_release_time() <= 0 && from.fire_release_time() >= 0)) {
    _internal_set_fire_release_time(from._internal_fire_release_time());
  }
  if (!(from.max_health() <= 0 && from.max_health() >= 0)) {
    _internal_set_max_health(from._internal_max_health());
  }
  if (!(from.current_health() <= 0 && from.current_health() >= 0)) {
    _internal_set_current_health(from._internal_current_health());
  }
  if (from.weapon_switch() != 0) {
    _internal_set_weapon_switch(from._internal_weapon_switch());
  }
  if (!(from.weapon_switch_time() <= 0 && from.weapon_switch_time() >= 0)) {
    _internal_set_weapon_switch_time(from._internal_weapon_switch_time());
  }
  if (from.fire_release() != 0) {
    _internal_set_fire_release(from._internal_fire_release());
  }
  if (from.modify_weapon() != 0) {
    _internal_set_modify_weapon(from._internal_modify_weapon());
  }
  if (from.weapon_slot() != 0) {
    _internal_set_weapon_slot(from._internal_weapon_slot());
  }
  if (from.index() != 0) {
    _internal_set_index(from._internal_index());
  }
  if (from.death_type() != 0) {
    _internal_set_death_type(from._internal_death_type());
  }
}

void ServerSnap_PlayerData::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ServerSnap.PlayerData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ServerSnap_PlayerData::CopyFrom(const ServerSnap_PlayerData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ServerSnap.PlayerData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ServerSnap_PlayerData::IsInitialized() const {
  return true;
}

void ServerSnap_PlayerData::InternalSwap(ServerSnap_PlayerData* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(weapons_, other->weapons_);
  swap(x_, other->x_);
  swap(y_, other->y_);
  swap(z_, other->z_);
  swap(viewx_, other->viewx_);
  swap(viewy_, other->viewy_);
  swap(walk_forward_, other->walk_forward_);
  swap(walk_backward_, other->walk_backward_);
  swap(walk_left_, other->walk_left_);
  swap(walk_right_, other->walk_right_);
  swap(jump_, other->jump_);
  swap(crouch_, other->crouch_);
  swap(fire_, other->fire_);
  swap(fire_hold_, other->fire_hold_);
  swap(fire_hold_time_, other->fire_hold_time_);
  swap(fire_release_time_, other->fire_release_time_);
  swap(max_health_, other->max_health_);
  swap(current_health_, other->current_health_);
  swap(weapon_switch_, other->weapon_switch_);
  swap(weapon_switch_time_, other->weapon_switch_time_);
  swap(fire_release_, other->fire_release_);
  swap(modify_weapon_, other->modify_weapon_);
  swap(weapon_slot_, other->weapon_slot_);
  swap(index_, other->index_);
  swap(death_type_, other->death_type_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ServerSnap_PlayerData::GetMetadata() const {
  return GetMetadataStatic();
}


// ===================================================================

void ServerSnap::InitAsDefaultInstance() {
}
class ServerSnap::_Internal {
 public:
};

ServerSnap::ServerSnap()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:ServerSnap)
}
ServerSnap::ServerSnap(const ServerSnap& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      player_(from.player_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  packet_sequence_ = from.packet_sequence_;
  // @@protoc_insertion_point(copy_constructor:ServerSnap)
}

void ServerSnap::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ServerSnap_t4mp_2eproto.base);
  packet_sequence_ = 0;
}

ServerSnap::~ServerSnap() {
  // @@protoc_insertion_point(destructor:ServerSnap)
  SharedDtor();
}

void ServerSnap::SharedDtor() {
}

void ServerSnap::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ServerSnap& ServerSnap::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ServerSnap_t4mp_2eproto.base);
  return *internal_default_instance();
}


void ServerSnap::Clear() {
// @@protoc_insertion_point(message_clear_start:ServerSnap)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  player_.Clear();
  packet_sequence_ = 0;
  _internal_metadata_.Clear();
}

const char* ServerSnap::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // repeated .ServerSnap.PlayerData player = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_player(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else goto handle_unusual;
        continue;
      // int32 packet_sequence = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          packet_sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
    }  // switch
  }  // while
success:
  return ptr;
failure:
  ptr = nullptr;
  goto success;
#undef CHK_
}

::PROTOBUF_NAMESPACE_ID::uint8* ServerSnap::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:ServerSnap)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .ServerSnap.PlayerData player = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_player_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_player(i), target, stream);
  }

  // int32 packet_sequence = 2;
  if (this->packet_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_packet_sequence(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ServerSnap)
  return target;
}

size_t ServerSnap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ServerSnap)
  size_t total_size = 0;

  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .ServerSnap.PlayerData player = 1;
  total_size += 1UL * this->_internal_player_size();
  for (const auto& msg : this->player_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // int32 packet_sequence = 2;
  if (this->packet_sequence() != 0) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
        this->_internal_packet_sequence());
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
        _internal_metadata_, total_size, &_cached_size_);
  }
  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ServerSnap::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ServerSnap)
  GOOGLE_DCHECK_NE(&from, this);
  const ServerSnap* source =
      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ServerSnap>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ServerSnap)
    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ServerSnap)
    MergeFrom(*source);
  }
}

void ServerSnap::MergeFrom(const ServerSnap& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ServerSnap)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  player_.MergeFrom(from.player_);
  if (from.packet_sequence() != 0) {
    _internal_set_packet_sequence(from._internal_packet_sequence());
  }
}

void ServerSnap::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ServerSnap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ServerSnap::CopyFrom(const ServerSnap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ServerSnap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ServerSnap::IsInitialized() const {
  return true;
}

void ServerSnap::InternalSwap(ServerSnap* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  player_.InternalSwap(&other->player_);
  swap(packet_sequence_, other->packet_sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ServerSnap::GetMetadata() const {
  return GetMetadataStatic();
}


// @@protoc_insertion_point(namespace_scope)
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::Packet* Arena::CreateMaybeMessage< ::Packet >(Arena* arena) {
  return Arena::CreateInternal< ::Packet >(arena);
}
template<> PROTOBUF_NOINLINE ::ConnectAck* Arena::CreateMaybeMessage< ::ConnectAck >(Arena* arena) {
  return Arena::CreateInternal< ::ConnectAck >(arena);
}
template<> PROTOBUF_NOINLINE ::PlayerSnap* Arena::CreateMaybeMessage< ::PlayerSnap >(Arena* arena) {
  return Arena::CreateInternal< ::PlayerSnap >(arena);
}
template<> PROTOBUF_NOINLINE ::ServerSnap_PlayerData_WeaponWheel* Arena::CreateMaybeMessage< ::ServerSnap_PlayerData_WeaponWheel >(Arena* arena) {
  return Arena::CreateInternal< ::ServerSnap_PlayerData_WeaponWheel >(arena);
}
template<> PROTOBUF_NOINLINE ::ServerSnap_PlayerData* Arena::CreateMaybeMessage< ::ServerSnap_PlayerData >(Arena* arena) {
  return Arena::CreateInternal< ::ServerSnap_PlayerData >(arena);
}
template<> PROTOBUF_NOINLINE ::ServerSnap* Arena::CreateMaybeMessage< ::ServerSnap >(Arena* arena) {
  return Arena::CreateInternal< ::ServerSnap >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
