- Backported SPACEWIDTH for fontdefs from ECWolf.

SVN r3811 (trunk)
This commit is contained in:
Braden Obrzut 2012-08-07 08:11:56 +00:00
parent 6af0744f75
commit 5f4889d99e
2 changed files with 17 additions and 4 deletions

View file

@ -339,7 +339,7 @@ FArchive &SerializeFFontPtr (FArchive &arc, FFont* &font)
// //
//========================================================================== //==========================================================================
FFont::FFont (const char *name, const char *nametemplate, int first, int count, int start, int fdlump) FFont::FFont (const char *name, const char *nametemplate, int first, int count, int start, int fdlump, int spacewidth)
{ {
int i; int i;
FTextureID lump; FTextureID lump;
@ -422,7 +422,11 @@ FFont::FFont (const char *name, const char *nametemplate, int first, int count,
} }
} }
if ('N'-first >= 0 && 'N'-first < count && Chars['N' - first].Pic != NULL) if (spacewidth != -1)
{
SpaceWidth = spacewidth;
}
else if ('N'-first >= 0 && 'N'-first < count && Chars['N' - first].Pic != NULL)
{ {
SpaceWidth = (Chars['N' - first].XMove + 1) / 2; SpaceWidth = (Chars['N' - first].XMove + 1) / 2;
} }
@ -2056,6 +2060,7 @@ void V_InitCustomFonts()
int start; int start;
int first; int first;
int count; int count;
int spacewidth;
char cursor = '_'; char cursor = '_';
while ((llump = Wads.FindLump ("FONTDEFS", &lastlump)) != -1) while ((llump = Wads.FindLump ("FONTDEFS", &lastlump)) != -1)
@ -2070,6 +2075,7 @@ void V_InitCustomFonts()
start = 33; start = 33;
first = 33; first = 33;
count = 223; count = 223;
spacewidth = -1;
sc.MustGetStringName ("{"); sc.MustGetStringName ("{");
while (!sc.CheckString ("}")) while (!sc.CheckString ("}"))
@ -2108,6 +2114,13 @@ void V_InitCustomFonts()
sc.MustGetString(); sc.MustGetString();
cursor = sc.String[0]; cursor = sc.String[0];
} }
else if (sc.Compare ("SPACEWIDTH"))
{
if (format == 2) goto wrong;
sc.MustGetNumber();
spacewidth = sc.Number;
format = 1;
}
else if (sc.Compare ("NOTRANSLATION")) else if (sc.Compare ("NOTRANSLATION"))
{ {
if (format == 1) goto wrong; if (format == 1) goto wrong;
@ -2151,7 +2164,7 @@ void V_InitCustomFonts()
} }
if (format == 1) if (format == 1)
{ {
FFont *fnt = new FFont (namebuffer, templatebuf, first, count, start, llump); FFont *fnt = new FFont (namebuffer, templatebuf, first, count, start, llump, spacewidth);
fnt->SetCursor(cursor); fnt->SetCursor(cursor);
} }
else if (format == 2) else if (format == 2)

View file

@ -76,7 +76,7 @@ extern int NumTextColors;
class FFont class FFont
{ {
public: public:
FFont (const char *fontname, const char *nametemplate, int first, int count, int base, int fdlump); FFont (const char *fontname, const char *nametemplate, int first, int count, int base, int fdlump, int spacewidth=-1);
virtual ~FFont (); virtual ~FFont ();
virtual FTexture *GetChar (int code, int *const width) const; virtual FTexture *GetChar (int code, int *const width) const;