public PackedBitVector2(EndianBinaryReader reader)
        {
            m_NumItems = reader.ReadUInt32();

            int numData = reader.ReadInt32();

            m_Data = reader.ReadBytes(numData);
            reader.AlignStream(4);

            m_BitSize = reader.ReadByte();
            reader.AlignStream(4);
        }
Exemplo n.º 2
0
        public PackedFloatVector(EndianBinaryReader reader)
        {
            m_NumItems = reader.ReadUInt32();
            m_Range    = reader.ReadSingle();
            m_Start    = reader.ReadSingle();

            int numData = reader.ReadInt32();

            m_Data = reader.ReadBytes(numData);
            reader.AlignStream(4);

            m_BitSize = reader.ReadByte();
            reader.AlignStream(4);
        }
        public ClipMuscleConstant(EndianBinaryReader reader, int[] version)
        {
            m_DeltaPose = new HumanPose(reader, version);
            m_StartX    = new xform(reader, version);
            if (version[0] > 5 || (version[0] == 5 && version[1] >= 5))//5.5 and up
            {
                m_StopX = new xform(reader, version);
            }
            m_LeftFootStartX  = new xform(reader, version);
            m_RightFootStartX = new xform(reader, version);
            if (version[0] < 5)//5.0 down
            {
                m_MotionStartX = new xform(reader, version);
                m_MotionStopX  = new xform(reader, version);
            }
            m_AverageSpeed        = version[0] > 5 || (version[0] == 5 && version[1] >= 4) ? (object)reader.ReadVector3() : (object)reader.ReadVector4();//5.4 and up
            m_Clip                = new Clip(reader, version);
            m_StartTime           = reader.ReadSingle();
            m_StopTime            = reader.ReadSingle();
            m_OrientationOffsetY  = reader.ReadSingle();
            m_Level               = reader.ReadSingle();
            m_CycleOffset         = reader.ReadSingle();
            m_AverageAngularSpeed = reader.ReadSingle();

            int numIndices = reader.ReadInt32();

            m_IndexArray = reader.ReadInt32Array(numIndices);

            int numDeltas = reader.ReadInt32();

            m_ValueArrayDelta = new List <ValueDelta>(numDeltas);
            for (int i = 0; i < numDeltas; i++)
            {
                m_ValueArrayDelta.Add(new ValueDelta(reader));
            }
            if (version[0] > 5 || (version[0] == 5 && version[1] >= 3))//5.3 and up
            {
                m_ValueArrayReferencePose = reader.ReadSingleArray(reader.ReadInt32());
            }

            m_Mirror               = reader.ReadBoolean();
            m_LoopTime             = reader.ReadBoolean();
            m_LoopBlend            = reader.ReadBoolean();
            m_LoopBlendOrientation = reader.ReadBoolean();
            m_LoopBlendPositionY   = reader.ReadBoolean();
            m_LoopBlendPositionXZ  = reader.ReadBoolean();
            if (version[0] > 5 || (version[0] == 5 && version[1] >= 5))//5.5 and up
            {
                m_StartAtOrigin = reader.ReadBoolean();
            }
            m_KeepOriginalOrientation = reader.ReadBoolean();
            m_KeepOriginalPositionY   = reader.ReadBoolean();
            m_KeepOriginalPositionXZ  = reader.ReadBoolean();
            m_HeightFromFeet          = reader.ReadBoolean();
            reader.AlignStream(4);
        }
Exemplo n.º 4
0
        /// <summary>
        ///  TextAsset
        /// </summary>
        /// <param name="data"></param>
        public Textasset(byte[] data)
        {
            EndianBinaryReader reader = new EndianBinaryReader(new MemoryStream(data), EndianType.LittleEndian);

            name = reader.ReadAlignedString();
            var length = reader.ReadInt32();

            bytes = reader.ReadBytes(length);
            text  = Encoding.UTF8.GetString(bytes);
            reader.AlignStream(4);
            // m_pathname = reader.ReadAlignedString();
        }
 public static string ReadAlignedUtf8String(this EndianBinaryReader reader, int length)
 {
     // crude failsafe
     if (length > 0 && length < (reader.BaseStream.Length - reader.BaseStream.Position))
     {
         var stringData = new byte[length];
         reader.Read(stringData, 0, length);
         //must verify strange characters in PS3
         var result = Encoding.UTF8.GetString(stringData);
         reader.AlignStream(4);
         return(result);
     }
     else
     {
         return(string.Empty);
     }
 }