A Sprite Table Binary file has no header and contains an array of 52-byte sprite records. Multi-byte fields use little-endian byte ordering.
Each sprite record defines a single sprite. It associates a unique name with a sub-image inside a texture map.
| Type | Bytes | Name | Description |
|---|---|---|---|
| char[32] | 32 | name | Unique name of the sprite |
| char[8] | 8 | texture | MAP texture file to use for the sprite |
| unsigned short | 2 | u | Position of the left edge of the sprite rectangle in pixels/texels |
| unsigned short | 2 | v | Position of the top edge of the sprite rectangle in pixels/texels |
| unsigned short | 2 | width | Width of the sprite rectangle in pixels/texels |
| unsigned short | 2 | height | Height of the sprite rectangle in pixels/texels |
| unsigned long | 4 | flags | Extra data associated with the sprite (see below) |
The flags property is a bitfield. The four least significant bits contain a colorization index. The rest is unused.
| 314 | 30 |
|---|---|
| (Unused) | Index |
Each colorization index corresponds to a predefined color ramp.
Software rendering tacks a non-zero index onto the end of the texture name after an underscore. A white smoke puff sprite with "smoke" texture and color index 0 would use smoke.map, while a black smoke puff sprite with "smoke" texture and color index 3 would use smoke_3.map.
Hardware rendering uses the index to look up a texture modulate color from a table compiled into the game executable. Color indices A through F are white since their color ramps cannot be reduced to single texture modulate color. Effects using those color ramps have the color pre-baked into the texture instead.
| Index | Color | R | G | B |
|---|---|---|---|---|
| 0 | White | 255 | 255 | 255 |
| 1 | Tan | 238 | 204 | 170 |
| 2 | Brown | 68 | 51 | 34 |
| 3 | Black | 0 | 0 | 0 |
| 4 | Green | 0 | 255 | 0 |
| 5 | Yellow | 255 | 255 | 0 |
| 6 | Red | 255 | 0 | 0 |
| 7 | Blue | 0 | 127 | 255 |
| 8 | Cyan | 0 | 255 | 255 |
| 9 | Grey | 153 | 153 | 153 |
| A | (Unused) | |||
| B | Plasma Green | |||
| C | Plasma Red | |||
| D | Plasma Blue | |||
| E | Explosion | |||
| F |