public unsafe static void WriteWTE(this Stream outputStream, WTE header) { WTE *headerPtr = &header; using (var inputStream = new UnmanagedMemoryStream((byte *)headerPtr, sizeof(WTE))) { inputStream.CopyTo(outputStream); } }
public static byte[] WTEToTEX0(Stream inputStream) { WTE oldHeader = inputStream.ReadWTE(); if (oldHeader.tag != "WTE\0") { throw new Exception("The input file does not appear to be a WTE file."); } TEX0v1 newHeader = new TEX0v1(oldHeader.width, oldHeader.height, WiiPixelFormat.RGB5A3, 1); using (var outputStream = new MemoryStream()) { outputStream.WriteTEX0(newHeader); inputStream.CopyTo(outputStream); return(outputStream.ToArray()); } }