FSO.Files.Formats.IFF.PIFFRegistry.Init C# (CSharp) Method

Init() public static method

public static Init ( string basePath ) : void
basePath string
return void
        public static void Init(string basePath)
        {
            PIFFsByName = new Dictionary<string, List<IffFile>>();
            IsPIFFUser = new Dictionary<string, bool>();

            //Directory.CreateDirectory(basePath);
            string[] paths = Directory.GetFiles(basePath, "*.piff", SearchOption.AllDirectories);
            for (int i = 0; i < paths.Length; i++)
            {
                string entry = paths[i].Replace('\\', '/');
                bool user = entry.Contains("User/");
                string filename = Path.GetFileName(entry);

                IffFile piffFile = new IffFile(entry);
                PIFF piff = piffFile.List<PIFF>()[0];

                if (IsPIFFUser.ContainsKey(piff.SourceIff))
                {
                    var old = IsPIFFUser[piff.SourceIff];
                    if (old != user)
                    {
                        if (user)
                        {
                            //remove old piffs, as they have been overwritten by this user piff.
                            PIFFsByName[piff.SourceIff].Clear();
                            IsPIFFUser[piff.SourceIff] = true;
                        }
                        else continue; //a user piff exists. ignore these ones.
                    }
                }
                else IsPIFFUser.Add(piff.SourceIff, user);

                if (!PIFFsByName.ContainsKey(piff.SourceIff)) PIFFsByName.Add(piff.SourceIff, new List<IffFile>());
                PIFFsByName[piff.SourceIff].Add(piffFile);
            }
        }
PIFFRegistry