From 62d3ba6492cbd0c8c6d1f60b6f8c1da00efdeba5 Mon Sep 17 00:00:00 2001 From: That-One-Nerd Date: Thu, 11 May 2023 17:43:17 -0400 Subject: [PATCH] Active mod is now detected in parent directories. --- SrcMod/Shell/Mod.cs | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/SrcMod/Shell/Mod.cs b/SrcMod/Shell/Mod.cs index d6da543..148b38b 100644 --- a/SrcMod/Shell/Mod.cs +++ b/SrcMod/Shell/Mod.cs @@ -13,15 +13,28 @@ public class Mod public static Mod? ReadDirectory(string dir) { - if (!File.Exists(dir + "\\GameInfo.txt")) return null; + dir = dir.Trim().Replace('/', '\\'); + string check = dir; - Mod mod = new() + while (!string.IsNullOrEmpty(check)) { - Name = dir.Split("\\").Last(), - RootDirectory = dir - }; + if (File.Exists(Path.Combine(check, "GameInfo.txt"))) + { + // Root mod directory found, go from here. + // TODO: Parse VKV out of GameInfo.txt - return mod; + Mod mod = new() + { + Name = Path.GetFileNameWithoutExtension(check), // TODO: replace with GameInfo: Title + RootDirectory = check + }; + return mod; + } + + check = Path.GetDirectoryName(check) ?? string.Empty; // Go to parent folder. + } + + return null; } public override string ToString() => Name;