/**
         * Returns all available SimuatorOptions.
         */
        public static List <SimulatorOption> GetAllSimulatorOptions()
        {
            if (instance == null)
            {
                instance = new SimulatorOptions();
            }

            return(instance.simOptions);
        }
        /**
         * Returns an option by searching for its value.
         */
        public static SimulatorOption GetOptionByVal(int val)
        {
            if (instance == null)
            {
                instance = new SimulatorOptions();
            }

            foreach (SimulatorOption option in instance.simOptions)
            {
                if (option.GetValue() == val)
                {
                    return(option);
                }
            }

            return(null);
        }
        /**
         * Returns the available simulator options in the current PC.
         */
        public static List <SimulatorOption> GetSimOptionsInPC()
        {
            if (instance == null)
            {
                instance = new SimulatorOptions();
            }

            if (instance.simOptionsInPC != null)
            {
                return(instance.simOptionsInPC);
            }

            instance.simOptionsInPC = new List <SimulatorOption>();

            foreach (SimulatorOption simOption in GetAllSimulatorOptions())
            {
                if (simOption.GetSimPath() != null && !simOption.GetSimPath().Equals(""))
                {
                    instance.simOptionsInPC.Add(simOption);
                }
            }

            return(instance.simOptionsInPC);
        }
        public SimulatorOptions()
        {
            instance = this;

            InitializeOptions();
        }