A QAV file is like a small movie scene build up out of tiles.
The blood dripping menu, the help screens and the weapons are all QAVs.
QAV files can be extracted from the BLOOD.RFF file with WinBarf
Each frame has got 8 layers. Each layer can hold 1 tile with its own
unique properties,
those are; X/Y position, pallet, shade, scale, rotation, X/Y flip and
transparency.
There are also global settings inside the QAV's header,
like; X/Y global origin, # of frames and ticks per frame (framerate).
File structure:

A QAV file can have as many frames as needed.
Each new frame will extend the QAV file with another 204 bytes,
(12 for the frame's header and 8 x 24 for the layers)
QAV
Header
|
|
|
|
Offset |
|
8/9 |
Number of frames used in QAV file |
12/13 |
Number of TPF (ticks per frame) |
20/21 |
Global origin X-position |
24 |
Global origin Y-position |
|
|
|
|
Frame Header |
|
|
|
Offset |
|
0 to 3 |
trigger value* (see more info below) |
4 to 7 |
Sound number |
8 |
Priority? |
9 |
Volume |
10 |
ID? |
11 |
Type? |
|
|
|
|
Layers |
|
|
|
Offset |
|
0/1 |
Picnum |
4/5 |
X-position |
8/9 |
Y-position |
13/14 |
Zoom |
16
- Bit 0
- Bit 2
- Bit 5 |
Transparency (first bit)
Flip Y
Transparency (second bit) |
17 |
Flip X |
20 |
Shade |
21 |
Pallet |
22/23 |
Rotation |
|
|
For layer 2, add 24
For layer 3, add 48
For layer 4, add 72
For layer 5, add 96
For layer 6, add 120
For layer 7, add 144
For layer 8, add 168 |
|
|
*Trigger values give specific result for different weapons.
For example the Tommy gun; a value of 7 makes it shoot towards the center while 0 is left and 14 is right. Other weapons use the trigger value to change to a different QAV file for example the TNT or the reloading of the Sawed-off etc. |