public GraphicDelta ReadData(RAMBuffer buffer) { GraphicID = buffer.ReadShort(); Unknown1 = buffer.ReadShort(); Unknown2 = buffer.ReadShort(); Unknown3 = buffer.ReadShort(); DirectionX = buffer.ReadShort(); DirectionY = buffer.ReadShort(); Unknown4 = buffer.ReadShort(); Unknown5 = buffer.ReadShort(); return(this); }
/// <summary> /// Reads the data element from the given buffer. /// </summary> /// <param name="buffer">The buffer where the data element should be deserialized from.</param> public PlayerDiplomacyVariousEntry ReadData(RAMBuffer buffer) { PlayerName = buffer.ReadString(buffer.ReadUShort()); InitialCameraX = buffer.ReadFloat(); InitialCameraY = buffer.ReadFloat(); UnknownX = buffer.ReadShort(); UnknownY = buffer.ReadShort(); AlliedVictory = buffer.ReadByte(); ushort playerDiplomacyCount = buffer.ReadUShort(); Diplomacy1 = new List <DiplomacyTypes1>(playerDiplomacyCount); for (int i = 0; i < playerDiplomacyCount; i++) { Diplomacy1.Add((DiplomacyTypes1)buffer.ReadByte()); } Diplomacy2 = new List <DiplomacyTypes2>(playerDiplomacyCount); for (int i = 0; i < playerDiplomacyCount; i++) { Diplomacy2.Add((DiplomacyTypes2)buffer.ReadUInteger()); } Color = buffer.ReadUInteger(); Unknown1 = buffer.ReadFloat(); Unknown3Count = buffer.ReadUShort(); if (Unknown1 == 2) { Unknown2 = new List <byte>(8); for (int i = 0; i < 8; i++) { Unknown2.Add(buffer.ReadByte()); } } Unknown3 = new List <byte>(Unknown3Count * 44); for (int i = 0; i < Unknown3Count * 44; i++) { Unknown3.Add(buffer.ReadByte()); } Unknown4 = new List <byte>(7); for (int i = 0; i < 7; i++) { Unknown4.Add(buffer.ReadByte()); } Unknown5 = buffer.ReadInteger(); return(this); }
private void _saveSimulationButton_Click(object sender, RoutedEventArgs e) { // Show dialog SaveFileDialog dialog = new SaveFileDialog { Filter = "Simulation files (*.balancingsim)|*.balancingsim", Title = "Save simulation..." }; if (!(dialog.ShowDialog() ?? false)) { return; } // Create buffer RAMBuffer buffer = new RAMBuffer(); // Write version buffer.WriteInteger(Version); // Write civ IDs buffer.WriteShort((short)(_civ1ComboBox.SelectedValue ?? (short)-1)); buffer.WriteShort((short)(_civ2ComboBox.SelectedValue ?? (short)-1)); // Run through techs and write IDs of checked ones var res1 = Researches1.Where(r => r.Checked).Select(r => r.Id).ToList(); buffer.WriteInteger(res1.Count); res1.ForEach(buffer.WriteShort); var res2 = Researches2.Where(r => r.Checked).Select(r => r.Id).ToList(); buffer.WriteInteger(res2.Count); res2.ForEach(buffer.WriteShort); // Write duels buffer.WriteInteger(Duels.Count); foreach (var duel in Duels) { buffer.WriteShort(duel.Id1); buffer.WriteShort(duel.Id2); } // Save try { buffer.Save(dialog.FileName); } catch (IOException ex) { // Error MessageBox.Show($"Unable to save simulation data: {ex.Message}"); } }
public Graphic ReadData(RAMBuffer buffer) { Name1 = buffer.ReadString(21); Name2 = buffer.ReadString(13); SLP = buffer.ReadInteger(); Unknown1 = buffer.ReadByte(); Unknown2 = buffer.ReadByte(); Layer = buffer.ReadByte(); PlayerColor = buffer.ReadByte(); Rainbow = buffer.ReadByte(); Replay = buffer.ReadByte(); Coordinates = new List <short>(4); for (int i = 0; i < 4; ++i) { Coordinates.Add(buffer.ReadShort()); } int deltaCount = buffer.ReadUShort(); SoundID = buffer.ReadShort(); AttackSoundUsed = buffer.ReadByte(); FrameCount = buffer.ReadUShort(); AngleCount = buffer.ReadUShort(); NewSpeed = buffer.ReadFloat(); FrameRate = buffer.ReadFloat(); ReplayDelay = buffer.ReadFloat(); SequenceType = buffer.ReadByte(); ID = buffer.ReadShort(); MirroringMode = buffer.ReadByte(); Unknown3 = buffer.ReadByte(); Deltas = new List <GraphicDelta>(deltaCount); for (int i = 0; i < deltaCount; ++i) { Deltas.Add(new GraphicDelta().ReadData(buffer)); } if (AttackSoundUsed != 0) { AttackSounds = new List <GraphicAttackSound>(AngleCount); for (int i = 0; i < AngleCount; ++i) { AttackSounds.Add(new GraphicAttackSound().ReadData(buffer)); } } return(this); }
/// <summary> /// Reads the data element from the given buffer. /// </summary> /// <param name="buffer">The buffer where the data element should be deserialized from.</param> public UnitEntry ReadData(RAMBuffer buffer) { PositionX = buffer.ReadFloat(); PositionY = buffer.ReadFloat(); PositionZ = buffer.ReadFloat(); Id = buffer.ReadUInteger(); UnitId = buffer.ReadUShort(); State = buffer.ReadByte(); Rotation = buffer.ReadFloat(); Frame = buffer.ReadUShort(); GarrisonId = buffer.ReadInteger(); return(this); }
public void WriteData(RAMBuffer buffer) { buffer.WriteShort(WalkingGraphic1); buffer.WriteShort(WalkingGraphic2); buffer.WriteFloat(RotationSpeed); buffer.WriteByte(Unknown11); buffer.WriteShort(TrackingUnit); buffer.WriteByte(TrackingUnitUsed); buffer.WriteFloat(TrackingUnitDensity); buffer.WriteByte(Unknown16); AssertListLength(Unknown16B, 5); Unknown16B.ForEach(e => buffer.WriteInteger(e)); }
public Bird ReadData(RAMBuffer buffer) { SheepConversion = buffer.ReadShort(); SearchRadius = buffer.ReadFloat(); WorkRate = buffer.ReadFloat(); DropSite1 = buffer.ReadShort(); DropSite2 = buffer.ReadShort(); VillagerMode = buffer.ReadByte(); AttackSound = buffer.ReadShort(); MoveSound = buffer.ReadShort(); AnimalMode = buffer.ReadByte(); return(this); }
public PlayerColor ReadData(RAMBuffer buffer) { ID = buffer.ReadInteger(); Palette = buffer.ReadInteger(); Color = buffer.ReadInteger(); Unknown1 = buffer.ReadInteger(); Unknown2 = buffer.ReadInteger(); MinimapColor = buffer.ReadInteger(); Unknown3 = buffer.ReadInteger(); Unknown4 = buffer.ReadInteger(); StatisticsText = buffer.ReadInteger(); return(this); }
public Techage ReadData(RAMBuffer buffer) { Name = buffer.ReadString(31); int effectCount = buffer.ReadUShort(); Effects = new List <TechageEffect>(effectCount); for (int i = 0; i < effectCount; ++i) { Effects.Add(new TechageEffect().ReadData(buffer)); } return(this); }
/// <summary> /// Reads the data element from the given buffer. /// </summary> /// <param name="buffer">The buffer where the data element should be deserialized from.</param> public PlayerDiplomacyVarious ReadData(RAMBuffer buffer) { UnknownPlayerCount = buffer.ReadUInteger(); PlayerDiplomacyVariousEntries = new List <PlayerDiplomacyVariousEntry>(8); for (int i = 0; i < 8; i++) { PlayerDiplomacyVariousEntries.Add(new PlayerDiplomacyVariousEntry().ReadData(buffer)); } Unknown = buffer.ReadULong(); return(this); }
public TechTreeAge ReadData(RAMBuffer buffer) { ID = buffer.ReadInteger(); Unknown2 = buffer.ReadByte(); byte buildingCount = buffer.ReadByte(); Buildings = new List <int>(buildingCount); for (int i = 0; i < buildingCount; ++i) { Buildings.Add(buffer.ReadInteger()); } byte unitCount = buffer.ReadByte(); Units = new List <int>(unitCount); for (int i = 0; i < unitCount; ++i) { Units.Add(buffer.ReadInteger()); } byte researchCount = buffer.ReadByte(); Researches = new List <int>(researchCount); for (int i = 0; i < researchCount; ++i) { Researches.Add(buffer.ReadInteger()); } Common = new Common().ReadData(buffer); SlotsUsed = buffer.ReadByte(); Unknown4 = new List <byte>(10); for (int i = 0; i < 10; ++i) { Unknown4.Add(buffer.ReadByte()); } Unknown5 = new List <byte>(10); for (int i = 0; i < 10; ++i) { Unknown5.Add(buffer.ReadByte()); } Unknown6 = buffer.ReadByte(); LineMode = buffer.ReadInteger(); return(this); }
public BuildingConnection ReadData(RAMBuffer buffer) { ID = buffer.ReadInteger(); Unknown1 = buffer.ReadByte(); byte buildingCount = buffer.ReadByte(); Buildings = new List <int>(buildingCount); for (int i = 0; i < buildingCount; ++i) { Buildings.Add(buffer.ReadInteger()); } byte unitCount = buffer.ReadByte(); Units = new List <int>(unitCount); for (int i = 0; i < unitCount; ++i) { Units.Add(buffer.ReadInteger()); } byte researchCount = buffer.ReadByte(); Researches = new List <int>(researchCount); for (int i = 0; i < researchCount; ++i) { Researches.Add(buffer.ReadInteger()); } Common = new Common().ReadData(buffer); LocationInAge = buffer.ReadByte(); UnitsTechsTotal = new List <byte>(5); for (int i = 0; i < 5; ++i) { UnitsTechsTotal.Add(buffer.ReadByte()); } UnitsTechsFirst = new List <byte>(5); for (int i = 0; i < 5; ++i) { UnitsTechsFirst.Add(buffer.ReadByte()); } LineMode = buffer.ReadInteger(); EnablingResearch = buffer.ReadInteger(); return(this); }
/// <summary> /// Schreibt die Daten in den gegebenen Puffer. /// </summary> /// <param name="buffer">Der Puffer, in den die Daten geschrieben werden sollen.</param> public void WriteData(RAMBuffer buffer) { // Benutzung schreiben buffer.WriteByte(Used ? (byte)1 : (byte)0); // Durch SLPs iterieren und schreiben buffer.WriteByte((byte)SailSlps.Count); foreach (var currSlp in SailSlps) { // Schreiben buffer.WriteByte((byte)currSlp.Key); currSlp.Value.writeData(); buffer.Write((RAMBuffer)currSlp.Value.DataBuffer); } }
/// <summary> /// Schreibt die TechTree-Daten. /// </summary> /// <param name="buffer">Der Datenpuffer.</param> /// <param name="writeTreeOnly">Gibt an, ob nur die Baumdaten (und nicht auch das Design) geschrieben werden sollen.</param> public void WriteData(RAMBuffer buffer, bool writeTreeOnly) { // Version schreiben buffer.WriteByte(NEW_TECH_TREE_VERSION); // Stammelemente schreiben buffer.WriteShort((short)ParentElements.Count); ParentElements.ForEach(p => p.WriteData(buffer)); // Designdaten schreiben if (!writeTreeOnly) { DesignData.WriteData(buffer); } }
/// <summary> /// Writes the data element into the given buffer (at its current position). /// </summary> /// <param name="buffer">The buffer where the data element should be deserialized into.</param> public void WriteData(RAMBuffer buffer) { buffer.WriteUInteger(0xFFFFFF9D); buffer.WriteUInteger(ConquestRequired); buffer.WriteUInteger(Unused1); buffer.WriteUInteger(NumberOfRelicsRequired); buffer.WriteUInteger(Unused2); buffer.WriteUInteger(ExploredPercentRequired); buffer.WriteUInteger(Unused3); buffer.WriteUInteger(AllCustomConditionsRequired); buffer.WriteUInteger((uint)Mode); buffer.WriteUInteger(ScoreRequired); buffer.WriteUInteger(TimeRequired); }
/// <summary> /// Writes the data element into the given buffer (at its current position). /// </summary> /// <param name="buffer">The buffer where the data element should be deserialized into.</param> public void WriteData(RAMBuffer buffer) { buffer.WriteUInteger((uint)Type); buffer.WriteUInteger(0x00000017); buffer.WriteInteger(AiGoal); buffer.WriteInteger(Amount); buffer.WriteInteger(ResourceId); buffer.WriteInteger(Diplomacy); buffer.WriteInteger(SelectedUnitInstanceIds.Count); buffer.WriteInteger(LocationUnitInstanceId); buffer.WriteInteger(UnitType); buffer.WriteInteger(PlayerSource); buffer.WriteInteger(PlayerTarget); buffer.WriteInteger(ResearchId); buffer.WriteInteger(StringId); buffer.WriteInteger(SoundId); buffer.WriteInteger(DisplayTime); buffer.WriteInteger(TriggerIndex); buffer.WriteInteger(LocationX); buffer.WriteInteger(LocationY); buffer.WriteInteger(AreaBottomLeftX); buffer.WriteInteger(AreaBottomLeftY); buffer.WriteInteger(AreaTopRightX); buffer.WriteInteger(AreaTopRightY); buffer.WriteInteger(UnitClass); buffer.WriteInteger(UnitType2); buffer.WriteInteger(InstructionPanel); if (Text.Length == 0 || Text.Last() != '\0') { Text += '\0'; } buffer.WriteInteger(Text.Length); buffer.WriteString(Text); if (SoundFileName.Length == 0 || SoundFileName.Last() != '\0') { SoundFileName += '\0'; } buffer.WriteInteger(SoundFileName.Length); buffer.WriteString(SoundFileName); SelectedUnitInstanceIds.ForEach(u => buffer.WriteUInteger(u)); }
/// <summary> /// Reads the data element from the given buffer. /// </summary> /// <param name="buffer">The buffer where the data element should be deserialized from.</param> public Effect ReadData(RAMBuffer buffer) { Type = (EffectTypes)buffer.ReadUInteger(); ScenarioDataElementTools.AssertTrue(buffer.ReadUInteger() == 0x00000017); AiGoal = buffer.ReadInteger(); Amount = buffer.ReadInteger(); ResourceId = buffer.ReadInteger(); Diplomacy = buffer.ReadInteger(); int selectedUnitsCount = buffer.ReadInteger(); if (selectedUnitsCount < 0) { selectedUnitsCount = 0; } LocationUnitInstanceId = buffer.ReadInteger(); UnitType = buffer.ReadInteger(); PlayerSource = buffer.ReadInteger(); PlayerTarget = buffer.ReadInteger(); ResearchId = buffer.ReadInteger(); StringId = buffer.ReadInteger(); SoundId = buffer.ReadInteger(); DisplayTime = buffer.ReadInteger(); TriggerIndex = buffer.ReadInteger(); LocationX = buffer.ReadInteger(); LocationY = buffer.ReadInteger(); AreaBottomLeftX = buffer.ReadInteger(); AreaBottomLeftY = buffer.ReadInteger(); AreaTopRightX = buffer.ReadInteger(); AreaTopRightY = buffer.ReadInteger(); UnitClass = buffer.ReadInteger(); UnitType2 = buffer.ReadInteger(); InstructionPanel = buffer.ReadInteger(); Text = buffer.ReadString(buffer.ReadInteger()); SoundFileName = buffer.ReadString(buffer.ReadInteger()); SelectedUnitInstanceIds = new List <uint>(selectedUnitsCount); for (int i = 0; i < selectedUnitsCount; i++) { SelectedUnitInstanceIds.Add(buffer.ReadUInteger()); } return(this); }
public ResolutionConfiguration ReadData(RAMBuffer buffer, byte version) { LegendFrameIndex = buffer.ReadInteger(); AgeFrameIndex = buffer.ReadInteger(); TileFrameIndex = buffer.ReadInteger(); LegendDisableSlpDrawPosition = new Point(buffer.ReadInteger(), buffer.ReadInteger()); CivBonusLabelRectangle = new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger()); CivSelectionComboBoxRectangle = new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger()); CivSelectionTitleLabelRectangle = new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger()); LegendNotResearchedLabelRectangle = new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger()); LegendResearchedLabelRectangle = new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger()); if (version >= 1) { int legendNodeTypeLabelRectangleCount = buffer.ReadInteger(); LegendNodeTypeLabelRectangles = new List <Rectangle>(legendNodeTypeLabelRectangleCount); for (int i = 0; i < legendNodeTypeLabelRectangleCount; i++) { LegendNodeTypeLabelRectangles.Add(new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger())); } } else { LegendNodeTypeLabelRectangles = new List <Rectangle>(3); for (int i = 0; i < 3; ++i) { LegendNodeTypeLabelRectangles.Add(new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger())); } } LegendDisabledLabelRectangle = new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger()); int count = buffer.ReadInteger(); AgeLabelRectangles = new List <Rectangle>(count); for (int i = 0; i < count; ++i) { AgeLabelRectangles.Add(new Rectangle(buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger(), buffer.ReadInteger())); } count = buffer.ReadInteger(); VerticalDrawOffsets = new List <int>(count); for (int i = 0; i < count; ++i) { VerticalDrawOffsets.Add(buffer.ReadInteger()); } return(this); }
public UnitHeader ReadData(RAMBuffer buffer) { Exists = buffer.ReadByte(); if (Exists != 0) { int commandCount = buffer.ReadUShort(); Commands = new List <UnitCommand>(commandCount); for (int i = 0; i < commandCount; ++i) { Commands.Add(new UnitCommand().ReadData(buffer)); } } return(this); }
public Sound ReadData(RAMBuffer buffer) { ID = buffer.ReadShort(); Unknown1 = buffer.ReadShort(); short count = buffer.ReadShort(); Unknown2 = buffer.ReadInteger(); Items = new List <SoundItem>(count); for (int i = 0; i < count; ++i) { Items.Add(new SoundItem().ReadData(buffer)); } return(this); }
public void WriteData(RAMBuffer buffer) { buffer.WriteInteger(Unit); buffer.WriteInteger(HostTerrain); buffer.WriteByte(GroupPlacing); buffer.WriteByte(ScaleFlag); buffer.WriteShort(Padding1); buffer.WriteInteger(ObjectsPerGroup); buffer.WriteInteger(Fluctuation); buffer.WriteInteger(GroupsPerPlayer); buffer.WriteInteger(GroupArea); buffer.WriteInteger(PlayerID); buffer.WriteInteger(SetPlaceForAllPlayers); buffer.WriteInteger(MinDistanceToPlayers); buffer.WriteInteger(MaxDistanceToPlayers); }
public TerrainRestriction ReadData(RAMBuffer buffer) { TerrainAccessibleFlags = new List <float>(TerrainCount); for (int i = 0; i < TerrainCount; ++i) { TerrainAccessibleFlags.Add(buffer.ReadFloat()); } TerrainPassGraphics = new List <TerrainPassGraphic>(TerrainCount); for (int i = 0; i < TerrainCount; ++i) { TerrainPassGraphics.Add(new TerrainPassGraphic().ReadData(buffer)); } return(this); }
public TechTreeElement ReadData(RAMBuffer buffer, byte version = NEW_TECH_TREE_VERSION) { // Eigenschaften lesen ElementType = (ItemType)buffer.ReadByte(); ElementObjectID = buffer.ReadShort(); Age = buffer.ReadByte(); RenderMode = (ItemRenderMode)buffer.ReadByte(); // Deaktivierende Kulturen lesen byte disableCivCount = buffer.ReadByte(); DisableCivs = new List <byte>(); for (int i = 0; i < disableCivCount; ++i) { DisableCivs.Add(buffer.ReadByte()); } // Kindelemente lesen short childrenCount = buffer.ReadShort(); Children = new List <TechTreeElement>(); for (int i = 0; i < childrenCount; ++i) { Children.Add(new TechTreeElement().ReadData(buffer, version)); } // Benötigte Elemente lesen short requireCount = buffer.ReadShort(); RequiredElements = new List <Tuple <ItemType, short> >(); for (int i = 0; i < requireCount; ++i) { RequiredElements.Add(new Tuple <ItemType, short>((ItemType)buffer.ReadByte(), buffer.ReadShort())); } // Node-Hintergrund lesen if (version >= 1) { NodeTypeIndex = buffer.ReadInteger(); } else { NodeTypeIndex = (int)ElementType; } return(this); }
/// <summary> /// Writes the data element into the given buffer (at its current position). /// </summary> /// <param name="buffer">The buffer where the data element should be deserialized into.</param> public void WriteData(RAMBuffer buffer) { buffer.WriteUInteger(0xFFFFFF9D); buffer.WriteInteger(Player1CameraY); buffer.WriteInteger(Player1CameraX); buffer.WriteInteger(AiMapCode); buffer.WriteUInteger(MapWidth); buffer.WriteUInteger(MapHeight); ScenarioDataElementTools.AssertListLength(Tiles, (int)MapWidth); Tiles.ForEach(i => { ScenarioDataElementTools.AssertListLength(i, (int)MapHeight); i.ForEach(j => j.WriteData(buffer)); }); }
public Type50 ReadData(RAMBuffer buffer) { DefaultArmor = buffer.ReadShort(); ushort attackCount = buffer.ReadUShort(); Attacks = new Dictionary <ushort, ushort>(attackCount); for (int i = 0; i < attackCount; ++i) { Attacks[buffer.ReadUShort()] = buffer.ReadUShort(); } ushort armourCount = buffer.ReadUShort(); Armors = new Dictionary <ushort, ushort>(armourCount); for (int i = 0; i < armourCount; ++i) { Armors[buffer.ReadUShort()] = buffer.ReadUShort(); } TerrainRestrictionForDamageMultiplying = buffer.ReadShort(); MaxRange = buffer.ReadFloat(); BlastRadius = buffer.ReadFloat(); ReloadTime = buffer.ReadFloat(); ProjectileUnitID = buffer.ReadShort(); ProjectileAccuracyPercent = buffer.ReadShort(); TowerMode = buffer.ReadByte(); ProjectileFrameDelay = buffer.ReadShort(); ProjectileGraphicDisplacement = new List <float>(3); for (int i = 0; i < 3; ++i) { ProjectileGraphicDisplacement.Add(buffer.ReadFloat()); } BlastLevel = buffer.ReadByte(); MinRange = buffer.ReadFloat(); ProjectileDispersion = buffer.ReadFloat(); AttackGraphic = buffer.ReadShort(); DisplayedMeleeArmor = buffer.ReadShort(); DisplayedAttack = buffer.ReadShort(); DisplayedRange = buffer.ReadFloat(); DisplayedReloadTime = buffer.ReadFloat(); return(this); }
/// <summary> /// Writes the data element into the given buffer (at its current position). /// </summary> /// <param name="buffer">The buffer where the data element should be deserialized into.</param> public void WriteData(RAMBuffer buffer) { buffer.WriteInteger(Files.Count > 0 ? 1 : 0); buffer.WriteUInteger(EsOnlyDataIncluded); if (EsOnlyDataIncluded > 0) { ScenarioDataElementTools.AssertListLength(EsOnlyData, 396); EsOnlyData.ForEach(b => buffer.WriteByte(b)); } if (Files.Count > 0) { buffer.WriteInteger(Files.Count); Files.ForEach(f => f.WriteData(buffer)); } }
/// <summary> /// Konstruktor. Liest die Daten aus dem gegebenen Puffer. /// </summary> /// <param name="buffer">Der Puffer, aus dem die Segeldaten gelesen werden sollen.</param> public Sail(RAMBuffer buffer) : this() { // Benutzung lesen Used = (buffer.ReadByte() == 1); // SLPs lesen int count = buffer.ReadByte(); for (int i = 0; i < count; ++i) { // Lesen ShipFile.Civ currCiv = (ShipFile.Civ)buffer.ReadByte(); SLPFile currSlp = new SLPFile(buffer); SailSlps.Add(currCiv, currSlp); } }
public MapInfo2 ReadData(RAMBuffer buffer) { BorderSouthWest = buffer.ReadInteger(); BorderNorthWest = buffer.ReadInteger(); BorderNorthEast = buffer.ReadInteger(); BorderSouthEast = buffer.ReadInteger(); BorderUsage = buffer.ReadInteger(); WaterShape = buffer.ReadInteger(); BaseTerrain = buffer.ReadInteger(); LandCoverage = buffer.ReadInteger(); UnusedID = buffer.ReadInteger(); MapLandsCount = buffer.ReadInteger(); MapLandsPtr = buffer.ReadInteger(); MapLands = new List <MapLand>(MapLandsCount); for (int i = 0; i < MapLandsCount; ++i) { MapLands.Add(new MapLand().ReadData(buffer)); } MapTerrainsCount = buffer.ReadInteger(); MapTerrainsPtr = buffer.ReadInteger(); MapTerrains = new List <MapTerrain>(MapTerrainsCount); for (int i = 0; i < MapTerrainsCount; ++i) { MapTerrains.Add(new MapTerrain().ReadData(buffer)); } MapUnitsCount = buffer.ReadInteger(); MapUnitsPtr = buffer.ReadInteger(); MapUnits = new List <MapUnit>(MapUnitsCount); for (int i = 0; i < MapUnitsCount; ++i) { MapUnits.Add(new MapUnit().ReadData(buffer)); } MapElevationsCount = buffer.ReadInteger(); MapElevationsPtr = buffer.ReadInteger(); MapElevations = new List <MapElevation>(MapElevationsCount); for (int i = 0; i < MapElevationsCount; ++i) { MapElevations.Add(new MapElevation().ReadData(buffer)); } return(this); }
public TerrainBorder ReadData(RAMBuffer buffer) { Enabled = buffer.ReadByte(); Random = buffer.ReadByte(); Name = buffer.ReadString(13); Name2 = buffer.ReadString(13); SLP = buffer.ReadInteger(); ShapePtr = buffer.ReadInteger(); SoundID = buffer.ReadInteger(); Colors = new List <byte>(3); for (int i = 0; i < 3; ++i) { Colors.Add(buffer.ReadByte()); } IsAnimated = buffer.ReadByte(); AnimationFrames = buffer.ReadShort(); PauseFames = buffer.ReadShort(); Interval = buffer.ReadFloat(); PauseBetweenLoops = buffer.ReadFloat(); Frame = buffer.ReadShort(); DrawFrame = buffer.ReadShort(); AnimateLast = buffer.ReadFloat(); FrameChanged = buffer.ReadByte(); Drawn = buffer.ReadByte(); Borders = new List <List <FrameData> >(19); for (int i = 0; i < 19; ++i) { List <FrameData> frameData = new List <FrameData>(12); for (int j = 0; j < 12; ++j) { frameData.Add(new FrameData().ReadData(buffer)); } Borders.Add(frameData); } DrawTerrain = buffer.ReadShort(); UnderlayTerrain = buffer.ReadShort(); BorderStyle = buffer.ReadShort(); return(this); }
public Common ReadData(RAMBuffer buffer) { SlotsUsed = buffer.ReadInteger(); UnitResearch = new List <int>(10); for (int i = 0; i < 10; ++i) { UnitResearch.Add(buffer.ReadInteger()); } Mode = new List <int>(10); for (int i = 0; i < 10; ++i) { Mode.Add(buffer.ReadInteger()); } return(this); }