Parse TPL
This commit is contained in:
parent
5729b20c43
commit
ea2b941b93
@ -40,17 +40,119 @@ namespace FirstPlugin
|
||||
}
|
||||
}
|
||||
|
||||
libWiiSharp.TPL tplFile = null;
|
||||
public List<ImageHeader> ImageHeaders = new List<ImageHeader>();
|
||||
public List<PaletteHeader> PaletteHeaders = new List<PaletteHeader>();
|
||||
|
||||
public void Load(System.IO.Stream stream)
|
||||
{
|
||||
Text = FileName;
|
||||
|
||||
tplFile = libWiiSharp.TPL.Load(stream);
|
||||
for (int i = 0; i < tplFile.NumOfTextures; i++)
|
||||
Nodes.Add(new TPL_Texture(tplFile, i));
|
||||
using (var reader = new FileReader(stream))
|
||||
{
|
||||
uint Identifier = reader.ReadUInt32();
|
||||
uint ImageCount = reader.ReadUInt32();
|
||||
uint ImageOffsetTable = reader.ReadUInt32();
|
||||
|
||||
for (int i = 0; i < ImageCount; i++)
|
||||
{
|
||||
reader.SeekBegin(ImageOffsetTable + (i * 8));
|
||||
|
||||
uint ImageHeaderOffset = reader.ReadUInt32();
|
||||
uint PaletteHeaderOffset = reader.ReadUInt32();
|
||||
|
||||
if (ImageHeaderOffset != 0)
|
||||
{
|
||||
reader.SeekBegin(ImageHeaderOffset);
|
||||
var image = new ImageHeader();
|
||||
image.Read(reader);
|
||||
ImageHeaders.Add(image);
|
||||
}
|
||||
|
||||
if (PaletteHeaderOffset != 0)
|
||||
{
|
||||
reader.SeekBegin(PaletteHeaderOffset);
|
||||
var palette = new PaletteHeader();
|
||||
palette.Read(reader);
|
||||
PaletteHeaders.Add(palette);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class PaletteHeader
|
||||
{
|
||||
public ushort EntryCount { get; set; }
|
||||
public byte Unpacked { get; set; }
|
||||
public uint PaletteFormat { get; set; }
|
||||
public uint PaletteDataOffset { get; set; }
|
||||
|
||||
public void Read(FileReader reader)
|
||||
{
|
||||
EntryCount = reader.ReadUInt16();
|
||||
Unpacked = reader.ReadByte();
|
||||
PaletteFormat = reader.ReadUInt32();
|
||||
PaletteDataOffset = reader.ReadUInt32();
|
||||
}
|
||||
|
||||
public void Write(FileWriter writer)
|
||||
{
|
||||
writer.Write(EntryCount);
|
||||
writer.Write(Unpacked);
|
||||
writer.Write(PaletteFormat);
|
||||
writer.Write(PaletteDataOffset);
|
||||
}
|
||||
}
|
||||
|
||||
public class ImageHeader
|
||||
{
|
||||
public ushort Width { get; set; }
|
||||
public ushort Height { get; set; }
|
||||
public uint Format { get; set; }
|
||||
public uint ImageOffset { get; set; }
|
||||
public uint WrapS { get; set; }
|
||||
public uint WrapT { get; set; }
|
||||
public uint MinFilter { get; set; }
|
||||
public uint MagFilter { get; set; }
|
||||
public float LODBias { get; set; }
|
||||
public bool EdgeLODEnable { get; set; }
|
||||
public byte MinLOD { get; set; }
|
||||
public byte MaxLOD { get; set; }
|
||||
public byte Unpacked { get; set; }
|
||||
|
||||
public void Read(FileReader reader)
|
||||
{
|
||||
Width = reader.ReadUInt16();
|
||||
Height = reader.ReadUInt16();
|
||||
Format = reader.ReadUInt32();
|
||||
ImageOffset = reader.ReadUInt32();
|
||||
WrapS = reader.ReadUInt32();
|
||||
WrapT = reader.ReadUInt32();
|
||||
MinFilter = reader.ReadUInt32();
|
||||
MagFilter = reader.ReadUInt32();
|
||||
LODBias = reader.ReadSingle();
|
||||
EdgeLODEnable = reader.ReadBoolean();
|
||||
MinLOD = reader.ReadByte();
|
||||
MaxLOD = reader.ReadByte();
|
||||
Unpacked = reader.ReadByte();
|
||||
}
|
||||
|
||||
public void Write(FileWriter writer)
|
||||
{
|
||||
writer.Write(Width);
|
||||
writer.Write(Height);
|
||||
writer.Write(Format);
|
||||
writer.Write(ImageOffset);
|
||||
writer.Write(WrapS);
|
||||
writer.Write(WrapT);
|
||||
writer.Write(MinFilter);
|
||||
writer.Write(MagFilter);
|
||||
writer.Write(LODBias);
|
||||
writer.Write(EdgeLODEnable);
|
||||
writer.Write(MinLOD);
|
||||
writer.Write(MaxLOD);
|
||||
writer.Write(Unpacked);
|
||||
}
|
||||
}
|
||||
|
||||
public void Unload()
|
||||
{
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<loadFromRemoteSources enabled="true" />
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="OpenTK" publicKeyToken="bad199fe84eb3df4" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="LZ4pn" publicKeyToken="62e1b5ec1eec9bdd" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.10.93" newVersion="1.0.10.93" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="K4os.Hash.xxHash" publicKeyToken="32cd54395057cec3" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.5.0" newVersion="1.0.5.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" /></startup></configuration>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
|
||||
</startup>
|
||||
</configuration>
|
Binary file not shown.
@ -1 +1 @@
|
||||
2dd7d0617dba111aa487a7da42ed4f5f18627a3f
|
||||
747948e0929dd8935549f97d0e91eb2d59336ea8
|
||||
|
Loading…
x
Reference in New Issue
Block a user