+VG_STATIC void world_routes_time_lap( world_instance *world, ent_route *route )
+{
+ vg_info( "------- time lap %s -------\n",
+ mdl_pstr(&world->meta,route->pstr_name) );
+
+ double total_time = 0.0;
+ u32 last_version;
+ int validated = 1;
+
+ for( u32 i=0; i<route->checkpoints_count; i++ ){
+ u32 cpid = route->checkpoints_start+(i+route->active_checkpoint);
+ cpid = cpid % route->checkpoints_count;
+
+ ent_checkpoint *cp = mdl_arritm( &world->ent_checkpoint, cpid );
+ ent_gate *rg = mdl_arritm( &world->ent_gate, cp->gate_index );
+ rg = mdl_arritm( &world->ent_gate, rg->target );
+
+ if( i == 0 )
+ total_time = rg->timing_time;
+ else{
+ if( last_version+1 != rg->timing_version )
+ validated = 0;
+ }
+
+ last_version = rg->timing_version;
+ vg_info( "%u %f\n", rg->timing_version, rg->timing_time );
+ }
+
+ vg_info( "%u %f\n", world_global.current_run_version, world_global.time );
+
+ if( validated && (world_global.current_run_version == last_version+1)){
+ total_time = world_global.time - total_time;
+ world_routes_local_set_record( world, route, total_time );
+ }
+ vg_info( "----------------------------\n" );
+}
+