Esempio n. 1
0
        public override void ReadData(ESPReader reader, long dataEnd)
        {
            while (reader.BaseStream.Position < dataEnd)
            {
                string subTag = reader.PeekTag();

                switch (subTag)
                {
                case "EDID":
                    if (EditorID == null)
                    {
                        EditorID = new SimpleSubrecord <String>();
                    }

                    EditorID.ReadBinary(reader);
                    break;

                case "NVER":
                    if (Version == null)
                    {
                        Version = new SimpleSubrecord <UInt32>();
                    }

                    Version.ReadBinary(reader);
                    break;

                case "DATA":
                    if (GeneralData == null)
                    {
                        GeneralData = new RagdollData();
                    }

                    GeneralData.ReadBinary(reader);
                    break;

                case "XNAM":
                    if (ActorBase == null)
                    {
                        ActorBase = new RecordReference();
                    }

                    ActorBase.ReadBinary(reader);
                    break;

                case "TNAM":
                    if (BodyPartData == null)
                    {
                        BodyPartData = new RecordReference();
                    }

                    BodyPartData.ReadBinary(reader);
                    break;

                case "RAFD":
                    if (FeedbackData == null)
                    {
                        FeedbackData = new RagdollFeedbackData();
                    }

                    FeedbackData.ReadBinary(reader);
                    break;

                case "RAFB":
                    if (DynamicBones == null)
                    {
                        DynamicBones = new RagdollDynamicBones();
                    }

                    DynamicBones.ReadBinary(reader);
                    break;

                case "RAPS":
                    if (PoseMatchingData == null)
                    {
                        PoseMatchingData = new RagdollPoseMatching();
                    }

                    PoseMatchingData.ReadBinary(reader);
                    break;

                case "ANAM":
                    if (DeathPose == null)
                    {
                        DeathPose = new SimpleSubrecord <String>();
                    }

                    DeathPose.ReadBinary(reader);
                    break;

                default:
                    throw new Exception();
                }
            }
        }