public static void Load(string filepath, ref GameConfig gameCfg, ref RaceEventConfig raceCfg) { if (!File.Exists(filepath)) { return; } FileIniDataParser file = new FileIniDataParser(); file.Parser.Configuration.CommentString = "//"; IniData inidata = file.ReadFile(filepath); IniGetter ini = new IniGetter(inidata); gameCfg.MusicVolume = ini.GetInt("main", "music", gameCfg.MusicVolume); raceCfg.PlayerDriver = ini.GetInt("race", "driver", raceCfg.PlayerDriver); raceCfg.Laps = ini.GetInt("race", "laps", raceCfg.Laps); raceCfg.Opponents = ini.GetInt("race", "opponents", raceCfg.Opponents); string physics = ini.GetString("race", "physics", raceCfg.Physics.ToString()); RacePhysicsMode mode; if (Enum.TryParse <RacePhysicsMode>(physics, out mode)) { raceCfg.Physics = mode; } raceCfg.CarCollisions = ini.GetBool("race", "car_collisions", raceCfg.CarCollisions); /* TODO * * IsDebugMode = ini.ReadBool("main", "debug_mode", IsDebugMode); */ }
public static TrackConfig LoadConfig(Track track, string iniFilePath) { FileIniDataParser file = new FileIniDataParser(); file.Parser.Configuration.CommentString = "//"; IniData inidata = file.ReadFile(iniFilePath); if (inidata == null) { return(null); } IniGetter ini = new IniGetter(inidata); TrackConfig cfg = new TrackConfig(); cfg.Gravity = ini.GetFloat("track", "gravity"); cfg.AirResistance = ini.GetFloat("track", "air_resistance"); int regions = ini.GetInt("track", "regions"); cfg.Regions = new List <TrackRegionConfig>(); for (int i = 0; i < regions; ++i) { string secname = String.Format("area{0}", i); if (!inidata.Sections.ContainsSection(secname)) { continue; } TrackRegionConfig r = new TrackRegionConfig(); r.IsObstacle = ini.GetBool(secname, "is_obstacle"); r.TerraSlideFriction = ini.GetFloat(secname, "slide_friction"); r.TerraRollFriction = ini.GetFloat(secname, "roll_friction"); r.TerraGrip = ini.GetFloat(secname, "grip"); r.EnvResistance = ini.GetFloat(secname, "env_resistance"); cfg.Regions.Add(r); } return(cfg); }