Image Asset

From COD Engine Research
Revision as of 14:22, 22 January 2014 by Aerosoul94 (talk | contribs)

Call of Duty 4 & World at War

union GfxTexture
{
	D3DBaseTexture *basemap;
	D3DTexture *map;
	D3DVolumeTexture *volmap;	// if GfxImageLoadDef::flags & 8
	D3DCubeTexture *cubemap;	// if GfxImageLoadDef::flags & 4
};

struct GfxImageLoadDef
{
	char levelCount;
	char flags;
	short dimensions[3];
	_D3DFormat format;
	GfxTexture texture;
};

struct GfxTextureLoad
{
	GfxImageLoadDef *loadDef;
};

struct GfxImage
{
	MapType mapType;
#ifdef PS3
	CellGcmTexture texture;	// size = 0x18
#elif defined XBOX360
	GfxTextureLoad texture;
#endif
	CardMemory cardMemory;
	int size;
	unsigned short width;
	unsigned short height;
	unsigned short depth;
	char category;
	bool streaming;
	char *data;
#ifdef XBOX360
	char unknown[8];
#endif
	const char *name;
};

NOTE: In the zone file, if the streaming is set as true, then data is loaded at the end of the zone file.

Black Ops

union GfxTexture
{
	char *data;
	struct
	{
		char unknown[0x3C];
	};
};

struct GfxImage
{
#ifdef PS3
	CellGcmTexture texture; // size = 0x18
#endif
	char unknown1;
	char unknown2;
	char unknown3;
	char unknown4;
	int size;
	unsigned short height;
	unsigned short width;
	unsigned short depth;
	char unknown[6];
	GfxTexture textureDef;
	const char *name;
	int hash;
};

Modern Warfare 2 & 3 & Ghosts

union GfxTexture
{
	char *data;
	struct
	{
		char unknownData[0x24];
	};
};

struct GfxImage
{
#ifdef PS3
	CellGcmTexture texture;	// size = 0x18
#elif defined XBOX360
	D3DTexture texture;
	_D3DFormat format;
#endif
	char unknown3;
	char unknown4;
	char unknown5;
	char unknown6;
	int size;
	unsigned short width;
	unsigned short height;
	unsigned short depth;
	char mipmap;
	bool streaming;
	GfxTexture textureDef;
	const char *name;
};

NOTE: In the zone file, if streaming is set as true, then data will be found in PAK files.

Black Ops 2

union GfxTexture
{
	char *data;
	struct 
	{
		char unknown[0x68];
	};
};

struct GfxImage
{
	char unknown1[6];
#ifdef PS3
	CellGcmTexture texture;	// modified, missing 10 bytes, size = 0xE
#endif
	char unknown2;
	char unknown3;
	char unknown4;
	char unknown5;
	int size;
	unsigned short width;
	unsigned short height;
	unsigned short depth;
	char unknown[6];
	GfxTexture textureDef;
	const char *name;
	int hash;
};