From 8a9f13763735c5c4770bb891677e5a2d5ee8bac6 Mon Sep 17 00:00:00 2001 From: poly000 <1348292515@qq.com> Date: Sat, 17 Feb 2024 15:57:53 +0800 Subject: [PATCH] fix: only the last weapon/inventory can be None or remaining items are ignored by the game --- src/app/inventory.rs | 9 +++++++-- src/app/weapon.rs | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/app/inventory.rs b/src/app/inventory.rs index 0501ce0..a54fa21 100644 --- a/src/app/inventory.rs +++ b/src/app/inventory.rs @@ -32,11 +32,16 @@ pub fn draw_window(ui: &mut Ui, inventory_num: &mut usize, inventory: &mut [Inve ui.horizontal(|ui| { for (i, inventory) in chunk.iter_mut().enumerate() { ui.vertical(|ui| { - egui::ComboBox::new(format!("weapontype-box-{}", chunk_i * chunk_size + i), "") + let pos = chunk_i * chunk_size + i; + egui::ComboBox::new(format!("weapontype-box-{pos}"), "") .width(150.) .selected_text(inventory.to_string()) .show_ui(ui, |ui| { - for model in Inventory::iter() { + let mut iter = Inventory::iter(); + if pos + 1 < *inventory_num { + iter.next(); + } + for model in iter { ui.selectable_value(inventory, model, model.to_string()); } }); diff --git a/src/app/weapon.rs b/src/app/weapon.rs index 71ecb52..a7eaff2 100644 --- a/src/app/weapon.rs +++ b/src/app/weapon.rs @@ -32,11 +32,16 @@ pub fn draw_window(ui: &mut Ui, weapon_num: &mut usize, weapon: &mut [Weapon]) { ui.horizontal(|ui| { for (i, weapon) in chunk.iter_mut().enumerate() { ui.vertical(|ui| { - egui::ComboBox::new(format!("weapontype-box-{}", chunk_i * chunk_size + i), "") + let pos = chunk_i * chunk_size + i; + egui::ComboBox::new(format!("weapontype-box-{pos}"), "") .width(150.) .selected_text(weapon.classification.to_string()) .show_ui(ui, |ui| { - for model in WeaponType::iter() { + let mut iter = WeaponType::iter(); + if pos + 1 < *weapon_num { + iter.next(); + } + for model in iter { ui.selectable_value( &mut weapon.classification, model,