mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-30 13:10:55 +00:00
Enable lowercase text for Statistics and Unlockable Checklist menus (resolves #339).
This commit is contained in:
parent
d99e3f8337
commit
508feaad9d
2 changed files with 74 additions and 68 deletions
134
src/dehacked.c
134
src/dehacked.c
|
@ -3184,7 +3184,6 @@ static void readextraemblemdata(MYFILE *f, INT32 num)
|
||||||
|
|
||||||
// Now get the part after
|
// Now get the part after
|
||||||
word2 = tmp += 2;
|
word2 = tmp += 2;
|
||||||
strupr(word2);
|
|
||||||
|
|
||||||
value = atoi(word2); // used for numerical settings
|
value = atoi(word2); // used for numerical settings
|
||||||
|
|
||||||
|
@ -3196,22 +3195,26 @@ static void readextraemblemdata(MYFILE *f, INT32 num)
|
||||||
sizeof (extraemblems[num-1].description), va("Extra emblem %d: objective", num));
|
sizeof (extraemblems[num-1].description), va("Extra emblem %d: objective", num));
|
||||||
else if (fastcmp(word, "CONDITIONSET"))
|
else if (fastcmp(word, "CONDITIONSET"))
|
||||||
extraemblems[num-1].conditionset = (UINT8)value;
|
extraemblems[num-1].conditionset = (UINT8)value;
|
||||||
else if (fastcmp(word, "SPRITE"))
|
|
||||||
{
|
|
||||||
if (word2[0] >= 'A' && word2[0] <= 'Z')
|
|
||||||
value = word2[0];
|
|
||||||
else
|
|
||||||
value += 'A'-1;
|
|
||||||
|
|
||||||
if (value < 'A' || value > 'Z')
|
|
||||||
deh_warning("Emblem %d: sprite must be from A - Z (1 - 26)", num);
|
|
||||||
else
|
|
||||||
extraemblems[num-1].sprite = (UINT8)value;
|
|
||||||
}
|
|
||||||
else if (fastcmp(word, "COLOR"))
|
|
||||||
extraemblems[num-1].color = get_number(word2);
|
|
||||||
else
|
else
|
||||||
deh_warning("Extra emblem %d: unknown word '%s'", num, word);
|
{
|
||||||
|
strupr(word2);
|
||||||
|
if (fastcmp(word, "SPRITE"))
|
||||||
|
{
|
||||||
|
if (word2[0] >= 'A' && word2[0] <= 'Z')
|
||||||
|
value = word2[0];
|
||||||
|
else
|
||||||
|
value += 'A'-1;
|
||||||
|
|
||||||
|
if (value < 'A' || value > 'Z')
|
||||||
|
deh_warning("Emblem %d: sprite must be from A - Z (1 - 26)", num);
|
||||||
|
else
|
||||||
|
extraemblems[num-1].sprite = (UINT8)value;
|
||||||
|
}
|
||||||
|
else if (fastcmp(word, "COLOR"))
|
||||||
|
extraemblems[num-1].color = get_number(word2);
|
||||||
|
else
|
||||||
|
deh_warning("Extra emblem %d: unknown word '%s'", num, word);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} while (!myfeof(f));
|
} while (!myfeof(f));
|
||||||
|
|
||||||
|
@ -3262,7 +3265,6 @@ static void readunlockable(MYFILE *f, INT32 num)
|
||||||
|
|
||||||
// Now get the part after
|
// Now get the part after
|
||||||
word2 = tmp += 2;
|
word2 = tmp += 2;
|
||||||
strupr(word2);
|
|
||||||
|
|
||||||
i = atoi(word2); // used for numerical settings
|
i = atoi(word2); // used for numerical settings
|
||||||
|
|
||||||
|
@ -3272,54 +3274,58 @@ static void readunlockable(MYFILE *f, INT32 num)
|
||||||
else if (fastcmp(word, "OBJECTIVE"))
|
else if (fastcmp(word, "OBJECTIVE"))
|
||||||
deh_strlcpy(unlockables[num].objective, word2,
|
deh_strlcpy(unlockables[num].objective, word2,
|
||||||
sizeof (unlockables[num].objective), va("Unlockable %d: objective", num));
|
sizeof (unlockables[num].objective), va("Unlockable %d: objective", num));
|
||||||
else if (fastcmp(word, "HEIGHT"))
|
|
||||||
unlockables[num].height = (UINT16)i;
|
|
||||||
else if (fastcmp(word, "CONDITIONSET"))
|
|
||||||
unlockables[num].conditionset = (UINT8)i;
|
|
||||||
else if (fastcmp(word, "NOCECHO"))
|
|
||||||
unlockables[num].nocecho = (UINT8)(i || word2[0] == 'T' || word2[0] == 'Y');
|
|
||||||
else if (fastcmp(word, "NOCHECKLIST"))
|
|
||||||
unlockables[num].nochecklist = (UINT8)(i || word2[0] == 'T' || word2[0] == 'Y');
|
|
||||||
else if (fastcmp(word, "TYPE"))
|
|
||||||
{
|
|
||||||
if (fastcmp(word2, "NONE"))
|
|
||||||
unlockables[num].type = SECRET_NONE;
|
|
||||||
else if (fastcmp(word2, "ITEMFINDER"))
|
|
||||||
unlockables[num].type = SECRET_ITEMFINDER;
|
|
||||||
else if (fastcmp(word2, "EMBLEMHINTS"))
|
|
||||||
unlockables[num].type = SECRET_EMBLEMHINTS;
|
|
||||||
else if (fastcmp(word2, "PANDORA"))
|
|
||||||
unlockables[num].type = SECRET_PANDORA;
|
|
||||||
else if (fastcmp(word2, "CREDITS"))
|
|
||||||
unlockables[num].type = SECRET_CREDITS;
|
|
||||||
else if (fastcmp(word2, "RECORDATTACK"))
|
|
||||||
unlockables[num].type = SECRET_RECORDATTACK;
|
|
||||||
else if (fastcmp(word2, "NIGHTSMODE"))
|
|
||||||
unlockables[num].type = SECRET_NIGHTSMODE;
|
|
||||||
else if (fastcmp(word2, "HEADER"))
|
|
||||||
unlockables[num].type = SECRET_HEADER;
|
|
||||||
else if (fastcmp(word2, "LEVELSELECT"))
|
|
||||||
unlockables[num].type = SECRET_LEVELSELECT;
|
|
||||||
else if (fastcmp(word2, "WARP"))
|
|
||||||
unlockables[num].type = SECRET_WARP;
|
|
||||||
else if (fastcmp(word2, "SOUNDTEST"))
|
|
||||||
unlockables[num].type = SECRET_SOUNDTEST;
|
|
||||||
else
|
|
||||||
unlockables[num].type = (INT16)i;
|
|
||||||
}
|
|
||||||
else if (fastcmp(word, "VAR"))
|
|
||||||
{
|
|
||||||
// Support using the actual map name,
|
|
||||||
// i.e., Level AB, Level FZ, etc.
|
|
||||||
|
|
||||||
// Convert to map number
|
|
||||||
if (word2[0] >= 'A' && word2[0] <= 'Z')
|
|
||||||
i = M_MapNumber(word2[0], word2[1]);
|
|
||||||
|
|
||||||
unlockables[num].variable = (INT16)i;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
deh_warning("Unlockable %d: unknown word '%s'", num+1, word);
|
{
|
||||||
|
strupr(word2);
|
||||||
|
if (fastcmp(word, "HEIGHT"))
|
||||||
|
unlockables[num].height = (UINT16)i;
|
||||||
|
else if (fastcmp(word, "CONDITIONSET"))
|
||||||
|
unlockables[num].conditionset = (UINT8)i;
|
||||||
|
else if (fastcmp(word, "NOCECHO"))
|
||||||
|
unlockables[num].nocecho = (UINT8)(i || word2[0] == 'T' || word2[0] == 'Y');
|
||||||
|
else if (fastcmp(word, "NOCHECKLIST"))
|
||||||
|
unlockables[num].nochecklist = (UINT8)(i || word2[0] == 'T' || word2[0] == 'Y');
|
||||||
|
else if (fastcmp(word, "TYPE"))
|
||||||
|
{
|
||||||
|
if (fastcmp(word2, "NONE"))
|
||||||
|
unlockables[num].type = SECRET_NONE;
|
||||||
|
else if (fastcmp(word2, "ITEMFINDER"))
|
||||||
|
unlockables[num].type = SECRET_ITEMFINDER;
|
||||||
|
else if (fastcmp(word2, "EMBLEMHINTS"))
|
||||||
|
unlockables[num].type = SECRET_EMBLEMHINTS;
|
||||||
|
else if (fastcmp(word2, "PANDORA"))
|
||||||
|
unlockables[num].type = SECRET_PANDORA;
|
||||||
|
else if (fastcmp(word2, "CREDITS"))
|
||||||
|
unlockables[num].type = SECRET_CREDITS;
|
||||||
|
else if (fastcmp(word2, "RECORDATTACK"))
|
||||||
|
unlockables[num].type = SECRET_RECORDATTACK;
|
||||||
|
else if (fastcmp(word2, "NIGHTSMODE"))
|
||||||
|
unlockables[num].type = SECRET_NIGHTSMODE;
|
||||||
|
else if (fastcmp(word2, "HEADER"))
|
||||||
|
unlockables[num].type = SECRET_HEADER;
|
||||||
|
else if (fastcmp(word2, "LEVELSELECT"))
|
||||||
|
unlockables[num].type = SECRET_LEVELSELECT;
|
||||||
|
else if (fastcmp(word2, "WARP"))
|
||||||
|
unlockables[num].type = SECRET_WARP;
|
||||||
|
else if (fastcmp(word2, "SOUNDTEST"))
|
||||||
|
unlockables[num].type = SECRET_SOUNDTEST;
|
||||||
|
else
|
||||||
|
unlockables[num].type = (INT16)i;
|
||||||
|
}
|
||||||
|
else if (fastcmp(word, "VAR"))
|
||||||
|
{
|
||||||
|
// Support using the actual map name,
|
||||||
|
// i.e., Level AB, Level FZ, etc.
|
||||||
|
|
||||||
|
// Convert to map number
|
||||||
|
if (word2[0] >= 'A' && word2[0] <= 'Z')
|
||||||
|
i = M_MapNumber(word2[0], word2[1]);
|
||||||
|
|
||||||
|
unlockables[num].variable = (INT16)i;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
deh_warning("Unlockable %d: unknown word '%s'", num+1, word);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} while (!myfeof(f)); // finish when the line is empty
|
} while (!myfeof(f)); // finish when the line is empty
|
||||||
|
|
||||||
|
|
|
@ -6688,7 +6688,7 @@ static void M_DrawChecklist(void)
|
||||||
|| !unlockables[i].conditionset || unlockables[i].conditionset > MAXCONDITIONSETS)
|
|| !unlockables[i].conditionset || unlockables[i].conditionset > MAXCONDITIONSETS)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
V_DrawString(currentMenu->x, y, ((unlockables[i].unlocked) ? V_GREENMAP : V_TRANSLUCENT), ((unlockables[i].unlocked || !unlockables[i].nochecklist) ? unlockables[i].name : M_CreateSecretMenuOption(unlockables[i].name)));
|
V_DrawString(currentMenu->x, y, ((unlockables[i].unlocked) ? V_GREENMAP : V_TRANSLUCENT)|V_ALLOWLOWERCASE, ((unlockables[i].unlocked || !unlockables[i].nochecklist) ? unlockables[i].name : M_CreateSecretMenuOption(unlockables[i].name)));
|
||||||
|
|
||||||
for (j = i+1; j < MAXUNLOCKABLES; j++)
|
for (j = i+1; j < MAXUNLOCKABLES; j++)
|
||||||
{
|
{
|
||||||
|
@ -8855,9 +8855,9 @@ static void M_DrawStatsMaps(int location)
|
||||||
M_DrawMapEmblems(mnum+1, 292, y);
|
M_DrawMapEmblems(mnum+1, 292, y);
|
||||||
|
|
||||||
if (mapheaderinfo[mnum]->actnum != 0)
|
if (mapheaderinfo[mnum]->actnum != 0)
|
||||||
V_DrawString(20, y, V_YELLOWMAP, va("%s %d", mapheaderinfo[mnum]->lvlttl, mapheaderinfo[mnum]->actnum));
|
V_DrawString(20, y, V_YELLOWMAP|V_ALLOWLOWERCASE, va("%s %d", mapheaderinfo[mnum]->lvlttl, mapheaderinfo[mnum]->actnum));
|
||||||
else
|
else
|
||||||
V_DrawString(20, y, V_YELLOWMAP, mapheaderinfo[mnum]->lvlttl);
|
V_DrawString(20, y, V_YELLOWMAP|V_ALLOWLOWERCASE, mapheaderinfo[mnum]->lvlttl);
|
||||||
|
|
||||||
y += 8;
|
y += 8;
|
||||||
|
|
||||||
|
@ -8901,7 +8901,7 @@ static void M_DrawStatsMaps(int location)
|
||||||
else
|
else
|
||||||
V_DrawSmallScaledPatch(292, y, 0, W_CachePatchName("NEEDIT", PU_CACHE));
|
V_DrawSmallScaledPatch(292, y, 0, W_CachePatchName("NEEDIT", PU_CACHE));
|
||||||
|
|
||||||
V_DrawString(20, y, V_YELLOWMAP, va("%s", exemblem->description));
|
V_DrawString(20, y, V_YELLOWMAP|V_ALLOWLOWERCASE, va("%s", exemblem->description));
|
||||||
}
|
}
|
||||||
|
|
||||||
y += 8;
|
y += 8;
|
||||||
|
|
Loading…
Reference in a new issue