private SpriteFile CreateSpriteFile(string filepath) { if (filepath == null) { throw new ArgumentNullException(nameof(filepath)); } var file = GetSubSystem <IO.FileSystem>().OpenFile(filepath); var header = new IO.FileHeaders.SpriteFileHeader(file); var datalist = new List <SpriteFileData>(header.NumberOfImages); var subheaderOffset = header.SubheaderOffset; for (file.SeekFromBeginning(subheaderOffset); file.ReadPosition != file.FileLength; file.SeekFromBeginning(subheaderOffset)) { var subheader = new IO.FileHeaders.SpriteFileSubHeader(file); var data = new SpriteFileData((int)file.ReadPosition + 13, subheader.ImageSize, subheader.Axis, subheader.Id, subheader.SharedIndex, subheader.CopyLastPalette); datalist.Add(data); subheaderOffset = subheader.NextOffset; } return(new SpriteFile(this, file, header.Version, datalist, header.SharedPalette)); }
SpriteFile CreateSpriteFile(String filepath) { if (filepath == null) throw new ArgumentNullException("filepath"); IO.File file = GetSubSystem<IO.FileSystem>().OpenFile(filepath); IO.FileHeaders.SpriteFileHeader header = new IO.FileHeaders.SpriteFileHeader(file); List<SpriteFileData> datalist = new List<SpriteFileData>(header.NumberOfImages); Int32 subheader_offset = header.SubheaderOffset; for (file.SeekFromBeginning(subheader_offset); file.ReadPosition != file.FileLength; file.SeekFromBeginning(subheader_offset)) { IO.FileHeaders.SpriteFileSubHeader subheader = new IO.FileHeaders.SpriteFileSubHeader(file); SpriteFileData data = new SpriteFileData((Int32)file.ReadPosition + 13, subheader.ImageSize, subheader.Axis, subheader.Id, subheader.SharedIndex, subheader.CopyLastPalette); datalist.Add(data); subheader_offset = subheader.NextOffset; } return new SpriteFile(this, file, header.Version, datalist, header.SharedPalette); }