Merge branch 'titlecard-lowercase-support' into 'master'
Lowercase support in titlecards See merge request STJr/SRB2Internal!481
This commit is contained in:
commit
5649365c19
|
@ -1201,6 +1201,14 @@ static void readlevelheader(MYFILE *f, INT32 num)
|
||||||
word2 = tmp += 2;
|
word2 = tmp += 2;
|
||||||
i = atoi(word2); // used for numerical settings
|
i = atoi(word2); // used for numerical settings
|
||||||
|
|
||||||
|
|
||||||
|
if (fastcmp(word, "LEVELNAME"))
|
||||||
|
{
|
||||||
|
deh_strlcpy(mapheaderinfo[num-1]->lvlttl, word2,
|
||||||
|
sizeof(mapheaderinfo[num-1]->lvlttl), va("Level header %d: levelname", num));
|
||||||
|
strlcpy(mapheaderinfo[num-1]->selectheading, word2, sizeof(mapheaderinfo[num-1]->selectheading)); // not deh_ so only complains once
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// CHEAP HACK: move this over here for lowercase subtitles
|
// CHEAP HACK: move this over here for lowercase subtitles
|
||||||
if (fastcmp(word, "SUBTITLE"))
|
if (fastcmp(word, "SUBTITLE"))
|
||||||
{
|
{
|
||||||
|
@ -1344,12 +1352,6 @@ static void readlevelheader(MYFILE *f, INT32 num)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Strings that can be truncated
|
// Strings that can be truncated
|
||||||
else if (fastcmp(word, "LEVELNAME"))
|
|
||||||
{
|
|
||||||
deh_strlcpy(mapheaderinfo[num-1]->lvlttl, word2,
|
|
||||||
sizeof(mapheaderinfo[num-1]->lvlttl), va("Level header %d: levelname", num));
|
|
||||||
strlcpy(mapheaderinfo[num-1]->selectheading, word2, sizeof(mapheaderinfo[num-1]->selectheading)); // not deh_ so only complains once
|
|
||||||
}
|
|
||||||
else if (fastcmp(word, "SELECTHEADING"))
|
else if (fastcmp(word, "SELECTHEADING"))
|
||||||
{
|
{
|
||||||
deh_strlcpy(mapheaderinfo[num-1]->selectheading, word2,
|
deh_strlcpy(mapheaderinfo[num-1]->selectheading, word2,
|
||||||
|
|
|
@ -4031,7 +4031,7 @@ char *G_BuildMapTitle(INT32 mapnum)
|
||||||
len += strlen(mapheaderinfo[mapnum-1]->lvlttl);
|
len += strlen(mapheaderinfo[mapnum-1]->lvlttl);
|
||||||
if (!(mapheaderinfo[mapnum-1]->levelflags & LF_NOZONE))
|
if (!(mapheaderinfo[mapnum-1]->levelflags & LF_NOZONE))
|
||||||
{
|
{
|
||||||
zonetext = M_GetText("ZONE");
|
zonetext = M_GetText("Zone");
|
||||||
len += strlen(zonetext) + 1; // ' ' + zonetext
|
len += strlen(zonetext) + 1; // ' ' + zonetext
|
||||||
}
|
}
|
||||||
if (actnum > 0)
|
if (actnum > 0)
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
// Level title font
|
// Level title font
|
||||||
#define LT_FONTSTART '!' // the first font characters
|
#define LT_FONTSTART '!' // the first font characters
|
||||||
#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_FONTSTART '!' // the first font character
|
||||||
|
|
|
@ -7176,7 +7176,7 @@ static void M_DrawSoundTest(void)
|
||||||
titl = va("%s - ", curplaying->title);
|
titl = va("%s - ", curplaying->title);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
titl = "NONE - ";
|
titl = "None - ";
|
||||||
|
|
||||||
i = V_LevelNameWidth(titl);
|
i = V_LevelNameWidth(titl);
|
||||||
|
|
||||||
|
@ -7190,7 +7190,7 @@ static void M_DrawSoundTest(void)
|
||||||
while (x > y)
|
while (x > y)
|
||||||
{
|
{
|
||||||
x -= i;
|
x -= i;
|
||||||
V_DrawLevelTitle(x, 24, 0, titl);
|
V_DrawLevelTitle(x, 22, 0, titl);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (curplaying)
|
if (curplaying)
|
||||||
|
|
|
@ -1177,7 +1177,7 @@ void ST_drawLevelTitle(tic_t titletime)
|
||||||
lvlttlxpos -= V_LevelActNumWidth(actnum);
|
lvlttlxpos -= V_LevelActNumWidth(actnum);
|
||||||
|
|
||||||
ttlnumxpos = lvlttlxpos + V_LevelNameWidth(lvlttl);
|
ttlnumxpos = lvlttlxpos + V_LevelNameWidth(lvlttl);
|
||||||
zonexpos = ttlnumxpos - V_LevelNameWidth(M_GetText("ZONE"));
|
zonexpos = ttlnumxpos - V_LevelNameWidth(M_GetText("Zone"));
|
||||||
ttlnumxpos++;
|
ttlnumxpos++;
|
||||||
|
|
||||||
if (lvlttlxpos < 0)
|
if (lvlttlxpos < 0)
|
||||||
|
@ -1204,7 +1204,7 @@ void ST_drawLevelTitle(tic_t titletime)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fixed_t z = ((titletime - 105)<<FRACBITS)/7;
|
fixed_t z = ((titletime - 105)<<FRACBITS)/7;
|
||||||
INT32 zoneh = V_LevelNameHeight(M_GetText("ZONE"));
|
INT32 zoneh = V_LevelNameHeight(M_GetText("Zone"));
|
||||||
zoney = (MIDZONEY + zoneh - MIDDIFF)*(FRACUNIT - z) - (zoneh<<FRACBITS);
|
zoney = (MIDZONEY + zoneh - MIDDIFF)*(FRACUNIT - z) - (zoneh<<FRACBITS);
|
||||||
lvlttly = ((MIDTTLY + MIDDIFF)<<FRACBITS) + ((200 - (MIDTTLY + MIDDIFF))*z);
|
lvlttly = ((MIDTTLY + MIDDIFF)<<FRACBITS) + ((200 - (MIDTTLY + MIDDIFF))*z);
|
||||||
}
|
}
|
||||||
|
@ -1239,7 +1239,7 @@ void ST_drawLevelTitle(tic_t titletime)
|
||||||
V_DrawLevelTitle(lvlttlxpos, lvlttly, V_PERPLAYER, lvlttl);
|
V_DrawLevelTitle(lvlttlxpos, lvlttly, V_PERPLAYER, lvlttl);
|
||||||
|
|
||||||
if (!(mapheaderinfo[gamemap-1]->levelflags & LF_NOZONE))
|
if (!(mapheaderinfo[gamemap-1]->levelflags & LF_NOZONE))
|
||||||
V_DrawLevelTitle(zonexpos, zoney, V_PERPLAYER, M_GetText("ZONE"));
|
V_DrawLevelTitle(zonexpos, zoney, V_PERPLAYER, M_GetText("Zone"));
|
||||||
|
|
||||||
if (lvlttly+48 < 200)
|
if (lvlttly+48 < 200)
|
||||||
V_DrawCenteredString(subttlxpos, lvlttly+48, V_PERPLAYER|V_ALLOWLOWERCASE, subttl);
|
V_DrawCenteredString(subttlxpos, lvlttly+48, V_PERPLAYER|V_ALLOWLOWERCASE, subttl);
|
||||||
|
|
|
@ -2899,7 +2899,7 @@ void V_DrawLevelTitle(INT32 x, INT32 y, INT32 option, const char *string)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
c = toupper(*ch) - LT_FONTSTART;
|
c = *ch - LT_FONTSTART;
|
||||||
if (c < 0 || c >= LT_FONTSIZE || !lt_font[c])
|
if (c < 0 || c >= LT_FONTSIZE || !lt_font[c])
|
||||||
{
|
{
|
||||||
cx += 16*dupx;
|
cx += 16*dupx;
|
||||||
|
@ -2934,7 +2934,7 @@ INT32 V_LevelNameWidth(const char *string)
|
||||||
{
|
{
|
||||||
if (string[i] & 0x80)
|
if (string[i] & 0x80)
|
||||||
continue;
|
continue;
|
||||||
c = toupper(string[i]) - LT_FONTSTART;
|
c = string[i] - LT_FONTSTART;
|
||||||
if (c < 0 || c >= LT_FONTSIZE || !lt_font[c])
|
if (c < 0 || c >= LT_FONTSIZE || !lt_font[c])
|
||||||
w += 16;
|
w += 16;
|
||||||
else
|
else
|
||||||
|
@ -2953,7 +2953,7 @@ INT32 V_LevelNameHeight(const char *string)
|
||||||
|
|
||||||
for (i = 0; i < strlen(string); i++)
|
for (i = 0; i < strlen(string); i++)
|
||||||
{
|
{
|
||||||
c = toupper(string[i]) - LT_FONTSTART;
|
c = string[i] - LT_FONTSTART;
|
||||||
if (c < 0 || c >= LT_FONTSIZE || !lt_font[c])
|
if (c < 0 || c >= LT_FONTSIZE || !lt_font[c])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -399,10 +399,13 @@ void Y_IntermissionDrawer(void)
|
||||||
|
|
||||||
// draw the "got through act" lines and act number
|
// draw the "got through act" lines and act number
|
||||||
V_DrawLevelTitle(data.coop.passedx1, 49, 0, data.coop.passed1);
|
V_DrawLevelTitle(data.coop.passedx1, 49, 0, data.coop.passed1);
|
||||||
V_DrawLevelTitle(data.coop.passedx2, 49+V_LevelNameHeight(data.coop.passed2)+2, 0, data.coop.passed2);
|
{
|
||||||
|
INT32 h = V_LevelNameHeight(data.coop.passed2);
|
||||||
|
V_DrawLevelTitle(data.coop.passedx2, 49+h+2, 0, data.coop.passed2);
|
||||||
|
|
||||||
if (data.coop.actnum)
|
if (data.coop.actnum)
|
||||||
V_DrawLevelActNum(244, 57, 0, data.coop.actnum);
|
V_DrawLevelActNum(244, 42+h, 0, data.coop.actnum);
|
||||||
|
}
|
||||||
|
|
||||||
bonusy = 150;
|
bonusy = 150;
|
||||||
// Total
|
// Total
|
||||||
|
@ -485,10 +488,10 @@ void Y_IntermissionDrawer(void)
|
||||||
|
|
||||||
if (drawsection == 1)
|
if (drawsection == 1)
|
||||||
{
|
{
|
||||||
const char *ringtext = "\x82" "50 RINGS, NO SHIELD";
|
const char *ringtext = "\x82" "50 rings, no shield";
|
||||||
const char *tut1text = "\x82" "PRESS " "\x80" "SPIN";
|
const char *tut1text = "\x82" "press " "\x80" "spin";
|
||||||
const char *tut2text = "\x82" "MID-" "\x80" "JUMP";
|
const char *tut2text = "\x82" "mid-" "\x80" "jump";
|
||||||
ttheight = 16;
|
ttheight = 8;
|
||||||
V_DrawLevelTitle(data.spec.passedx1 + xoffset1, ttheight, 0, data.spec.passed1);
|
V_DrawLevelTitle(data.spec.passedx1 + xoffset1, ttheight, 0, data.spec.passed1);
|
||||||
ttheight += V_LevelNameHeight(data.spec.passed3) + 2;
|
ttheight += V_LevelNameHeight(data.spec.passed3) + 2;
|
||||||
V_DrawLevelTitle(data.spec.passedx3 + xoffset2, ttheight, 0, data.spec.passed3);
|
V_DrawLevelTitle(data.spec.passedx3 + xoffset2, ttheight, 0, data.spec.passed3);
|
||||||
|
@ -497,9 +500,9 @@ void Y_IntermissionDrawer(void)
|
||||||
|
|
||||||
ttheight = 108;
|
ttheight = 108;
|
||||||
V_DrawLevelTitle(BASEVIDWIDTH/2 + xoffset4 - (V_LevelNameWidth(ringtext)/2), ttheight, 0, ringtext);
|
V_DrawLevelTitle(BASEVIDWIDTH/2 + xoffset4 - (V_LevelNameWidth(ringtext)/2), ttheight, 0, ringtext);
|
||||||
ttheight += V_LevelNameHeight(ringtext) + 2;
|
|
||||||
V_DrawLevelTitle(BASEVIDWIDTH/2 + xoffset5 - (V_LevelNameWidth(tut1text)/2), ttheight, 0, tut1text);
|
|
||||||
ttheight += V_LevelNameHeight(tut1text) + 2;
|
ttheight += V_LevelNameHeight(tut1text) + 2;
|
||||||
|
V_DrawLevelTitle(BASEVIDWIDTH/2 + xoffset5 - (V_LevelNameWidth(tut1text)/2), ttheight, 0, tut1text);
|
||||||
|
ttheight += V_LevelNameHeight(tut2text) + 2;
|
||||||
V_DrawLevelTitle(BASEVIDWIDTH/2 + xoffset6 - (V_LevelNameWidth(tut2text)/2), ttheight, 0, tut2text);
|
V_DrawLevelTitle(BASEVIDWIDTH/2 + xoffset6 - (V_LevelNameWidth(tut2text)/2), ttheight, 0, tut2text);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1384,21 +1387,21 @@ void Y_StartIntermission(void)
|
||||||
// too long so just show "YOU GOT THROUGH THE ACT"
|
// too long so just show "YOU GOT THROUGH THE ACT"
|
||||||
if (strlen(skins[players[consoleplayer].skin].realname) > 13)
|
if (strlen(skins[players[consoleplayer].skin].realname) > 13)
|
||||||
{
|
{
|
||||||
strcpy(data.coop.passed1, "YOU GOT");
|
strcpy(data.coop.passed1, "you got");
|
||||||
strcpy(data.coop.passed2, (mapheaderinfo[gamemap-1]->actnum) ? "THROUGH ACT" : "THROUGH THE ACT");
|
strcpy(data.coop.passed2, (mapheaderinfo[gamemap-1]->actnum) ? "through act" : "through the act");
|
||||||
}
|
}
|
||||||
// long enough that "X GOT" won't fit so use "X PASSED THE ACT"
|
// long enough that "X GOT" won't fit so use "X PASSED THE ACT"
|
||||||
else if (strlen(skins[players[consoleplayer].skin].realname) > 8)
|
else if (strlen(skins[players[consoleplayer].skin].realname) > 8)
|
||||||
{
|
{
|
||||||
strcpy(data.coop.passed1, skins[players[consoleplayer].skin].realname);
|
strcpy(data.coop.passed1, skins[players[consoleplayer].skin].realname);
|
||||||
strcpy(data.coop.passed2, (mapheaderinfo[gamemap-1]->actnum) ? "PASSED ACT" : "PASSED THE ACT");
|
strcpy(data.coop.passed2, (mapheaderinfo[gamemap-1]->actnum) ? "passed act" : "passed the act");
|
||||||
}
|
}
|
||||||
// length is okay for normal use
|
// length is okay for normal use
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
snprintf(data.coop.passed1, sizeof data.coop.passed1, "%s GOT",
|
snprintf(data.coop.passed1, sizeof data.coop.passed1, "%s got",
|
||||||
skins[players[consoleplayer].skin].realname);
|
skins[players[consoleplayer].skin].realname);
|
||||||
strcpy(data.coop.passed2, (mapheaderinfo[gamemap-1]->actnum) ? "THROUGH ACT" : "THROUGH THE ACT");
|
strcpy(data.coop.passed2, (mapheaderinfo[gamemap-1]->actnum) ? "through act" : "through the act");
|
||||||
}
|
}
|
||||||
|
|
||||||
// set X positions
|
// set X positions
|
||||||
|
@ -1498,7 +1501,7 @@ void Y_StartIntermission(void)
|
||||||
// set up the "got through act" message according to skin name
|
// set up the "got through act" message according to skin name
|
||||||
if (stagefailed)
|
if (stagefailed)
|
||||||
{
|
{
|
||||||
strcpy(data.spec.passed2, "SPECIAL STAGE");
|
strcpy(data.spec.passed2, "Special Stage");
|
||||||
data.spec.passed1[0] = '\0';
|
data.spec.passed1[0] = '\0';
|
||||||
}
|
}
|
||||||
else if (ALL7EMERALDS(emeralds))
|
else if (ALL7EMERALDS(emeralds))
|
||||||
|
@ -1507,13 +1510,13 @@ void Y_StartIntermission(void)
|
||||||
sizeof data.spec.passed1, "%s",
|
sizeof data.spec.passed1, "%s",
|
||||||
skins[players[consoleplayer].skin].realname);
|
skins[players[consoleplayer].skin].realname);
|
||||||
data.spec.passed1[sizeof data.spec.passed1 - 1] = '\0';
|
data.spec.passed1[sizeof data.spec.passed1 - 1] = '\0';
|
||||||
strcpy(data.spec.passed2, "GOT THEM ALL!");
|
strcpy(data.spec.passed2, "got them all!");
|
||||||
|
|
||||||
if (players[consoleplayer].charflags & SF_SUPER)
|
if (players[consoleplayer].charflags & SF_SUPER)
|
||||||
{
|
{
|
||||||
strcpy(data.spec.passed3, "CAN NOW BECOME");
|
strcpy(data.spec.passed3, "can now become");
|
||||||
snprintf(data.spec.passed4,
|
snprintf(data.spec.passed4,
|
||||||
sizeof data.spec.passed4, "SUPER %s",
|
sizeof data.spec.passed4, "Super %s",
|
||||||
skins[players[consoleplayer].skin].realname);
|
skins[players[consoleplayer].skin].realname);
|
||||||
data.spec.passed4[sizeof data.spec.passed4 - 1] = '\0';
|
data.spec.passed4[sizeof data.spec.passed4 - 1] = '\0';
|
||||||
}
|
}
|
||||||
|
@ -1523,13 +1526,13 @@ void Y_StartIntermission(void)
|
||||||
if (strlen(skins[players[consoleplayer].skin].realname) <= SKINNAMESIZE-5)
|
if (strlen(skins[players[consoleplayer].skin].realname) <= SKINNAMESIZE-5)
|
||||||
{
|
{
|
||||||
snprintf(data.spec.passed1,
|
snprintf(data.spec.passed1,
|
||||||
sizeof data.spec.passed1, "%s GOT",
|
sizeof data.spec.passed1, "%s got",
|
||||||
skins[players[consoleplayer].skin].realname);
|
skins[players[consoleplayer].skin].realname);
|
||||||
data.spec.passed1[sizeof data.spec.passed1 - 1] = '\0';
|
data.spec.passed1[sizeof data.spec.passed1 - 1] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
strcpy(data.spec.passed1, "YOU GOT");
|
strcpy(data.spec.passed1, "You got");
|
||||||
strcpy(data.spec.passed2, "A CHAOS EMERALD");
|
strcpy(data.spec.passed2, "a Chaos Emerald");
|
||||||
if (P_GetNextEmerald() > 6)
|
if (P_GetNextEmerald() > 6)
|
||||||
{
|
{
|
||||||
data.spec.passed2[15] = '?';
|
data.spec.passed2[15] = '?';
|
||||||
|
|
Loading…
Reference in New Issue