From 6cc6153abbc1eb27cd185605e92c97bb57cf001b Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Tue, 9 Jun 2026 16:47:16 +0200 Subject: [PATCH] improve wait room (#1045) --- src/ui/gui/netplay_wait.slint | 7 ++++--- src/ui/netplay.rs | 11 +++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ui/gui/netplay_wait.slint b/src/ui/gui/netplay_wait.slint index d3f4cd35..f4ffc494 100644 --- a/src/ui/gui/netplay_wait.slint +++ b/src/ui/gui/netplay_wait.slint @@ -8,7 +8,7 @@ export global NetplayWaitData { in-out property can_start; in-out property chat_text; in-out property input_delay; - in-out property recommended_delay; + in-out property recommended_delay; in-out property game_pal; } @@ -105,6 +105,7 @@ export component NetplayWait inherits Page { ComboBox { model: ["0", "1", "2", "3", "4", "5", "6", "7", "8"]; current-index: NetplayWaitData.input_delay; + enabled: NetplayWaitData.recommended_delay != 0; selected => { NetplayWaitData.input_delay = self.current-index; } @@ -112,7 +113,7 @@ export component NetplayWait inherits Page { } Text { - text: @tr("Recommended: ") + NetplayWaitData.recommended_delay; + text: @tr("Recommended: ") + (NetplayWaitData.recommended_delay == 0 ? "Calculating..." : NetplayWaitData.recommended_delay); horizontal-alignment: center; vertical-alignment: center; } @@ -121,7 +122,7 @@ export component NetplayWait inherits Page { alignment: center; Button { text: @tr("Start Game"); - enabled: NetplayWaitData.can_start; + enabled: NetplayWaitData.players[0] == NetplayData.player_name && NetplayWaitData.can_start && NetplayWaitData.recommended_delay != 0; clicked => { NetplayWaitData.can_start = false; begin_game(NetplayWaitData.input_delay); diff --git a/src/ui/netplay.rs b/src/ui/netplay.rs index d7f40328..63b98e5e 100644 --- a/src/ui/netplay.rs +++ b/src/ui/netplay.rs @@ -446,9 +446,11 @@ fn update_ping( }; let recommendation = (ping as f64 / (1000.0 / refresh_rate)) as i32 + 1; - handle.set_netplay_recommended_delay( - recommendation.to_string().into(), - ); + + if handle.get_netplay_recommended_delay() == 0 { + handle.set_netplay_input_delay(recommendation); + } + handle.set_netplay_recommended_delay(recommendation); }) .unwrap(); } @@ -474,14 +476,12 @@ fn setup_wait_window( game_settings: ui::GameSettings, app: &AppWindow, ) { - app.set_netplay_recommended_delay("Calculating...".into()); update_ping(server_addr.clone(), close_ping_rx, app.as_weak()); app.set_netplay_session_name(session_name); app.set_netplay_game_name(game_name); app.set_netplay_rom_path(rom_path); app.set_netplay_can_start(true); - app.set_netplay_input_delay(2); let request_update = NetplayLobbyMessage { message_type: MessageType::RequestUpdateSession, @@ -585,7 +585,6 @@ fn setup_wait_window( weak_app .upgrade_in_event_loop(move |handle| { handle.set_netplay_can_start(true); - if let Some(message) = response.message { handle.invoke_show_message(message.into(), true); }