Esempio n. 1
0
        /// <summary>Creates a new Hovertank game.</summary>
        /// <param name="sys">The system.</param>
        public Hovertank(Sys sys)
        {
            _sfxPlayer = sys.SfxPlayer;
            _display = new Display();
            _picCache = new PicCache(NUMCHUNKS);

            _sys = sys;

            // as: string replacements
            _strings = sys.Strings;
            _strings.Initialise(this);

            // If the config file GAME.HOV exists use it for game modifications
            string modFileName = "GAME." + EXTENSION;
            if(sys.FileExists(modFileName))
            {
                Config config = new Config(Encoding.ASCII);
                config.Read(new MemoryStream(sys.FileReadAllBytes(modFileName)));

                if(string.CompareOrdinal(config.ID, "Hovertank3D.Game") == 0)
                {
                    // as: string replacements
                    for(int i = 0; i < Strings.Identifiers.Length; i++)
                    {
                        string identifier = Strings.Identifiers[i];
                        string replacementText = config.GetString(identifier, null);
                        if(replacementText != null)
                            _strings[i] = replacementText;
                   }

                    // Level time limits
                    for(int i = 0; i < 20; i++)
                    {
                        levmin[i] = (short) config.GetInt32("levmin" + i, 0, 9, levmin[i]);
                        levsec[i] = (short) config.GetInt32("levsec" + i, 0, 59, levsec[i]);
                    }

                    // Warp colors
                    for(int i = 0; i < cyclecolors.Length; i++)
                        cyclecolors[i] = (short) config.GetInt32("cyclecolors" + i, 0, 15, cyclecolors[i]);

                    barColor = (byte) config.GetInt32("barColor", 0, 15, 15);
                }
                else
                {
                    _sys.Log("Unexpected configuration id '" + config.ID + "'!");
                }
            }

            HovDrawInitialise();
            HovLoopInitialise();
        }
 /// <summary>Creates a new GameConfig.</summary>
 public GameConfig()
 {
     _config = new Config(Encoding.ASCII);
 }
Esempio n. 3
0
            /// <summary>Runs the parser.</summary>
            /// <param name="config">The config.</param>
            /// <param name="stream">The stream containing the configuration data.</param>
            public void Run(Config config, Stream stream)
            {
                _config = config;
                _streamReader = new StreamReader(stream, config._encoding);
                _lineNumber = 0;

                if(!ReadLine())
                    throw new Exception("Unexpected end of stream, expecting configuration version identifier!");

                config._id = _line;
                config._options.Clear();

                _optionValue = new StringBuilder();

                try
                {
                    while(ReadLine())
                    {
                        if(_line.Length == 0)
                            continue; // Empty line

                        // Comment
                        if(_line.StartsWith("//", StringComparison.Ordinal))
                            continue;

                        _optionIdentifier = ParseIdentifier();

                        string value = ParseValue();

                        _config.SetString(_optionIdentifier, value);
                    }
                }
                catch(Exception ex)
                {
                    throw new Exception(ex.Message + ", at line " + _lineNumber, ex);
                }
            }