Modern Warfare 1, 2, 3, Ghosts & World at War
enum he_type_t : int
{
HE_TYPE_FREE = 0x0,
HE_TYPE_TEXT = 0x1,
HE_TYPE_VALUE = 0x2,
HE_TYPE_PLAYERNAME = 0x3,
HE_TYPE_MATERIAL = 0x4,
HE_TYPE_TIMER_DOWN = 0x5,
HE_TYPE_TIMER_UP = 0x6,
HE_TYPE_TIMER_STATIC = 0x7,
HE_TYPE_TENTHS_TIMER_DOWN = 0x8,
HE_TYPE_TENTHS_TIMER_UP = 0x9,
HE_TYPE_TENTHS_TIMER_STATIC = 0xA,
HE_TYPE_CLOCK_DOWN = 0xB,
HE_TYPE_CLOCK_UP = 0xC,
HE_TYPE_WAYPOINT = 0xD,
HE_TYPE_MAPNAME = 0xE,
HE_TYPE_GAMETYPE = 0xF,
HE_TYPE_COUNT = 0x10,
};
// hudelem_s->flags
#define HUDELEMFLAG_FOREGROUND 0x1
#define HUDELEMFLAG_HIDEWHENDEAD 0x2
#define HUDELEMFLAG_HIDEWHENINMENU 0x4
#if !defined(COD4) && !defined(WAW) // MW2 or later
#define HUDELEMFLAG_WAYPOINT_PINTOEDGE 0x8
#define HUDELEMFLAG_WAYPOINT_FADEATEDGE 0x10
#define HUDELEMFLAG_WAYPOINT_ROTATEATEDGE 0x20
#define HUDELEMFLAG_WAYPOINT_OFFSCREENONLY 0x40
#define HUDELEMFLAG_LOWRES_BACKGROUND 0x100
#ifndef MW2 // MW3 or later
#define HUDELEM_FLAG_IS_CONSTANTSIZE 0x200
#define HUDELEM_FLAG_DRAW_3D 0x400
#define HUDELEMFLAG_HIDEWHENIN3RDPERSON 0x800
#define HUDELEMFLAG_HIDEWHENINDEMO 0x1000
#ifdef GHOSTS // Ghosts
#define HUDELEMFLAG_ENTITY_LINKED 0x2000
#define HUDELEMFLAG_HUDLIGHTING 0x4000
#endif
#endif
#endif
union hudelem_color_t
{
struct
{
char r;
char g;
char b;
char a;
};
int rgba;
};
struct hudelem_s
{
he_type_t type;
float x;
float y;
float z;
int targetEntNum;
float fontScale;
float fromFontScale;
#ifndef COD4 || WAW
float fontScaleStartTime;
float fontScaleTime;
#endif
int font;
int alignOrg;
int alignScreen;
hudelem_color_t color;
hudelem_color_t fromColor;
int fadeStartTime;
int fadeTime;
int label;
int width;
int height;
int materialIndex;
#if defined(WAW) || defined(COD4)
int offscreenMaterialIdx;
#endif
int fromWidth;
int fromHeight;
int scaleStartTime;
int scaleTime;
float fromX;
float fromY;
int fromAlignOrg;
int fromAlignScreen;
int moveStartTime;
int moveTime;
int time;
int duration;
float value;
int text;
float sort;
hudelem_color_t glowColor;
int fxBirthTime;
int fxLetterTime;
int fxDecayStartTime;
int fxDecayDuration;
int soundID;
int flags;
};
struct game_hudelem_s
{
hudelem_s hud;
int clientNum;
int team;
int archived;
#ifdef GHOSTS
int currentShowInKillcam;
#endif
};
Advanced Warfare
enum he_type_t : int
{
HE_TYPE_FREE = 0x0,
HE_TYPE_TEXT = 0x1,
HE_TYPE_VALUE = 0x2,
HE_TYPE_PLAYERNAME = 0x3,
HE_TYPE_MATERIAL = 0x4,
HE_TYPE_TIMER_DOWN = 0x5,
HE_TYPE_TIMER_UP = 0x6,
HE_TYPE_TIMER_STATIC = 0x7,
HE_TYPE_TENTHS_TIMER_DOWN = 0x8,
HE_TYPE_TENTHS_TIMER_UP = 0x9,
HE_TYPE_TENTHS_TIMER_STATIC = 0xA,
HE_TYPE_CLOCK_DOWN = 0xB,
HE_TYPE_CLOCK_UP = 0xC,
HE_TYPE_WAYPOINT = 0xD,
HE_TYPE_MAPNAME = 0xE,
HE_TYPE_GAMETYPE = 0xF,
HE_TYPE_COUNT = 0x10,
};
// hudelem_s->flags
#define HUDELEMFLAG_FOREGROUND 0x1
#define HUDELEMFLAG_HIDEWHENDEAD 0x2
#define HUDELEMFLAG_HIDEWHENINMENU 0x4
#define HUDELEMFLAG_WAYPOINT_PINTOEDGE 0x8
#define HUDELEMFLAG_WAYPOINT_FADEATEDGE 0x10
#define HUDELEMFLAG_WAYPOINT_ROTATEATEDGE 0x20
#define HUDELEMFLAG_WAYPOINT_OFFSCREENONLY 0x40
#define HUDELEMFLAG_LOWRES_BACKGROUND 0x100
#define HUDELEMFLAG_IS_CONSTANTSIZE 0x200
#define HUDELEMFLAG_DRAW_3D 0x400
#define HUDELEMFLAG_HIDEWHENIN3RDPERSON 0x800
#define HUDELEMFLAG_HIDEWHENINDEMO 0x1000
#define HUDELEMFLAG_POSITIONINWORLD 0x4000
#define HUDELEMFLAG_ENABLEHUDLIGHTING 0x10000
union hudelem_color_t
{
struct
{
char r;
char g;
char b;
char a;
};
int rgba;
};
struct hudelem_s
{
int unknown1; // 0x0
int font; // 0x4
int alignOrg; // 0x8
int alignScreen; // 0xC
float x; // 0x10
float y; // 0x14
float z; // 0x18
he_type_t type; // 0x1C
float fontScale; // 0x20
float fromFontScale; // 0x24
float fontScaleStartTime;// 0x28
float fontScaleTime; // 0x2C
hudelem_color_t color; // 0x30
hudelem_color_t fromColor;// 0x34
int fadeStartTime; // 0x38
int fadeTime; // 0x3C
int label; // 0x40
int width; // 0x44
int height; // 0x48
int materialIndex; // 0x4C
int fromWidth; // 0x50
int fromHeight; // 0x54
int scaleStartTime; // 0x58
int scaleTime; // 0x5C
float fromX; // 0x60
float fromY; // 0x64
int fromAlignOrg; // 0x68
int fromAlignScreen; // 0x6C
int moveStartTime; // 0x70
int moveTime; // 0x74
int time; // 0x78
int duration; // 0x7C
float value; // 0x80
int text; // 0x84
float sort; // 0x88
hudelem_color_t glowColor;// 0x8C
int fxBirthTime; // 0x90
int fxLetterTime; // 0x94
int fxDecayStartTime; // 0x98
int fxDecayDuration; // 0x9C
int soundID; // 0xA0
int unknown2; // 0xA4
int flags; // 0xA8
};
struct game_hudelem_s
{
hudelem_s hud; // 0x0
int clientNum; // 0xAC
int team; // 0xB0
int archived; // 0xB4
int currentShowInKillcam; // 0xB8
};
Black Ops 1 & 2
union hudelem_color_t
{
struct
{
char r;
char g;
char b;
char a;
};
int rgba;
};
enum he_type_t : char
{
HE_TYPE_FREE = 0x0,
HE_TYPE_TEXT = 0x1,
HE_TYPE_VALUE = 0x2,
HE_TYPE_PLAYERNAME = 0x3,
HE_TYPE_MAPNAME = 0x4,
HE_TYPE_GAMETYPE = 0x5,
HE_TYPE_MATERIAL = 0x6,
HE_TYPE_TIMER_DOWN = 0x7,
HE_TYPE_TIMER_UP = 0x8,
HE_TYPE_TENTHS_TIMER_DOWN = 0x9,
HE_TYPE_TENTHS_TIMER_UP = 0xA,
HE_TYPE_CLOCK_DOWN = 0xB,
HE_TYPE_CLOCK_UP = 0xC,
HE_TYPE_WAYPOINT = 0xD,
HE_TYPE_COUNT = 0xE,
};
// hudelem_s->flags
#define HUDELEMFLAG_FOREGROUND 0x1
#define HUDELEMFLAG_HIDEWHENDEAD 0x2
#define HUDELEMFLAG_HIDEWHENINMENU 0x4
#define HUDELEMFLAG_FONTSTYLE3D_SHADOWED 0x8
#define HUDELEMFLAG_FONTSTYLE3D_SHADOWEDMORE 0x10
#define HUDELEMFLAG_FONT3DUSEGLOWCOLOR 0x20
#define HUDELEMFLAG_HIDEWHENINKILLCAM 0x40
#define HUDELEMFLAG_FADEWHENTARGETED 0x100
#define HUDELEMFLAG_HIDEWHENINDEMO 0x200
#define HUDELEMFLAG_OVERRIDEWHENINDEMO 0x400
#define HUDELEMFLAG_HIDEWHILEREMOTECONTROLLING 0x800
#ifdef BO2
#define HUDELEMFLAG_IMMUNETODEMOGAMEHUDSETTING 0x8000
#define HUDELEMFLAG_IMMUNETODEMOFREECAMERA 0x10000
#endif
#pragma pack(push, 4)
struct hudelem_s
{
float x;
float y;
float z;
float fontScale;
#ifdef BO2
float fromFontScale;
int fontScaleStartTime;
#endif
hudelem_color_t color;
hudelem_color_t fromColor;
int fadeStartTime;
int scaleStartTime;
float fromX;
float fromY;
int moveStartTime;
int time;
int duration;
float value;
float sort;
hudelem_color_t glowColor;
int fxBirthTime;
#ifdef BO2
unsigned int flags;
#endif
short targetEntNum;
short fontscaleTime;
short fadeTime;
short label;
short width;
short height;
short fromWidth;
short fromHeight;
short scaleTime;
short moveTime;
short text;
unsigned short fxLetterTime;
unsigned short fxDecayStartTime;
unsigned short fxDecayDuration;
unsigned short fxRedactDecayStartTime;
unsigned short fxRedactDecayDuration;
#ifdef BO1
short flags;
#endif
he_type_t type;
char font;
char alignOrg;
char alignScreen;
char materialIndex;
char offscreenMaterialIdx;
char fromAlignOrg;
char fromAlignScreen;
char soundID;
bool ui3dWindow;
};
#pragma pack(pop)
struct game_hudelem_s
{
hudelem_s elem;
int clientNum;
int team;
int archived;
};