Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void ReadMD20(BinaryReader br)
- {
- br.BaseStream.Position -= 8;
- header = new M2Header();
- header.magic = br.ReadUInt32();
- header.version = br.ReadEnum<Versions>();
- header.name = br.ReadM2Array();
- header.flags = br.ReadUInt32();
- header.GlobalLoops = br.ReadM2Array();
- header.Animations = br.ReadM2Array();
- header.AnimationsLookup = br.ReadM2Array();
- header.Bones = br.ReadM2Array();
- header.KeyBoneLookup = br.ReadM2Array();
- header.Vertices = br.ReadM2Array();
- header.SkinProfiles = br.ReadUInt32();
- header.Colors = br.ReadM2Array();
- header.Textures = br.ReadM2Array();
- header.TextureWeights = br.ReadM2Array();
- header.TextureTransform = br.ReadM2Array();
- header.ReplacableTextureLookup = br.ReadM2Array();
- header.Materials = br.ReadM2Array();
- header.BoneLookupTable = br.ReadM2Array();
- header.TextureLookupTable = br.ReadM2Array();
- header.TexUnitLookupTable = br.ReadM2Array();
- header.TransparancyLookupTable = br.ReadM2Array();
- header.TexTransformLookupTable = br.ReadM2Array();
- br.ReadBytes(56); // Skip CAaBox Boxes
- header.CollisionTriangles = br.ReadM2Array();
- header.CollisionVertices = br.ReadM2Array();
- header.CollisionNormals = br.ReadM2Array();
- header.Attachments = br.ReadM2Array();
- header.AttachmentsLookupTable = br.ReadM2Array();
- header.Events = br.ReadM2Array();
- header.Lights = br.ReadM2Array();
- header.Cameras = br.ReadM2Array();
- header.CameraLookupTable = br.ReadM2Array();
- header.RibbonEmmiters = br.ReadM2Array();
- header.ParticleEmmiters = br.ReadM2Array();
- Console.WriteLine($"{header.magic} File Version: {header.version}\n");
- if (header.Textures.offset != 0)
- {
- br.BaseStream.Position = header.Textures.offset;
- for (int i = 0; i < header.Textures.size; i++)
- {
- Texture _Texture = new Texture();
- long Pos = br.BaseStream.Position;
- _Texture.Type = br.ReadEnum<TextureType>();
- _Texture.Flag = br.ReadEnum<TextureFlags>();
- _Texture.FilenameLength = br.ReadUInt32();
- _Texture.FilenameOffset = br.ReadUInt32();
- br.BaseStream.Position = _Texture.FilenameOffset;
- _Texture.FileName = br.ReadChars((int)_Texture.FilenameLength);
- string FileName = new string(_Texture.FileName);
- br.BaseStream.Position = Pos + 16;
- Console.WriteLine($"Type: {_Texture.Type} Flag: {_Texture.Flag} " +
- $"Length: {_Texture.FilenameLength} Offset: {_Texture.FilenameOffset}");
- Console.ForegroundColor = ConsoleColor.Cyan;
- Console.WriteLine($"FileName: {FileName}\n");
- Console.ForegroundColor = ConsoleColor.Gray;
- n++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment