AttachmentUnique Asset: Difference between revisions

From COD Engine Research
Created page with "The attachment unique asset was added on Black Ops 2 alongside Treyarch's regular attachment asset. This is the the only Call of Duty it has appeared in so far. <syntaxhighlig..."
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
__NOTOC__
[[Category:Assets]]
[[Category:BO2]]
The attachment unique asset was added on Black Ops 2 alongside Treyarch's regular attachment asset. This is the the only Call of Duty it has appeared in so far.
The attachment unique asset was added on Black Ops 2 alongside Treyarch's regular attachment asset. This is the the only Call of Duty it has appeared in so far.
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
enum AttachmentTypes_e
enum eAttachment
{
{
   none_ATTACH,
   ATTACHMENT_NONE = 0x0,
   acog,
   ATTACHMENT_ACOG = 0x1,
   dualclip,
   ATTACHMENT_DUALCLIP = 0x2,
   dualoptic,
   ATTACHMENT_DUALOPTIC = 0x3,
   dw,
   ATTACHMENT_DW = 0x4,
   extbarrel,
   ATTACHMENT_EXTBARREL = 0x5,
   extclip,
   ATTACHMENT_EXTCLIP = 0x6,
   extramags,
   ATTACHMENT_EXTRAMAGS = 0x7,
   fastads,
   ATTACHMENT_FASTADS = 0x8,
   fastreload,
   ATTACHMENT_FASTRELOAD = 0x9,
   fmj,
   ATTACHMENT_FMJ = 0xA,
   gl,
   ATTACHMENT_GL = 0xB,
   grip,
   ATTACHMENT_GRIP = 0xC,
   holo,
   ATTACHMENT_HOLO = 0xD,
   ir,
   ATTACHMENT_IR = 0xE,
   is,
   ATTACHMENT_IRONSIGHTS = 0xF,
   longbreath,
   ATTACHMENT_LONGBREATH = 0x10,
   mk,
   ATTACHMENT_MK = 0x11,
   mms,
   ATTACHMENT_MMS = 0x12,
   rangefinder,
   ATTACHMENT_RANGEFINDER = 0x13,
   reflex,
   ATTACHMENT_REFLEX = 0x14,
   rf,
   ATTACHMENT_RF = 0x15,
   sf,
   ATTACHMENT_SELECTFIRE = 0x16,
   silencer,
   ATTACHMENT_SILENCER = 0x17,
   stackfire,
   ATTACHMENT_STACKFIRE = 0x18,
   stalker,
   ATTACHMENT_STALKER = 0x19,
   steadyaim,
   ATTACHMENT_STEADYAIM = 0x1A,
   swayreduc,
   ATTACHMENT_SWAYREDUC = 0x1B,
   tacknife,
   ATTACHMENT_TACKNIFE = 0x1C,
   vzoom,
   ATTACHMENT_VZOOM = 0x1D,
   ATTACHMENTTYPES_MAX
   ATTACHMENT_TYPE_COUNT = 0x1E,
  ATTACHMENT_INVALID = 0x1E,
};
};


Line 43: Line 47:
};
};


struct WeaponUniqueAttachment
struct WeaponAttachmentUnique
{
{
   char * name;
   const char *szInternalName;
   AttachmentTypes_e attachmentType;
   eAttachment attachmentType;
      char unknown1[0xC];
  int siblingLink;
   char * altWeapon;
  int childLink;
  int combinedAttachmentTypeMask;
   const char *szAltWeaponName;
   unsigned int altWeaponIndex;
   unsigned int altWeaponIndex;
   char * DualWieldWeapon;
   const char *szDualWieldWeaponName;
   unsigned int DualWieldWeaponIndex;
   unsigned int dualWieldWeaponIndex;
   short * unknownScriptStringArray1;     //Count = 0x20
   ScriptString *hideTags;
   XModel * viewModel;
   XModel * viewModel;
   XModel * viewModelAdditional;
   XModel * viewModelAdditional;
Line 60: Line 66:
   char * viewModelTag;
   char * viewModelTag;
   char * worldModelTag;
   char * worldModelTag;
   float viewModelOffset[3];
   vec3_t viewModelOffsets;
   float worldModelOffset[3];
   vec3_t worldModelOffsets;
   float viewModelRotation[3];
   vec3_t viewModelRotations;
   float worldModelRotation[3];
   vec3_t worldModelRotations;
   float viewModelAddOffset[3];
   vec3_t viewModelAddOffsets;
   float worldModelAddOffset[3];
   vec3_t worldModelAddOffsets;
   float viewModelAddRotation[3];
   vec3_t viewModelAddRotations;
   float worldModelAddRotation[3];
   vec3_t worldModelAddRotations;
   WeaponCamo * camo;
   WeaponCamo *weaponCamo;
   bool disableBaseWeaponAttachment;
   bool disableBaseWeaponAttachment;
   bool disableBaseWeaponClip;
   bool disableBaseWeaponClip;
   bool overrideBaseWeaponAttachmentOffsets;
   bool overrideBaseWeaponAttachmentOffsets;
   float viewModelOffsetBaseAttachment[3];
   vec3_t viewModelOffsetBaseAttachment;
   float worldModelOffsetBaseAttachment[3];
   vec3_t worldModelOffsetBaseAttachment;
   Material * adsOverlayShader;
   Material *overlayMaterial;
   Material * adsOverlayShaderLowRes;
   Material *overlayMaterialLowRes;
   weapOverlayReticle_t adsOverlayReticle;
   weapOverlayReticle_t overlayReticle;
   int firstRaiseTime;
   int iFirstRaiseTime;
   int altRaiseTime;
   int iAltRaiseTime;
   int altDropTime;
   int iAltDropTime;
   int reloadAmmoAdd;
   int iReloadAmmoAdd;
   int reloadStartAdd;
   int iReloadStartAdd;
   bool segmentedReload;
   bool bSegmentedReload;
      char * * unknownStringArray;        //Count = 0x58
  const char **szXAnims;        //Count = 0x58
      char unknown2[0xC];
  int animationOverrides[3];
   float (* locationDamageMultipliers)[21];  //21
   float (* locationDamageMultipliers)[21];  //21
      int unknown3;
  int soundOverrides;
   char * fireSound;
   const char *fireSound;
   char * fireSoundPlayer;
   const char *fireSoundPlayer;
   char * loopFireSound;
   const char *fireLoopSound;
   char * loopFireSoundPlayer;
   const char *fireLoopSoundPlayer;
   char * loopFireEndSound;
   const char *fireLoopEndSound;
   char * loopFireEndSoundPlayer;
   const char *fireLoopEndSoundPlayer;
   char * startFireSound;
   const char *fireStartSound;
   char * stopFireSound;
   const char *fireStopSound;
   char * startFireSoundPlayer;
   const char *fireStartSoundPlayer;
   char * stopFireSoundPlayer;
   const char *fireStopSoundPlayer;
   char * lastShotSound;
   const char *fireLastSound;
   char * lastShotSoundPlayer;
   const char *fireLastSoundPlayer;
   char * killcamStartFireSound;
   const char *fireKillcamSound;
   char * killcamStartFireSoundPlayer;
   const char *fireKillcamSoundPlayer;
      int unknown4;
  int effectOverrides;
   FxEffectDef * viewFlashEffect;
   FxEffectDef * viewFlashEffect;
   FxEffectDef * worldFlashEffect;
   FxEffectDef * worldFlashEffect;
   Tracer * tracer;
   TracerDef *tracerType;
   Tracer * enemyTracer;
   TracerDef *enemyTracerType;
   float adsDofStart;
   float adsDofStart;
   float adsDofEnd;
   float adsDofEnd;
   float hipDofStart;
   int iAmmoIndex;
   float hipDofEnd;
   int iClipIndex;
   bool overrideLeftHandIK;
   bool bOverrideLeftHandIK;
   bool overrideLeftHandProneIK;
   bool bOverrideLeftHandProneIK;
   float ikLeftHandOffset[3];
   vec3_t ikLeftHandOffset;
   float ikLeftHandRotation[3];
   vec3_t ikLeftHandRotation;
   float ikLeftHandProneOffset[3];
   vec3_t ikLeftHandProneOffset;
   float ikLeftHandProneRotation[3];
   vec3_t ikLeftHandProneRotation;
   float customFloat[3];
   float customFloat[3];
   int customBool[3];
   int customBool[3];

Latest revision as of 00:35, 21 December 2014

The attachment unique asset was added on Black Ops 2 alongside Treyarch's regular attachment asset. This is the the only Call of Duty it has appeared in so far.

enum eAttachment
{
  ATTACHMENT_NONE = 0x0,
  ATTACHMENT_ACOG = 0x1,
  ATTACHMENT_DUALCLIP = 0x2,
  ATTACHMENT_DUALOPTIC = 0x3,
  ATTACHMENT_DW = 0x4,
  ATTACHMENT_EXTBARREL = 0x5,
  ATTACHMENT_EXTCLIP = 0x6,
  ATTACHMENT_EXTRAMAGS = 0x7,
  ATTACHMENT_FASTADS = 0x8,
  ATTACHMENT_FASTRELOAD = 0x9,
  ATTACHMENT_FMJ = 0xA,
  ATTACHMENT_GL = 0xB,
  ATTACHMENT_GRIP = 0xC,
  ATTACHMENT_HOLO = 0xD,
  ATTACHMENT_IR = 0xE,
  ATTACHMENT_IRONSIGHTS = 0xF,
  ATTACHMENT_LONGBREATH = 0x10,
  ATTACHMENT_MK = 0x11,
  ATTACHMENT_MMS = 0x12,
  ATTACHMENT_RANGEFINDER = 0x13,
  ATTACHMENT_REFLEX = 0x14,
  ATTACHMENT_RF = 0x15,
  ATTACHMENT_SELECTFIRE = 0x16,
  ATTACHMENT_SILENCER = 0x17,
  ATTACHMENT_STACKFIRE = 0x18,
  ATTACHMENT_STALKER = 0x19,
  ATTACHMENT_STEADYAIM = 0x1A,
  ATTACHMENT_SWAYREDUC = 0x1B,
  ATTACHMENT_TACKNIFE = 0x1C,
  ATTACHMENT_VZOOM = 0x1D,
  ATTACHMENT_TYPE_COUNT = 0x1E,
  ATTACHMENT_INVALID = 0x1E,
};

enum weapOverlayReticle_t
{
  WEAPOVERLAYRETICLE_NONE = 0x0,
  WEAPOVERLAYRETICLE_CROSSHAIR = 0x1,
  WEAPOVERLAYRETICLE_MAX
};

struct WeaponAttachmentUnique
{
  const char *szInternalName;
  eAttachment attachmentType;
  int siblingLink;
  int childLink;
  int combinedAttachmentTypeMask;
  const char *szAltWeaponName;
  unsigned int altWeaponIndex;
  const char *szDualWieldWeaponName;
  unsigned int dualWieldWeaponIndex;
  ScriptString *hideTags;
  XModel * viewModel;
  XModel * viewModelAdditional;
  XModel * viewModelADS;
  XModel * worldModel;
  XModel * worldModelAdditional;
  char * viewModelTag;
  char * worldModelTag;
  vec3_t viewModelOffsets;
  vec3_t worldModelOffsets;
  vec3_t viewModelRotations;
  vec3_t worldModelRotations;
  vec3_t viewModelAddOffsets;
  vec3_t worldModelAddOffsets;
  vec3_t viewModelAddRotations;
  vec3_t worldModelAddRotations;
  WeaponCamo *weaponCamo;
  bool disableBaseWeaponAttachment;
  bool disableBaseWeaponClip;
  bool overrideBaseWeaponAttachmentOffsets;
  vec3_t viewModelOffsetBaseAttachment;
  vec3_t worldModelOffsetBaseAttachment;
  Material *overlayMaterial;
  Material *overlayMaterialLowRes;
  weapOverlayReticle_t overlayReticle;
  int iFirstRaiseTime;
  int iAltRaiseTime;
  int iAltDropTime;
  int iReloadAmmoAdd;
  int iReloadStartAdd;
  bool bSegmentedReload;
  const char **szXAnims;        //Count = 0x58
  int animationOverrides[3];
  float (* locationDamageMultipliers)[21];  //21
  int soundOverrides;
  const char *fireSound;
  const char *fireSoundPlayer;
  const char *fireLoopSound;
  const char *fireLoopSoundPlayer;
  const char *fireLoopEndSound;
  const char *fireLoopEndSoundPlayer;
  const char *fireStartSound;
  const char *fireStopSound;
  const char *fireStartSoundPlayer;
  const char *fireStopSoundPlayer;
  const char *fireLastSound;
  const char *fireLastSoundPlayer;
  const char *fireKillcamSound;
  const char *fireKillcamSoundPlayer;
  int effectOverrides;
  FxEffectDef * viewFlashEffect;
  FxEffectDef * worldFlashEffect;
  TracerDef *tracerType;
  TracerDef *enemyTracerType;
  float adsDofStart;
  float adsDofEnd;
  int iAmmoIndex;
  int iClipIndex;
  bool bOverrideLeftHandIK;
  bool bOverrideLeftHandProneIK;
  vec3_t ikLeftHandOffset;
  vec3_t ikLeftHandRotation;
  vec3_t ikLeftHandProneOffset;
  vec3_t ikLeftHandProneRotation;
  float customFloat[3];
  int customBool[3];
};

Source Format

There is currently no known source format for the attachment asset. The currently accepted one is extensionless raw text files located at "raw/attachment_unq/" that contain the setting names and new values separated by backslashes. The first entry identifies the file and for attachments, "ATTACHMENTFILE" is used.