/// <summary>
        /// Lädt die TechTree-Daten.
        /// </summary>
        /// <param name="buffer">Der Datenpuffer.</param>
        /// <param name="readTreeOnly">Gibt an, ob nur die Baumdaten (und nicht auch das Design) geladen werden sollen.</param>
        public TechTreeNew ReadData(RAMBuffer buffer, bool readTreeOnly)
        {
            // Versionsbyte lesen
            byte version = buffer.ReadByte();

            if (version > NEW_TECH_TREE_VERSION)
            {
                throw new Exception("This file was created with a newer version of this program. Please consider updating.");
            }

            // Stammelemente lesen
            short parentCount = buffer.ReadShort();

            ParentElements = new List <TechTreeElement>();
            for (int i = 0; i < parentCount; ++i)
            {
                ParentElements.Add(new TechTreeElement().ReadData(buffer, version));
            }

            // Design lesen
            if (!readTreeOnly)
            {
                DesignData = new TechTreeDesign().ReadData(buffer);
            }

            return(this);
        }
Beispiel #2
0
        /// <summary>
        /// Lädt die TechTree-Daten.
        /// </summary>
        /// <param name="buffer">Der Datenpuffer.</param>
        /// <param name="readTreeOnly">Gibt an, ob nur die Baumdaten (und nicht auch das Design) geladen werden sollen.</param>
        public void ReadData(RAMBuffer buffer, bool readTreeOnly)
        {
            // Stammelemente lesen
            short parentCount = buffer.ReadShort();
            ParentElements = new List<TechTreeElement>();
            for(int i = 0; i < parentCount; ++i)
                ParentElements.Add(new TechTreeElement().ReadDataInline(buffer));

            // Design lesen
            if(!readTreeOnly)
            {
                // Nur wenn vorhanden, um Kompatibilität zu älteren Dateien zu erhalten
                DesignData = new TechTreeDesign();
                if(buffer.Position < buffer.Length)
                    DesignData.ReadData(buffer);
            }
        }