示例#1
0
 public void Load(BinaryReaderBE reader)
 {
     LightingFunction = (LightingFunction)reader.ReadInt16();
     Period           = reader.ReadInt16();
     DeltaPeriod      = reader.ReadInt16();
     Intensity        = reader.ReadFixed();
     DeltaIntensity   = reader.ReadFixed();
 }
示例#2
0
 public void Load(BinaryReaderBE reader)
 {
     Flags          = (RandomSoundFlags)reader.ReadUInt16();
     SoundIndex     = reader.ReadInt16();
     volume         = reader.ReadInt16();
     deltaVolume    = reader.ReadInt16();
     Period         = reader.ReadInt16();
     DeltaPeriod    = reader.ReadInt16();
     direction      = reader.ReadInt16();
     deltaDirection = reader.ReadInt16();
     Pitch          = reader.ReadFixed();
     DeltaPitch     = reader.ReadFixed();
     phase          = reader.ReadInt16();
     reader.BaseStream.Seek(2 * 3, SeekOrigin.Current);
 }
示例#3
0
        public void Load(BinaryReaderBE reader)
        {
            Collection = reader.ReadInt16();
            Shape      = reader.ReadInt16();

            DetonationEffect      = reader.ReadInt16();
            MediaDetonationEffect = reader.ReadInt16();

            ContrailEffect        = reader.ReadInt16();
            TicksBetweenContrails = reader.ReadInt16();
            MaximumContrails      = reader.ReadInt16();

            MediaProjectilePromotion = reader.ReadInt16();

            Radius       = reader.ReadInt16();
            AreaOfEffect = reader.ReadInt16();
            Damage.Load(reader);

            Flags = reader.ReadUInt32();

            Speed        = reader.ReadInt16();
            MaximumRange = reader.ReadInt16();

            SoundPitch   = reader.ReadFixed();
            FlybySound   = reader.ReadInt16();
            ReboundSound = reader.ReadInt16();
        }
 public void Load(BinaryReaderBE reader)
 {
     Type   = reader.ReadInt16();
     Flags  = reader.ReadInt16();
     Base   = reader.ReadInt16();
     Random = reader.ReadInt16();
     Scale  = reader.ReadFixed();
 }
示例#5
0
        public void Load(BinaryReaderBE reader)
        {
            long origin = reader.BaseStream.Position;

            soundCode     = reader.ReadInt16();
            behaviorIndex = reader.ReadInt16();
            flags         = (SoundDefinitionFlags)reader.ReadUInt16();
            chance        = (32768.0 - reader.ReadUInt16()) / 32768.0;

            lowPitch  = reader.ReadFixed();
            highPitch = reader.ReadFixed();

            short numPermutations = reader.ReadInt16();

            reader.ReadUInt16(); // permutations played

            uint groupOffset = reader.ReadUInt32();

            reader.ReadUInt32(); // single length
            reader.ReadUInt32(); // total length

            List <int> offsets = new List <int>();

            for (int i = 0; i < MAXIMUM_PERMUTATIONS_PER_SOUND; ++i)
            {
                offsets.Add(reader.ReadInt32());
            }

            reader.ReadUInt32(); // last played

            reader.BaseStream.Position = origin + HEADER_SIZE;

            permutations.Clear();
            long position = reader.BaseStream.Position;

            for (int i = 0; i < numPermutations; ++i)
            {
                reader.BaseStream.Seek(groupOffset + offsets[i], SeekOrigin.Begin);

                Permutation permutation = new Permutation();
                permutation.Load(reader);
                permutations.Add(permutation);
            }
            reader.BaseStream.Seek(position, SeekOrigin.Begin);
        }
        public void Load(BinaryReaderBE reader)
        {
            Collection = reader.ReadInt16();
            Shape      = reader.ReadInt16();

            SoundPitch = reader.ReadFixed();

            Flags = reader.ReadUInt16();

            Delay      = reader.ReadInt16();
            DelaySound = reader.ReadInt16();
        }
示例#7
0
 public void Load(BinaryReaderBE reader)
 {
     Type             = (MediaType)reader.ReadInt16();
     Flags            = (MediaFlags)reader.ReadUInt16();
     LightIndex       = reader.ReadInt16();
     direction        = reader.ReadInt16();
     CurrentMagnitude = reader.ReadInt16();
     Low  = reader.ReadInt16();
     High = reader.ReadInt16();
     reader.ReadInt16(); // X
     reader.ReadInt16(); // Y
     reader.ReadInt16(); // Height
     MinimumLightIntensity = reader.ReadFixed();
     reader.ReadInt16(); // Texture
     reader.ReadInt16(); // TransferMode
     reader.BaseStream.Seek(2 * 2, SeekOrigin.Current);
 }
示例#8
0
            public void Load(BinaryReaderBE reader)
            {
                Flags = reader.ReadUInt16();
                MinimumLightIntensity = reader.ReadFixed();
                BitmapIndex           = reader.ReadInt16();
                OriginX     = reader.ReadInt16();
                OriginY     = reader.ReadInt16();
                KeyX        = reader.ReadInt16();
                KeyY        = reader.ReadInt16();
                WorldLeft   = reader.ReadInt16();
                WorldRight  = reader.ReadInt16();
                WorldTop    = reader.ReadInt16();
                WorldBottom = reader.ReadInt16();
                WorldX0     = reader.ReadInt16();
                WorldY0     = reader.ReadInt16();

                Unused = new short[4];
                for (int i = 0; i < Unused.Length; i++)
                {
                    Unused[i] = reader.ReadInt16();
                }
            }
示例#9
0
        public void Load(BinaryReaderBE reader)
        {
            ItemType    = reader.ReadInt16();
            PowerupType = reader.ReadInt16();
            WeaponClass = reader.ReadInt16();
            Flags       = reader.ReadInt16();

            FiringLightIntensity      = reader.ReadFixed();
            FiringIntensityDecayTicks = reader.ReadInt16();

            IdleHeight          = reader.ReadFixed();
            BobAmplitude        = reader.ReadFixed();
            KickHeight          = reader.ReadFixed();
            ReloadHeight        = reader.ReadFixed();
            IdleWidth           = reader.ReadFixed();
            HorizontalAmplitude = reader.ReadFixed();

            Collection     = reader.ReadInt16();
            IdleShape      = reader.ReadInt16();
            FiringShape    = reader.ReadInt16();
            ReloadingShape = reader.ReadInt16();
            Unused         = reader.ReadInt16();
            ChargingShape  = reader.ReadInt16();
            ChargedShape   = reader.ReadInt16();

            ReadyTicks         = reader.ReadInt16();
            AwaitReloadTicks   = reader.ReadInt16();
            LoadingTicks       = reader.ReadInt16();
            FinishLoadingTicks = reader.ReadInt16();
            PowerupTicks       = reader.ReadInt16();

            for (int i = 0; i < 2; ++i)
            {
                Triggers[i] = new TriggerDefinition();
                Triggers[i].Load(reader);
            }
        }
示例#10
0
        public void Load(BinaryReaderBE reader)
        {
            samples.Clear();

            int  depth       = 8;
            bool signed_8bit = false;
            uint frames      = 0;

            long origin = reader.BaseStream.Position;

            reader.BaseStream.Seek(20, SeekOrigin.Current);
            byte headerType = reader.ReadByte();

            reader.BaseStream.Seek(origin, SeekOrigin.Begin);

            switch (headerType)
            {
            case StandardSoundHeader:
                depth       = 8;
                signed_8bit = false;
                channels    = 1;

                reader.ReadUInt32(); // sample pointer
                frames     = reader.ReadUInt32();
                sampleRate = reader.ReadFixed();
                loopStart  = reader.ReadUInt32();
                loopEnd    = reader.ReadUInt32();
                reader.ReadByte();             // type
                frequency = reader.ReadByte(); // I think this is a MIDI note?
                break;

            case ExtendedSoundHeader:
            case CompressedSoundHeader:
                reader.ReadUInt32(); // sample pointer
                channels   = reader.ReadUInt32() == 2 ? 2 : 1;
                sampleRate = reader.ReadFixed();
                loopStart  = reader.ReadUInt32();
                loopEnd    = reader.ReadUInt32();

                reader.ReadByte();             // type
                frequency = reader.ReadByte(); // I think this is MIDI?

                frames = reader.ReadUInt32();

                if (headerType == CompressedSoundHeader)
                {
                    reader.BaseStream.Seek(10, SeekOrigin.Current);
                    reader.ReadUInt32(); // marker chunk
                    uint format = reader.ReadUInt32();
                    reader.ReadUInt32(); // future use
                    reader.ReadUInt32(); // stateVars
                    reader.ReadUInt32(); // leftOverSamples
                    short compressionId = reader.ReadInt16();
                    if (format != SoundsFile.FourCharsToInt('t', 'w', 'o', 's') || compressionId != -1)
                    {
                        // fail somehow
                        return;
                    }
                    signed_8bit = true;
                    reader.ReadInt16(); // packet size
                    reader.ReadInt16(); // unused
                    depth = (reader.ReadInt16() == 16 ? 16 : 8);
                }
                else
                {
                    signed_8bit = false;
                    reader.BaseStream.Seek(22, SeekOrigin.Current);
                    depth = (reader.ReadInt16() == 16 ? 16 : 8);
                    reader.BaseStream.Seek(14, SeekOrigin.Current);
                }
                break;
            }

            for (int i = 0; i < frames; ++i)
            {
                for (int j = 0; j < channels; ++j)
                {
                    float sample;
                    if (depth == 16)
                    {
                        sample = (reader.ReadInt16() + 0.5f) / 32767.5f;
                    }
                    else if (signed_8bit)
                    {
                        sample = (reader.ReadSByte() + 0.5f) / 127.5f;
                    }
                    else
                    {
                        sample = reader.ReadByte() / 127.5f - 1.0f;
                    }

                    samples.Add(sample);
                }
            }
        }
        public void Load(BinaryReaderBE reader)
        {
            MaximumForwardVelocity       = reader.ReadFixed();
            MaximumBackwardVelocity      = reader.ReadFixed();
            MaximumPerpendicularVelocity = reader.ReadFixed();

            Acceleration         = reader.ReadFixed();
            Deceleration         = reader.ReadFixed();
            AirborneDeceleration = reader.ReadFixed();

            GravitationalAcceleration = reader.ReadFixed();
            ClimbingAcceleration      = reader.ReadFixed();
            TerminalVelocity          = reader.ReadFixed();

            ExternalAcceleration = reader.ReadFixed();

            AngularAcceleration        = reader.ReadFixed();
            AngularDeceleration        = reader.ReadFixed();
            MaximumAngularVelocity     = reader.ReadFixed();
            AngularRecenteringVelocity = reader.ReadFixed();

            FastAngularVelocity = reader.ReadFixed();
            FastAngularMaximum  = reader.ReadFixed();

            MaximumElevation            = reader.ReadFixed();
            ExternalAngularDeceleration = reader.ReadFixed();

            StepDelta     = reader.ReadFixed();
            StepAmplitude = reader.ReadFixed();

            Radius       = reader.ReadFixed();
            Height       = reader.ReadFixed();
            DeadHeight   = reader.ReadFixed();
            CameraHeight = reader.ReadFixed();
            SplashHeight = reader.ReadFixed();

            HalfCameraSeparation = reader.ReadFixed();
        }
示例#12
0
        public void Load(BinaryReaderBE reader)
        {
            Collection = reader.ReadInt16();

            Vitality   = reader.ReadInt16();
            Immunities = reader.ReadUInt32();
            Weaknesses = reader.ReadUInt32();
            Flags      = reader.ReadUInt32();

            Class   = reader.ReadInt32();
            Friends = reader.ReadInt32();
            Enemies = reader.ReadInt32();

            SoundPitch = reader.ReadFixed();

            ActivationSound         = reader.ReadInt16();
            FriendlyActivationSound = reader.ReadInt16();
            ClearSound        = reader.ReadInt16();
            KillSound         = reader.ReadInt16();
            ApologySound      = reader.ReadInt16();
            FriendlyFireSound = reader.ReadInt16();
            FlamingSound      = reader.ReadInt16();
            RandomSound       = reader.ReadInt16();
            RandomSoundMask   = reader.ReadInt16();

            CarryingItemType = reader.ReadInt16();

            Radius = reader.ReadInt16();
            Height = reader.ReadInt16();
            PreferredHoverHeight  = reader.ReadInt16();
            MinimumLedgeDelta     = reader.ReadInt16();
            MaximumLedgeDelta     = reader.ReadInt16();
            ExternalVelocityScale = reader.ReadFixed();
            ImpactEffect          = reader.ReadInt16();
            MeleeImpactEffect     = reader.ReadInt16();
            ContrailEffect        = reader.ReadInt16();

            HalfVisualArc         = reader.ReadInt16();
            HalfVerticalVisualArc = reader.ReadInt16();
            VisualRange           = reader.ReadInt16();
            DarkVisualRange       = reader.ReadInt16();
            Intelligence          = reader.ReadInt16();
            Speed            = reader.ReadInt16();
            Gravity          = reader.ReadInt16();
            TerminalVelocity = reader.ReadInt16();
            DoorRetryMask    = reader.ReadInt16();
            ShrapnelRadius   = reader.ReadInt16();
            ShrapnelDamage.Load(reader);

            HitShapes        = reader.ReadInt16();
            HardDyingShape   = reader.ReadInt16();
            SoftDyingShape   = reader.ReadInt16();
            HardDeadShapes   = reader.ReadInt16();
            SoftDeadShapes   = reader.ReadInt16();
            StationaryShape  = reader.ReadInt16();
            MovingShape      = reader.ReadInt16();
            TeleportInShape  = reader.ReadInt16();
            TeleportOutShape = reader.ReadInt16();

            AttackFrequency = reader.ReadInt16();
            MeleeAttack.Load(reader);
            RangedAttack.Load(reader);
        }