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

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

       public wgit()
       {
           Fields.AddRange(new MetaNode[] {
           new Value("Back ground blur (blur=0 noblur=37)", typeof(short)),
           new Value("Unused", typeof(short)),
           new Value("Menu ID", typeof(short)),
           new Bitmask("Visibles X-A-B Options Buttons", new string[] { "A_Select_B_Cancel", "A_Select_B_Cancel", "X_Party_Privacy_A_Select_B_Cancel", "X_Options", "A_Select_B_Back" }, 16),
           new Value("Text Color A", typeof(float)),
           new Value("Text Color R", typeof(float)),
           new Value("Text Color G", typeof(float)),
           new Value("Text Color B", typeof(float)),
           new TagReference("String_List"),
           new Reflexive("Panes", 76, new MetaNode[] { 
               new Value("Unused", typeof(short)),
               new Value("Animation Index", typeof(short)),
               new Reflexive("Buttons", 60, new MetaNode[] { 
                   new Bitmask("Flags", new string[] { "Left_Justify_Text", "Right_Justify_Text", "Pulsating_Text", "Callout_Text", "Small_(31_char)_Buffer" }, 32),
                   new Value("Animation Index", typeof(short)),
                   new Value("Intro Animation Delay Milliseconds", typeof(short)),
                   new Value("", typeof(short)),
                   new Value("Font Type", typeof(short)),
                   new Value("Text Color Alpha", typeof(float)),
                   new Value("Text Color Red", typeof(float)),
                   new Value("Text Color Green", typeof(float)),
                   new Value("Text Color Blue", typeof(float)),
                   new Value("Bounds Top", typeof(short)),
                   new Value("Bounds Left", typeof(short)),
                   new Value("Bounds Bottom", typeof(short)),
                   new Value("Bounds Right", typeof(short)),
                   new TagReference("Bitmap"),
                   new Value("Bitmap Offset X", typeof(byte)),
                   new Value("Bitmap Offset Y", typeof(byte)),
                   new Value("coord", typeof(byte)),
                   new Value("coord", typeof(byte)),
                   new StringID("String Id"),
                   new Value("Unknown", typeof(short)),
                   new Value("Unused", typeof(short)),
                   new Value("Unknown", typeof(short)),
                   new Value("Unused", typeof(short)),
               }),
               new Reflexive("Buttons 2", 24, new MetaNode[] { 
                   new HaloObjects.Enum("Buttons loop", new string[] { "Yes", "No" }, 16),
                   new Value("Unused", typeof(short)),
                   new Value("Button Type (Palette [skin])", typeof(short)),
                   new Value("Number of visibles buttons", typeof(short)),
                   new Value("Buttons Placement Coord X", typeof(short)),
                   new Value("Buttons Placement Coord Y", typeof(short)),
                   new Value("Transition Type? (bitmask)", typeof(short)),
                   new Value("Variation?", typeof(short)),
                   new Unused(8),
               }),
               new Value("Unused", typeof(float)),
               new Value("Unused", typeof(float)),
               new Reflexive("Text strings", 44, new MetaNode[] { 
                   new Bitmask("Text options", new string[] { "1", "2", "Pulsing", "Auto_Typing_text", "5" }, 32),
                   new Value("Transtion type (bitmask)", typeof(short)),
                   new Value("Variation?", typeof(short)),
                   new Value("Unused", typeof(short)),
                   new Value("Font Type", typeof(short)),
                   new Value("Alpha", typeof(float)),
                   new Value("Color Red", typeof(float)),
                   new Value("Color Green", typeof(float)),
                   new Value("Color Blue", typeof(float)),
                   new Value("Text Placement coord Y from Top", typeof(short)),
                   new Value("Text Placement coord X from Right", typeof(short)),
                   new Value("Text Placement coord Y from Bottom", typeof(short)),
                   new Value("Text Placement coord X from Left", typeof(short)),
                   new StringID("String name"),
                   new Value("Unknown", typeof(uint)),
               }),
               new Reflexive("UI bitmaps", 56, new MetaNode[] { 
                   new Value("unknown", typeof(short)),
                   new Value("Unused", typeof(short)),
                   new Value("Transition type (bitmask)", typeof(short)),
                   new Value("Variation?", typeof(short)),
                   new HaloObjects.Enum("Alpha transparence", new string[] { "Normal", "Inverted" }, 16),
                   new Value("Xbox live bitmap setting", typeof(short)),
                   new Value("Bitmap Placement coord X", typeof(short)),
                   new Value("Bitmap Placement coord Y", typeof(short)),
                   new Value("Horizontal bitmap scrolling speed", typeof(float)),
                   new Value("Unused", typeof(float)),
                   new TagReference("Bitmap"),
                   new Value("Bitmap Layer Level", typeof(short)),
                   new Value("Unused", typeof(short)),
                   new Value("Unused", typeof(float)),
                   new Value("Coord X for ?", typeof(short)),
                   new Value("Coord Y for ?", typeof(short)),
                   new StringID("Progress Bottom Left"),
                   new Value("Unused", typeof(float)),
                   new Value("Unused", typeof(float)),
               }),
               new Reflexive("ModelsScript Objects: Scenery/Bipeds...)", 76, new MetaNode[] { 
                   new Value("Unused", typeof(short)),
                   new Value("Unused", typeof(short)),
                   new Value("Transition type (bitmask)", typeof(short)),
                   new Value("Variation?", typeof(short)),
                   new Value("Unknown", typeof(short)),
                   new Value("Unused", typeof(short)),
                   new Reflexive("Script Object", 32, new MetaNode[] { 
                       new String32("Script Object name"),
                   }),
                   new Reflexive("Unknown", 32, new MetaNode[] { 
                       new String32("Unknown"),
                   }),
                   new Value("Unknown", typeof(float)),
                   new Value("Unknown", typeof(float)),
                   new Value("Unknown", typeof(float)),
                   new Value("Unknown", typeof(float)),
                   new Value("Unknown", typeof(float)),
                   new Value("Unknown", typeof(float)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new Value("relatives: coord, size, palcement", typeof(byte)),
                   new StringID("Unused"),
                   new StringID("Unused"),
                   new StringID("Unused"),
               }),
               new Value("Unused", typeof(float)),
               new Value("Unused", typeof(float)),
               new Value("Unused", typeof(float)),
               new Value("Unused", typeof(float)),
               new Reflexive("Variable Buttons", 24, new MetaNode[] { 
                   new Value("Unused", typeof(float)),
                   new TagReference("Skin_tag"),
                   new Value("Coord X", typeof(short)),
                   new Value("Coord Y", typeof(short)),
                   new Value("unknown", typeof(byte)),
                   new Value("Max Visible Buttons", typeof(byte)),
                   new Value("Unknown", typeof(byte)),
                   new Value("Unknown", typeof(byte)),
                   new Value("Coord X", typeof(short)),
                   new Value("Coord Y", typeof(short)),
               }),
           }),
           new Value("Font Type", typeof(short)),
           new Value("Unused", typeof(short)),
           new StringID("Header Title Text String"),
           new Reflexive("Descriptions/Help Text", 12, new MetaNode[] { 
               new StringID("Text Strings"),
               new Reflexive("Notification messages", 4, new MetaNode[] { 
                   new StringID("Text Strings"),
               }),
           }),
           new Reflexive("Prededicated Resources: Bitmap tags", 8, new MetaNode[] { 
               new TagReference("Bitmap"),
           }),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           new Value("SP Loading screen effects settings", typeof(float)),
           });
       }
    }
}
