From d56d3d4ee0e035d98f4c78d7d880f4e10a1dbced Mon Sep 17 00:00:00 2001 From: hgn Date: Tue, 6 May 2025 09:09:51 +0100 Subject: [PATCH] fix bug not updating leaderboards in map mode, fix route ui shown in replay --- src/ent_route.c | 13 ++++++++++++- src/skaterift.c | 8 +++++--- src/world_sfd.c | 3 ++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/ent_route.c b/src/ent_route.c index bc0dff8..e0b0bb1 100644 --- a/src/ent_route.c +++ b/src/ent_route.c @@ -113,10 +113,21 @@ void ent_route_leaderboard_ui( ui_context *ctx, ui_rect ref_box, u32 route_index return; } + f64 delta = vg.time_real - board->cache_time; + if( (delta > 45.0) || (board->cache_time == 0.0) ) + { + board->cache_time = vg.time_real; + ent_route *route = af_arritm( &world->ent_route, route_index ); + char mod_uid[ ADDON_UID_MAX ]; + addon_uid( _world.main.addon_id, mod_uid ); + network_request_scoreboard( mod_uid, af_str( &world->meta.af, route->pstr_name ), + NETWORK_LEADERBOARD_ALLTIME_AND_CURRENT_WEEK, route_index ); + } + if( board->status != k_request_status_ok ) { ui_fill( ctx, leaderboard_box, ui_opacity( GUI_COL_DARK, 0.36f ) ); - ui_text( ctx, leaderboard_box, "Leaderboard error", 1, k_ui_align_middle_center, 0 ); + ui_text( ctx, leaderboard_box, "...", 1, k_ui_align_middle_center, 0 ); return; } diff --git a/src/skaterift.c b/src/skaterift.c index d95fcd0..58a83dd 100644 --- a/src/skaterift.c +++ b/src/skaterift.c @@ -568,9 +568,11 @@ void vg_gui( ui_context *ctx ) player__im_gui( ctx ); world_instance *world = &_world.main; - world_routes_imgui( ctx, world ); - _ent_route_imgui( ctx ); - //skaterift_replay_imgui( ctx ); + if( skaterift.activity != k_skaterift_replay ) + { + world_routes_imgui( ctx, world ); + _ent_route_imgui( ctx ); + } _replay2_imgui( ctx ); workshop_form_gui( ctx ); world_gui( ctx, world ); diff --git a/src/world_sfd.c b/src/world_sfd.c index 0efdf06..4e23411 100644 --- a/src/world_sfd.c +++ b/src/world_sfd.c @@ -250,7 +250,8 @@ void world_sfd_update( world_instance *world, v3f pos ) float const rate = vg.time_delta * 25.2313131414f; float d1 = *target-*cur; - if( fabsf(d1) > rate ){ + if( fabsf(d1) > rate ) + { *cur += rate; if( *cur > 49.0f ) *cur -= 49.0f; -- 2.25.1