X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_routes.c;h=b271faa7bffd8b142c3303d11e828d231e11883e;hb=f2e2b3c37719f839bc130625ee0fcf4ef3179750;hp=36d70d79f9246194cf0227b87680ea74dc40eb2e;hpb=603805f69c5484316a52ee099d03254c5a1096f3;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_routes.c b/world_routes.c index 36d70d7..b271faa 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,28 @@ 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.addon_hub->alias; + if( world_static.active_instance ) + alias = &world_static.addon_client->alias; + + /* TODO: we should probably generate this once. and also ditch + * sub-worlds */ + char mod_uid[ ADDON_UID_MAX ]; + addon_alias_uid( &world_static.addon_client->alias, mod_uid ); + network_publish_laptime( mod_uid, + mdl_pstr( &world->meta, route->pstr_name ), + lap_time ); } route->valid_checkpoints = valid_count+1;