Example #1
0
        public CSectorData(CR2WFile cr2w)
            : base(cr2w)
        {
            Unknown1 = new CUInt32(cr2w)
            {
                Name = "unknown1",
            };
            Unknown2 = new CUInt32(cr2w)
            {
                Name = "unknown2",
            };
            blocksize = new CVLQInt32(cr2w)
            {
                Name = "blocksize",
            };

            Resources = new CBufferVLQ <CSectorDataResource>(cr2w, _ => new CSectorDataResource(_))
            {
                Name = "resources",
            };
            Objects = new CBufferVLQ <CSectorDataObject>(cr2w, _ => new CSectorDataObject(_))
            {
                Name = "objects",
            };

            BlockData = new CCompressedBuffer <SBlockData>(cr2w, _ => new SBlockData(_))
            {
                Name = "blockData",
            };
        }
Example #2
0
 public CSectorData(IRed3EngineFile cr2w, CVariable parent, string name) : base(cr2w, parent, name)
 {
     blocksize = new CVLQInt32(cr2w, this, nameof(blocksize))
     {
         IsSerialized = true
     };
     BlockData = new CCompressedBuffer <SBlockData>(cr2w, this, nameof(BlockData))
     {
         IsSerialized = true
     };
 }
Example #3
0
        public override void Write(BinaryWriter file)
        {
            if (elements.Count == 0)
            {
                file.Write((byte)0x80);
            }
            else
            {
                CVLQInt32 count = new CVLQInt32(cr2w, null, "");
                count.val = elements.Count;
                count.Write(file);
            }

            base.Write(file);
        }
Example #4
0
        private void ReadBytes(int bytestart, BinaryReader reader)
        {
            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            //try
            //{
            //    var obj = new CVariable(File, null, "obj");
            //    obj.Read(reader, (uint) (bytes.Length - bytestart));
            //    var v = CreatePropertyLayout(obj);
            //    v.Endpos = (int) reader.BaseStream.Position;
            //    v.HexValue = bytes[bytestart].ToString("X2");
            //    v.Method = "CVector";
            //}
            //catch
            //{
            //}

            //reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CUInt64(File, null, "obj");
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CUInt64";
            }
            catch
            {
            }

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

            try
            {
                var obj = new CUInt32(File, null, "obj");
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CUInt32";
            }
            catch
            {
            }


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

            try
            {
                var obj = new CUInt16(File, null, "obj");
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CUInt16";
            }
            catch
            {
            }

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

            try
            {
                var obj = new CUInt8(File, null, "obj");

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CUInt8";
            }
            catch
            {
            }

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

            try
            {
                var obj = new CVLQInt32(File, null, "obj");
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CVLQInt32";
            }
            catch
            {
            }

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

            try
            {
                var obj = new CDynamicInt(File, null, "obj");
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CDynamicInt";
            }
            catch
            {
            }

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

            try
            {
                var obj = new CFloat(File, null, "obj");
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CFloat";
            }
            catch
            {
            }

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

            try
            {
                var obj = new CName(File, null, "obj");

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CName";

                var valueTest = v.Value;
            }
            catch
            {
            }

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

            try
            {
                var obj = new CHandle <CVariable>(File, null, "obj");

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CHandle";

                var valueTest = v.Value;
            }
            catch
            {
            }

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

            try
            {
                var obj = new CSoft <CVariable>(File, null, "obj");

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CSoft";

                var valueTest = v.Value;
            }
            catch
            {
            }

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

            try
            {
                var obj = File.ReadVariable(reader, null);

                if (obj != null)
                {
                    obj.Read(reader, (uint)(bytes.Length - bytestart));
                    var v = CreatePropertyLayout(obj);
                    v.Endpos   = (int)reader.BaseStream.Position;
                    v.HexValue = bytes[bytestart].ToString("X2");
                    v.Method   = "ReadVariable";
                }
            }
            catch
            {
            }
        }