 this is a brief documentation of how fonts are stored in W. this has
changed really often in the last few releases so I don't directly want to
claim it won't change again in a future release, but then I think it has
somehow settled by now, so here it is:

 font file layout for W1R2
 =========================

 fonts under W are pixel fonts only. each font file contains only one font
in a fixed size and in one attribute. the same font with other attributes
(like bold or italic) must go to a different file. fonts always consist of
all 256 characters.

 the font file starts with a header:

offset	size	description
---------------------------
     0     4	magic long = 0x57464E54 (string "WFNT")
     4     2    character width in pixel
     6     2    character height in pixel
     8     *    font data

 font data is a bitstream of pixels, where each character is coded from the
top left corner to the lower right one. the first pixel of each character is
defined to be aligned to a long boundary, the other pixels of that character
follow in a bitstream without caring of boundaries or alignments. this way
up to 31 bits are wasted per char, but who cares for that?

 all the necessary computations to access a character in the bitstream can
be done by the server with the character width and height, because characters
are not (yet) proportional. proportional characters will bring an additional
256 byte field into the font header giving the width of each character.
