예제 #1
0
 public void Work()
 {
     using (FileStream fsIn = new FileStream("x-10-handedict.txt", FileMode.Open, FileAccess.Read))
         using (StreamReader sr = new StreamReader(fsIn))
             using (FileStream fsOut = new FileStream("x-20-handedict.txt", FileMode.Create, FileAccess.ReadWrite))
                 using (StreamWriter sw = new StreamWriter(fsOut))
                 {
                     RawEntry re = null;
                     while ((re = getNext(sr)) != null)
                     {
                         bool   isVerified = re.LnMetaVer1.Contains("Stat-Verif");
                         string cleansed   = cleanse(re.LnVer1);
                         // Write
                         sw.WriteLine(re.LnId);
                         sw.WriteLine(re.LnMetaVer1);
                         // No change
                         if (cleansed == re.LnVer1)
                         {
                             sw.WriteLine(re.LnVer1);
                         }
                         // Add new version
                         else
                         {
                             sw.WriteLine("# " + re.LnVer1);
                             sw.WriteLine("# Ver 2016-10-23T15:32:07Z zydeo-robot " + (isVerified ? "Stat-Verif" : "Stat-New") + " 002>Datenbereinigung");
                             sw.WriteLine(cleansed);
                         }
                         // Empty line
                         sw.WriteLine();
                     }
                 }
 }
예제 #2
0
 public HashedEntry(RawEntry rawEntry, byte[] hash)
 {
     AudioHash   = hash;
     TextArea    = rawEntry.TextArea;
     CaptionType = rawEntry.CaptionType;
     Content     = rawEntry.Content;
 }
예제 #3
0
        private RawEntry getNext(StreamReader sr)
        {
            RawEntry res = null;
            string   line;

            while ((line = sr.ReadLine()) != null)
            {
                if (line == "")
                {
                    continue;
                }
                if (line.StartsWith("# ID"))
                {
                    res = new RawEntry {
                        LnId = line
                    };
                    continue;
                }
                if (line.StartsWith("# Ver"))
                {
                    res.LnMetaVer1 = line;
                    continue;
                }
                res.LnVer1 = line;
                return(res);
            }
            return(null);
        }
예제 #4
0
        public RawLocation GetRawLocationForTag(int ID)
        {
            // Our raw entry we will grab.
            RawEntry entry = null;

            // Loop through each RawEntry
            for (int x = 0; x < rawEntries.Count; x++)
            {
                if (rawEntries[x].TagID == ID)
                {
                    entry = rawEntries[x];
                    break;
                }
            }

            // If our founded entry isn't null
            if (entry != null)
            {
                if (entry.RawLocationsIndex <= rawLocations.Count)
                {
                    return(rawLocations[entry.RawLocationsIndex]);
                }
            }

            // Dang..
            return(null);
        }
        public override void Deserialize(Stream input)
        {
            var encoding = this.Encoding;

            var basePosition = input.Position;

            base.Deserialize(input);
            var endian = this.Endian;

            var entryCount           = input.ReadValueS32(endian);
            var entryNameTableOffset = input.ReadValueS64(endian);

            var rawEntries = new RawEntry[entryCount];

            for (int i = 0; i < entryCount; i++)
            {
                rawEntries[i] = RawEntry.Read(input, endian);
            }

            var entryNames = new string[entryCount];

            if (entryCount > 0)
            {
                input.Position = basePosition + entryNameTableOffset;
                for (int i = 0; i < entryCount; i++)
                {
                    var nameLength = input.ReadValueU16(endian);
                    var name       = input.ReadString(nameLength, encoding);
                    entryNames[i] = name;
                }
            }

            // we're assuming the entry names match up in order with the entries
            var entries = new Entry[entryCount];

            for (int i = 0; i < entryCount; i++)
            {
                var rawEntry = rawEntries[i];
                if (rawEntry.Unknown0C != 0x00100100)
                {
                    throw new FormatException();
                }
                entries[i] = new Entry()
                {
                    Name                 = entryNames[i],
                    NameHash             = rawEntry.NameHash,
                    Type                 = rawEntry.Type,
                    DirectoryNameHash    = rawEntry.DirectoryNameHash,
                    Unknown0C            = rawEntry.Unknown0C,
                    DataOffset           = rawEntry.DataOffset,
                    DataCompressedSize   = rawEntry.DataCompressedSize,
                    DataUncompressedSize = rawEntry.DataUncompressedSize,
                };
            }

            this._Entries.Clear();
            this._Entries.AddRange(entries);
        }
예제 #6
0
        public RawLocation GetRawLocationFromRawID(int RawID)
        {
            //Our raw entry we will grab.
            RawEntry entry = GetRawEntryFromRawID(RawID);

            //If our founded entry isn't null
            if (entry != null)
            {
                if (entry.RawLocationsIndex <= rawLocations.Count)
                {
                    return(rawLocations[entry.RawLocationsIndex]);
                }
            }

            return(null);
        }
예제 #7
0
        /// <summary>
        /// This form of initializing the RawInformation class will load all raw information in the class, from the given map.
        /// </summary>
        /// <param name="map">The map to load information from.</param>
        public RawInformation(HaloMap Map)
        {
            //Set our instance of the HaloMap class
            map = Map;

            //Initialize our rawBlock List
            rawEntries = new RawEntryTable(Map);

            //Get our bsp.
            RawEntry bsp = rawEntries[rawEntries.Count - 1];

            //Load our external maps list
            externalMaps = new ExternalMapsList(Map);

            //Load the raw pools
            rawPools = new RawPoolsList(Map);

            //Load the raw locations
            rawLocations = new RawLocationsList(Map);

            //Load our unknowns
            unknowns = new Unknown3s(Map);
        }
예제 #8
0
        public override void Create(Stream output, IEnumerable<Entry> list, ResourceOptions options,
                                     EntryCallback callback)
        {
            var sg_options = GetOptions<SteinsGateOptions> (options);
            Encoding encoding = sg_options.FileNameEncoding.WithFatalFallback();
            long start_pos = output.Position;
            int callback_count = 0;

            uint index_size = 4;
            var real_entry_list = new List<RawEntry> (list.Count());
            var used_names = new HashSet<string>();
            foreach (var entry in list)
            {
                string name = entry.Name.Replace (@"\", "/");
                if (!used_names.Add (name)) // duplicate name
                    continue;
                var header_entry = new RawEntry { Name = entry.Name };
                try
                {
                    header_entry.IndexName = encoding.GetBytes (name);
                }
                catch (EncoderFallbackException X)
                {
                    throw new InvalidFileName (entry.Name, arcStrings.MsgIllegalCharacters, X);
                }
                index_size += (uint)header_entry.IndexName.Length + 16;
                real_entry_list.Add (header_entry);
            }
            output.Seek (4+index_size, SeekOrigin.Current);
            foreach (var entry in real_entry_list)
            {
                using (var input = File.Open (entry.Name, FileMode.Open, FileAccess.Read))
                {
                    var file_size = input.Length;
                    if (file_size > uint.MaxValue)
                        throw new FileSizeException();
                    entry.Offset = output.Position;
                    entry.Size  = (uint)file_size;
                    if (null != callback)
                        callback (callback_count++, entry, arcStrings.MsgAddingFile);
                    using (var stream = new SteinsGateEncryptedStream (output))
                        input.CopyTo (stream);
                }
            }
            if (null != callback)
                callback (callback_count++, null, arcStrings.MsgWritingIndex);
            output.Position = start_pos;
            output.WriteByte ((byte)(index_size & 0xff));
            output.WriteByte ((byte)((index_size >> 8) & 0xff));
            output.WriteByte ((byte)((index_size >> 16) & 0xff));
            output.WriteByte ((byte)((index_size >> 24) & 0xff));
            var encrypted_stream = new SteinsGateEncryptedStream (output);
            using (var header = new BinaryWriter (encrypted_stream))
            {
                header.Write (real_entry_list.Count);
                foreach (var entry in real_entry_list)
                {
                    header.Write (entry.IndexName.Length);
                    header.Write (entry.IndexName);
                    header.Write ((uint)entry.Size);
                    header.Write ((long)entry.Offset);
                }
            }
        }
예제 #9
0
        public override void Create(Stream output, IEnumerable <Entry> list, ResourceOptions options,
                                    EntryCallback callback)
        {
            var      sg_options     = GetOptions <SteinsGateOptions> (options);
            Encoding encoding       = sg_options.FileNameEncoding.WithFatalFallback();
            long     start_pos      = output.Position;
            int      callback_count = 0;

            uint index_size      = 4;
            var  real_entry_list = new List <RawEntry> (list.Count());
            var  used_names      = new HashSet <string>();

            foreach (var entry in list)
            {
                string name = entry.Name.Replace(@"\", "/");
                if (!used_names.Add(name))  // duplicate name
                {
                    continue;
                }
                var header_entry = new RawEntry {
                    Name = entry.Name
                };
                try
                {
                    header_entry.IndexName = encoding.GetBytes(name);
                }
                catch (EncoderFallbackException X)
                {
                    throw new InvalidFileName(entry.Name, arcStrings.MsgIllegalCharacters, X);
                }
                index_size += (uint)header_entry.IndexName.Length + 16;
                real_entry_list.Add(header_entry);
            }
            output.Seek(4 + index_size, SeekOrigin.Current);
            foreach (var entry in real_entry_list)
            {
                using (var input = File.Open(entry.Name, FileMode.Open, FileAccess.Read))
                {
                    var file_size = input.Length;
                    if (file_size > uint.MaxValue)
                    {
                        throw new FileSizeException();
                    }
                    entry.Offset = output.Position;
                    entry.Size   = (uint)file_size;
                    if (null != callback)
                    {
                        callback(callback_count++, entry, arcStrings.MsgAddingFile);
                    }
                    using (var stream = new SteinsGateEncryptedStream(output))
                        input.CopyTo(stream);
                }
            }
            if (null != callback)
            {
                callback(callback_count++, null, arcStrings.MsgWritingIndex);
            }
            output.Position = start_pos;
            output.WriteByte((byte)(index_size & 0xff));
            output.WriteByte((byte)((index_size >> 8) & 0xff));
            output.WriteByte((byte)((index_size >> 16) & 0xff));
            output.WriteByte((byte)((index_size >> 24) & 0xff));
            var encrypted_stream = new SteinsGateEncryptedStream(output);

            using (var header = new BinaryWriter(encrypted_stream))
            {
                header.Write(real_entry_list.Count);
                foreach (var entry in real_entry_list)
                {
                    header.Write(entry.IndexName.Length);
                    header.Write(entry.IndexName);
                    header.Write((uint)entry.Size);
                    header.Write((long)entry.Offset);
                }
            }
        }
예제 #10
0
        public NewRoundPage(SessionData sessionData)
        {
            this.sd = sessionData;
            this.BackgroundImageSource = "SharecardBase.png";
            ScrollView scrollView = new ScrollView();

            //scrollView.Orientation = ScrollOrientation.Horizontal;
            scrollView.Orientation = ScrollOrientation.Both;
            Grid grid = new Grid();


            holeLabel = new myLabel();
            h1Label   = new myLabel();
            h2Label   = new myLabel();
            h3Label   = new myLabel();
            h4Label   = new myLabel();
            h5Label   = new myLabel();
            h6Label   = new myLabel();
            h7Label   = new myLabel();
            h8Label   = new myLabel();
            h9Label   = new myLabel();
            h10Label  = new myLabel();
            h11Label  = new myLabel();
            h12Label  = new myLabel();
            h13Label  = new myLabel();
            h14Label  = new myLabel();
            h15Label  = new myLabel();
            h16Label  = new myLabel();
            h17Label  = new myLabel();
            h18Label  = new myLabel();

            holeLabel.Text = "Hole Number:";
            h1Label.Text   = "#1";
            h2Label.Text   = "#2";
            h3Label.Text   = "#3";
            h4Label.Text   = "#4";
            h5Label.Text   = "#5";
            h6Label.Text   = "#6";
            h7Label.Text   = "#7";
            h8Label.Text   = "#8";
            h9Label.Text   = "#9";
            h10Label.Text  = "#10";
            h11Label.Text  = "#11";
            h12Label.Text  = "#12";
            h13Label.Text  = "#13";
            h14Label.Text  = "#14";
            h15Label.Text  = "#15";
            h16Label.Text  = "#16";
            h17Label.Text  = "#17";
            h18Label.Text  = "#18";

            holeParLabel = new parLabel();
            p1Label      = new parLabel();
            p2Label      = new parLabel();
            p3Label      = new parLabel();
            p4Label      = new parLabel();
            p5Label      = new parLabel();
            p6Label      = new parLabel();
            p7Label      = new parLabel();
            p8Label      = new parLabel();
            p9Label      = new parLabel();
            p10Label     = new parLabel();
            p11Label     = new parLabel();
            p12Label     = new parLabel();
            p13Label     = new parLabel();
            p14Label     = new parLabel();
            p15Label     = new parLabel();
            p16Label     = new parLabel();
            p17Label     = new parLabel();
            p18Label     = new parLabel();

            holeParLabel.Text = "Par:";
            p1Label.Text      = "0";
            p2Label.Text      = "0";
            p3Label.Text      = "0";
            p4Label.Text      = "0";
            p5Label.Text      = "0";
            p6Label.Text      = "0";
            p7Label.Text      = "0";
            p8Label.Text      = "0";
            p9Label.Text      = "0";
            p10Label.Text     = "0";
            p11Label.Text     = "0";
            p12Label.Text     = "0";
            p13Label.Text     = "0";
            p14Label.Text     = "0";
            p15Label.Text     = "0";
            p16Label.Text     = "0";
            p17Label.Text     = "0";
            p18Label.Text     = "0";

            baseLabel          = new myLabel();
            baseLabel.Text     = "Score:";
            hScoreLabel        = new HandicapScoreLabel();
            hScoreLabel.Text   = "Handicap Strokes";
            handicapLabel      = new HandicapStrokeLabel();
            handicapLabel.Text = "Course Handicap:";
            specialLabel       = new SpecialStrokeLabel();
            specialLabel.Text  = "Beer Strokes:";

            h1rEntry  = new RawEntry();
            h2rEntry  = new RawEntry();
            h3rEntry  = new RawEntry();
            h4rEntry  = new RawEntry();
            h5rEntry  = new RawEntry();
            h6rEntry  = new RawEntry();
            h7rEntry  = new RawEntry();
            h8rEntry  = new RawEntry();
            h9rEntry  = new RawEntry();
            h10rEntry = new RawEntry();
            h11rEntry = new RawEntry();
            h12rEntry = new RawEntry();
            h13rEntry = new RawEntry();
            h14rEntry = new RawEntry();
            h15rEntry = new RawEntry();
            h16rEntry = new RawEntry();
            h17rEntry = new RawEntry();
            h18rEntry = new RawEntry();

            h1rEntry.TextChanged  += H1rEntry_TextChanged;
            h2rEntry.TextChanged  += H2rEntry_TextChanged;
            h3rEntry.TextChanged  += H3rEntry_TextChanged;
            h4rEntry.TextChanged  += H4rEntry_TextChanged;
            h5rEntry.TextChanged  += H5rEntry_TextChanged;
            h6rEntry.TextChanged  += H6rEntry_TextChanged;
            h7rEntry.TextChanged  += H7rEntry_TextChanged;
            h8rEntry.TextChanged  += H8rEntry_TextChanged;
            h9rEntry.TextChanged  += H9rEntry_TextChanged;
            h10rEntry.TextChanged += H10rEntry_TextChanged;
            h11rEntry.TextChanged += H11rEntry_TextChanged;
            h12rEntry.TextChanged += H12rEntry_TextChanged;
            h13rEntry.TextChanged += H13rEntry_TextChanged;
            h14rEntry.TextChanged += H14rEntry_TextChanged;
            h15rEntry.TextChanged += H15rEntry_TextChanged;
            h16rEntry.TextChanged += H16rEntry_TextChanged;
            h17rEntry.TextChanged += H17rEntry_TextChangedAsync;
            h18rEntry.TextChanged += H18rEntry_TextChanged;


            h1hcEntry  = new HandicapStrokeLabel();
            h2hcEntry  = new HandicapStrokeLabel();
            h3hcEntry  = new HandicapStrokeLabel();
            h4hcEntry  = new HandicapStrokeLabel();
            h5hcEntry  = new HandicapStrokeLabel();
            h6hcEntry  = new HandicapStrokeLabel();
            h7hcEntry  = new HandicapStrokeLabel();
            h8hcEntry  = new HandicapStrokeLabel();
            h9hcEntry  = new HandicapStrokeLabel();
            h10hcEntry = new HandicapStrokeLabel();
            h11hcEntry = new HandicapStrokeLabel();
            h12hcEntry = new HandicapStrokeLabel();
            h13hcEntry = new HandicapStrokeLabel();
            h14hcEntry = new HandicapStrokeLabel();
            h15hcEntry = new HandicapStrokeLabel();
            h16hcEntry = new HandicapStrokeLabel();
            h17hcEntry = new HandicapStrokeLabel();
            h18hcEntry = new HandicapStrokeLabel();

            h1spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h1sp");
            h2spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h2sp");
            h3spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h3sp");
            h4spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h4sp");
            h5spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h5sp");
            h6spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h6sp");
            h7spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h7sp");
            h8spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h8sp");
            h9spEntry  = new SpecialStrokeEntry(sd.currentScoreCard.id, "h9sp");
            h10spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h10sp");
            h11spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h11sp");
            h12spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h12sp");
            h13spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h13sp");
            h14spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h14sp");
            h15spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h15sp");
            h16spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h16sp");
            h17spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h17sp");
            h18spEntry = new SpecialStrokeEntry(sd.currentScoreCard.id, "h18sp");

            h1adjEntry  = new HAdjustedScoreLabel();
            h2adjEntry  = new HAdjustedScoreLabel();
            h3adjEntry  = new HAdjustedScoreLabel();
            h4adjEntry  = new HAdjustedScoreLabel();
            h5adjEntry  = new HAdjustedScoreLabel();
            h6adjEntry  = new HAdjustedScoreLabel();
            h7adjEntry  = new HAdjustedScoreLabel();
            h8adjEntry  = new HAdjustedScoreLabel();
            h9adjEntry  = new HAdjustedScoreLabel();
            h10adjEntry = new HAdjustedScoreLabel();
            h11adjEntry = new HAdjustedScoreLabel();
            h12adjEntry = new HAdjustedScoreLabel();
            h13adjEntry = new HAdjustedScoreLabel();
            h14adjEntry = new HAdjustedScoreLabel();
            h15adjEntry = new HAdjustedScoreLabel();
            h16adjEntry = new HAdjustedScoreLabel();
            h17adjEntry = new HAdjustedScoreLabel();
            h18adjEntry = new HAdjustedScoreLabel();

            int optionsRow  = 0;
            int holeRow     = optionsRow + 1;
            int parRow      = holeRow + 1;
            int handicapRow = parRow + 1;
            int rawRow      = handicapRow + 1;
            int hScoreRow   = rawRow + 1;
            int specialRow  = hScoreRow + 1;

            addPlayersButton          = new Button();
            addPlayersButton.Text     = "Add Players";
            addPlayersButton.Clicked += AddPlayersButton_Clicked;

            viewLeaderBoardButton          = new Button();
            viewLeaderBoardButton.Text     = "View LeaderBoard";
            viewLeaderBoardButton.Clicked += ViewLeaderBoardButton_Clicked;

            grid.Children.Add(addPlayersButton, 0, optionsRow);
            grid.Children.Add(viewLeaderBoardButton, 1, optionsRow);

            grid.Children.Add(holeLabel, 0, holeRow);
            grid.Children.Add(h1Label, 1, holeRow);
            grid.Children.Add(h2Label, 2, holeRow);
            grid.Children.Add(h3Label, 3, holeRow);
            grid.Children.Add(h4Label, 4, holeRow);
            grid.Children.Add(h5Label, 5, holeRow);
            grid.Children.Add(h6Label, 6, holeRow);
            grid.Children.Add(h7Label, 7, holeRow);
            grid.Children.Add(h8Label, 8, holeRow);
            grid.Children.Add(h9Label, 9, holeRow);
            grid.Children.Add(h10Label, 10, holeRow);
            grid.Children.Add(h11Label, 11, holeRow);
            grid.Children.Add(h12Label, 12, holeRow);
            grid.Children.Add(h13Label, 13, holeRow);
            grid.Children.Add(h14Label, 14, holeRow);
            grid.Children.Add(h15Label, 15, holeRow);
            grid.Children.Add(h16Label, 16, holeRow);
            grid.Children.Add(h17Label, 17, holeRow);
            grid.Children.Add(h18Label, 18, holeRow);


            grid.Children.Add(holeParLabel, 0, parRow);
            grid.Children.Add(p1Label, 1, parRow);
            grid.Children.Add(p2Label, 2, parRow);
            grid.Children.Add(p3Label, 3, parRow);
            grid.Children.Add(p4Label, 4, parRow);
            grid.Children.Add(p5Label, 5, parRow);
            grid.Children.Add(p6Label, 6, parRow);
            grid.Children.Add(p7Label, 7, parRow);
            grid.Children.Add(p8Label, 8, parRow);
            grid.Children.Add(p9Label, 9, parRow);
            grid.Children.Add(p10Label, 10, parRow);
            grid.Children.Add(p11Label, 11, parRow);
            grid.Children.Add(p12Label, 12, parRow);
            grid.Children.Add(p13Label, 13, parRow);
            grid.Children.Add(p14Label, 14, parRow);
            grid.Children.Add(p15Label, 15, parRow);
            grid.Children.Add(p16Label, 16, parRow);
            grid.Children.Add(p17Label, 17, parRow);
            grid.Children.Add(p18Label, 18, parRow);

            grid.Children.Add(baseLabel, 0, rawRow);
            grid.Children.Add(hScoreLabel, 0, hScoreRow);
            grid.Children.Add(handicapLabel, 0, handicapRow);
            grid.Children.Add(specialLabel, 0, specialRow);

            grid.Children.Add(h1rEntry, 1, rawRow);
            grid.Children.Add(h2rEntry, 2, rawRow);
            grid.Children.Add(h3rEntry, 3, rawRow);
            grid.Children.Add(h4rEntry, 4, rawRow);
            grid.Children.Add(h5rEntry, 5, rawRow);
            grid.Children.Add(h6rEntry, 6, rawRow);
            grid.Children.Add(h7rEntry, 7, rawRow);
            grid.Children.Add(h8rEntry, 8, rawRow);
            grid.Children.Add(h9rEntry, 9, rawRow);
            grid.Children.Add(h10rEntry, 10, rawRow);
            grid.Children.Add(h11rEntry, 11, rawRow);
            grid.Children.Add(h12rEntry, 12, rawRow);
            grid.Children.Add(h13rEntry, 13, rawRow);
            grid.Children.Add(h14rEntry, 14, rawRow);
            grid.Children.Add(h15rEntry, 15, rawRow);
            grid.Children.Add(h16rEntry, 16, rawRow);
            grid.Children.Add(h17rEntry, 17, rawRow);
            grid.Children.Add(h18rEntry, 18, rawRow);

            grid.Children.Add(h1hcEntry, 1, handicapRow);
            grid.Children.Add(h2hcEntry, 2, handicapRow);
            grid.Children.Add(h3hcEntry, 3, handicapRow);
            grid.Children.Add(h4hcEntry, 4, handicapRow);
            grid.Children.Add(h5hcEntry, 5, handicapRow);
            grid.Children.Add(h6hcEntry, 6, handicapRow);
            grid.Children.Add(h7hcEntry, 7, handicapRow);
            grid.Children.Add(h8hcEntry, 8, handicapRow);
            grid.Children.Add(h9hcEntry, 9, handicapRow);
            grid.Children.Add(h10hcEntry, 10, handicapRow);
            grid.Children.Add(h11hcEntry, 11, handicapRow);
            grid.Children.Add(h12hcEntry, 12, handicapRow);
            grid.Children.Add(h13hcEntry, 13, handicapRow);
            grid.Children.Add(h14hcEntry, 14, handicapRow);
            grid.Children.Add(h15hcEntry, 15, handicapRow);
            grid.Children.Add(h16hcEntry, 16, handicapRow);
            grid.Children.Add(h17hcEntry, 17, handicapRow);
            grid.Children.Add(h18hcEntry, 18, handicapRow);

            grid.Children.Add(h1adjEntry, 1, hScoreRow);
            grid.Children.Add(h2adjEntry, 2, hScoreRow);
            grid.Children.Add(h3adjEntry, 3, hScoreRow);
            grid.Children.Add(h4adjEntry, 4, hScoreRow);
            grid.Children.Add(h5adjEntry, 5, hScoreRow);
            grid.Children.Add(h6adjEntry, 6, hScoreRow);
            grid.Children.Add(h7adjEntry, 7, hScoreRow);
            grid.Children.Add(h8adjEntry, 8, hScoreRow);
            grid.Children.Add(h9adjEntry, 9, hScoreRow);
            grid.Children.Add(h10adjEntry, 10, hScoreRow);
            grid.Children.Add(h11adjEntry, 11, hScoreRow);
            grid.Children.Add(h12adjEntry, 12, hScoreRow);
            grid.Children.Add(h13adjEntry, 13, hScoreRow);
            grid.Children.Add(h14adjEntry, 14, hScoreRow);
            grid.Children.Add(h15adjEntry, 15, hScoreRow);
            grid.Children.Add(h16adjEntry, 16, hScoreRow);
            grid.Children.Add(h17adjEntry, 17, hScoreRow);
            grid.Children.Add(h18adjEntry, 18, hScoreRow);

            grid.Children.Add(h1spEntry, 1, specialRow);
            grid.Children.Add(h2spEntry, 2, specialRow);
            grid.Children.Add(h3spEntry, 3, specialRow);
            grid.Children.Add(h4spEntry, 4, specialRow);
            grid.Children.Add(h5spEntry, 5, specialRow);
            grid.Children.Add(h6spEntry, 6, specialRow);
            grid.Children.Add(h7spEntry, 7, specialRow);
            grid.Children.Add(h8spEntry, 8, specialRow);
            grid.Children.Add(h9spEntry, 9, specialRow);
            grid.Children.Add(h10spEntry, 10, specialRow);
            grid.Children.Add(h11spEntry, 11, specialRow);
            grid.Children.Add(h12spEntry, 12, specialRow);
            grid.Children.Add(h13spEntry, 13, specialRow);
            grid.Children.Add(h14spEntry, 14, specialRow);
            grid.Children.Add(h15spEntry, 15, specialRow);
            grid.Children.Add(h16spEntry, 16, specialRow);
            grid.Children.Add(h17spEntry, 17, specialRow);
            grid.Children.Add(h18spEntry, 18, specialRow);


            scrollView.Content = grid;
            Content            = scrollView;
        }
예제 #11
0
        public override void Deserialize(Stream input)
        {
            var encoding = this.Encoding;

            var basePosition = input.Position;

            base.Deserialize(input);
            var endian = this.Endian;

            var entryCount           = input.ReadValueS32(endian);
            var entryNameTableOffset = input.ReadValueS64(endian);

            var rawEntries = new RawEntry[entryCount];

            for (int i = 0; i < entryCount; i++)
            {
                rawEntries[i] = RawEntry.Read(input, endian);
            }

            var entryNames = new string[entryCount];

            if (entryCount > 0)
            {
                input.Position = basePosition + entryNameTableOffset;
                for (int i = 0; i < entryCount; i++)
                {
                    var nameLength = input.ReadValueU16(endian);
                    var name       = input.ReadString(nameLength, encoding);
                    entryNames[i] = name;
                }
            }

            // we're assuming the entry names match up in order with the entries
            var entries = new Entry[entryCount];

            for (int i = 0; i < entryCount; i++)
            {
                var rawEntry   = rawEntries[i];
                var rawMipMaps = rawEntry.MipMaps;

                var mipMaps = new MipMap[rawMipMaps.Length];
                for (int j = 0; j < rawMipMaps.Length; j++)
                {
                    var rawMipMap = rawMipMaps[j];
                    mipMaps[j] = new MipMap()
                    {
                        DataOffset           = rawMipMap.DataOffset,
                        DataCompressedSize   = rawMipMap.DataCompressedSize,
                        DataUncompressedSize = rawMipMap.DataUncompressedSize,
                        IndexStart           = rawMipMap.IndexStart,
                        IndexEnd             = rawMipMap.IndexEnd,
                    };
                }

                entries[i] = new Entry()
                {
                    Name              = entryNames[i],
                    NameHash          = rawEntry.NameHash,
                    Type              = rawEntry.Type,
                    DirectoryNameHash = rawEntry.DirectoryNameHash,
                    Unknown0C         = rawEntry.Unknown0C,
                    Height            = rawEntry.Height,
                    Width             = rawEntry.Width,
                    MipMapCount       = rawEntry.MipMapCount,
                    Format            = rawEntry.Format,
                    Unknown16         = rawEntry.Unknown16,
                    Unknown17         = rawEntry.Unknown17,
                    MipMaps           = mipMaps,
                };
            }

            this._Entries.Clear();
            this._Entries.AddRange(entries);
        }