mysimulation/server/tso.common/Utils/IffPrinter.cs

106 lines
3.1 KiB
C#
Raw Permalink Normal View History

 /*
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FSO.Files.Formats.IFF;
using FSO.Files.Formats.IFF.Chunks;
namespace FSO.Common.Utils
{
public class IffPrinter
{
private HTMLPrinter Printer;
public IffPrinter(HTMLPrinter printer){
this.Printer = printer;
}
public void PrintAll(IffFile iff){
this.Print<SPR>(iff);
this.Print<SPR2>(iff);
this.Print<OBJD>(iff);
}
public void Print<T>(IffFile iff){
var type = typeof(T);
var items = iff.List<T>();
if (items == null) { return; }
if (type == typeof(SPR2)){
Printer.H1("SPR2");
foreach (var item in items){
PrintSPR2((SPR2)(object)item);
}
}
else if (type == typeof(OBJD))
{
Printer.H1("OBJD");
foreach (var item in items){
PrintOBJD((OBJD)(object)item);
}
}else if (type == typeof(SPR))
{
Printer.H1("SPR");
foreach (var item in items)
{
PrintSPR((SPR)(object)item);
}
}
}
private void PrintSPR(SPR spr)
{
Printer.H2("#" + spr.ChunkID + " (" + spr.ChunkLabel + ")");
var table = Printer.CreateTable(new string[] { "Index", "Pixel" });
var frameIndex = 0;
foreach (var frame in spr.Frames)
{
table.AddRow(new object[] { frameIndex, frame });
frameIndex++;
}
Printer.Add(table);
}
private void PrintOBJD(OBJD item){
string[] fieldLabels = null;
switch (item.Version)
{
case 142:
fieldLabels = OBJD.VERSION_142_Fields;
break;
}
Printer.H1(item.ChunkID + " (" + item.ChunkLabel + ") GUID = " + item.GUID.ToString("x") + " Version = " + item.Version);
var table = Printer.CreateTable(new string[] { "Field", "Value" });
for (var i = 0; i < item.RawData.Length; i++)
{
if (fieldLabels != null && i < fieldLabels.Length)
{
table.AddRow(new object[] { i.ToString() + " (" + fieldLabels[i] + ")", item.RawData[i].ToString() });
}
else
{
table.AddRow(new object[] { i.ToString(), item.RawData[i].ToString() });
}
}
Printer.Add(table);
}
private void PrintSPR2(SPR2 spr)
{
Printer.H2("#" + spr.ChunkID + " (" + spr.ChunkLabel + ")");
var table = Printer.CreateTable(new string[] { "Index", "Pixel" });
var frameIndex = 0;
foreach (var frame in spr.Frames){
table.AddRow(new object[] { frameIndex, frame });
frameIndex++;
}
Printer.Add(table);
}
}
}
*/