- struct track_info *pti = &track_infos[ pr->track_id ];
- pti->push = 1;
-
- if( pti->achievement_id )
- {
- steam_set_achievement( pti->achievement_id );
- steam_store_achievements();
- }
- }
- else
- {
- vg_warn( "There is no associated track for this record...\n" );
- }
-}
-
-/*
- * Will scan the whole run for two things;
- * 1: we set a new record for the total, complete loop around the course
- * 2: the time of each segment will be recorded into the data buffer
- * (not implemented: TODO)
- */
-VG_STATIC void world_routes_verify_run( world_instance *world, u32 route )
-{
- /* FIXME(10): ID mishmatch */
- struct route *pr = &world->routes[route];
- struct route_ui_bar *pui = &world_global.ui_bars[route];
-
- u32 stack[64];
- u32 si = world_routes_get_path( world, world->routes[route].start, stack );
-
- /*
- * we only care about gates that ref gates, so shuffle down the array
- */
- struct route_timing *timings[64];
- u32 sj = 0, maxv = 0, begin = 0;
- for( u32 i=0; i<si; i++ )
- {
- struct route_node *inode = &world->nodes[stack[i]];
-
- if( inode->special_type == k_route_special_type_collector )
- {
- timings[sj ++] = &world->collectors[ inode->special_id ].timing;
- }
- else if( inode->special_type == k_route_special_type_gate )
- {
- timings[sj ++] = &world->gates[inode->special_id].timing;
- }
- }
-
- for( u32 i=0; i<sj; i++ )
- {
- if( timings[i]->version > maxv )
- {
- maxv = timings[i]->version;
- begin = i;
- }
- }
-
- vg_info( "== begin verification (%u) ==\n", route );
- vg_info( " current version: %u\n", world_global.current_run_version );