remove sub-world concept
[carveJwlIkooP6JGAAIwe30JlM.git] / world_routes.c
index 36d70d79f9246194cf0227b87680ea74dc40eb2e..87b21c8572504917cb21150389426b59f900f819 100644 (file)
@@ -11,6 +11,7 @@
 #include "world_gate.h"
 #include "world_load.h"
 #include "highscores.h"
+#include "network.h"
 
 #include "font.h"
 #include "pointcloud.h"
@@ -20,7 +21,7 @@
 #include "shaders/scene_route.h"
 #include "shaders/routeui.h"
 
-
+#if 0
 static 
 void world_routes_local_set_record( world_instance *world, ent_route *route,
                                     f64 lap_time )
@@ -50,7 +51,7 @@ void world_routes_local_set_record( world_instance *world, ent_route *route,
       vg_warn( "There is no associated track for this record...\n" );
    }
 }
-
+#endif
 
 static void world_routes_clear( world_instance *world )
 {
@@ -114,8 +115,25 @@ static void world_routes_time_lap( world_instance *world, ent_route *route )
    vg_info( "%u %f\n", world_static.current_run_version, world_static.time );
 
    if( valid_count==route->checkpoints_count ){
-      double lap_time = world_static.time - start_time;
-      world_routes_local_set_record( world, route, lap_time );
+      f64 lap_time = world_static.time - start_time;
+      //world_routes_local_set_record( world, route, lap_time );
+
+      if( route->anon.official_track_id != 0xffffffff ){
+         struct track_info *ti = &track_infos[ route->anon.official_track_id ];
+         if( ti->achievement_id ){
+            steam_set_achievement( ti->achievement_id );
+            steam_store_achievements();
+         }
+      }
+
+      addon_alias *alias = 
+         &world_static.instance_addons[ world_static.active_instance ]->alias;
+
+      char mod_uid[ ADDON_UID_MAX ];
+      addon_alias_uid( alias, mod_uid );
+      network_publish_laptime( mod_uid, 
+                               mdl_pstr( &world->meta, route->pstr_name ),
+                               lap_time );
    }
 
    route->valid_checkpoints = valid_count+1;
@@ -866,9 +884,7 @@ static void world_gen_routes_generate( u32 instance_id ){
       vg_info( "Distributed %u points over %fkm^2!\n", 
                 pcbuf->count, area/1e6f );
 
-      world_write_preview( instance_id? world_static.addon_client:
-                                        world_static.addon_hub, 
-                                        pcbuf );
+      world_write_preview( world_static.instance_addons[ instance_id ], pcbuf );
       vg_async_dispatch( call_pointcloud, async_pointcloud_sub );
    }