mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-13 21:31:32 +00:00
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
1 changed files with 20 additions and 3 deletions
|
@ -1158,21 +1158,38 @@ static inline void CL_DrawConnectionStatus(void)
|
|||
{
|
||||
INT32 dldlength;
|
||||
static char tempname[32];
|
||||
fileneeded_t *file = &fileneeded[lastfilenum];
|
||||
char *filename = file->filename;
|
||||
|
||||
Net_GetNetStat();
|
||||
dldlength = (INT32)((fileneeded[lastfilenum].currentsize/(double)fileneeded[lastfilenum].totalsize) * 256);
|
||||
dldlength = (INT32)((file->currentsize/(double)file->totalsize) * 256);
|
||||
if (dldlength > 256)
|
||||
dldlength = 256;
|
||||
V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, 256, 8, 175);
|
||||
V_DrawFill(BASEVIDWIDTH/2-128, BASEVIDHEIGHT-24, dldlength, 8, 160);
|
||||
|
||||
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,
|
||||
va(M_GetText("Downloading \"%s\""), tempname));
|
||||
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,
|
||||
va("%3.1fK/s ", ((double)getbps)/1024));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue