예제 #1
0
        private UiNode[] ExpandTrbChilds()
        {
            ImgbArchiveAccessor imgbAccessor = new ImgbArchiveAccessor(_listing, _indices, _binary);

            SeDbArchiveListing sedbListing = SeDbArchiveListingReader.Read(imgbAccessor);
            UiNode[] result = new UiNode[sedbListing.Count];
            int offset = sedbListing.Count * 16 + 0x40;
            using (Stream headers = imgbAccessor.ExtractHeaders())
            using (BinaryReader br = new BinaryReader(headers))
            {
                for (int i = 0; i < result.Length; i++)
                {
                    SeDbResEntry entry = sedbListing[i];
                    String name = entry.Index.ToString();

                    SectionType type;
                    if (TryReadSectionType(br, offset, entry, out type))
                        name = name + "." + type.ToString().ToLower();

                    result[i] = new UiSeDbTableLeaf(name, entry, sedbListing) {Parent = this};
                }
            }
            return result;
        }
 public static WpdArchiveListing Read(ImgbArchiveAccessor accessor)
 {
     WpdArchiveListingReader reader = new WpdArchiveListingReader(accessor);
     return reader.Read();
 }
 private WpdArchiveListingReader(ImgbArchiveAccessor accessor)
 {
     _accessor = Exceptions.CheckArgumentNull(accessor, "accessor");
 }
예제 #4
0
        public static SeDbArchiveListing Read(ImgbArchiveAccessor accessor)
        {
            SeDbArchiveListingReader reader = new SeDbArchiveListingReader(accessor);

            return(reader.Read());
        }
예제 #5
0
 private SeDbArchiveListingReader(ImgbArchiveAccessor accessor)
 {
     _accessor = Exceptions.CheckArgumentNull(accessor, "accessor");
 }
예제 #6
0
        private UiNode[] ExpandWpdChilds()
        {
            ImgbArchiveAccessor imgbAccessor = new ImgbArchiveAccessor(_listing, _indices, _binary);
            WpdArchiveListing wpdListing = WpdArchiveListingReader.Read(imgbAccessor);

            UiNode[] result = new UiNode[wpdListing.Count];
            for (int i = 0; i < result.Length; i++)
            {
                WpdEntry xgrEntry = wpdListing[i];
                result[i] = new UiWpdTableLeaf(xgrEntry.Name, xgrEntry, wpdListing) {Parent = this};
            }
            return result;
        }
예제 #7
0
 public SeDbArchiveListing(ImgbArchiveAccessor accessor, int entriesCount)
     : base(entriesCount)
 {
     Accessor = accessor;
 }
예제 #8
0
 public WpdArchiveListing(ImgbArchiveAccessor accessor)
 {
     Accessor = accessor;
 }