.wad
WAD is the file extension for Half-Life texture packages. An acronym for Where's All the Data?, WAD files first originated in ID Software's Doom as a general purpose file archive to help facilitate game MODs. A format of the same name was later used in ID Software's Quake engine as a texture package, then consequentially adapted by Half-Life 1's GoldSrc engine. GoldSrc specifically uses version 3 of the format, sometimes referred to as WAD3. WAD files typically contain standard texture sets, custom texture sets for individual levels, sprays, HUD elements and fonts.
WAD3 can store 3 types of data (however, WAD format itself allows up 256 types, but GoldSrc uses only 3).
The following types are supported:
- miptex (0x44)
- Power-of-16-sized world textures with 4 mipmaps.
- qpic (0x42)
- Simple image with any size.
typedef struct
{
int width, height;
char data[height][width]; //Image is stored as 8-bit numbers of colors in palette
short colors_used; //Number of colors in palette (can't be more than 256)
char lbmpalette[numcolors][3]; //8-bit RGB palette data
} qpic_t;
- font (0x45)
- Fixed-height font. Contains an image and font data (row, X offset and width of a character) for 256 ASCII characters.
typedef struct
{
short startoffset; //Offset to the character in data
short charwidth;
} charinfo;
typedef struct
{
int width, height; //Width is always 256 pixels
int rowcount; //Number of fixed-height character rows
int rowheight; //Height of a row
charinfo fontinfo[256]; //Info about each character
char data[height][width]; //Same as in qpic_t
short colors_used; //Same as in qpic_t
char lbmpalette[numcolors][3]; //Same as in qpic_t
}
All numbers in WAD files are unsigned and little-endian.
Links
- CStrike Planet
- A collection of official and custom Counter-Strike WAD files.
- The Wadfather
- A large collection of WAD files.