Example #1
0
        public rFactor2CarEngine(MAS2File file, IniScanner mHdv)
        {
            masfile = file;
            EngineTorque_Min = new Dictionary<double, double>();
            EngineTorque_Max = new Dictionary<double, double>();

            // Read the engine files.
            scanner = new IniScanner{IniData = file.Master.ExtractString(file)};
            scanner.FireEventsForKeys = new List<string>();
            scanner.FireEventsForKeys.Add("Main.rpmtorque");
            scanner.HandleCustomKeys += new Signal(HandleEngineLine);
            scanner.Read();

            string[] rpm_idle = scanner.TryGetData("Main", "IdleRPMLogic");
            string[] rpm_max = scanner.TryGetData("Main", "RevLimitRange");
            _maxRpm = Convert.ToDouble(rpm_max[0]) + Convert.ToDouble(rpm_max[2]) *Convert.ToDouble(rpm_max[1]); // With maximum limits.
            _idleRpm = Convert.ToDouble(rpm_idle[0]) + Convert.ToDouble(rpm_idle[1]);
            _idleRpm /= 2.0;

            _inertia = scanner.TryGetDouble("EngineInertia");

            // TODO: add more data like cooling, radiator, etc.

            // Engine modes.

            string[] mode_range = scanner.TryGetData("Main", "EngineBoostRange");
            string[] mode_effects = scanner.TryGetData("Main", "BoostEffects");

            // Is there any EngineBoost defined?
            if (mode_effects.Length == 3)
            {
                modes = (int)Convert.ToDouble(mode_range[2]);
                mode_rpm = Convert.ToDouble(mode_effects[0]);
                mode_fuel = Convert.ToDouble(mode_effects[1]);
                mode_wear = Convert.ToDouble(mode_effects[2]);
                mode_torque = scanner.TryGetDouble("BoostTorque");
                mode_power = scanner.TryGetDouble("BoostPower");
            }
            else modes = 1;

            // RAM
            string[] ram_effects = scanner.TryGetData("Main", "RamEffects");
            if (ram_effects.Length == 4)
            {
                ram_torque = Convert.ToDouble(ram_effects[0]);
                ram_power = Convert.ToDouble(ram_effects[1]);
                ram_fuel = Convert.ToDouble(ram_effects[2]);
                ram_wear = Convert.ToDouble(ram_effects[3]);
            }

            _maxRpmMode = new Dictionary<int, double>();
            _engineModes = new Dictionary<int, string>();
            for(int i = 1; i <= modes; i++)
            {
                _engineModes.Add(i,"Mode " + i);
                _maxRpmMode.Add(i, mode_rpm * i + MaxRPM);
            }
        }
Example #2
0
 public rFactor2Track(string trackfile, string root)
 {
     FoundFiles = false;
     try
     {
         trackfile = trackfile.ToLower();
         if (trackfile.EndsWith("gdb"))
         {
             masfile_gdb = rFactor2.Garage.Files.SearchFile(root, trackfile);
             masfile_aiw = rFactor2.Garage.Files.SearchFile(root, trackfile.Replace("gdb", "aiw"));
         }
         else
         {
             masfile_aiw = rFactor2.Garage.Files.SearchFile(root, trackfile);
             masfile_gdb = rFactor2.Garage.Files.SearchFile(root, trackfile.Replace("aiw", "gdb"));
         }
         FoundFiles = true;
     }
     catch (Exception ex)
     {
         Debug.WriteLine("Error when looking for data files for track " + trackfile);
     }
 }
Example #3
0
        public rFactor2Track(string trackfile, string root)
        {
            FoundFiles = false;
            try
            {
                trackfile = trackfile.ToLower();
                if (trackfile.EndsWith("gdb"))
                {
                    masfile_gdb = rFactor2.Garage.Files.SearchFile(root, trackfile);
                    masfile_aiw = rFactor2.Garage.Files.SearchFile(root, trackfile.Replace("gdb", "aiw"));
                }
                else
                {
                    masfile_aiw = rFactor2.Garage.Files.SearchFile(root, trackfile);
                    masfile_gdb = rFactor2.Garage.Files.SearchFile(root, trackfile.Replace("aiw", "gdb"));
                }
                FoundFiles = true;

            }
            catch (Exception ex)
            {
                Debug.WriteLine("Error when looking for data files for track " + trackfile);
            }
        }
Example #4
0
 public rFactor2Mod(MAS2File m)
 {
     this.MASFile = m;
 }
Example #5
0
 public rFactor2Car(string veh)
 {
     masfile = rFactor2.Garage.Files.SearchFile(veh);
     Scanned = false;
 }
        public rFactor2CarEngine(MAS2File file, IniScanner mHdv)
        {
            masfile          = file;
            EngineTorque_Min = new Dictionary <double, double>();
            EngineTorque_Max = new Dictionary <double, double>();

            // Read the engine files.
            scanner = new IniScanner {
                IniData = file.Master.ExtractString(file)
            };
            scanner.FireEventsForKeys = new List <string>();
            scanner.FireEventsForKeys.Add("Main.rpmtorque");
            scanner.HandleCustomKeys += new Signal(HandleEngineLine);
            scanner.Read();

            string[] rpm_idle = scanner.TryGetData("Main", "IdleRPMLogic");
            string[] rpm_max  = scanner.TryGetData("Main", "RevLimitRange");
            _maxRpm   = Convert.ToDouble(rpm_max[0]) + Convert.ToDouble(rpm_max[2]) * Convert.ToDouble(rpm_max[1]); // With maximum limits.
            _idleRpm  = Convert.ToDouble(rpm_idle[0]) + Convert.ToDouble(rpm_idle[1]);
            _idleRpm /= 2.0;

            _inertia = scanner.TryGetDouble("EngineInertia");

            // TODO: add more data like cooling, radiator, etc.

            // Engine modes.

            string[] mode_range   = scanner.TryGetData("Main", "EngineBoostRange");
            string[] mode_effects = scanner.TryGetData("Main", "BoostEffects");

            // Is there any EngineBoost defined?
            if (mode_effects.Length == 3)
            {
                modes       = (int)Convert.ToDouble(mode_range[2]);
                mode_rpm    = Convert.ToDouble(mode_effects[0]);
                mode_fuel   = Convert.ToDouble(mode_effects[1]);
                mode_wear   = Convert.ToDouble(mode_effects[2]);
                mode_torque = scanner.TryGetDouble("BoostTorque");
                mode_power  = scanner.TryGetDouble("BoostPower");
            }
            else
            {
                modes = 1;
            }

            // RAM
            string[] ram_effects = scanner.TryGetData("Main", "RamEffects");
            if (ram_effects.Length == 4)
            {
                ram_torque = Convert.ToDouble(ram_effects[0]);
                ram_power  = Convert.ToDouble(ram_effects[1]);
                ram_fuel   = Convert.ToDouble(ram_effects[2]);
                ram_wear   = Convert.ToDouble(ram_effects[3]);
            }

            _maxRpmMode  = new Dictionary <int, double>();
            _engineModes = new Dictionary <int, string>();
            for (int i = 1; i <= modes; i++)
            {
                _engineModes.Add(i, "Mode " + i);
                _maxRpmMode.Add(i, mode_rpm * i + MaxRPM);
            }
        }
Example #7
0
 public rFactor2Mod(MAS2File m)
 {
     this.MASFile = m;
 }
Example #8
0
 public rFactor2Car(string veh)
 {
     masfile = rFactor2.Garage.Files.SearchFile(veh);
     Scanned = false;
 }