예제 #1
0
 private void ReadEntries(BinaryReader source)
 {
     source.BaseStream.Seek(fileStartAt + header.dir_offset, SeekOrigin.Begin);
     var numDirEntries = source.ReadUInt32();
     direntries = new direntry_t[numDirEntries];
     for (uint i = 0; i < numDirEntries; ++i)
     {
         direntries[i] = new direntry_t();
         direntries[i].Read(source);
     }
 }
예제 #2
0
        private void ReadEvents(BinaryReader source, direntry_t de)
        {
            var type = source.ReadByte();
            var time = source.ReadSingle();
            var frame = source.ReadUInt32();

            switch (type)
            {
                case 0:
                case 1:
                    ReadUKData(source);
                    break;
                case 2:
                    //nop;
                    break;
                case 3:
                    ReadTextMessage(source);
                    break;
                case 4:
                    source.ReadBytes(32);
                    break;
                case 5:
                    //last one
                    return;
                case 6:
                    source.ReadBytes(4+4+4+72);
                    break;
                case 7:
                    source.ReadBytes(8);
                    break;
                case 8:
                    ReadSound(source);
                    break;
                case 9:
                    ReadChunk(source);
                    break;
                default:
                    //Unknown
                    return;
            }
        }