dont remember
[carveJwlIkooP6JGAAIwe30JlM.git] / highscores.h
index b1c9cc0a5d591794388213552ab1938a75003a0b..0136886843899093ce074ca02a0e44a46f9be799 100644 (file)
@@ -128,7 +128,7 @@ static int highscore_cmp_playerinfo_playerid( void *a, void *b )
 static void *highscore_malloc( u32 count, u32 size )
 {
    size_t requested_mem = size * count;
-   void *data = malloc( requested_mem );
+   void *data = vg_alloc( requested_mem );
 
    requested_mem /= 1024;
    requested_mem /= 1024;
@@ -146,8 +146,8 @@ static void *highscore_malloc( u32 count, u32 size )
 
 static void highscores_free(void)
 {
-   free( highscore_system.data );
-   free( highscore_system.playerinfo_data );
+   vg_free( highscore_system.data );
+   vg_free( highscore_system.playerinfo_data );
 }
 
 static int highscores_init( u32 pool_size, u32 playerinfo_pool_size )
@@ -161,7 +161,7 @@ static int highscores_init( u32 pool_size, u32 playerinfo_pool_size )
       highscore_malloc( playerinfo_pool_size, sizeof(highscore_playerinfo));
    if( !sys->playerinfo_data ) 
    {
-      free( sys->data );
+      vg_free( sys->data );
       return 0;
    }
 
@@ -243,7 +243,7 @@ static int highscores_init( u32 pool_size, u32 playerinfo_pool_size )
    }
    else
    {
-      vg_log( "No existing database found (.aadb)\n" );
+      vg_low( "No existing database found (.aadb)\n" );
       vg_info( "Initializing database nodes\n" );
       memset( &sys->dbheader, 0, sizeof(highscore_database) );
 
@@ -293,12 +293,28 @@ static int highscores_serialize_all(void)
    return 1;
 }
 
+static highscore_record *highscore_find_user_record( u64 playerid, u32 trackid )
+{
+   struct highscore_system *sys = &highscore_system;
+
+   highscore_track_table *table = &sys->dbheader.tracks[trackid];
+   highscore_record temp;
+   temp.playerid = playerid;
+
+   aatree_ptr find = 
+      aatree_find( &sys->aainfo_playerid, table->root_playerid, &temp );
+
+   if( find == AATREE_PTR_NIL )
+      return NULL;
+
+   return aatree_get_data( &sys->aainfo_playerid, find );
+}
+
 static aatree_ptr highscores_push_record( highscore_record *record )
 {
    struct highscore_system *sys = &highscore_system;
 
-   /* TODO: Verify steam ID */
-   vg_log( "Inserting record into database for track %hu\n",record->trackid );
+   vg_low( "Inserting record into database for track %hu\n",record->trackid );
 
    if( record->trackid >= vg_list_size(sys->dbheader.tracks) )
    {
@@ -322,11 +338,11 @@ static aatree_ptr highscores_push_record( highscore_record *record )
       if( crecord->time < record->time || 
             (crecord->time == record->time && crecord->points > record->points))
       {
-         vg_log( "Not overwriting better score\n" );
+         vg_low( "Not overwriting better score\n" );
          return existing;
       }
 
-      vg_log( "Freeing existing record for player %lu\n", record->playerid );
+      vg_low( "Freeing existing record for player %lu\n", record->playerid );
       table->root_playerid = aatree_del( &sys->aainfo_playerid, existing );
       table->root_datetime = aatree_del( &sys->aainfo_datetime, existing );
       table->root_points = aatree_del( &sys->aainfo_points, existing );
@@ -372,7 +388,7 @@ static aatree_ptr highscore_set_user_nickname( u64 steamid, char nick[10] )
       name[i] = nick[i];
    name[10] = '\0';
 
-   vg_log( "Updating %lu's nickname -> %s\n", steamid, name );
+   vg_low( "Updating %lu's nickname -> %s\n", steamid, name );
 
    struct highscore_system *sys = &highscore_system;
    
@@ -578,11 +594,11 @@ static void highscores_board_generate( char *buf, u32 id, u32 count )
          highscore_strl( line+3, inf->nickname, 10 );
       }
 
-      u16 miliseconds = record->time,
-          seconds     = miliseconds / 100,
-          minutes     = seconds / 60;
+      u16 centiseconds = record->time,
+          seconds      = centiseconds / 100,
+          minutes      = seconds / 60;
 
-      miliseconds %= 100;
+      centiseconds %= 100;
       seconds     %= 60;
       minutes     %= 60;
 
@@ -593,10 +609,10 @@ static void highscores_board_generate( char *buf, u32 id, u32 count )
       line[15] = ':';
       highscore_intr( line+16, seconds, 2, '0' );
       line[18] = '.';
-      highscore_intr( line+19, miliseconds, 2, '0' );
+      highscore_intr( line+19, centiseconds, 2, '0' );
 
       /* Score */
-      highscore_intl( line+22, record->time, 5 );
+      highscore_intl( line+22, record->points, 5 );
       it = aatree_next( &sys->aainfo_time, it );
    }
 }