X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_routes.c;h=87b21c8572504917cb21150389426b59f900f819;hb=7e1fe6c7931ba4492aa10ac5eebc316b74fb5dac;hp=36d70d79f9246194cf0227b87680ea74dc40eb2e;hpb=603805f69c5484316a52ee099d03254c5a1096f3;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_routes.c b/world_routes.c index 36d70d7..87b21c8 100644 --- a/world_routes.c +++ b/world_routes.c @@ -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 ); }