Example #1
0
        internal void WriteWeaponInfoDescent1(DescentWriter writer, Weapon weapon)
        {
            writer.WriteByte((byte)weapon.RenderType);
            writer.WriteByte((byte)weapon.ModelNum);
            writer.WriteByte((byte)weapon.ModelNumInner);
            writer.WriteByte((byte)(weapon.Persistent ? 1 : 0));

            writer.WriteSByte(weapon.MuzzleFlashVClip);
            writer.WriteInt16(weapon.FiringSound);

            writer.WriteSByte(weapon.RobotHitVClip);
            writer.WriteInt16(weapon.RobotHitSound);

            writer.WriteSByte(weapon.WallHitVClip);
            writer.WriteInt16(weapon.WallHitSound);

            writer.WriteByte(weapon.FireCount);
            writer.WriteByte(weapon.AmmoUsage);
            writer.WriteSByte(weapon.WeaponVClip);
            writer.WriteByte((byte)(weapon.Destroyable ? 1 : 0));

            writer.WriteByte((byte)(weapon.Matter ? 1 : 0));
            writer.WriteByte((byte)weapon.Bounce);
            writer.WriteByte((byte)(weapon.HomingFlag ? 1 : 0));
            writer.Write(weapon.Padding);

            writer.WriteFix(weapon.EnergyUsage);
            writer.WriteFix(weapon.FireWait);

            writer.WriteUInt16(weapon.Bitmap);

            writer.WriteFix(weapon.BlobSize);
            writer.WriteFix(weapon.FlashSize);
            writer.WriteFix(weapon.ImpactSize);

            for (int s = 0; s < 5; s++)
            {
                writer.WriteFix(weapon.Strength[s]);
            }
            for (int s = 0; s < 5; s++)
            {
                writer.WriteFix(weapon.Speed[s]);
            }

            writer.WriteFix(weapon.Mass);
            writer.WriteFix(weapon.Drag);
            writer.WriteFix(weapon.Thrust);
            writer.WriteFix(weapon.POLenToWidthRatio);
            writer.WriteFix(weapon.Light);
            writer.WriteFix(weapon.Lifetime);
            writer.WriteFix(weapon.DamageRadius);
            writer.WriteUInt16(weapon.CockpitPicture);
        }
Example #2
0
        public void WriteRobotDescent1(Robot robot, DescentWriter bw)
        {
            bw.WriteInt32(robot.ModelNum);
            bw.WriteInt32(robot.NumGuns);

            bw.WriteMany(Polymodel.MaxGuns, robot.GunPoints, (writer, a) => writer.WriteFixVector(a));

            bw.WriteMany(8, robot.GunSubmodels, (writer, a) => writer.WriteByte(a));

            bw.WriteInt16(robot.HitVClipNum);
            bw.WriteInt16(robot.HitSoundNum);

            bw.WriteInt16(robot.DeathVClipNum);
            bw.WriteInt16(robot.DeathSoundNum);

            bw.WriteInt16(robot.WeaponType);
            bw.WriteSByte(robot.ContainsID);
            bw.WriteSByte(robot.ContainsCount);

            bw.WriteSByte(robot.ContainsProbability);
            bw.WriteSByte(robot.ContainsType);

            bw.WriteInt32(robot.ScoreValue);

            bw.WriteFix(robot.Lighting);
            bw.WriteFix(robot.Strength);

            bw.WriteFix(robot.Mass);
            bw.WriteFix(robot.Drag);

            bw.WriteMany(Robot.NumDifficultyLevels, robot.FieldOfView, (writer, a) => writer.WriteFix(a));

            bw.WriteMany(Robot.NumDifficultyLevels, robot.FiringWait, (writer, a) => writer.WriteFix(a));

            bw.WriteMany(Robot.NumDifficultyLevels, robot.TurnTime, (writer, a) => writer.WriteFix(a));

            bw.WriteMany(Robot.NumDifficultyLevels, robot.FirePower, (writer, a) => writer.WriteFix(a));

            bw.WriteMany(Robot.NumDifficultyLevels, robot.Shield, (writer, a) => writer.WriteFix(a));

            bw.WriteMany(Robot.NumDifficultyLevels, robot.MaxSpeed, (writer, a) => writer.WriteFix(a));

            bw.WriteMany(Robot.NumDifficultyLevels, robot.CircleDistance, (writer, a) => writer.WriteFix(a));

            bw.WriteMany(Robot.NumDifficultyLevels, robot.RapidfireCount, (writer, a) => writer.WriteSByte(a));

            bw.WriteMany(Robot.NumDifficultyLevels, robot.EvadeSpeed, (writer, a) => writer.WriteSByte(a));

            bw.WriteSByte((sbyte)robot.CloakType);
            bw.WriteSByte((sbyte)robot.AttackType);
            bw.WriteSByte((sbyte)robot.BossFlag);
            bw.WriteByte(robot.SeeSound);
            bw.WriteByte(robot.AttackSound);
            bw.WriteByte(robot.ClawSound);

            for (int v = 0; v < 9; v++)
            {
                for (int u = 0; u < 5; u++)
                {
                    bw.WriteInt16(robot.AnimStates[v, u].NumJoints);
                    bw.WriteInt16(robot.AnimStates[v, u].Offset);
                }
            }

            bw.WriteInt32(robot.Always0xABCD);
        }