Example #1
0
        /// <summary>
        /// The serialise.
        /// </summary>
        /// <param name="serialise">
        /// The serialise.
        /// </param>
        /// <exception cref="Exception">
        /// </exception>
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);

            uint resCount = 0;

            serialise.UInt32(ref resCount);

            bool unknown0 = false;

            serialise.Bool(ref unknown0);
            bool unknown1 = true;

            serialise.Bool(ref unknown1);

            while (resCount > 0)
            {
                var  pos    = serialise.Position;
                uint length = 0;
                serialise.UInt32(ref length);

                CIwManaged res = null;
                serialise.ManagedObject(this.Hash, ref res);
                this.resources.Add((CIwResource)res, false);
                --resCount;

                if (serialise.Position != pos + length)
                {
                    throw new Exception(
                              string.Format(
                                  "Parse of {0} failed: wrong position by {1} bytes", res.GetType().Name, serialise.Position - (pos + length)));
                    serialise.Position = pos + length;
                }
            }
        }
Example #2
0
 /// <summary>
 /// The serialise.
 /// </summary>
 /// <param name="serialise">
 /// The serialise.
 /// </param>
 public override void Serialise(IwSerialise serialise)
 {
     base.Serialise(serialise);
     serialise.Bool(ref this.serialiseGrayscale);
     if (this.serialiseGrayscale)
     {
         this.colors = new Color[this.numItems];
         var buf = new byte[this.numItems];
         serialise.Serialise(ref buf);
         for (int i = 0; i < this.numItems; ++i)
         {
             this.Colors[i] = Color.FromArgb(255, buf[i], buf[i], buf[i]);
         }
     }
     else
     {
         this.colors = new Color[this.numItems];
         var buf = new byte[this.numItems * 4];
         serialise.Serialise(ref buf);
         for (int i = 0; i < this.numItems; ++i)
         {
             this.Colors[i] = Color.FromArgb(
                 buf[i + this.numItems * 3], buf[i + this.numItems * 0], buf[i + this.numItems * 1], buf[i + this.numItems * 2]);
         }
     }
 }
Example #3
0
 /// <summary>
 /// The serialise.
 /// </summary>
 /// <param name="serialise">
 /// The serialise.
 /// </param>
 public override void Serialise(IwSerialise serialise)
 {
     base.Serialise(serialise);
     serialise.Bool(ref this.serialiseGrayscale);
     if (this.serialiseGrayscale)
     {
         this.colors = new Color[this.numItems];
         var buf = new byte[this.numItems];
         serialise.Serialise(ref buf);
         for (int i = 0; i < this.numItems; ++i)
         {
             this.Colors[i] = Color.FromArgb(255, buf[i], buf[i], buf[i]);
         }
     }
     else
     {
         this.colors = new Color[this.numItems];
         var buf = new byte[this.numItems * 4];
         serialise.Serialise(ref buf);
         for (int i = 0; i < this.numItems; ++i)
         {
             this.Colors[i] = Color.FromArgb(
                 buf[i + this.numItems * 3], buf[i + this.numItems * 0], buf[i + this.numItems * 1], buf[i + this.numItems * 2]);
         }
     }
 }
Example #4
0
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);
            {
                int value = 0;
                serialise.Int32(ref value);
            }
            {
                byte value = 2;  //1b=3
                serialise.UInt8(ref value);
            }
            {
                Vector3 value = Vector3.Zero;
                serialise.SVec3(ref value);
            }
            {
                byte value = 1;
                serialise.UInt8(ref value);
            }
            {
                uint value = 3; //1b=1
                serialise.UInt32(ref value);
            }
            {
                uint value = 2; //1b=1 num of bones?
                serialise.UInt32(ref value);
            }
            //1b=1 one more uint32?
            {
                bool value = true;
                serialise.Bool(ref value);
            }

            SerialiseMappedData(serialise); //1b-none

            // by number of bones
            {
                // 0x1d38b3fd
                Quaternion value = Quaternion.Identity;
                serialise.SQuat(ref value);
            }
            {
                // 0xa272adcf
                Quaternion value = Quaternion.Identity;
                serialise.SQuat(ref value);
            }
        }
Example #5
0
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);
            {
                int value = 0;
                serialise.Int32(ref value);
            }
            {
                byte value = 2;                  //1b=3
                serialise.UInt8(ref value);
            }
            {
                Vector3 value = Vector3.Zero;
                serialise.SVec3(ref value);
            }
            {
                byte value = 1;
                serialise.UInt8(ref value);
            }
            {
                uint value = 3;                 //1b=1
                serialise.UInt32(ref value);
            }
            {
                uint value = 2;                 //1b=1 num of bones?
                serialise.UInt32(ref value);
            }
            //1b=1 one more uint32?
            {
                bool value = true;
                serialise.Bool(ref value);
            }

            SerialiseMappedData(serialise);             //1b-none

            // by number of bones
            {
                // 0x1d38b3fd
                Quaternion value = Quaternion.Identity;
                serialise.SQuat(ref value);
            }
            {
                // 0xa272adcf
                Quaternion value = Quaternion.Identity;
                serialise.SQuat(ref value);
            }
        }
        private bool m_WorldSet; // !< True if this set is a world file only set

        #endregion Fields

        #region Methods

        /// <summary>
        /// The serialise.
        /// </summary>
        /// <param name="serialise">
        /// The serialise.
        /// </param>
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);

            ////serialise.DebugWrite(256);

            // serialise.UInt8(ref m_Flags);
            serialise.Bool(ref this.m_WorldSet);
            serialise.UInt8(ref this.m_FlagsSW);
            serialise.UInt8(ref this.m_FlagsHW);
            serialise.UInt32(ref this.m_NumFaces);
            serialise.Int8(ref this.m_OTZOfsSW);
            this.m_FaceIDs.SerialiseHeader(serialise);
            this.m_FaceIDs.ForEach(
                (ref ushort v) =>
                    {
                        serialise.Serialise(ref v);
                        return true;
                    });

            ////serialise.DebugWrite(256);
        }
Example #7
0
        private bool m_WorldSet;                                                // !< True if this set is a world file only set

        #endregion

        #region Public Methods and Operators

        /// <summary>
        /// The serialise.
        /// </summary>
        /// <param name="serialise">
        /// The serialise.
        /// </param>
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);

            ////serialise.DebugWrite(256);

            // serialise.UInt8(ref m_Flags);
            serialise.Bool(ref this.m_WorldSet);
            serialise.UInt8(ref this.m_FlagsSW);
            serialise.UInt8(ref this.m_FlagsHW);
            serialise.UInt32(ref this.m_NumFaces);
            serialise.Int8(ref this.m_OTZOfsSW);
            this.m_FaceIDs.SerialiseHeader(serialise);
            this.m_FaceIDs.ForEach(
                (ref ushort v) =>
            {
                serialise.Serialise(ref v);
                return(true);
            });

            ////serialise.DebugWrite(256);
        }
Example #8
0
        /// <summary>
        /// The serialise.
        /// </summary>
        /// <param name="serialise">
        /// The serialise.
        /// </param>
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);
            serialise.UInt32(ref this.flags);
            serialise.UInt8(ref this.FormatSW);
            serialise.UInt8(ref this.FormatHW);
            short unknown3 = 0x1000;

            serialise.Int16(ref unknown3);
            short unknown4 = 0x1000;

            serialise.Int16(ref unknown4);
            if (this.image == null)
            {
                this.image = new CIwImage();
            }

            this.image.Serialise(serialise);
            bool unknown5 = false;

            serialise.Bool(ref unknown5);
        }
Example #9
0
        /// <summary>
        /// The serialise.
        /// </summary>
        /// <param name="serialise">
        /// The serialise.
        /// </param>
        /// <exception cref="Exception">
        /// </exception>
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);

            uint resCount = 0;
            serialise.UInt32(ref resCount);

            bool unknown0 = false;
            serialise.Bool(ref unknown0);
            bool unknown1 = true;
            serialise.Bool(ref unknown1);

            while (resCount > 0)
            {
                var pos = serialise.Position;
                uint length = 0;
                serialise.UInt32(ref length);

                CIwManaged res = null;
                serialise.ManagedObject(this.Hash, ref res);
                this.resources.Add((CIwResource)res, false);
                --resCount;

                if (serialise.Position != pos + length)
                {
                    throw new Exception(
                        string.Format(
                            "Parse of {0} failed: wrong position by {1} bytes", res.GetType().Name, serialise.Position - (pos + length)));
                    serialise.Position = pos + length;
                }
            }
        }
Example #10
0
        /// <summary>
        /// The serialise.
        /// </summary>
        /// <param name="serialise">
        /// The serialise.
        /// </param>
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);
            serialise.UInt32(ref this.flags);
            serialise.UInt8(ref this.FormatSW);
            serialise.UInt8(ref this.FormatHW);
            short unknown3 = 0x1000;
            serialise.Int16(ref unknown3);
            short unknown4 = 0x1000;
            serialise.Int16(ref unknown4);
            if (this.image == null)
            {
                this.image = new CIwImage();
            }

            this.image.Serialise(serialise);
            bool unknown5 = false;
            serialise.Bool(ref unknown5);
        }
Example #11
0
        /// <summary>
        /// The serialise.
        /// </summary>
        /// <param name="serialise">
        /// The serialise.
        /// </param>
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);

            bool someFlag = false;

            serialise.Bool(ref someFlag);
            {
                serialise.UInt32(ref this.flags);
            }

            if (!someFlag)
            {
                {
                    serialise.Int16(ref this.zDepthOfs);
                }
                {
                    serialise.Int16(ref this.zDepthOfsHW);
                }
                {
                    serialise.Colour(ref this.colEmissive);
                }
                {
                    serialise.Colour(ref this.colAmbient);
                }
                {
                    serialise.Colour(ref this.colDiffuse);
                }
                {
                    serialise.Colour(ref this.colSpecular);
                }
                {
                    uint val = 4;
                    serialise.UInt32(ref val);
                }
            }
            {
                // Texture is always presented
                CIwManaged t = this.texture0;
                serialise.ManagedHash("CIwTexture".ToeHash(), ref t);
                this.texture0 = (CIwTexture)t;
            }

            if (!someFlag)
            {
                CIwManaged t = this.texture1;
                serialise.ManagedHash("CIwTexture".ToeHash(), ref t);
                this.texture1 = (CIwTexture)t;
                {
                    CIwManaged val = null;
                    serialise.ManagedHash("?".ToeHash(), ref val);
                }
                {
                    CIwManaged val = null;
                    serialise.ManagedHash("?".ToeHash(), ref val);
                }

                byte isAnimated = 0;
                serialise.UInt8(ref isAnimated);
                if (isAnimated != 0)
                {
                    {
                        byte value = 0;
                        serialise.UInt8(ref value);
                    }

                    serialise.UInt8(ref this.celNum);
                    serialise.UInt8(ref this.celNumU);
                    serialise.UInt8(ref this.celW);
                    serialise.UInt8(ref this.celH);
                    serialise.UInt8(ref this.celPeriod);
                }

                serialise.UInt8(ref this.alphaTestValue);
                {
                    CIwManaged val = null;
                    serialise.ManagedHash("?".ToeHash(), ref val);
                }
            }
        }
Example #12
0
        /// <summary>
        /// The serialise.
        /// </summary>
        /// <param name="serialise">
        /// The serialise.
        /// </param>
        public override void Serialise(IwSerialise serialise)
        {
            base.Serialise(serialise);

            bool someFlag = false;
            serialise.Bool(ref someFlag);
            {
                serialise.UInt32(ref this.flags);
            }

            if (!someFlag)
            {
                {
                    serialise.Int16(ref this.zDepthOfs);
                }
                {
                    serialise.Int16(ref this.zDepthOfsHW);
                }
                {
                    serialise.Colour(ref this.colEmissive);
                }
                {
                    serialise.Colour(ref this.colAmbient);
                }
                {
                    serialise.Colour(ref this.colDiffuse);
                }
                {
                    serialise.Colour(ref this.colSpecular);
                }
                {
                    uint val = 4;
                    serialise.UInt32(ref val);
                }
            }
            {
                // Texture is always presented
                CIwManaged t = this.texture0;
                serialise.ManagedHash("CIwTexture".ToeHash(), ref t);
                this.texture0 = (CIwTexture)t;
            }

            if (!someFlag)
            {
                CIwManaged t = this.texture1;
                serialise.ManagedHash("CIwTexture".ToeHash(), ref t);
                this.texture1 = (CIwTexture)t;
                {
                    CIwManaged val = null;
                    serialise.ManagedHash("?".ToeHash(), ref val);
                }
                {
                    CIwManaged val = null;
                    serialise.ManagedHash("?".ToeHash(), ref val);
                }

                byte isAnimated = 0;
                serialise.UInt8(ref isAnimated);
                if (isAnimated != 0)
                {
                    {
                        byte value = 0;
                        serialise.UInt8(ref value);
                    }

                    serialise.UInt8(ref this.celNum);
                    serialise.UInt8(ref this.celNumU);
                    serialise.UInt8(ref this.celW);
                    serialise.UInt8(ref this.celH);
                    serialise.UInt8(ref this.celPeriod);
                }

                serialise.UInt8(ref this.alphaTestValue);
                {
                    CIwManaged val = null;
                    serialise.ManagedHash("?".ToeHash(), ref val);
                }
            }
        }