diff --git a/BurnOutSharp/ProtectionType/RingPROTECH.cs b/BurnOutSharp/ProtectionType/RingPROTECH.cs index 3bcf2a7c..7f9e38e5 100644 --- a/BurnOutSharp/ProtectionType/RingPROTECH.cs +++ b/BurnOutSharp/ProtectionType/RingPROTECH.cs @@ -1,11 +1,12 @@ -using System.Collections.Generic; +using System.Collections.Concurrent; +using System.Collections.Generic; using BurnOutSharp.ExecutableType.Microsoft; using BurnOutSharp.Matching; namespace BurnOutSharp.ProtectionType { // Renamed to ProRing at some point - public class RingPROTECH : IContentCheck + public class RingPROTECH : IContentCheck, IPathCheck { /// public string CheckContents(string file, byte[] fileContent, bool includeDebug, PortableExecutable pex, NewExecutable nex) @@ -23,5 +24,29 @@ namespace BurnOutSharp.ProtectionType return MatchUtil.GetFirstMatch(file, fileContent, contentMatchSets, includeDebug); } + + // TODO: Confirm if these checks are only for ProRing or if they are also for older Ring PROTECH + + /// + public ConcurrentQueue CheckDirectoryPath(string path, IEnumerable files) + { + var matchers = new List + { + new PathMatchSet(new PathMatch("protect.pro", useEndsWith: true), "Ring PROTECH / ProRing [Check disc for physical ring]"), + }; + + return MatchUtil.GetAllMatches(files, matchers, any: true); + } + + /// + public string CheckFilePath(string path) + { + var matchers = new List + { + new PathMatchSet(new PathMatch("protect.pro", useEndsWith: true), "Ring PROTECH / ProRing [Check disc for physical ring]"), + }; + + return MatchUtil.GetFirstMatch(path, matchers, any: true); + } } }