proboard/TOPS.CPP

81 lines
2.3 KiB
C++

#include <ctype.h>
#include <stdlib.h>
#include "proboard.hpp"
void
tops(char *data)
{
char *headers[14];
headers[ 0] = S_TOPS_TOP_CALLERS ;
headers[ 1] = S_TOPS_TOP_CALLERS_UNIT ;
headers[ 2] = S_TOPS_TOP_DOWNLOADERS_KB ;
headers[ 3] = S_TOPS_TOP_DOWNLOADERS_KB_UNIT ;
headers[ 4] = S_TOPS_TOP_DOWNLOADERS_TIMES ;
headers[ 5] = S_TOPS_TOP_DOWNLOADERS_TIMES_UNIT;
headers[ 6] = S_TOPS_TOP_UPLOADERS_KB ;
headers[ 7] = S_TOPS_TOP_UPLOADERS_KB_UNIT ;
headers[ 8] = S_TOPS_TOP_UPLOADERS_TIMES ;
headers[ 9] = S_TOPS_TOP_UPLOADERS_TIMES_UNIT ;
headers[10] = S_TOPS_TOP_MSGWRITERS ;
headers[11] = S_TOPS_TOP_MSGWRITERS_UNIT ;
headers[12] = S_TOPS_TOP_ONLINE ;
headers[13] = S_TOPS_TOP_ONLINE_UNIT ;
topentry *tp=new topentry[20];
int type=0;
switch(toupper(data[0]))
{
case 'C': type=0; break;
case 'K': type=1; break;
case 'T': type=2; break;
case 'U': type=3; break;
case 'F': type=4; break;
case 'M': type=5; break;
case 'O': type=6; break;
default : return;
}
int num=atoi(&data[1]);
if(!num) num=10;
//----------------------------
// JDR: REGISTRATION REFERENCE
//----------------------------
if(!registered) num=5;
File f(FileName(syspath,"TOPS.PB"));
if(!f.opened()) return;
f.seek(long(type)*sizeof(topentry)*20);
f.read(tp,sizeof(topentry)*20);
linecounter(3);
io.enablestop();
stopped=0;
LOG(2,"Tops requested : %s",headers[type*2]);
io << "\n\f\7ÖÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÒÄÄÄÄÄÄÄÄÄ·\n";
io << form("º\3 Pos \7º\6 %-26s\7º\6 %7s \7º\n",headers[type*2],headers[type*2+1]);
io << "ÇÄÄÄÄÄ×ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ×ÄÄÄÄÄÄÄÄĶ\n";
for(int i=0;i<num;i++)
{
if(stopped || !tp[i].n) break;
io << form("º \6%3d \7º\3 %-25.25s \7º\5",i+1,tp[i].name);
if(type==6) io << form("%3ldh %02ld' \7º\n",tp[i].n/60L,tp[i].n%60L);
else io << form(" %6lu \7º\n",tp[i].n);
if(linecounter()) break;
}
if(!stopped) io << "ÓÄÄÄÄÄÐÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÐÄÄÄÄÄÄÄÄĽ\n"
"\n" << S_PRESS_ENTER_TO_CONTINUE;
delete [] tp;
io.disablestop();
}