mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-09 17:51:36 +00:00
Make credits font functions use the generalized functions.
This commit is contained in:
parent
b8cae8e735
commit
412381da4c
4 changed files with 17 additions and 101 deletions
|
@ -62,13 +62,13 @@
|
||||||
//-------------------------------------------
|
//-------------------------------------------
|
||||||
fontdef_t hu_font;
|
fontdef_t hu_font;
|
||||||
fontdef_t tny_font;
|
fontdef_t tny_font;
|
||||||
|
fontdef_t cred_font;
|
||||||
|
|
||||||
patch_t *tallnum[10]; // 0-9
|
patch_t *tallnum[10]; // 0-9
|
||||||
patch_t *nightsnum[10]; // 0-9
|
patch_t *nightsnum[10]; // 0-9
|
||||||
|
|
||||||
// Level title and credits fonts
|
// Level title fonts
|
||||||
patch_t *lt_font[LT_FONTSIZE];
|
patch_t *lt_font[LT_FONTSIZE];
|
||||||
patch_t *cred_font[CRED_FONTSIZE];
|
|
||||||
patch_t *ttlnum[10]; // act numbers (0-9)
|
patch_t *ttlnum[10]; // act numbers (0-9)
|
||||||
|
|
||||||
// Name tag fonts
|
// Name tag fonts
|
||||||
|
@ -204,6 +204,13 @@ void HU_LoadGraphics(void)
|
||||||
tny_font.chars[i] = NULL;
|
tny_font.chars[i] = NULL;
|
||||||
else
|
else
|
||||||
tny_font.chars[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
|
tny_font.chars[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
|
||||||
|
|
||||||
|
// cache the credits font for entire game execution (why not?)
|
||||||
|
sprintf(buffer, "CRFNT%.3d", j);
|
||||||
|
if (W_CheckNumForName(buffer) == LUMPERROR)
|
||||||
|
cred_font.chars[i] = NULL;
|
||||||
|
else
|
||||||
|
cred_font.chars[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
|
||||||
}
|
}
|
||||||
|
|
||||||
hu_font.kerning = 0;
|
hu_font.kerning = 0;
|
||||||
|
@ -214,6 +221,10 @@ void HU_LoadGraphics(void)
|
||||||
tny_font.spacewidth = 2;
|
tny_font.spacewidth = 2;
|
||||||
tny_font.linespacing = 12;
|
tny_font.linespacing = 12;
|
||||||
|
|
||||||
|
cred_font.kerning = 0;
|
||||||
|
cred_font.spacewidth = 16;
|
||||||
|
cred_font.linespacing = 16;
|
||||||
|
|
||||||
j = LT_FONTSTART;
|
j = LT_FONTSTART;
|
||||||
for (i = 0; i < LT_FONTSIZE; i++)
|
for (i = 0; i < LT_FONTSIZE; i++)
|
||||||
{
|
{
|
||||||
|
@ -226,19 +237,6 @@ void HU_LoadGraphics(void)
|
||||||
lt_font[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
|
lt_font[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
|
||||||
}
|
}
|
||||||
|
|
||||||
// cache the credits font for entire game execution (why not?)
|
|
||||||
j = CRED_FONTSTART;
|
|
||||||
for (i = 0; i < CRED_FONTSIZE; i++)
|
|
||||||
{
|
|
||||||
sprintf(buffer, "CRFNT%.3d", j);
|
|
||||||
j++;
|
|
||||||
|
|
||||||
if (W_CheckNumForName(buffer) == LUMPERROR)
|
|
||||||
cred_font[i] = NULL;
|
|
||||||
else
|
|
||||||
cred_font[i] = (patch_t *)W_CachePatchName(buffer, PU_HUDGFX);
|
|
||||||
}
|
|
||||||
|
|
||||||
//cache numbers too!
|
//cache numbers too!
|
||||||
for (i = 0; i < 10; i++)
|
for (i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
//------------------------------------
|
//------------------------------------
|
||||||
#define HU_FONTSTART '\x16' // the first font character
|
#define HU_FONTSTART '\x16' // the first font character
|
||||||
#define HU_FONTEND '~'
|
#define HU_FONTEND '~'
|
||||||
|
|
||||||
#define HU_FONTSIZE (HU_FONTEND - HU_FONTSTART + 1)
|
#define HU_FONTSIZE (HU_FONTEND - HU_FONTSTART + 1)
|
||||||
|
|
||||||
// Level title font
|
// Level title font
|
||||||
|
@ -31,10 +30,6 @@
|
||||||
#define LT_FONTEND 'z' // the last font characters
|
#define LT_FONTEND 'z' // the last font characters
|
||||||
#define LT_FONTSIZE (LT_FONTEND - LT_FONTSTART + 1)
|
#define LT_FONTSIZE (LT_FONTEND - LT_FONTSTART + 1)
|
||||||
|
|
||||||
#define CRED_FONTSTART '!' // the first font character
|
|
||||||
#define CRED_FONTEND 'Z' // the last font character
|
|
||||||
#define CRED_FONTSIZE (CRED_FONTEND - CRED_FONTSTART + 1)
|
|
||||||
|
|
||||||
// Name tag font
|
// Name tag font
|
||||||
// Used by base and outline font set
|
// Used by base and outline font set
|
||||||
#define NT_FONTSTART '!' // the first font character
|
#define NT_FONTSTART '!' // the first font character
|
||||||
|
@ -54,7 +49,7 @@ typedef struct
|
||||||
UINT32 linespacing;
|
UINT32 linespacing;
|
||||||
} fontdef_t;
|
} fontdef_t;
|
||||||
|
|
||||||
extern fontdef_t hu_font, tny_font;
|
extern fontdef_t hu_font, tny_font, cred_font;
|
||||||
|
|
||||||
//------------------------------------
|
//------------------------------------
|
||||||
// sorted player lines
|
// sorted player lines
|
||||||
|
@ -91,7 +86,6 @@ extern boolean chat_on;
|
||||||
extern patch_t *tallnum[10];
|
extern patch_t *tallnum[10];
|
||||||
extern patch_t *nightsnum[10];
|
extern patch_t *nightsnum[10];
|
||||||
extern patch_t *lt_font[LT_FONTSIZE];
|
extern patch_t *lt_font[LT_FONTSIZE];
|
||||||
extern patch_t *cred_font[CRED_FONTSIZE];
|
|
||||||
extern patch_t *ntb_font[NT_FONTSIZE];
|
extern patch_t *ntb_font[NT_FONTSIZE];
|
||||||
extern patch_t *nto_font[NT_FONTSIZE];
|
extern patch_t *nto_font[NT_FONTSIZE];
|
||||||
extern patch_t *ttlnum[10];
|
extern patch_t *ttlnum[10];
|
||||||
|
|
|
@ -2333,59 +2333,6 @@ void V_DrawLevelActNum(INT32 x, INT32 y, INT32 flags, UINT8 num)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write a string using the credit font
|
|
||||||
// NOTE: the text is centered for screens larger than the base width
|
|
||||||
//
|
|
||||||
void V_DrawCreditString(fixed_t x, fixed_t y, INT32 option, const char *string)
|
|
||||||
{
|
|
||||||
INT32 w, c, dupx, dupy, scrwidth = BASEVIDWIDTH;
|
|
||||||
fixed_t cx = x, cy = y;
|
|
||||||
const char *ch = string;
|
|
||||||
|
|
||||||
// It's possible for string to be a null pointer
|
|
||||||
if (!string)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (option & V_NOSCALESTART)
|
|
||||||
{
|
|
||||||
dupx = vid.dupx;
|
|
||||||
dupy = vid.dupy;
|
|
||||||
scrwidth = vid.width;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
dupx = dupy = 1;
|
|
||||||
|
|
||||||
if (option & V_NOSCALEPATCH)
|
|
||||||
scrwidth *= vid.dupx;
|
|
||||||
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
c = *ch++;
|
|
||||||
if (!c)
|
|
||||||
break;
|
|
||||||
if (c == '\n')
|
|
||||||
{
|
|
||||||
cx = x;
|
|
||||||
cy += (12*dupy)<<FRACBITS;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
c = toupper(c) - CRED_FONTSTART;
|
|
||||||
if (c < 0 || c >= CRED_FONTSIZE)
|
|
||||||
{
|
|
||||||
cx += (16*dupx)<<FRACBITS;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
w = cred_font[c]->width * dupx;
|
|
||||||
if ((cx>>FRACBITS) > scrwidth)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
V_DrawSciencePatch(cx, cy, option, cred_font[c], FRACUNIT);
|
|
||||||
cx += w<<FRACBITS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Draw a string using the nt_font
|
// Draw a string using the nt_font
|
||||||
// Note that the outline is a seperate font set
|
// Note that the outline is a seperate font set
|
||||||
static void V_DrawNameTagLine(INT32 x, INT32 y, INT32 option, fixed_t scale, UINT8 *basecolormap, UINT8 *outlinecolormap, const char *string)
|
static void V_DrawNameTagLine(INT32 x, INT32 y, INT32 option, fixed_t scale, UINT8 *basecolormap, UINT8 *outlinecolormap, const char *string)
|
||||||
|
@ -2586,29 +2533,6 @@ INT32 V_NameTagWidth(const char *string)
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find string width from cred_font chars
|
|
||||||
//
|
|
||||||
INT32 V_CreditStringWidth(const char *string)
|
|
||||||
{
|
|
||||||
INT32 c, w = 0;
|
|
||||||
size_t i;
|
|
||||||
|
|
||||||
// It's possible for string to be a null pointer
|
|
||||||
if (!string)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
for (i = 0; i < strlen(string); i++)
|
|
||||||
{
|
|
||||||
c = toupper(string[i]) - CRED_FONTSTART;
|
|
||||||
if (c < 0 || c >= CRED_FONTSIZE)
|
|
||||||
w += 16;
|
|
||||||
else
|
|
||||||
w += cred_font[c]->width;
|
|
||||||
}
|
|
||||||
|
|
||||||
return w;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write a string using the level title font
|
// Write a string using the level title font
|
||||||
// NOTE: the text is centered for screens larger than the base width
|
// NOTE: the text is centered for screens larger than the base width
|
||||||
//
|
//
|
||||||
|
|
|
@ -252,6 +252,8 @@ void V_DrawRightAlignedFontStringAtFixed(fixed_t x, fixed_t y, INT32 option, fix
|
||||||
#define V_DrawSmallThinStringAtFixed(x,y,o,str) V_DrawFontStringAtFixed(x,y,o,FRACUNIT/2,FRACUNIT/2,str,tny_font)
|
#define V_DrawSmallThinStringAtFixed(x,y,o,str) V_DrawFontStringAtFixed(x,y,o,FRACUNIT/2,FRACUNIT/2,str,tny_font)
|
||||||
#define V_DrawCenteredSmallThinStringAtFixed(x,y,o,str) V_DrawCenteredFontStringAtFixed(x,y,o,FRACUNIT/2,FRACUNIT/2,str,tny_font)
|
#define V_DrawCenteredSmallThinStringAtFixed(x,y,o,str) V_DrawCenteredFontStringAtFixed(x,y,o,FRACUNIT/2,FRACUNIT/2,str,tny_font)
|
||||||
#define V_DrawRightAlignedSmallThinStringAtFixed(x,y,o,str) V_DrawRightAlignedFontStringAtFixed(x,y,o,FRACUNIT/2,FRACUNIT/2,str,tny_font)
|
#define V_DrawRightAlignedSmallThinStringAtFixed(x,y,o,str) V_DrawRightAlignedFontStringAtFixed(x,y,o,FRACUNIT/2,FRACUNIT/2,str,tny_font)
|
||||||
|
// draw a string using the credit font
|
||||||
|
#define V_DrawCreditString(x,y,o,str) V_DrawFontStringAtFixed(x,y,o,FRACUNIT,FRACUNIT,str,cred_font)
|
||||||
|
|
||||||
// Draw tall nums, used for menu, HUD, intermission
|
// Draw tall nums, used for menu, HUD, intermission
|
||||||
void V_DrawTallNum(INT32 x, INT32 y, INT32 flags, INT32 num);
|
void V_DrawTallNum(INT32 x, INT32 y, INT32 flags, INT32 num);
|
||||||
|
@ -263,9 +265,6 @@ INT32 V_LevelNameWidth(const char *string);
|
||||||
INT32 V_LevelNameHeight(const char *string);
|
INT32 V_LevelNameHeight(const char *string);
|
||||||
INT16 V_LevelActNumWidth(UINT8 num); // act number width
|
INT16 V_LevelActNumWidth(UINT8 num); // act number width
|
||||||
|
|
||||||
void V_DrawCreditString(fixed_t x, fixed_t y, INT32 option, const char *string);
|
|
||||||
INT32 V_CreditStringWidth(const char *string);
|
|
||||||
|
|
||||||
// Draw a string using the nt_font
|
// Draw a string using the nt_font
|
||||||
void V_DrawNameTag(INT32 x, INT32 y, INT32 option, fixed_t scale, UINT8 *basecolormap, UINT8 *outlinecolormap, const char *string);
|
void V_DrawNameTag(INT32 x, INT32 y, INT32 option, fixed_t scale, UINT8 *basecolormap, UINT8 *outlinecolormap, const char *string);
|
||||||
INT32 V_CountNameTagLines(const char *string);
|
INT32 V_CountNameTagLines(const char *string);
|
||||||
|
@ -279,6 +278,7 @@ INT32 V_FontStringWidth(const char *string, INT32 option, fontdef_t font);
|
||||||
#define V_SmallStringWidth(str,o) V_FontStringWidth(str,o,hu_font)/2
|
#define V_SmallStringWidth(str,o) V_FontStringWidth(str,o,hu_font)/2
|
||||||
#define V_ThinStringWidth(str,o) V_FontStringWidth(str,o,tny_font)
|
#define V_ThinStringWidth(str,o) V_FontStringWidth(str,o,tny_font)
|
||||||
#define V_SmallThinStringWidth(str,o) V_FontStringWidth(str,o,tny_font)/2
|
#define V_SmallThinStringWidth(str,o) V_FontStringWidth(str,o,tny_font)/2
|
||||||
|
#define V_CreditStringWidth(str) V_FontStringWidth(str,0,cred_font)
|
||||||
|
|
||||||
void V_DoPostProcessor(INT32 view, postimg_t type, INT32 param);
|
void V_DoPostProcessor(INT32 view, postimg_t type, INT32 param);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue