using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HaloObjects;

namespace HaloPlugins.Xbox
{
    public class spas
    {
       public List<MetaNode> Fields = new List<MetaNode>();

       public spas()
       {
           Fields.AddRange(new MetaNode[] {
           new Unused(16),
           new Value("Unknown", typeof(int)),
           new Unused(8),
           new Reflexive("Postprocess Definitions", 88, new MetaNode[] { 
               new Reflexive("Unknown7", 306, new MetaNode[] { 
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(float)),
                   new Value("Unknown", typeof(int)),
                   new Unused(4),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(float)),
                   new Value("Unknown", typeof(float)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Unused(16),
                   new Value("Unknown", typeof(int)),
                   new Unused(4),
                   new TagReference("Unknown"),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Unused(4),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("FUCK THIS VALUE", typeof(int)),
                   new Value("AND FUCK ENTITY", typeof(int)),
                   new Value("Unknown", typeof(short)),
               }),
               new Reflexive("Textures", 4, new MetaNode[] { 
                   new Value("Bitmap Parameter Index", typeof(byte)),
                   new Value("Bitmap Extern Index", typeof(byte)),
                   new Value("Texture Stage Index", typeof(byte)),
                   new Value("Flags", typeof(byte)),
               }),
               new Reflexive("Render States", 5, new MetaNode[] { 
                   new Value("State Index", typeof(byte)),
                   new Value("State Value", typeof(int)),
               }),
               new Reflexive("Texture States", 24, new MetaNode[] { 
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Value("Unknown", typeof(int)),
                   new Unused(4),
                   new Value("Unknown", typeof(int)),
                   new Unused(4),
               }),
               new Reflexive("Pixel Shader Fragments", 4, new MetaNode[] { //4
                   new Value("Switch Parameter Index", typeof(short)),
                   new Value("Permutation Index", typeof(short)),
               }),
               new Reflexive("Pixel Shader Permutations", 6, new MetaNode[] { 
                   new Value("Enum Index", typeof(short)),
                   new Value("Flags", typeof(short)),
                   new Value("Combiner", typeof(short)),
               }),
               new Reflexive("Pixel Shader Combiners", 32, new MetaNode[] { 
                   new Unused(16),
                   new Value("Constant Color 0 A", typeof(byte)),
                   new Value("Constant Color 0 R", typeof(byte)),
                   new Value("Constant Color 0 G", typeof(byte)),
                   new Value("Constant Color 0 B", typeof(byte)),
                   new Value("Constant Color 1 A", typeof(byte)),
                   new Value("Constant Color 1 R", typeof(byte)),
                   new Value("Constant Color 1 G", typeof(byte)),
                   new Value("Constant Color 1 B", typeof(byte)),
                   new Value("Color A Register Ptr Index", typeof(byte)),
                   new Value("Color B Register Ptr Index", typeof(byte)),
                   new Value("Color C Register Ptr Index", typeof(byte)),
                   new Value("Color D Register Ptr Index", typeof(byte)),
                   new Value("Alpha A Register Ptr Index", typeof(byte)),
                   new Value("Alpha B Register Ptr Index", typeof(byte)),
                   new Value("Alpha C Register Ptr Index", typeof(byte)),
                   new Value("Alpha D Register Ptr Index", typeof(byte)),
               }),
               new Reflexive("Externs", 4, new MetaNode[] { 
                   new Value("Extern Index", typeof(int)),
               }),
               new Unused(24),
           }),
           });
       }
    }
}
