From 6f8433138d8af85e7dd7ac5c9dfea89204779f8f Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:00:42 +0100 Subject: [PATCH] clippy fixes (#632) * clippy fixes * fix netplay browser --- src/device.rs | 3 +-- src/device/cart/rom.rs | 3 +-- src/device/controller.rs | 14 ++++++---- src/device/controller/rumble.rs | 9 ++++--- src/device/controller/vru.rs | 4 +-- src/device/pif.rs | 24 ++++++++--------- src/device/vi.rs | 8 +++--- src/netplay.rs | 7 +++-- src/ui/netplay.rs | 46 +++++++++++++++++---------------- 9 files changed, 62 insertions(+), 56 deletions(-) diff --git a/src/device.rs b/src/device.rs index 34ba6e5..b428126 100644 --- a/src/device.rs +++ b/src/device.rs @@ -93,8 +93,7 @@ fn set_rng() -> rand_chacha::ChaCha8Rng { fn init_rng(device: &mut Device) { let mut rng_seed = set_rng().next_u64(); - if device.netplay.is_some() { - let netplay = device.netplay.as_mut().unwrap(); + if let Some(netplay) = &mut device.netplay { if netplay.player_number == 0 { netplay::send_rng(netplay, rng_seed); } else { diff --git a/src/device/cart/rom.rs b/src/device/cart/rom.rs index b7b8d5e..88b5456 100644 --- a/src/device/cart/rom.rs +++ b/src/device/cart/rom.rs @@ -135,8 +135,7 @@ pub fn dma_write( pub fn init(device: &mut device::Device, rom_file: Vec) { let now: chrono::DateTime = chrono::Local::now(); device.cart.rtc_timestamp = now.naive_local().and_utc().timestamp(); - if device.netplay.is_some() { - let netplay = device.netplay.as_mut().unwrap(); + if let Some(netplay) = &mut device.netplay { if netplay.player_number == 0 { netplay::send_rtc(netplay, device.cart.rtc_timestamp); } else { diff --git a/src/device/controller.rs b/src/device/controller.rs index ea29ae6..c2d6a3b 100644 --- a/src/device/controller.rs +++ b/src/device/controller.rs @@ -59,9 +59,11 @@ pub fn process(device: &mut device::Device, channel: usize) { let input = if device.netplay.is_none() { ui::input::get(&device.ui, channel) } else { - if device.netplay.as_ref().unwrap().player_number as usize == channel { + if let Some(netplay) = &mut device.netplay + && netplay.player_number as usize == channel + { let local_input = ui::input::get(&device.ui, 0); - netplay::send_input(device.netplay.as_ref().unwrap(), local_input); + netplay::send_input(netplay, local_input); } netplay::get_input(device, channel) @@ -162,10 +164,12 @@ pub fn pak_switch_event(device: &mut device::Device) { for (i, channel) in device.pif.channels.iter_mut().enumerate() { if channel.change_pak != PakType::None { //stop rumble if it is on - if device.netplay.is_none() { + if let Some(netplay) = &device.netplay { + if netplay.player_number as usize == i { + device::ui::input::set_rumble(&device.ui, 0, 0); + } + } else { device::ui::input::set_rumble(&device.ui, i, 0); - } else if device.netplay.as_ref().unwrap().player_number as usize == i { - device::ui::input::set_rumble(&device.ui, 0, 0); } let new_pak_type = match channel.change_pak { diff --git a/src/device/controller/rumble.rs b/src/device/controller/rumble.rs index 2109cbb..e3bc83c 100644 --- a/src/device/controller/rumble.rs +++ b/src/device/controller/rumble.rs @@ -15,10 +15,13 @@ pub fn read(device: &mut device::Device, _channel: usize, address: u16, data: us pub fn write(device: &mut device::Device, channel: usize, address: u16, data: usize, size: usize) { if address == 0xc000 { let rumble = device.pif.ram[data + size - 1]; - if device.netplay.is_none() { + + if let Some(netplay) = &device.netplay { + if netplay.player_number as usize == channel { + device::ui::input::set_rumble(&device.ui, 0, rumble); + } + } else { device::ui::input::set_rumble(&device.ui, channel, rumble); - } else if device.netplay.as_ref().unwrap().player_number as usize == channel { - device::ui::input::set_rumble(&device.ui, 0, rumble); } } } diff --git a/src/device/controller/vru.rs b/src/device/controller/vru.rs index 4026350..468dc6c 100644 --- a/src/device/controller/vru.rs +++ b/src/device/controller/vru.rs @@ -187,10 +187,10 @@ pub fn process(device: &mut device::Device, channel: usize) { device.pif.ram[device.pif.channels[channel].rx_buf.unwrap()] = 0; } JCMD_VRU_READ => { - let index = if device.vru_window.window_notifier.is_some() { + let index = if let Some(window_notifier) = &device.vru_window.window_notifier { ui::vru::prompt_for_match( &device.vru.words, - device.vru_window.window_notifier.as_ref().unwrap(), + window_notifier, device.vru_window.word_receiver.as_mut().unwrap(), device.vi.frame_time, ) diff --git a/src/device/pif.rs b/src/device/pif.rs index 2881b57..8496c66 100644 --- a/src/device/pif.rs +++ b/src/device/pif.rs @@ -218,11 +218,11 @@ pub fn process_ram(device: &mut device::Device) { pub fn connect_pif_channels(device: &mut device::Device) { for i in 0..4 { - if device.netplay.is_none() { - if device.ui.config.input.controller_enabled[i] { + if let Some(netplay) = &device.netplay { + if netplay.player_data[i].reg_id != 0 { device.pif.channels[i].process = Some(device::controller::process); } - } else if device.netplay.as_ref().unwrap().player_data[i].reg_id != 0 { + } else if device.ui.config.input.controller_enabled[i] { device.pif.channels[i].process = Some(device::controller::process); } } @@ -268,16 +268,16 @@ pub fn init(device: &mut device::Device) { connect_pif_channels(device); for i in 0..4 { - if device.netplay.is_none() { - if device.ui.config.input.controller_enabled[i] { - if device.transferpaks[i].cart.rom.is_empty() { - device.pif.channels[i].pak_handler = Some(default_handler); - } else { - device.pif.channels[i].pak_handler = Some(tpak_handler); - } + if let Some(netplay) = &device.netplay { + if netplay.player_data[i].reg_id != 0 { + device.pif.channels[i].pak_handler = Some(default_handler); + } + } else if device.ui.config.input.controller_enabled[i] { + if device.transferpaks[i].cart.rom.is_empty() { + device.pif.channels[i].pak_handler = Some(default_handler); + } else { + device.pif.channels[i].pak_handler = Some(tpak_handler); } - } else if device.netplay.as_ref().unwrap().player_data[i].reg_id != 0 { - device.pif.channels[i].pak_handler = Some(default_handler); } } if device.ui.config.input.emulate_vru && device.netplay.is_none() { diff --git a/src/device/vi.rs b/src/device/vi.rs index 7f68f52..ed28b51 100644 --- a/src/device/vi.rs +++ b/src/device/vi.rs @@ -142,11 +142,11 @@ pub fn vertical_interrupt_event(device: &mut device::Device) { let (mut speed_limiter_toggled, paused) = ui::video::check_callback(device); - if device.netplay.is_some() { - netplay::send_sync_check(device); - if device.vi.enable_speed_limiter == device.netplay.as_ref().unwrap().fast_forward { + if let Some(netplay) = &mut device.netplay { + netplay::send_sync_check(netplay, device.cpu.cop0.regs.as_ref()); + if device.vi.enable_speed_limiter == netplay.fast_forward { speed_limiter_toggled = true; - device.vi.enable_speed_limiter = !device.netplay.as_ref().unwrap().fast_forward; + device.vi.enable_speed_limiter = !netplay.fast_forward; } } diff --git a/src/netplay.rs b/src/netplay.rs index 753d571..589efe2 100644 --- a/src/netplay.rs +++ b/src/netplay.rs @@ -103,14 +103,13 @@ pub fn receive_save(netplay: &mut Netplay, save_type: &str, save_data: &mut Vec< *save_data = response; } -pub fn send_sync_check(device: &mut device::Device) { - let netplay = device.netplay.as_mut().unwrap(); +pub fn send_sync_check(netplay: &mut Netplay, regs: &[u64]) { if netplay.vi_counter.is_multiple_of(600) { let mut request: Vec = [UDP_SYNC_DATA].to_vec(); request.extend_from_slice(&(netplay.vi_counter).to_be_bytes()); - for i in 0..device::cop0::COP0_REGS_COUNT as usize { - request.extend_from_slice(&(device.cpu.cop0.regs[i] as u32).to_be_bytes()); + for item in regs.iter() { + request.extend_from_slice(&(*item as u32).to_be_bytes()); } netplay.udp_socket.send(&request).unwrap(); diff --git a/src/ui/netplay.rs b/src/ui/netplay.rs index 5c08867..01e9e01 100644 --- a/src/ui/netplay.rs +++ b/src/ui/netplay.rs @@ -139,32 +139,34 @@ fn populate_server_names(weak: slin } } + let mut public_servers: Vec = vec![]; let response = task.await; if let Ok(response) = response - && let Ok(servers) = response.json::>().await + && let Ok(mut servers) = response.json::>().await { - weak.upgrade_in_event_loop(move |handle| { - let server_names: slint::VecModel = slint::VecModel::default(); - let server_urls: slint::VecModel = slint::VecModel::default(); - for local_server in local_servers { - server_names.push(local_server.0.into()); - server_urls.push(local_server.1.into()); - } - for server in servers { - server_names.push(server.clone().into()); - server_urls.push(format!("dispatcher:{server}").into()); - } - server_names.push("Custom".into()); - handle.refresh_sessions(); - let server_names_model: std::rc::Rc> = - std::rc::Rc::new(server_names); - let server_urls_model: std::rc::Rc> = - std::rc::Rc::new(server_urls); - handle.set_server_names(slint::ModelRc::from(server_names_model)); - handle.set_server_urls(slint::ModelRc::from(server_urls_model)); - }) - .unwrap(); + public_servers.append(&mut servers); } + weak.upgrade_in_event_loop(move |handle| { + let server_names: slint::VecModel = slint::VecModel::default(); + let server_urls: slint::VecModel = slint::VecModel::default(); + for local_server in local_servers { + server_names.push(local_server.0.into()); + server_urls.push(local_server.1.into()); + } + for server in public_servers { + server_names.push(server.clone().into()); + server_urls.push(format!("dispatcher:{server}").into()); + } + server_names.push("Custom".into()); + handle.refresh_sessions(); + let server_names_model: std::rc::Rc> = + std::rc::Rc::new(server_names); + let server_urls_model: std::rc::Rc> = + std::rc::Rc::new(server_urls); + handle.set_server_names(slint::ModelRc::from(server_names_model)); + handle.set_server_urls(slint::ModelRc::from(server_urls_model)); + }) + .unwrap(); }); }