public static List<Program> GetPrograms(string iniFileName) { var ini = new Ini(iniFileName); var sections = ini.GetSections(); var programs = new List<Program>(); foreach (var section in sections) { var program = new Program(); program.FileName = section; program.FileProductName = ini.GetValue(section, "Name") ?? ""; var hmString = ini.GetValue(section, "HookMask"); int hookMask; // If hook mask is hexadecimal then.... bool success = hmString.StartsWith("0x") ? int.TryParse(hmString.Substring(2), System.Globalization.NumberStyles.HexNumber, CultureInfo.InvariantCulture.NumberFormat, out hookMask) : int.TryParse(hmString, out hookMask); if (success) { program.HookMask = hookMask; programs.Add(program); } } return programs; }
void LoadProgramsFromLocalGdbFile() { var path = GameDatabaseManager.Current.GdbFile.FullName; var ini = new Ini(path); var sections = ini.GetSections(); foreach (var section in sections) { var program = SettingManager.Programs.Items.FirstOrDefault(x => x.FileName.ToLower() == section.ToLower()); if (program == null) { program = new Engine.Data.Program(); program.FileName = section; program.HookMask = 0x00000002; program.XInputMask = 0x00000004; SettingManager.Programs.Items.Add(program); } program.FileProductName = ini.GetValue(section, "Name", section); int hookMask; var hookMaskValue = ini.GetValue(section, "HookMask", "0x00000002"); if (int.TryParse(hookMaskValue, out hookMask)) { program.HookMask = hookMask; } } }