Emblem Set Asset

From COD Engine Research

The emblemset asset is used on Black Ops 1 and 2 to predefine emblems.

Black Ops 1

struct IconInfo
{
  GfxImage * icon;
  char * unknownString;
  char unknown[0x20];
};

struct BackgroundInfo
{
  Material * background;
  char * unknownString;
  char unknown[0x10];
};

struct CategoryInfo
{
  char * unknownString1;
  char * unknownString2;
};

struct emblemlayer
{
  //Note: These are bit counts. Should add to 0xC bytes.
  int icon        : 9;
  int color       : 7;
  byte red        : 8;
  byte green      : 8;
  byte blue       : 8;
  byte alpha      : 8;
  int posx        : 9;
  int posy        : 9;
  int angle       : 9;
  int scalex      : 9;
  int scaley      : 9;
  int outline     : 1;
  int flip        : 1;
  int pad         : 1;
};

struct EmblemSet
{
       int unknown1;
  unsigned int layerCount;
  emblemlayer * layers;
  unsigned int categoryCount;
  CategoryInfo * categories;
  unsigned int iconCount;
  IconInfo * icons;
  unsigned int backgroundCount;
  BackgroundInfo * backgrounds;
  unsigned int backgroundLookupCount;
  short * backgroundLookup;
};

Black Ops 2

struct EmblemIcon
{
  GfxImage *image;
  const char *description;
  float outlineSize;
  int cost;
  int unlockLevel;
  int unlockPLevel;
  int unclassifyAt;
  int sortKey;
  unsigned __int16 iconType;
  unsigned __int16 category;
};

struct EmblemBackground
{
  Material *material;
  const char *description;
  int cost;
  int unlockLevel;
  int unlockPLevel;
  int unclassifyAt;
  int sortKey;
  unsigned __int16 bgCategory;
  int mtxIndex;
};

struct EmblemCategory
{
  const char *name;
  const char *description;
};

struct EmblemIconType
{
  const char *name;
  const char *description;
};

struct EmblemBGCategory
{
  const char *name;
  const char *description;
};

struct EmblemLayer
{
  int cost;
  int unlockLevel;
  int unlockPLevel;
};

struct EmblemSet
{
  int colorCount;
  int layerCount;
  EmblemLayer *layers;
  int categoryCount;
  EmblemCategory *categories;
  int iconTypeCount;
  EmblemIconType *iconTypes;
  int bgCategoryCount;
  EmblemBGCategory *bgCategories;
  int iconCount;
  EmblemIcon * icons;
  int backgroundCount;
  EmblemBackground * backgrounds;
  int backgroundLookupCount;
  short * backgroundLookup;
};