This is a simple archive format, used both to simplify organization of the files, as well as to group together entire areas. Some BIF files are grouped together because of common functionality; for instance, all the .dlg files are gathered together into a single BIF file in Planescape: Torment. Other bif files, such as AR4800.BIF represent the entirety of an area's terrain (i.e. not its containers, actors, or items). These BIF files contain, typically:
1+ .wed file, detailing how the tiles are to be drawn to the screen (i.e. which are animated, which are linked to the opening of which door, etc.) and where walls are (for clipping of actor graphics)
1+ .tis file, which contains all the tile data for the area
1 .mos file which is the overhead map of the region
3 or 4 small bitmap files which contain one pixel for each tile needed to cover the region.
The three (or four) bitmaps, are named xxxxxxHT.BMP, xxxxxxLM.BMP, xxxxxxSR.BMP, and (when there are four bitmaps) xxxxxxLN.BMP.
xxxxxxHT.BMP: Height-map, which gives the altitude of each tile cell in the associated wed file
xxxxxxLM.BMP: Light-map, giving the level of illumination (or shadow) of each tile cell on the map. (Called a LUM-map by the developers.)
xxxxxxLN.BMP: When present, this is the same as xxxxxxLM.BMP, but for night-time only. When present, there will also be a second wed file to be used only at night.
xxxxxxSR.BMP: Search Map. Used for path-finding, and marking map sections as passable/water/etc
Overall structure:
This format is identical to the SAV file format, except for the first 8 bytes, which are 'BIF V1.0' for these files,
and 'SAV V1.0' for SAV files. The data, once uncompressed, is formatted as a
normal BIF file, as seen above. Note that the SAV files can hold more than one
compressed file. It is unknown whether this occurs also in CBF files. The
compressed format is as follows:
Overall structure:
The file is broken up into blocks (typically 8192 bytes apiece), which are
compressed separately. The blocks are stored one right after another,
immediately after the header. Each block consists of an uncompressed size and a
compressed size, and then the data, compressed by zlib.