rewrite download file screen code:
* fix screen to properly truncate the filename to just the real name only * if the real name itself is too long, use ellipsis and paste in parts of the start and end of the actual name note: I haven't actually tested if this works or compiles yet, I haven't the time right now
This commit is contained in:
parent
16e60aada9
commit
e3151f26dc
|
@ -1158,21 +1158,38 @@ static inline void CL_DrawConnectionStatus(void)
|
||||||
{
|
{
|
||||||
INT32 dldlength;
|
INT32 dldlength;
|
||||||
static char tempname[32];
|
static char tempname[32];
|
||||||
|
fileneeded_t *file = &fileneeded[lastfilenum];
|
||||||
|
char *filename = file->filename;
|
||||||
|
|
||||||
Net_GetNetStat();
|
Net_GetNetStat();
|
||||||
dldlength = (INT32)((fileneeded[lastfilenum].currentsize/(double)fileneeded[lastfilenum].totalsize) * 256);
|
dldlength = (INT32)((file->currentsize/(double)file->totalsize) * 256);
|
||||||
if (dldlength > 256)
|
if (dldlength > 256)
|
||||||
dldlength = 256;
|
dldlength = 256;
|
||||||
V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, 256, 8, 175);
|
V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, 256, 8, 175);
|
||||||
V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, dldlength, 8, 160);
|
V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, dldlength, 8, 160);
|
||||||
|
|
||||||
memset(tempname, 0, sizeof(tempname));
|
memset(tempname, 0, sizeof(tempname));
|
||||||
nameonly(strncpy(tempname, fileneeded[lastfilenum].filename, 31));
|
// offset filename to just the name only part
|
||||||
|
filename += strlen(filename) - nameonlylength(filename);
|
||||||
|
|
||||||
|
if (strlen(filename) > 31) // too long to display fully
|
||||||
|
{
|
||||||
|
size_t endhalfpos = strlen(filename)-12;
|
||||||
|
// display as first 16 chars + ... + last 12 chars
|
||||||
|
// which should add up to 31 if our math(s) is correct
|
||||||
|
strncpy(tempname, filename, 16);
|
||||||
|
strncpy(tempname+16, "...", 3);
|
||||||
|
strncpy(tempname+16+3, filename+endhalfpos, 12);
|
||||||
|
}
|
||||||
|
else // we can copy the whole thing in safely
|
||||||
|
{
|
||||||
|
strncpy(tempname, filename, 31);
|
||||||
|
}
|
||||||
|
|
||||||
V_DrawCenteredString(BASEVIDWIDTH/2, BASEVIDHEIGHT-24-32, V_YELLOWMAP,
|
V_DrawCenteredString(BASEVIDWIDTH/2, BASEVIDHEIGHT-24-32, V_YELLOWMAP,
|
||||||
va(M_GetText("Downloading \"%s\""), tempname));
|
va(M_GetText("Downloading \"%s\""), tempname));
|
||||||
V_DrawString(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, V_20TRANS|V_MONOSPACE,
|
V_DrawString(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, V_20TRANS|V_MONOSPACE,
|
||||||
va(" %4uK/%4uK",fileneeded[lastfilenum].currentsize>>10,fileneeded[lastfilenum].totalsize>>10));
|
va(" %4uK/%4uK",fileneeded[lastfilenum].currentsize>>10,file->totalsize>>10));
|
||||||
V_DrawRightAlignedString(BASEVIDWIDTH/2+128, BASEVIDHEIGHT-24, V_20TRANS|V_MONOSPACE,
|
V_DrawRightAlignedString(BASEVIDWIDTH/2+128, BASEVIDHEIGHT-24, V_20TRANS|V_MONOSPACE,
|
||||||
va("%3.1fK/s ", ((double)getbps)/1024));
|
va("%3.1fK/s ", ((double)getbps)/1024));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue