Exemplo 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 (Data == null)
                    {
                        Data = new NavMeshData();
                    }

                    Data.ReadBinary(reader);
                    break;

                case "NVVX":
                    if (Vertices == null)
                    {
                        Vertices = new SimpleSubrecord <Byte[]>();
                    }

                    Vertices.ReadBinary(reader);
                    break;

                case "NVTR":
                    if (Triangles == null)
                    {
                        Triangles = new SimpleSubrecord <Byte[]>();
                    }

                    Triangles.ReadBinary(reader);
                    break;

                case "NVCA":
                    if (Unknown == null)
                    {
                        Unknown = new SimpleSubrecord <Byte[]>();
                    }

                    Unknown.ReadBinary(reader);
                    break;

                case "NVDP":
                    if (Doors == null)
                    {
                        Doors = new NavMeshDoorList();
                    }

                    Doors.ReadBinary(reader);
                    break;

                case "NVGD":
                    if (Grid == null)
                    {
                        Grid = new SimpleSubrecord <Byte[]>();
                    }

                    Grid.ReadBinary(reader);
                    break;

                case "NVEX":
                    if (ExternalConnections == null)
                    {
                        ExternalConnections = new NavMeshExternalConnectionList();
                    }

                    ExternalConnections.ReadBinary(reader);
                    break;

                default:
                    throw new Exception();
                }
            }
        }