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

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

       public fx()
       {
           Fields.AddRange(new MetaNode[] {
           new Unused(8),
           new Unused(4),
           new Reflexive("Template Collection", 20, new MetaNode[] { 
               new StringID("DSP Effect"),
               new Reflexive("Explanation", 1, new MetaNode[] { 
                   new Value("Data", typeof(byte)),
               }),
               new Value("Unknown", typeof(float)),
               new Value("Unknown", typeof(float)),
           }),
           new Reflexive("Template Collection", 12, new MetaNode[] { 
               new Reflexive("Parameters", 24, new MetaNode[] { 
                   new StringID("Name"),
                   new Value("Unknown", typeof(int)),
                   new Bitmask("Flags", new string[] { "Expose_as_Function" }, 16),
                   new Value("Hardware Offset", typeof(short)),
                   new Value("Default Enum Integer Value", typeof(short)),
                   new Value("Unknown", typeof(short)),
                   new Reflexive("Function Properties", 16, new MetaNode[] { 
                       new HaloObjects.Enum("Type", new string[] { "Integer", "Real", "Filter_Type" }, 32),
                       new Value("Default Scalar Value", typeof(float)),
                       new Value("Minimum Scalar Value", typeof(float)),
                       new Value("Maximum Scalar Value", typeof(float)),
                   }),
               }),
               new StringID("Input Effect Name"),
           }),
           });
       }
    }
}
