#include <top_ten_tables.h>
inherit "/std/object";
nosave string table_name;
void setup() {
table_name = 0;
set_name( "table" );
set_short( "top ten table" );
add_adjective( ({ "top", "ten", "score" }) );
reset_get();
add_property( "there", "in one corner" );
add_property( "survive fire", 1 );
} /* setup() */
string query_table_name() { return table_name; }
void set_table_name( string word ) { table_name = word; }
string convert_age( int number ) {
if ( number > 86400 )
return ( number / 86400 ) +"D";
if ( number > 3600 )
return ( number / 3600 ) +"h";
if ( number > 60 )
return ( number / 60 ) +"m";
return number +"s";
} /* convert_age() */
string generate_list( mixed *args ) {
int i, number;
string format, list;
if ( table_name )
format = " %2d. %-13s: rating %6d, level %4d %5s";
else
format = " %2d. %-23s: rating %6d, level %4d %5s";
format += "\n";
list = "";
number = sizeof( args );
for ( i = 0; i < number; i++ )
list += sprintf( format, i + 1, capitalize( args[ i ][ TOP_TEN_NAME ] ),
args[ i ][ TOP_TEN_RATING ], args[ i ][ TOP_TEN_LEVEL ],
convert_age( args[ i ][ TOP_TEN_AGE ] ) );
return list;
} /* generate_list() */
string long( string words, int number ) {
string long;
mixed *args;
long = " High Score Table: ";
args = (mixed *)TOP_TEN_HANDLER->query_ordered_table( table_name );
if ( !table_name ) {
long += "All Players";
if ( !sizeof( args ) )
return long +": There is no overall top ten at present.\n";
} else {
if ( file_size( "/std/guilds/"+ table_name +".c" ) < 0 )
return "*Barf!* Can't find /std/guilds/"+ table_name +".\n";
long += capitalize( (string)( "/std/guilds/"+ table_name )->query_name() )
+"' Guild";
if ( !sizeof( args ) )
return long +": There is no top ten for this guild at present.\n";
}
long += " -=- "+ ctime( time() ) +"\n\n";
return long + generate_list( args ) +"\n";
} /* long() */