public void WriteData(RAMBuffer buffer) { buffer.WriteInteger(LegendFrameIndex); buffer.WriteInteger(AgeFrameIndex); buffer.WriteInteger(TileFrameIndex); buffer.WriteInteger(LegendDisableSlpDrawPosition.X); buffer.WriteInteger(LegendDisableSlpDrawPosition.Y); WriteRectangle(CivBonusLabelRectangle, buffer); WriteRectangle(CivSelectionComboBoxRectangle, buffer); WriteRectangle(CivSelectionTitleLabelRectangle, buffer); WriteRectangle(LegendNotResearchedLabelRectangle, buffer); WriteRectangle(LegendResearchedLabelRectangle, buffer); IGenieDataElement.AssertTrue(LegendNodeTypeLabelRectangles.Count >= 3); buffer.WriteInteger(LegendNodeTypeLabelRectangles.Count); LegendNodeTypeLabelRectangles.ForEach(r => WriteRectangle(r, buffer)); WriteRectangle(LegendDisabledLabelRectangle, buffer); IGenieDataElement.AssertTrue(AgeLabelRectangles.Count >= 3); buffer.WriteInteger(AgeLabelRectangles.Count); AgeLabelRectangles.ForEach(r => WriteRectangle(r, buffer)); IGenieDataElement.AssertTrue(VerticalDrawOffsets.Count >= 3); buffer.WriteInteger(VerticalDrawOffsets.Count); VerticalDrawOffsets.ForEach(vdo => buffer.WriteInteger(vdo)); }
public void WriteData(RAMBuffer buffer) { // Version schreiben buffer.WriteByte(NEW_TECH_TREE_DESIGN_VERSION); // SLP-Daten buffer.WriteInteger(NodeSlpFileName.Length); buffer.WriteString(NodeSlpFileName); buffer.WriteInteger(NodeSlpId); buffer.WriteInteger(ScrollSlpFileName.Length); buffer.WriteString(ScrollSlpFileName); buffer.WriteInteger(ScrollSlpId); buffer.WriteInteger(TileSlpFileName.Length); buffer.WriteString(TileSlpFileName); buffer.WriteInteger(TileSlpId); buffer.WriteInteger(LegendAgesSlpFileName.Length); buffer.WriteString(LegendAgesSlpFileName); buffer.WriteInteger(LegendAgesSlpId); buffer.WriteInteger(LegendDisableSlpFileName.Length); buffer.WriteString(LegendDisableSlpFileName); buffer.WriteInteger(LegendDisableSlpId); // Scroll-Daten buffer.WriteInteger(MouseScrollArea); buffer.WriteInteger(MouseScrollDelay); buffer.WriteInteger(MouseScrollOffset); buffer.WriteInteger(KeyScrollOffset); // Button-Rechtecke WriteRectangle(CloseButtonRelativeRectangle, buffer); WriteRectangle(ScrollLeftButtonRelativeRectangle, buffer); WriteRectangle(ScrollRightButtonRelativeRectangle, buffer); // Auflösungsdaten buffer.WriteInteger(ResolutionData.Count); foreach (var rd in ResolutionData) { // Daten schreiben buffer.WriteInteger(rd.Key); rd.Value.WriteData(buffer); } ; // Popup-Label-Daten buffer.WriteInteger(PopupLabelDelay); buffer.WriteInteger(PopupLabelWidth); buffer.WriteInteger(PopupInnerPadding); IGenieDataElement.AssertListLength(PopupBoxBevelColorIndices, 6); for (int i = 0; i < 6; ++i) { buffer.WriteByte(PopupBoxBevelColorIndices[i]); } // Node-Daten buffer.WriteByte(NodeFontIndex); IGenieDataElement.AssertTrue(NodeTypes.Count >= 3); buffer.WriteInteger(NodeTypes.Count); NodeTypes.ForEach(n => n.WriteData(buffer)); // Age-Labels buffer.WriteInteger(FirstLineBaseDllId); buffer.WriteInteger(SecondLineDllId); buffer.WriteByte(IncrementSecondLineDllId ? (byte)1 : (byte)0); }