Brief description of the op2art format
--------------------------------------

See the following two files for additional reference:

prt-type_def.txt - Contains C like headers that describe the op2_art.prt file
op2_art_mem.txt - Describes how op2 places the arts in memory
(don't complain about the wrong syntax. It does its purpose.)
('fixed' of course means static memory location.)


All the arts can be build from two files:
op2_art.bmp and op2_art.prt
(op2_art.prt can be extracted from maps.vol using the reVOLver.)

op2_art.bmp only contains the pure graphical data.
This means pixel data WITHOUT size or palette information,
which can instead be found in op2_art.prt.

The arts are built up in four steps:

The lowest level is what I call 'Image': an image in this case
means pixel-data, palette and size, but NOT placement information.
In the op2_art file, an image often only represents a small part of
a building or unit. This way the game saves space, since images
can be reused among similar structures or animation frames.

Almost the same is a 'Picture', which additionaly specifies the
position of the image within a frame (x/y).

A 'Frame' consists of multiple pictures, which are transparently drawn
over each other in any desired order. (lowest number is drawn first,
so highest gets on top). A frame is all to be displayed for a certain
unit at a certain time (like in a movie).

To get animations, there are 'Groups' of frames, which also contain
the positions of the selection border and some other stuff.
A frame can also contain up to 2 additional info blocks (i call them
appendix since they are allocated behind the other data in memory).

Also the frames can have 'extended info' which is allocated for all
frames of a group if only one frame uses it. Thereby all unset fields
are set to 0.

However I don't have a clue what any of this extended data means, so
if you've an idea please let me know.

