예제 #1
0
 public override void ReadData(RAMBuffer buffer)
 {
     FileName = buffer.ReadString(13);
     ResourceID = buffer.ReadInteger();
     Probability = buffer.ReadShort();
     Civ = buffer.ReadShort();
     Unknown1 = buffer.ReadShort();
 }
예제 #2
0
 public override void ReadData(RAMBuffer buffer)
 {
     Type = buffer.ReadByte();
     A = buffer.ReadShort();
     B = buffer.ReadShort();
     C = buffer.ReadShort();
     D = buffer.ReadFloat();
 }
예제 #3
0
        public override void 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().ReadDataInline(buffer));
        }
예제 #4
0
 public override void 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();
 }
예제 #5
0
        public override void ReadData(RAMBuffer buffer)
        {
            WalkingGraphic1 = buffer.ReadShort();
            WalkingGraphic2 = buffer.ReadShort();
            RotationSpeed = buffer.ReadFloat();
            Unknown11 = buffer.ReadByte();
            TrackingUnit = buffer.ReadShort();
            TrackingUnitUsed = buffer.ReadByte();
            TrackingUnitDensity = buffer.ReadFloat();
            Unknown16 = buffer.ReadByte();

            Unknown16B = new List<int>(5);
            for(int i = 0; i < 5; ++i)
                Unknown16B.Add(buffer.ReadInteger());
        }
예제 #6
0
        public override void ReadData(RAMBuffer buffer)
        {
            ResourceCosts = new List<ResourceTuple<short, short, short>>(3);
            for(int i = 0; i < 3; ++i)
                ResourceCosts.Add(new ResourceTuple<short, short, short>() { Type = buffer.ReadShort(), Amount = buffer.ReadShort(), Enabled = buffer.ReadShort() });

            TrainTime = buffer.ReadShort();
            TrainLocationID = buffer.ReadShort();
            ButtonID = buffer.ReadByte();
            Unknown26 = buffer.ReadInteger();
            Unknown27 = buffer.ReadInteger();
            Unknown28 = buffer.ReadByte();
            HeroMode = buffer.ReadByte();
            GarrisonGraphic = buffer.ReadInteger();
            DuplicatedMissilesMin = buffer.ReadFloat();
            DuplicatedMissilesMax = buffer.ReadByte();

            MissileSpawningArea = new List<float>(3);
            for(int i = 0; i < 3; ++i)
                MissileSpawningArea.Add(buffer.ReadFloat());

            AlternativeProjectileUnit = buffer.ReadInteger();
            ChargingGraphic = buffer.ReadInteger();
            ChargingMode = buffer.ReadByte();
            DisplayedPierceArmour = buffer.ReadShort();
        }
예제 #7
0
        public override void ReadData(RAMBuffer buffer)
        {
            One = buffer.ReadByte();
            Name = buffer.ReadString(20);
            int resourceCount = buffer.ReadUShort();
            TechTreeID = buffer.ReadShort();
            TeamBonusID = buffer.ReadShort();

            Resources = new List<float>(resourceCount);
            for(int i = 0; i < resourceCount; ++i)
                Resources.Add(buffer.ReadFloat());

            IconSet = buffer.ReadByte();

            int unitCount = buffer.ReadUShort();
            UnitPointers = new List<int>(unitCount);
            for(int i = 0; i < unitCount; ++i)
                UnitPointers.Add(buffer.ReadInteger());

            Units = new SortedList<int, Unit>(unitCount);
            for(int p = 0; p < UnitPointers.Count; ++p)
                if(UnitPointers[p] != 0)
                    Units.Add(p, new Unit().ReadDataInline(buffer));
        }
예제 #8
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);
            }
        }
예제 #9
0
        public override void ReadData(RAMBuffer buffer)
        {
            DefaultArmour = buffer.ReadShort();

            ushort attackCount = buffer.ReadUShort();
            Attacks = new Dictionary<short, short>(attackCount);
            for(int i = 0; i < attackCount; ++i)
                Attacks[buffer.ReadShort()] = buffer.ReadShort();

            ushort armourCount = buffer.ReadUShort();
            Armours = new Dictionary<short, short>(armourCount);
            for(int i = 0; i < armourCount; ++i)
                Armours[buffer.ReadShort()] = buffer.ReadShort();

            TerrainRestrictionForDamageMultiplying = buffer.ReadShort();
            MaxRange = buffer.ReadFloat();
            BlastRadius = buffer.ReadFloat();
            ReloadTime = buffer.ReadFloat();
            ProjectileUnitID = buffer.ReadShort();
            AccuracyPercent = buffer.ReadShort();
            TowerMode = buffer.ReadByte();
            FrameDelay = buffer.ReadShort();

            GraphicDisplacement = new List<float>(3);
            for(int i = 0; i < 3; ++i)
                GraphicDisplacement.Add(buffer.ReadFloat());

            BlastLevel = buffer.ReadByte();
            MinRange = buffer.ReadFloat();
            AccuracyErrorRadius = buffer.ReadFloat();
            AttackGraphic = buffer.ReadShort();
            DisplayedMeleeArmour = buffer.ReadShort();
            DisplayedAttack = buffer.ReadShort();
            DisplayedRange = buffer.ReadFloat();
            DisplayedReloadTime = buffer.ReadFloat();
        }
예제 #10
0
 public override void 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();
 }
예제 #11
0
 public override void ReadData(RAMBuffer buffer)
 {
     SoundDelay1 = buffer.ReadShort();
     SoundID1 = buffer.ReadShort();
     SoundDelay2 = buffer.ReadShort();
     SoundID2 = buffer.ReadShort();
     SoundDelay3 = buffer.ReadShort();
     SoundID3 = buffer.ReadShort();
 }
예제 #12
0
            public override void ReadData(RAMBuffer buffer)
            {
                One = buffer.ReadShort();
                ID = buffer.ReadShort();
                Unknown1 = buffer.ReadByte();
                Type = buffer.ReadShort();
                ClassID = buffer.ReadShort();
                UnitID = buffer.ReadShort();
                TerrainID = buffer.ReadShort();
                ResourceIn = buffer.ReadShort();
                ResourceProductivityMultiplier = buffer.ReadShort();
                ResourceOut = buffer.ReadShort();
                Resource = buffer.ReadShort();
                WorkRateMultiplier = buffer.ReadFloat();
                ExecutionRadius = buffer.ReadFloat();
                ExtraRange = buffer.ReadFloat();
                Unknown4 = buffer.ReadByte();
                Unknown5 = buffer.ReadFloat();
                SelectionEnabler = buffer.ReadByte();
                Unknown7 = buffer.ReadByte();
                PlunderSource = buffer.ReadShort();
                Unknown9 = buffer.ReadShort();
                SelectionMode = buffer.ReadByte();
                RightClickMode = buffer.ReadByte();
                Unknown12 = buffer.ReadByte();

                Graphics = new List<short>(6);
                for(int i = 0; i < 6; ++i)
                    Graphics.Add(buffer.ReadShort());
            }
예제 #13
0
        public override void ReadData(RAMBuffer buffer)
        {
            RequiredTechs = new List<short>(6);
            for(int i = 0; i < 6; ++i)
                RequiredTechs.Add(buffer.ReadShort());

            ResourceCosts = new List<ResourceTuple<short, short, byte>>(3);
            for(int i = 0; i < 3; ++i)
                ResourceCosts.Add(new ResourceTuple<short, short, byte>() { Type = buffer.ReadShort(), Amount = buffer.ReadShort(), Enabled = buffer.ReadByte() });

            RequiredTechCount = buffer.ReadShort();
            Civ = buffer.ReadShort();
            FullTechMode = buffer.ReadShort();
            ResearchLocation = buffer.ReadShort();
            LanguageDLLName1 = buffer.ReadUShort();
            LanguageDLLDescription = buffer.ReadUShort();
            ResearchTime = buffer.ReadShort();
            TechageID = buffer.ReadShort();
            Type = buffer.ReadShort();
            IconID = buffer.ReadShort();
            ButtonID = buffer.ReadByte();
            LanguageDLLHelp = buffer.ReadInteger();
            LanguageDLLName2 = buffer.ReadInteger();
            Unknown1 = buffer.ReadInteger();

            int nameLength = buffer.ReadUShort();
            Name = buffer.ReadString(nameLength);
        }
예제 #14
0
            public override void ReadData(RAMBuffer buffer)
            {
                Type = (UnitType)buffer.ReadByte();
                NameLength1 = buffer.ReadUShort();
                ID1 = buffer.ReadShort();
                LanguageDLLName = buffer.ReadUShort();
                LanguageDLLCreation = buffer.ReadUShort();
                Class = buffer.ReadShort();
                StandingGraphic1 = buffer.ReadShort();
                StandingGraphic2 = buffer.ReadShort();
                DyingGraphic1 = buffer.ReadShort();
                DyingGraphic2 = buffer.ReadShort();
                DeathMode = buffer.ReadByte();
                HitPoints = buffer.ReadShort();
                LineOfSight = buffer.ReadFloat();
                GarrisonCapacity = buffer.ReadByte();
                SizeRadius1 = buffer.ReadFloat();
                SizeRadius2 = buffer.ReadFloat();
                HPBarHeight1 = buffer.ReadFloat();
                TrainSound1 = buffer.ReadShort();
                TrainSound2 = buffer.ReadShort();
                DeadUnitID = buffer.ReadShort();
                PlacementMode = buffer.ReadByte();
                AirMode = buffer.ReadByte();
                IconID = buffer.ReadShort();
                HideInEditor = buffer.ReadByte();
                Unknown1 = buffer.ReadShort();
                Enabled = buffer.ReadByte();
                Disabled = buffer.ReadByte();
                PlacementBypassTerrain1 = buffer.ReadShort();
                PlacementBypassTerrain2 = buffer.ReadShort();
                PlacementTerrain1 = buffer.ReadShort();
                PlacementTerrain2 = buffer.ReadShort();
                EditorRadius1 = buffer.ReadFloat();
                EditorRadius2 = buffer.ReadFloat();
                HillMode = buffer.ReadByte();
                VisibleInFog = buffer.ReadByte();
                TerrainRestriction = buffer.ReadShort();
                FlyMode = buffer.ReadByte();
                ResourceCapacity = buffer.ReadShort();
                ResourceDecay = buffer.ReadFloat();
                BlastType = buffer.ReadByte();
                Unknown2 = buffer.ReadByte();
                InteractionMode = buffer.ReadByte();
                MinimapMode = buffer.ReadByte();
                CommandAttribute = buffer.ReadByte();
                Unknown3A = buffer.ReadFloat();
                MinimapColor = buffer.ReadByte();
                LanguageDLLHelp = buffer.ReadInteger();
                LanguageDLLHotKeyText = buffer.ReadInteger();
                HotKey = buffer.ReadInteger();
                Unselectable = buffer.ReadByte();
                Unknown6 = buffer.ReadByte();
                UnknownSelectionMode = buffer.ReadByte();
                Unknown8 = buffer.ReadByte();
                SelectionMask = buffer.ReadByte();
                SelectionShapeType = buffer.ReadByte();
                SelectionShape = buffer.ReadByte();
                Attribute = buffer.ReadByte();
                Civilization = buffer.ReadByte();
                Nothing = buffer.ReadShort();
                SelectionEffect = buffer.ReadByte();
                EditorSelectionColor = buffer.ReadByte();
                SelectionRadius1 = buffer.ReadFloat();
                SelectionRadius2 = buffer.ReadFloat();
                HPBarHeight2 = buffer.ReadFloat();

                ResourceStorages = new List<ResourceTuple<short, float, byte>>(3);
                for(int i = 0; i < 3; ++i)
                    ResourceStorages.Add(new ResourceTuple<short, float, byte>() { Type = buffer.ReadShort(), Amount = buffer.ReadFloat(), Enabled = buffer.ReadByte() });

                int damageGraphicCount = buffer.ReadByte();
                DamageGraphics = new List<DamageGraphic>();
                for(int i = 0; i < damageGraphicCount; ++i)
                    DamageGraphics.Add(new DamageGraphic().ReadDataInline(buffer));

                SelectionSound = buffer.ReadShort();
                DyingSound = buffer.ReadShort();
                AttackMode = buffer.ReadByte();
                EdibleMeat = buffer.ReadByte();
                Name1 = buffer.ReadString(NameLength1);
                ID2 = buffer.ReadShort();
                ID3 = buffer.ReadShort();

                if(Type >= UnitType.Flag)
                    Speed = buffer.ReadFloat();
                if(Type >= UnitType.DeadFish)
                    DeadFish = new UnitTypes.DeadFish().ReadDataInline(buffer);
                if(Type >= UnitType.Bird)
                    Bird = new UnitTypes.Bird().ReadDataInline(buffer);
                if(Type >= UnitType.Type50)
                    Type50 = new UnitTypes.Type50().ReadDataInline(buffer);
                if(Type == UnitType.Projectile)
                    Projectile = new UnitTypes.Projectile().ReadDataInline(buffer);
                if(Type >= UnitType.Creatable)
                    Creatable = new UnitTypes.Creatable().ReadDataInline(buffer);
                if(Type == UnitType.Building)
                    Building = new UnitTypes.Building().ReadDataInline(buffer);
            }
예제 #15
0
 public override void ReadData(RAMBuffer buffer)
 {
     GraphicID = buffer.ReadShort();
     DamagePercent = buffer.ReadByte();
     ApplyMode = buffer.ReadByte();
     Unknown2 = buffer.ReadByte();
 }
예제 #16
0
        public override void ReadData(RAMBuffer buffer)
        {
            ConstructionGraphicID = buffer.ReadShort();
            SnowGraphicID = buffer.ReadShort();
            AdjacentMode = buffer.ReadByte();
            GraphicsAngle = buffer.ReadShort();
            DisappearsWhenBuilt = buffer.ReadByte();
            StackUnitID = buffer.ReadShort();
            FoundationTerrainID = buffer.ReadShort();
            OldTerrainLikeID = buffer.ReadShort();
            ResearchID = buffer.ReadShort();
            Unknown33 = buffer.ReadByte();

            Annexes = new List<BuildingAnnex>(4);
            for(int i = 0; i < 4; ++i)
                Annexes.Add(new BuildingAnnex().ReadDataInline(buffer));

            HeadUnit = buffer.ReadShort();
            TransformUnit = buffer.ReadShort();
            UnknownSound = buffer.ReadShort();
            ConstructionSound = buffer.ReadShort();
            GarrisonType = buffer.ReadByte();
            GarrisonHealRate = buffer.ReadFloat();
            Unknown35 = buffer.ReadFloat();
            PileUnit = buffer.ReadShort();

            LootingTable = new List<byte>(6);
            for(int i = 0; i < 6; ++i)
                LootingTable.Add(buffer.ReadByte());
        }
예제 #17
0
        public override void 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().ReadDataInline(buffer));

            if(AttackSoundUsed != 0)
            {
                AttackSounds = new List<GraphicAttackSound>(AngleCount);
                for(int i = 0; i < AngleCount; ++i)
                    AttackSounds.Add(new GraphicAttackSound().ReadDataInline(buffer));
            }
        }
예제 #18
0
            public override void ReadData(RAMBuffer buffer)
            {
                // 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().ReadDataInline(buffer));

                // 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()));
            }
예제 #19
0
 public override void ReadData(RAMBuffer buffer)
 {
     UnitID = buffer.ReadShort();
     MisplacementX = buffer.ReadFloat();
     MisplacementY = buffer.ReadFloat();
 }