public override void WriteData(RAMBuffer buffer) { buffer.WriteByte(Type); buffer.WriteShort(A); buffer.WriteShort(B); buffer.WriteShort(C); buffer.WriteFloat(D); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteString(FileName, 13); buffer.WriteInteger(ResourceID); buffer.WriteShort(Probability); buffer.WriteShort(Civ); buffer.WriteShort(Unknown1); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(ID); buffer.WriteShort(Unknown1); buffer.WriteShort((short)Items.Count); buffer.WriteInteger(Unknown2); Items.ForEach(e => e.WriteData(buffer)); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(SheepConversion); buffer.WriteFloat(SearchRadius); buffer.WriteFloat(WorkRate); buffer.WriteShort(DropSite1); buffer.WriteShort(DropSite2); buffer.WriteByte(VillagerMode); buffer.WriteShort(AttackSound); buffer.WriteShort(MoveSound); buffer.WriteByte(AnimalMode); }
public override 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 override void WriteData(RAMBuffer buffer) { buffer.WriteByte(One); buffer.WriteString(Name, 20); buffer.WriteUShort((ushort)Resources.Count); buffer.WriteShort(TechTreeID); buffer.WriteShort(TeamBonusID); Resources.ForEach(e => buffer.WriteFloat(e)); buffer.WriteByte(IconSet); buffer.WriteUShort((ushort)UnitPointers.Count); UnitPointers.ForEach(e => buffer.WriteInteger(e)); // Sicherstellen, dass genau jede definierte Einheit einen entsprechenden Pointer hat; hier nur über die Listenlänge, sollte aber die meisten auftretenden Fehler abdecken AssertListLength(Units, UnitPointers.Count(p => p != 0)); foreach(var u in Units) u.Value.WriteData(buffer); }
/// <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) { // Stammelemente schreiben buffer.WriteShort((short)ParentElements.Count); ParentElements.ForEach(p => p.WriteData(buffer)); // Designdaten schreiben if(!writeTreeOnly) DesignData.WriteData(buffer); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(UnitID); buffer.WriteFloat(MisplacementX); buffer.WriteFloat(MisplacementY); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(SoundDelay1); buffer.WriteShort(SoundID1); buffer.WriteShort(SoundDelay2); buffer.WriteShort(SoundID2); buffer.WriteShort(SoundDelay3); buffer.WriteShort(SoundID3); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(GraphicID); buffer.WriteShort(Unknown1); buffer.WriteShort(Unknown2); buffer.WriteShort(Unknown3); buffer.WriteShort(DirectionX); buffer.WriteShort(DirectionY); buffer.WriteShort(Unknown4); buffer.WriteShort(Unknown5); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(One); buffer.WriteShort(ID); buffer.WriteByte(Unknown1); buffer.WriteShort(Type); buffer.WriteShort(ClassID); buffer.WriteShort(UnitID); buffer.WriteShort(TerrainID); buffer.WriteShort(ResourceIn); buffer.WriteShort(ResourceProductivityMultiplier); buffer.WriteShort(ResourceOut); buffer.WriteShort(Resource); buffer.WriteFloat(WorkRateMultiplier); buffer.WriteFloat(ExecutionRadius); buffer.WriteFloat(ExtraRange); buffer.WriteByte(Unknown4); buffer.WriteFloat(Unknown5); buffer.WriteByte(SelectionEnabler); buffer.WriteByte(Unknown7); buffer.WriteShort(PlunderSource); buffer.WriteShort(Unknown9); buffer.WriteByte(SelectionMode); buffer.WriteByte(RightClickMode); buffer.WriteByte(Unknown12); AssertListLength(Graphics, 6); Graphics.ForEach(e => buffer.WriteShort(e)); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteString(Name1, 21); buffer.WriteString(Name2, 13); buffer.WriteInteger(SLP); buffer.WriteByte(Unknown1); buffer.WriteByte(Unknown2); buffer.WriteByte(Layer); buffer.WriteByte(PlayerColor); buffer.WriteByte(Rainbow); buffer.WriteByte(Replay); AssertListLength(Coordinates, 4); Coordinates.ForEach(e => buffer.WriteShort(e)); buffer.WriteUShort((ushort)Deltas.Count); buffer.WriteShort(SoundID); buffer.WriteByte(AttackSoundUsed); buffer.WriteUShort(FrameCount); buffer.WriteUShort(AngleCount); buffer.WriteFloat(NewSpeed); buffer.WriteFloat(FrameRate); buffer.WriteFloat(ReplayDelay); buffer.WriteByte(SequenceType); buffer.WriteShort(ID); buffer.WriteByte(MirroringMode); buffer.WriteByte(Unknown3); Deltas.ForEach(e => e.WriteData(buffer)); if(AttackSoundUsed != 0) { AssertListLength(AttackSounds, AngleCount); AttackSounds.ForEach(e => e.WriteData(buffer)); } }
public override void WriteData(RAMBuffer buffer) { AssertListLength(ResourceCosts, 3); ResourceCosts.ForEach(e => { buffer.WriteShort(e.Type); buffer.WriteShort(e.Amount); buffer.WriteShort(e.Enabled); }); buffer.WriteShort(TrainTime); buffer.WriteShort(TrainLocationID); buffer.WriteByte(ButtonID); buffer.WriteInteger(Unknown26); buffer.WriteInteger(Unknown27); buffer.WriteByte(Unknown28); buffer.WriteByte(HeroMode); buffer.WriteInteger(GarrisonGraphic); buffer.WriteFloat(DuplicatedMissilesMin); buffer.WriteByte(DuplicatedMissilesMax); AssertListLength(MissileSpawningArea, 3); MissileSpawningArea.ForEach(e => buffer.WriteFloat(e)); buffer.WriteInteger(AlternativeProjectileUnit); buffer.WriteInteger(ChargingGraphic); buffer.WriteByte(ChargingMode); buffer.WriteShort(DisplayedPierceArmour); }
public override void WriteData(RAMBuffer buffer) { AssertListLength(RequiredTechs, 6); RequiredTechs.ForEach(e => buffer.WriteShort(e)); AssertListLength(ResourceCosts, 3); ResourceCosts.ForEach(e => { buffer.WriteShort(e.Type); buffer.WriteShort(e.Amount); buffer.WriteByte(e.Enabled); }); buffer.WriteShort(RequiredTechCount); buffer.WriteShort(Civ); buffer.WriteShort(FullTechMode); buffer.WriteShort(ResearchLocation); buffer.WriteUShort(LanguageDLLName1); buffer.WriteUShort(LanguageDLLDescription); buffer.WriteShort(ResearchTime); buffer.WriteShort(TechageID); buffer.WriteShort(Type); buffer.WriteShort(IconID); buffer.WriteByte(ButtonID); buffer.WriteInteger(LanguageDLLHelp); buffer.WriteInteger(LanguageDLLName2); buffer.WriteInteger(Unknown1); buffer.WriteUShort((ushort)Name.Length); buffer.WriteString(Name); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteByte((byte)Type); buffer.WriteUShort((ushort)Name1.Length); buffer.WriteShort(ID1); buffer.WriteUShort(LanguageDLLName); buffer.WriteUShort(LanguageDLLCreation); buffer.WriteShort(Class); buffer.WriteShort(StandingGraphic1); buffer.WriteShort(StandingGraphic2); buffer.WriteShort(DyingGraphic1); buffer.WriteShort(DyingGraphic2); buffer.WriteByte(DeathMode); buffer.WriteShort(HitPoints); buffer.WriteFloat(LineOfSight); buffer.WriteByte(GarrisonCapacity); buffer.WriteFloat(SizeRadius1); buffer.WriteFloat(SizeRadius2); buffer.WriteFloat(HPBarHeight1); buffer.WriteShort(TrainSound1); buffer.WriteShort(TrainSound2); buffer.WriteShort(DeadUnitID); buffer.WriteByte(PlacementMode); buffer.WriteByte(AirMode); buffer.WriteShort(IconID); buffer.WriteByte(HideInEditor); buffer.WriteShort(Unknown1); buffer.WriteByte(Enabled); buffer.WriteByte(Disabled); buffer.WriteShort(PlacementBypassTerrain1); buffer.WriteShort(PlacementBypassTerrain2); buffer.WriteShort(PlacementTerrain1); buffer.WriteShort(PlacementTerrain2); buffer.WriteFloat(EditorRadius1); buffer.WriteFloat(EditorRadius2); buffer.WriteByte(HillMode); buffer.WriteByte(VisibleInFog); buffer.WriteShort(TerrainRestriction); buffer.WriteByte(FlyMode); buffer.WriteShort(ResourceCapacity); buffer.WriteFloat(ResourceDecay); buffer.WriteByte(BlastType); buffer.WriteByte(Unknown2); buffer.WriteByte(InteractionMode); buffer.WriteByte(MinimapMode); buffer.WriteByte(CommandAttribute); buffer.WriteFloat(Unknown3A); buffer.WriteByte(MinimapColor); buffer.WriteInteger(LanguageDLLHelp); buffer.WriteInteger(LanguageDLLHotKeyText); buffer.WriteInteger(HotKey); buffer.WriteByte(Unselectable); buffer.WriteByte(Unknown6); buffer.WriteByte(UnknownSelectionMode); buffer.WriteByte(Unknown8); buffer.WriteByte(SelectionMask); buffer.WriteByte(SelectionShapeType); buffer.WriteByte(SelectionShape); buffer.WriteByte(Attribute); buffer.WriteByte(Civilization); buffer.WriteShort(Nothing); buffer.WriteByte(SelectionEffect); buffer.WriteByte(EditorSelectionColor); buffer.WriteFloat(SelectionRadius1); buffer.WriteFloat(SelectionRadius2); buffer.WriteFloat(HPBarHeight2); AssertListLength(ResourceStorages, 3); ResourceStorages.ForEach(e => { buffer.WriteShort(e.Type); buffer.WriteFloat(e.Amount); buffer.WriteByte(e.Enabled); }); buffer.WriteByte((byte)DamageGraphics.Count); DamageGraphics.ForEach(e => e.WriteData(buffer)); buffer.WriteShort(SelectionSound); buffer.WriteShort(DyingSound); buffer.WriteByte(AttackMode); buffer.WriteByte(EdibleMeat); buffer.WriteString(Name1); buffer.WriteShort(ID2); buffer.WriteShort(ID3); if(Type >= UnitType.Flag) buffer.WriteFloat(Speed); if(Type >= UnitType.DeadFish) DeadFish.WriteData(buffer); if(Type >= UnitType.Bird) Bird.WriteData(buffer); if(Type >= UnitType.Type50) Type50.WriteData(buffer); if(Type == UnitType.Projectile) Projectile.WriteData(buffer); if(Type >= UnitType.Creatable) Creatable.WriteData(buffer); if(Type == UnitType.Building) Building.WriteData(buffer); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(GraphicID); buffer.WriteByte(DamagePercent); buffer.WriteByte(ApplyMode); buffer.WriteByte(Unknown2); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(ConstructionGraphicID); buffer.WriteShort(SnowGraphicID); buffer.WriteByte(AdjacentMode); buffer.WriteShort(GraphicsAngle); buffer.WriteByte(DisappearsWhenBuilt); buffer.WriteShort(StackUnitID); buffer.WriteShort(FoundationTerrainID); buffer.WriteShort(OldTerrainLikeID); buffer.WriteShort(ResearchID); buffer.WriteByte(Unknown33); AssertListLength(Annexes, 4); Annexes.ForEach(e => e.WriteData(buffer)); buffer.WriteShort(HeadUnit); buffer.WriteShort(TransformUnit); buffer.WriteShort(UnknownSound); buffer.WriteShort(ConstructionSound); buffer.WriteByte(GarrisonType); buffer.WriteFloat(GarrisonHealRate); buffer.WriteFloat(Unknown35); buffer.WriteShort(PileUnit); AssertListLength(LootingTable, 6); LootingTable.ForEach(e => buffer.WriteByte(e)); }
public override void WriteData(RAMBuffer buffer) { // Eigenschaften schreiben buffer.WriteByte((byte)ElementType); buffer.WriteShort(ElementObjectID); buffer.WriteByte(Age); buffer.WriteByte((byte)RenderMode); // Deaktivierende Kulturen schreiben buffer.WriteByte((byte)DisableCivs.Count); DisableCivs.ForEach(c => buffer.WriteByte(c)); // Kindelemente schreiben buffer.WriteShort((short)Children.Count); Children.ForEach(c => c.WriteData(buffer)); // Benötigte Elemente schreiben buffer.WriteShort((short)RequiredElements.Count); RequiredElements.ForEach(r => { buffer.WriteByte((byte)r.Item1); buffer.WriteShort(r.Item2); }); }
public override void WriteData(RAMBuffer buffer) { buffer.WriteShort(DefaultArmour); buffer.WriteUShort((ushort)Attacks.Count); foreach(KeyValuePair<short, short> currA in Attacks) { buffer.WriteShort(currA.Key); buffer.WriteShort(currA.Value); } buffer.WriteUShort((ushort)Armours.Count); foreach(KeyValuePair<short, short> currA in Armours) { buffer.WriteShort(currA.Key); buffer.WriteShort(currA.Value); } buffer.WriteShort(TerrainRestrictionForDamageMultiplying); buffer.WriteFloat(MaxRange); buffer.WriteFloat(BlastRadius); buffer.WriteFloat(ReloadTime); buffer.WriteShort(ProjectileUnitID); buffer.WriteShort(AccuracyPercent); buffer.WriteByte(TowerMode); buffer.WriteShort(FrameDelay); AssertListLength(GraphicDisplacement, 3); GraphicDisplacement.ForEach(e => buffer.WriteFloat(e)); buffer.WriteByte(BlastLevel); buffer.WriteFloat(MinRange); buffer.WriteFloat(AccuracyErrorRadius); buffer.WriteShort(AttackGraphic); buffer.WriteShort(DisplayedMeleeArmour); buffer.WriteShort(DisplayedAttack); buffer.WriteFloat(DisplayedRange); buffer.WriteFloat(DisplayedReloadTime); }