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

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

       public egor()
       {
           Fields.AddRange(new MetaNode[] {
           new Unused(64),
           new TagReference("Shader"),
           new Unused(64),
           new Reflexive("Pass References", 172, new MetaNode[] { 
               new Unused(8),
               new Value("Layer Pass Index", typeof(short)),
               new Value("If Primary Equals 0 And Secondary Equals 0", typeof(short)),
               new Value("If Primary Greater Than 0 And Secondary Equals 0", typeof(short)),
               new Value("If Primary Equals 0 And Secondary Greater Than 0", typeof(short)),
               new Value("If Primary Greater Than 0 And Secondary Greater Than 0", typeof(short)),
               new Unused(62),
               new HaloObjects.Enum("Stage 0 Mode", new string[] { "Default", "Viewport_Normalized", "Viewport_Relative", "Frame_Buffer_Relative", "Zero" }, 16),
               new HaloObjects.Enum("Stage 1 Mode", new string[] { "Default", "Viewport_Normalized", "Viewport_Relative", "Frame_Buffer_Relative", "Zero" }, 16),
               new HaloObjects.Enum("Stage 2 Mode", new string[] { "Default", "Viewport_Normalized", "Viewport_Relative", "Frame_Buffer_Relative", "Zero" }, 16),
               new HaloObjects.Enum("Stage 3 Mode", new string[] { "Default", "Viewport_Normalized", "Viewport_Relative", "Frame_Buffer_Relative", "Zero" }, 16),
               new Reflexive("Advanced Control", 0, new MetaNode[] { 
               }),
               new HaloObjects.Enum("Target", new string[] { "Frame_Buffer", "Texaccum", "Texaccum_Small", "Texaccum_Tiny", "Copy_FB_To_Texaccum" }, 32),
               new Unused(64),
               new Reflexive("Convolution", 92, new MetaNode[] { 
                   new Unused(64),
                   new Bitmask("Flags", new string[] { "Only_When_Primary_Is_Active", "Only_When_Secondary_Is_Active", "Predator_Zoom" }, 32),
                   new Value("Convolution Amount", typeof(float)),
                   new Value("Filter Scale", typeof(float)),
                   new Value("Filter Box Factor", typeof(float)),
                   new Value("Zoom Falloff Radius", typeof(float)),
                   new Value("Zoom Cutoff Radius", typeof(float)),
                   new Value("Resolution Scale", typeof(float)),
               }),
           }),
           });
       }
    }
}
