Alright, people, our programmer was cool enough to figure out the answer by himself. Here's the translation of what he wrote:
So we have two files:
main.fs archive
\data\eng\sysfnt.tdw - this one is for HiRES fonts
menu.fs archive
\data\eng\menu\sysfnt.tdw - that one is for regular fonts
Both of them have the SAME width tables
The values of "main.fs" archive's font width table should be
multiplied by 1,67. The results are to be approximated to bigger values.
http://yadi.sk/d/4Tm5CiXNENrNLThe numbers are stored the same way - the width of symbols starts from the 8th byte with its description starting right after the "space" (I mean the space key on keyboard, if something) in "sysfnt.tdw" file. It takes half of a byte per symbol. The bytes from 0 to 4 - the 1st symbol, from 5 to 7 - 2nd symbol.
Suppose there are symbols of 22, 15, 11 and 7 pixels wide. In that case the values in the table would be the following:
22 / 1.67 = 13.19 => 14 (0xE)
15 / 1.67 = 8.999 => 9 (0x9)
11 / 1.67 = 6.599 => 7 (0x7)
07 / 1.67 = 4.199 => 5 (0x5)
---
9E57
As we can see the maximal absolute error is 1.66 pixels. Sometimes it is better to approximate the number to the lesser value in order to avoid leaving too big space between the symbols.