/// <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); }
/// <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); } }