示例#1
0
        public static WalkPathFile headerConstructor(List <Byte> rawHeader)
        {
            WalkPathFile data = new WalkPathFile();

            data.Header = rawHeader;
            return(data);
        }
示例#2
0
        public void addData(List <byte> rawData)
        {
            EntitySpawns   = new ObservableCollection <SpawnItem>();
            EventSpawns    = new ObservableCollection <SpawnItem>();
            WalkPathSpawns = new ObservableCollection <WalkPathFile>();
            Unk16Spawns    = new ObservableCollection <Str_EntryItem>();
            Unk8Spawns     = new ObservableCollection <Str_EntryItem>();

            int currentOffset = 0;

            foreach (var i in Enumerable.Range(0, EntityCount))
            {
                //Console.WriteLine("DELETE DEBUG > Entity: " + DataAccess.readHexString(rawData.GetRange(currentOffset, SpawnItem.entrySize), 0, SpawnItem.entrySize));
                EntitySpawns.Add(new SpawnItem(rawData.GetRange(currentOffset, SpawnItem.entrySize)));
                currentOffset += SpawnItem.entrySize;
            }
            foreach (var i in Enumerable.Range(0, EventCount))
            {
                //Console.WriteLine("DELETE DEBUG > Event: " + DataAccess.readHexString(rawData.GetRange(currentOffset, SpawnItem.entrySize), 0, SpawnItem.entrySize));
                EventSpawns.Add(new SpawnItem(rawData.GetRange(currentOffset, SpawnItem.entrySize)));
                currentOffset += SpawnItem.entrySize;
            }
            foreach (var i in Enumerable.Range(0, WalkPathCount))
            {
                // Header
                WalkPathFile walkPath = WalkPathFile.headerConstructor(rawData.GetRange(currentOffset, WalkPathFile.headerSize));
                currentOffset += WalkPathFile.headerSize;
                // Data
                walkPath.addData(rawData.GetRange(currentOffset, walkPath.ItemCount * WalkPathItem.entrySize));
                WalkPathSpawns.Add(walkPath);
                currentOffset += walkPath.ItemCount * WalkPathItem.entrySize;
            }
            foreach (var i in Enumerable.Range(0, Unk16Count))
            {
                Unk16Spawns.Add(new Str_EntryItem(rawData.GetRange(currentOffset, 16)));
                currentOffset += 16;
            }
            foreach (var i in Enumerable.Range(0, Unk8Count))
            {
                Unk8Spawns.Add(new Str_EntryItem(rawData.GetRange(currentOffset, 8)));
                currentOffset += 8;
            }
        }