summaryrefslogtreecommitdiffstats
path: root/tools/scripts/make_bmfhdr.py
blob: 3fa97c8fe11ec9b1bf00912285f58599d811c9be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70


import sys

if (len(sys.argv)!=2):
    print("Pass me a .fnt argument!")

f = open(sys.argv[1],"rb")

name = sys.argv[1].lower().replace(".fnt","")

l = f.readline()

font_height=0
font_ascent=0
font_charcount=0
font_chars=[]
font_cc=0

while(l!=""):

    fs = l.strip().find(" ")
    if (fs==-1):
        l=f.readline()
        continue
    t  = l[0:fs]

    dv = l[fs+1:].split(" ")
    d = {}
    for x in dv:
        if (x.find("=")==-1):
            continue
        s = x.split("=")
        d[ s[0] ] = s[1]


    if (t=="common"):
        font_height=d["lineHeight"]
        font_ascent=d["base"]

    if (t=="char"):
        font_chars.append(d["id"])
        font_chars.append(d["x"])
        font_chars.append(d["y"])
        font_chars.append(d["width"])
        font_chars.append(d["height"])
        font_chars.append(d["xoffset"])
        font_chars.append(d["yoffset"])
        font_chars.append(d["xadvance"])
        font_cc+=1



    l = f.readline()


print("static const int _bi_font_"+name+"_height="+str(font_height)+";")
print("static const int _bi_font_"+name+"_ascent="+str(font_ascent)+";")
print("static const int _bi_font_"+name+"_charcount="+str(font_cc)+";")
cstr="static const int _bi_font_"+name+"_characters={"
for i in range(len(font_chars)):

    c=font_chars[i]
    if (i>0):
        cstr+=", "
    cstr+=c

cstr+=("};")

print(cstr)