#pragma once
#include "Game/T6/T6.h"

namespace T6
{
    inline cspField_t attachment_unique_fields[]{
        {"attachmentType",                      offsetof(WeaponAttachmentUniqueFull, attachment.attachmentType),                      AUFT_ATTACHMENTTYPE  },
        {"locNone",                             offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_NONE]),         CSPFT_FLOAT          },
        {"locHelmet",                           offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_HELMET]),       CSPFT_FLOAT          },
        {"locHead",                             offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_HEAD]),         CSPFT_FLOAT          },
        {"locNeck",                             offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_NECK]),         CSPFT_FLOAT          },
        {"locTorsoUpper",                       offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_TORSO_UPR]),    CSPFT_FLOAT          },
        {"locTorsoMid",                         offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_TORSO_MID]),    CSPFT_FLOAT          },
        {"locTorsoLower",                       offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_TORSO_LWR]),    CSPFT_FLOAT          },
        {"locRightArmUpper",                    offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_R_ARM_UPR]),    CSPFT_FLOAT          },
        {"locRightArmLower",                    offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_R_ARM_LWR]),    CSPFT_FLOAT          },
        {"locRightHand",                        offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_R_HAND]),       CSPFT_FLOAT          },
        {"locLeftArmUpper",                     offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_L_ARM_UPR]),    CSPFT_FLOAT          },
        {"locLeftArmLower",                     offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_L_ARM_LWR]),    CSPFT_FLOAT          },
        {"locLeftHand",                         offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_L_HAND]),       CSPFT_FLOAT          },
        {"locRightLegUpper",                    offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_R_LEG_UPR]),    CSPFT_FLOAT          },
        {"locRightLegLower",                    offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_R_LEG_LWR]),    CSPFT_FLOAT          },
        {"locRightFoot",                        offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_R_FOOT]),       CSPFT_FLOAT          },
        {"locLeftLegUpper",                     offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_L_LEG_UPR]),    CSPFT_FLOAT          },
        {"locLeftLegLower",                     offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_L_LEG_LWR]),    CSPFT_FLOAT          },
        {"locLeftFoot",                         offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_L_FOOT]),       CSPFT_FLOAT          },
        {"locGun",                              offsetof(WeaponAttachmentUniqueFull, locationDamageMultipliers[HITLOC_GUN]),          CSPFT_FLOAT          },
        {"viewModel",                           offsetof(WeaponAttachmentUniqueFull, attachment.viewModel),                           CSPFT_XMODEL         },
        {"viewModelAdditional",                 offsetof(WeaponAttachmentUniqueFull, attachment.viewModelAdditional),                 CSPFT_XMODEL         },
        {"viewModelADS",                        offsetof(WeaponAttachmentUniqueFull, attachment.viewModelADS),                        CSPFT_XMODEL         },
        {"worldModel",                          offsetof(WeaponAttachmentUniqueFull, attachment.worldModel),                          CSPFT_XMODEL         },
        {"worldModelAdditional",                offsetof(WeaponAttachmentUniqueFull, attachment.worldModelAdditional),                CSPFT_XMODEL         },
        {"viewModelTag",                        offsetof(WeaponAttachmentUniqueFull, attachment.viewModelTag),                        CSPFT_STRING         },
        {"worldModelTag",                       offsetof(WeaponAttachmentUniqueFull, attachment.worldModelTag),                       CSPFT_STRING         },
        {"viewModelOffsetX",                    offsetof(WeaponAttachmentUniqueFull, attachment.viewModelOffsets.x),                  CSPFT_FLOAT          },
        {"viewModelOffsetY",                    offsetof(WeaponAttachmentUniqueFull, attachment.viewModelOffsets.y),                  CSPFT_FLOAT          },
        {"viewModelOffsetZ",                    offsetof(WeaponAttachmentUniqueFull, attachment.viewModelOffsets.z),                  CSPFT_FLOAT          },
        {"viewModelOffsetPitch",                offsetof(WeaponAttachmentUniqueFull, attachment.viewModelRotations.x),                CSPFT_FLOAT          },
        {"viewModelOffsetYaw",                  offsetof(WeaponAttachmentUniqueFull, attachment.viewModelRotations.y),                CSPFT_FLOAT          },
        {"viewModelOffsetRoll",                 offsetof(WeaponAttachmentUniqueFull, attachment.viewModelRotations.z),                CSPFT_FLOAT          },
        {"worldModelOffsetX",                   offsetof(WeaponAttachmentUniqueFull, attachment.worldModelOffsets.x),                 CSPFT_FLOAT          },
        {"worldModelOffsetY",                   offsetof(WeaponAttachmentUniqueFull, attachment.worldModelOffsets.y),                 CSPFT_FLOAT          },
        {"worldModelOffsetZ",                   offsetof(WeaponAttachmentUniqueFull, attachment.worldModelOffsets.z),                 CSPFT_FLOAT          },
        {"worldModelOffsetPitch",               offsetof(WeaponAttachmentUniqueFull, attachment.worldModelRotations.x),               CSPFT_FLOAT          },
        {"worldModelOffsetYaw",                 offsetof(WeaponAttachmentUniqueFull, attachment.worldModelRotations.y),               CSPFT_FLOAT          },
        {"worldModelOffsetRoll",                offsetof(WeaponAttachmentUniqueFull, attachment.worldModelRotations.z),               CSPFT_FLOAT          },
        {"viewModelAddOffsetX",                 offsetof(WeaponAttachmentUniqueFull, attachment.viewModelAddOffsets.x),               CSPFT_FLOAT          },
        {"viewModelAddOffsetY",                 offsetof(WeaponAttachmentUniqueFull, attachment.viewModelAddOffsets.y),               CSPFT_FLOAT          },
        {"viewModelAddOffsetZ",                 offsetof(WeaponAttachmentUniqueFull, attachment.viewModelAddOffsets.z),               CSPFT_FLOAT          },
        {"viewModelAddOffsetPitch",             offsetof(WeaponAttachmentUniqueFull, attachment.viewModelAddRotations.x),             CSPFT_FLOAT          },
        {"viewModelAddOffsetYaw",               offsetof(WeaponAttachmentUniqueFull, attachment.viewModelAddRotations.y),             CSPFT_FLOAT          },
        {"viewModelAddOffsetRoll",              offsetof(WeaponAttachmentUniqueFull, attachment.viewModelAddRotations.z),             CSPFT_FLOAT          },
        {"worldModelAddOffsetX",                offsetof(WeaponAttachmentUniqueFull, attachment.worldModelAddOffsets.x),              CSPFT_FLOAT          },
        {"worldModelAddOffsetY",                offsetof(WeaponAttachmentUniqueFull, attachment.worldModelAddOffsets.y),              CSPFT_FLOAT          },
        {"worldModelAddOffsetZ",                offsetof(WeaponAttachmentUniqueFull, attachment.worldModelAddOffsets.z),              CSPFT_FLOAT          },
        {"worldModelAddOffsetPitch",            offsetof(WeaponAttachmentUniqueFull, attachment.worldModelAddRotations.x),            CSPFT_FLOAT          },
        {"worldModelAddOffsetYaw",              offsetof(WeaponAttachmentUniqueFull, attachment.worldModelAddRotations.y),            CSPFT_FLOAT          },
        {"worldModelAddOffsetRoll",             offsetof(WeaponAttachmentUniqueFull, attachment.worldModelAddRotations.z),            CSPFT_FLOAT          },
        {"hideTags",                            offsetof(WeaponAttachmentUniqueFull, hideTags),                                       AUFT_HIDETAGS        },
        {"camo",                                offsetof(WeaponAttachmentUniqueFull, attachment.weaponCamo),                          AUFT_CAMO            },
        {"disableBaseWeaponAttachment",         offsetof(WeaponAttachmentUniqueFull, attachment.disableBaseWeaponAttachment),         CSPFT_BOOL           },
        {"disableBaseWeaponClip",               offsetof(WeaponAttachmentUniqueFull, attachment.disableBaseWeaponClip),               CSPFT_BOOL           },
        {"overrideBaseWeaponAttachmentOffsets", offsetof(WeaponAttachmentUniqueFull, attachment.overrideBaseWeaponAttachmentOffsets), CSPFT_BOOL           },
        {"viewModelOffsetBaseAttachmentX",      offsetof(WeaponAttachmentUniqueFull, attachment.viewModelOffsetBaseAttachment.x),     CSPFT_FLOAT          },
        {"viewModelOffsetBaseAttachmentY",      offsetof(WeaponAttachmentUniqueFull, attachment.viewModelOffsetBaseAttachment.y),     CSPFT_FLOAT          },
        {"viewModelOffsetBaseAttachmentZ",      offsetof(WeaponAttachmentUniqueFull, attachment.viewModelOffsetBaseAttachment.z),     CSPFT_FLOAT          },
        {"worldModelOffsetBaseAttachmentX",     offsetof(WeaponAttachmentUniqueFull, attachment.worldModelOffsetBaseAttachment.x),    CSPFT_FLOAT          },
        {"worldModelOffsetBaseAttachmentY",     offsetof(WeaponAttachmentUniqueFull, attachment.worldModelOffsetBaseAttachment.y),    CSPFT_FLOAT          },
        {"worldModelOffsetBaseAttachmentZ",     offsetof(WeaponAttachmentUniqueFull, attachment.worldModelOffsetBaseAttachment.z),    CSPFT_FLOAT          },
        {"altWeapon",                           offsetof(WeaponAttachmentUniqueFull, attachment.szAltWeaponName),                     CSPFT_STRING         },
        {"DualWieldWeapon",                     offsetof(WeaponAttachmentUniqueFull, attachment.szDualWieldWeaponName),               CSPFT_STRING         },
        {"adsOverlayShader",                    offsetof(WeaponAttachmentUniqueFull, attachment.overlayMaterial),                     CSPFT_MATERIAL_STREAM},
        {"adsOverlayShaderLowRes",              offsetof(WeaponAttachmentUniqueFull, attachment.overlayMaterialLowRes),               CSPFT_MATERIAL_STREAM},
        {"adsOverlayReticle",                   offsetof(WeaponAttachmentUniqueFull, attachment.overlayReticle),                      AUFT_OVERLAYRETICLE  },
        {"firstRaiseTime",                      offsetof(WeaponAttachmentUniqueFull, attachment.iFirstRaiseTime),                     CSPFT_MILLISECONDS   },
        {"altRaiseTime",                        offsetof(WeaponAttachmentUniqueFull, attachment.iAltRaiseTime),                       CSPFT_MILLISECONDS   },
        {"altDropTime",                         offsetof(WeaponAttachmentUniqueFull, attachment.iAltDropTime),                        CSPFT_MILLISECONDS   },
        {"reloadAmmoAdd",                       offsetof(WeaponAttachmentUniqueFull, attachment.iReloadAmmoAdd),                      CSPFT_INT            },
        {"reloadStartAdd",                      offsetof(WeaponAttachmentUniqueFull, attachment.iReloadStartAdd),                     CSPFT_INT            },
        {"segmentedReload",                     offsetof(WeaponAttachmentUniqueFull, attachment.bSegmentedReload),                    CSPFT_BOOL           },
        {"idleAnim",                            offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_IDLE]),                       AUFT_ANIM_NAME       },
        {"idleAnimLeft",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_IDLE_LEFT]),                  AUFT_ANIM_NAME       },
        {"emptyIdleAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_EMPTY_IDLE]),                 AUFT_ANIM_NAME       },
        {"emptyIdleAnimLeft",                   offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_EMPTY_IDLE_LEFT]),            AUFT_ANIM_NAME       },
        {"fireIntroAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_FIRE_INTRO]),                 AUFT_ANIM_NAME       },
        {"fireAnim",                            offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_FIRE]),                       AUFT_ANIM_NAME       },
        {"fireAnimLeft",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_FIRE_LEFT]),                  AUFT_ANIM_NAME       },
        {"holdFireAnim",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_HOLD_FIRE]),                  AUFT_ANIM_NAME       },
        {"lastShotAnim",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_LASTSHOT]),                   AUFT_ANIM_NAME       },
        {"lastShotAnimLeft",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_LASTSHOT_LEFT]),              AUFT_ANIM_NAME       },
        {"flourishAnim",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_FINALSHOT]),                  AUFT_ANIM_NAME       },
        {"flourishAnimLeft",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_FINALSHOT_LEFT]),             AUFT_ANIM_NAME       },
        {"detonateAnim",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DETONATE]),                   AUFT_ANIM_NAME       },
        {"rechamberAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RECHAMBER]),                  AUFT_ANIM_NAME       },
        {"meleeAnim",                           offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_MELEE]),                      AUFT_ANIM_NAME       },
        {"meleeAnimEmpty",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_MELEE_EMPTY]),                AUFT_ANIM_NAME       },
        {"meleeAnim1",                          offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_MELEE1]),                     AUFT_ANIM_NAME       },
        {"meleeAnim2",                          offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_MELEE2]),                     AUFT_ANIM_NAME       },
        {"meleeAnim3",                          offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_MELEE3]),                     AUFT_ANIM_NAME       },
        {"meleeChargeAnim",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_MELEE_CHARGE]),               AUFT_ANIM_NAME       },
        {"meleeChargeAnimEmpty",                offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_MELEE_CHARGE_EMPTY]),         AUFT_ANIM_NAME       },
        {"reloadAnim",                          offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD]),                     AUFT_ANIM_NAME       },
        {"reloadAnimRight",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD_RIGHT]),               AUFT_ANIM_NAME       },
        {"reloadAnimLeft",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD_LEFT]),                AUFT_ANIM_NAME       },
        {"reloadEmptyAnim",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD_EMPTY]),               AUFT_ANIM_NAME       },
        {"reloadEmptyAnimLeft",                 offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD_EMPTY_LEFT]),          AUFT_ANIM_NAME       },
        {"reloadStartAnim",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD_START]),               AUFT_ANIM_NAME       },
        {"reloadEndAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD_END]),                 AUFT_ANIM_NAME       },
        {"reloadQuickAnim",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD_QUICK]),               AUFT_ANIM_NAME       },
        {"reloadQuickEmptyAnim",                offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RELOAD_QUICK_EMPTY]),         AUFT_ANIM_NAME       },
        {"raiseAnim",                           offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_RAISE]),                      AUFT_ANIM_NAME       },
        {"dropAnim",                            offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DROP]),                       AUFT_ANIM_NAME       },
        {"firstRaiseAnim",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_FIRST_RAISE]),                AUFT_ANIM_NAME       },
        {"altRaiseAnim",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ALT_RAISE]),                  AUFT_ANIM_NAME       },
        {"altDropAnim",                         offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ALT_DROP]),                   AUFT_ANIM_NAME       },
        {"quickRaiseAnim",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_QUICK_RAISE]),                AUFT_ANIM_NAME       },
        {"quickDropAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_QUICK_DROP]),                 AUFT_ANIM_NAME       },
        {"emptyRaiseAnim",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_EMPTY_RAISE]),                AUFT_ANIM_NAME       },
        {"emptyDropAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_EMPTY_DROP]),                 AUFT_ANIM_NAME       },
        {"sprintInAnim",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_SPRINT_IN]),                  AUFT_ANIM_NAME       },
        {"sprintLoopAnim",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_SPRINT_LOOP]),                AUFT_ANIM_NAME       },
        {"sprintOutAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_SPRINT_OUT]),                 AUFT_ANIM_NAME       },
        {"sprintInEmptyAnim",                   offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_SPRINT_EMPTY_IN]),            AUFT_ANIM_NAME       },
        {"sprintLoopEmptyAnim",                 offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_SPRINT_EMPTY_LOOP]),          AUFT_ANIM_NAME       },
        {"sprintOutEmptyAnim",                  offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_SPRINT_EMPTY_OUT]),           AUFT_ANIM_NAME       },
        {"lowReadyInAnim",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_LOWREADY_IN]),                AUFT_ANIM_NAME       },
        {"lowReadyLoopAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_LOWREADY_LOOP]),              AUFT_ANIM_NAME       },
        {"lowReadyOutAnim",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_LOWREADY_OUT]),               AUFT_ANIM_NAME       },
        {"contFireInAnim",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CONT_FIRE_IN]),               AUFT_ANIM_NAME       },
        {"contFireLoopAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CONT_FIRE_LOOP]),             AUFT_ANIM_NAME       },
        {"contFireOutAnim",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CONT_FIRE_OUT]),              AUFT_ANIM_NAME       },
        {"crawlInAnim",                         offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_IN]),                   AUFT_ANIM_NAME       },
        {"crawlForwardAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_FORWARD]),              AUFT_ANIM_NAME       },
        {"crawlBackAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_BACK]),                 AUFT_ANIM_NAME       },
        {"crawlRightAnim",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_RIGHT]),                AUFT_ANIM_NAME       },
        {"crawlLeftAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_LEFT]),                 AUFT_ANIM_NAME       },
        {"crawlOutAnim",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_OUT]),                  AUFT_ANIM_NAME       },
        {"crawlEmptyInAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_EMPTY_IN]),             AUFT_ANIM_NAME       },
        {"crawlEmptyForwardAnim",               offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_EMPTY_FORWARD]),        AUFT_ANIM_NAME       },
        {"crawlEmptyBackAnim",                  offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_EMPTY_BACK]),           AUFT_ANIM_NAME       },
        {"crawlEmptyRightAnim",                 offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_EMPTY_RIGHT]),          AUFT_ANIM_NAME       },
        {"crawlEmptyLeftAnim",                  offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_EMPTY_LEFT]),           AUFT_ANIM_NAME       },
        {"crawlEmptyOutAnim",                   offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CRAWL_EMPTY_OUT]),            AUFT_ANIM_NAME       },
        {"deployAnim",                          offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DEPLOY]),                     AUFT_ANIM_NAME       },
        {"breakdownAnim",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_BREAKDOWN]),                  AUFT_ANIM_NAME       },
        {"nightVisionWearAnim",                 offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_NIGHTVISION_WEAR]),           AUFT_ANIM_NAME       },
        {"nightVisionRemoveAnim",               offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_NIGHTVISION_REMOVE]),         AUFT_ANIM_NAME       },
        {"adsFireAnim",                         offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ADS_FIRE]),                   AUFT_ANIM_NAME       },
        {"adsLastShotAnim",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ADS_LASTSHOT]),               AUFT_ANIM_NAME       },
        {"adsRechamberAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ADS_RECHAMBER]),              AUFT_ANIM_NAME       },
        {"adsUpAnim",                           offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ADS_UP]),                     AUFT_ANIM_NAME       },
        {"adsDownAnim",                         offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ADS_DOWN]),                   AUFT_ANIM_NAME       },
        {"adsUpOtherScopeAnim",                 offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ADS_UP_OTHER_SCOPE]),         AUFT_ANIM_NAME       },
        {"adsFireIntroAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_ADS_FIRE_INTRO]),             AUFT_ANIM_NAME       },
        {"dtp_in",                              offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DTP_IN]),                     AUFT_ANIM_NAME       },
        {"dtp_loop",                            offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DTP_LOOP]),                   AUFT_ANIM_NAME       },
        {"dtp_out",                             offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DTP_OUT]),                    AUFT_ANIM_NAME       },
        {"dtp_empty_in",                        offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DTP_EMPTY_IN]),               AUFT_ANIM_NAME       },
        {"dtp_empty_loop",                      offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DTP_EMPTY_LOOP]),             AUFT_ANIM_NAME       },
        {"dtp_empty_out",                       offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_DTP_EMPTY_OUT]),              AUFT_ANIM_NAME       },
        {"slide_in",                            offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_SLIDE_IN]),                   AUFT_ANIM_NAME       },
        {"mantleAnim",                          offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_MANTLE]),                     AUFT_ANIM_NAME       },
        {"sprintCameraAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CAMERA_SPRINT_LOOP]),         AUFT_ANIM_NAME       },
        {"dtpInCameraAnim",                     offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CAMERA_DTP_IN]),              AUFT_ANIM_NAME       },
        {"dtpLoopCameraAnim",                   offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CAMERA_DTP_LOOP]),            AUFT_ANIM_NAME       },
        {"dtpOutCameraAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CAMERA_DTP_OUT]),             AUFT_ANIM_NAME       },
        {"mantleCameraAnim",                    offsetof(WeaponAttachmentUniqueFull, szXAnims[WEAP_ANIM_CAMERA_MANTLE]),              AUFT_ANIM_NAME       },
        {"fireSound",                           offsetof(WeaponAttachmentUniqueFull, attachment.fireSound),                           CSPFT_STRING         },
        {"fireSoundPlayer",                     offsetof(WeaponAttachmentUniqueFull, attachment.fireSoundPlayer),                     CSPFT_STRING         },
        {"loopFireSound",                       offsetof(WeaponAttachmentUniqueFull, attachment.fireLoopSound),                       CSPFT_STRING         },
        {"loopFireSoundPlayer",                 offsetof(WeaponAttachmentUniqueFull, attachment.fireLoopSoundPlayer),                 CSPFT_STRING         },
        {"loopFireEndSound",                    offsetof(WeaponAttachmentUniqueFull, attachment.fireLoopEndSound),                    CSPFT_STRING         },
        {"loopFireEndSoundPlayer",              offsetof(WeaponAttachmentUniqueFull, attachment.fireLoopEndSoundPlayer),              CSPFT_STRING         },
        {"startFireSound",                      offsetof(WeaponAttachmentUniqueFull, attachment.fireStartSound),                      CSPFT_STRING         },
        {"stopFireSound",                       offsetof(WeaponAttachmentUniqueFull, attachment.fireStopSound),                       CSPFT_STRING         },
        {"startFireSoundPlayer",                offsetof(WeaponAttachmentUniqueFull, attachment.fireStartSoundPlayer),                CSPFT_STRING         },
        {"stopFireSoundPlayer",                 offsetof(WeaponAttachmentUniqueFull, attachment.fireStopSoundPlayer),                 CSPFT_STRING         },
        {"lastShotSound",                       offsetof(WeaponAttachmentUniqueFull, attachment.fireLastSound),                       CSPFT_STRING         },
        {"lastShotSoundPlayer",                 offsetof(WeaponAttachmentUniqueFull, attachment.fireLastSoundPlayer),                 CSPFT_STRING         },
        {"killcamStartFireSound",               offsetof(WeaponAttachmentUniqueFull, attachment.fireKillcamSound),                    CSPFT_STRING         },
        {"killcamStartFireSoundPlayer",         offsetof(WeaponAttachmentUniqueFull, attachment.fireKillcamSoundPlayer),              CSPFT_STRING         },
        {"viewFlashEffect",                     offsetof(WeaponAttachmentUniqueFull, attachment.viewFlashEffect),                     CSPFT_FX             },
        {"worldFlashEffect",                    offsetof(WeaponAttachmentUniqueFull, attachment.worldFlashEffect),                    CSPFT_FX             },
        {"tracerType",                          offsetof(WeaponAttachmentUniqueFull, attachment.tracerType),                          CSPFT_TRACER         },
        {"enemyTracerType",                     offsetof(WeaponAttachmentUniqueFull, attachment.enemyTracerType),                     CSPFT_TRACER         },
        {"adsDofStart",                         offsetof(WeaponAttachmentUniqueFull, attachment.adsDofStart),                         CSPFT_FLOAT          },
        {"adsDofEnd",                           offsetof(WeaponAttachmentUniqueFull, attachment.adsDofEnd),                           CSPFT_FLOAT          },
        {"overrideLeftHandIK",                  offsetof(WeaponAttachmentUniqueFull, attachment.bOverrideLeftHandIK),                 CSPFT_BOOL           },
        {"overrideLeftHandProneIK",             offsetof(WeaponAttachmentUniqueFull, attachment.bOverrideLeftHandProneIK),            CSPFT_BOOL           },
        {"ikLeftHandOffsetF",                   offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandOffset.x),                  CSPFT_FLOAT          },
        {"ikLeftHandOffsetR",                   offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandOffset.y),                  CSPFT_FLOAT          },
        {"ikLeftHandOffsetU",                   offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandOffset.z),                  CSPFT_FLOAT          },
        {"ikLeftHandRotationP",                 offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandRotation.x),                CSPFT_FLOAT          },
        {"ikLeftHandRotationY",                 offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandRotation.y),                CSPFT_FLOAT          },
        {"ikLeftHandRotationR",                 offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandRotation.z),                CSPFT_FLOAT          },
        {"ikLeftHandProneOffsetF",              offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandProneOffset.x),             CSPFT_FLOAT          },
        {"ikLeftHandProneOffsetR",              offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandProneOffset.y),             CSPFT_FLOAT          },
        {"ikLeftHandProneOffsetU",              offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandProneOffset.z),             CSPFT_FLOAT          },
        {"ikLeftHandProneRotationP",            offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandProneRotation.x),           CSPFT_FLOAT          },
        {"ikLeftHandProneRotationY",            offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandProneRotation.y),           CSPFT_FLOAT          },
        {"ikLeftHandProneRotationR",            offsetof(WeaponAttachmentUniqueFull, attachment.ikLeftHandProneRotation.z),           CSPFT_FLOAT          },
        {"customFloat0",                        offsetof(WeaponAttachmentUniqueFull, attachment.customFloat0),                        CSPFT_FLOAT          },
        {"customFloat1",                        offsetof(WeaponAttachmentUniqueFull, attachment.customFloat1),                        CSPFT_FLOAT          },
        {"customFloat2",                        offsetof(WeaponAttachmentUniqueFull, attachment.customFloat2),                        CSPFT_FLOAT          },
        {"customBool0",                         offsetof(WeaponAttachmentUniqueFull, attachment.customBool0),                         CSPFT_BOOL           },
        {"customBool1",                         offsetof(WeaponAttachmentUniqueFull, attachment.customBool1),                         CSPFT_BOOL           },
        {"customBool2",                         offsetof(WeaponAttachmentUniqueFull, attachment.customBool2),                         CSPFT_BOOL           },
    };
} // namespace T6
