From 987c857b1c3169ed7ecea30d98646a9d1b8de5b0 Mon Sep 17 00:00:00 2001 From: dawnDus <96957561+dawndus@users.noreply.github.com> Date: Sun, 22 May 2022 09:17:55 -0400 Subject: [PATCH] show missing mod.txt --- src/mod_list.rs | 8 +++++++- src/scene/title_scene.rs | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/mod_list.rs b/src/mod_list.rs index cb86d95..000426c 100644 --- a/src/mod_list.rs +++ b/src/mod_list.rs @@ -16,6 +16,7 @@ pub struct ModInfo { pub path: String, pub name: String, pub description: String, + pub valid: bool, } impl ModInfo { @@ -147,11 +148,13 @@ impl ModList { } } + let mut valid = false; let mut name = String::new(); let mut description = String::new(); let mut save_slot = -1; if let Ok(file) = filesystem::open(ctx, [&path, "/mod.txt"].join("")) { + valid = true; let reader = BufReader::new(file); let mut lines = reader.lines(); if let Some(line) = lines.nth(1) { @@ -164,9 +167,12 @@ impl ModList { if let Some(line) = lines.next() { description = line.unwrap_or("No Description".to_string()).to_string(); } + } else { + name = path.clone(); + description = "mod.txt not found".to_string(); } - mods.push(ModInfo { id, requirement, priority, save_slot, path, name, description }) + mods.push(ModInfo { id, requirement, priority, save_slot, path, name, description, valid }) } } diff --git a/src/scene/title_scene.rs b/src/scene/title_scene.rs index 2e17886..2324462 100644 --- a/src/scene/title_scene.rs +++ b/src/scene/title_scene.rs @@ -175,6 +175,10 @@ impl Scene for TitleScene { let mut mutate_selection = true; for mod_info in state.mod_list.mods.iter() { + if !mod_info.valid { + self.challenges_menu.push_entry(MenuEntry::Disabled(mod_info.path.clone())); + continue; + } if mod_info.satisfies_requirement(&state.mod_requirements) { self.challenges_menu.push_entry(MenuEntry::Active(mod_info.name.clone())); mutate_selection = false;