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

namespace HaloPlugins.Xbox
{
    public class hudg : TagDefinition
    {
       public hudg() : base("hudg", "hud_globals", 1160)
       {
           Fields.AddRange(new IMetaNode[] {
           new Padding(36),
           new HaloPlugins.Enum("Anchor", new string[] { "Top_Left", "Top_Right", "Bottom_Left", "Bottom_Right", "Center" }, 16),
           new Value("Anchor Offset (y)", typeof(byte)),
           new Value("Anchor Offset (x)", typeof(byte)),
           new Padding(32),
           new TagReference("obsolete1", "bitm"),
           new TagReference("obsolete2", "bitm"),
           new Value("Message Up time", typeof(float)),
           new Value("Message Fade time", typeof(float)),
           new Value("Icon Color (alpha)", typeof(float)),
           new Value("Icon Color (red)", typeof(float)),
           new Value("Icon Color (green)", typeof(float)),
           new Value("Icon Color (blue)", typeof(float)),
           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("Text Spacing", typeof(float)),
           new TagReference("Item_message_text", "unic"),
           new TagReference("Icon_Bitmap", "bitm"),
           new TagReference("Alternate_Icon", "unic"),
           new TagBlock("Button Icons", 16, 18, new IMetaNode[] { 
               new Value("Sequence Index", typeof(short)),
               new Value("Width Offset", typeof(short)),
               new Value("Offset from Reference Corner (x)", typeof(short)),
               new Value("Offset from Reference Corner (y)", typeof(short)),
               new Value("Override Icon Color (alpha)", typeof(byte)),
               new Value("Override Icon Color (red)", typeof(byte)),
               new Value("Override Icon Color (greeb)", typeof(byte)),
               new Value("Override Icon Color (blue)", typeof(byte)),
               new Value("Frame Rate (0-30)", typeof(byte)),
               new Flags("Flags", new string[] { "Use_text_from_string_list_instead", "Override_default_color", "Width_offset_is_absolute_icon_width" }, 8),
               new Value("Text Index", typeof(short)),
           }),
           new Value("Hud Help Default Color (alpha)", typeof(byte)),
           new Value("Hud Help Default Color (red)", typeof(byte)),
           new Value("Hud Help Default Color (green)", typeof(byte)),
           new Value("Hud Help Default Color (blue)", typeof(byte)),
           new Value("Hud Help Flashing Color (alpha)", typeof(byte)),
           new Value("Hud Help Flashing Color (red)", typeof(byte)),
           new Value("Hud Help Flashing Color (green)", typeof(byte)),
           new Value("Hud Help Flashing Color (blue)", typeof(byte)),
           new Value("Hud Help Flash Period", typeof(float)),
           new Value("Hud Help Flash Delay", typeof(float)),
           new Value("Number of Flashes", typeof(short)),
           new Flags("Hud Help Flash Flags", new string[] { "Reverse_Default/Flashing_Colors" }, 16),
           new Value("Hud Help Flash Length", typeof(float)),
           new Value("Disabled Color (alpha)", typeof(byte)),
           new Value("Disabled Color (red)", typeof(byte)),
           new Value("Disabled Color (green)", typeof(byte)),
           new Value("Disabled Color (blue)", typeof(byte)),
           new Value("Disabled Color (alpha)", typeof(byte)),
           new Value("Disabled Color (red)", typeof(byte)),
           new Value("Disabled Color (green)", typeof(byte)),
           new Value("Disabled Color (blue)", typeof(byte)),
           new TagReference("Hud_messages", "hmt "),
           new Value("Objective Default Color (alpha)", typeof(byte)),
           new Value("Objective Default (red)", typeof(byte)),
           new Value("Objective Default (green)", typeof(byte)),
           new Value("Objective Default (blue)", typeof(byte)),
           new Value("Objective Flashing (alpha)", typeof(byte)),
           new Value("Objective Flashing (red)", typeof(byte)),
           new Value("Objective Flashing (green)", typeof(byte)),
           new Value("Objective Flashing (blue)", typeof(byte)),
           new Value("Objective Flash Period", typeof(float)),
           new Value("Objective Flash Delay", typeof(float)),
           new Value("Number of Flashes", typeof(short)),
           new Flags("Hud Help Flash Flags", new string[] { "Reverse_Default/Flashing_Colors" }, 16),
           new Value("Objective Flash Length", typeof(float)),
           new Value("Disabled Color (alpha)", typeof(byte)),
           new Value("Disabled Color (red)", typeof(byte)),
           new Value("Disabled Color (green)", typeof(byte)),
           new Value("Disabled Color (blue)", typeof(byte)),
           new Value("Objective uptime ticks", typeof(short)),
           new Value("Objective fade ticks", typeof(short)),
           new Value(" Waypoint Top offset", typeof(float)),
           new Value("Waypoint Bottom offset", typeof(float)),
           new Value("Waypoint Left offset", typeof(float)),
           new Value("Waypoint Right offset", typeof(float)),
           new Padding(32),
           new TagReference("Arrow_bitmap", "bitm"),
           new TagBlock("Waypoints Arrows", 104, 16, new IMetaNode[] { 
               new ShortString("Name", StringType.Asci),
               new Padding(8),
               new Value("Red", typeof(byte)),
               new Value("Green", typeof(byte)),
               new Value("Blue", typeof(byte)),
               new Value("Opacity", typeof(byte)),
               new Value("Translucency", typeof(float)),
               new Padding(4),
               new Value("On Screen Sequence Index", typeof(short)),
               new Value("Off Screen Sequence Index", typeof(short)),
               new Value("Unused Sequence Index", typeof(short)),
               new Flags("Flags", new string[] { "Do_not_rotate_when_pointing_offscreen" }, 16),
               new Padding(44),
           }),
           new Padding(80),
           new Value("Multiplayer Hud Scale", typeof(float)),
           new Padding(272),
           new Value("Motion Sensor Range", typeof(float)),
           new Value("Motion Sensor Velocity Sensitivity", typeof(float)),
           new Value("Motion Sensor Scale", typeof(float)),
           new Value("Default Title Chapter Bounds (top)", typeof(short)),
           new Value("Default Title Chapter Bounds (left)", typeof(short)),
           new Value("Default Title Chapter Bounds (bottom)", typeof(short)),
           new Value("Default Title Chapter Bounds (right)", typeof(short)),
           new Padding(44),
           new Value("Hud Damage Indicator Offset (top)", typeof(short)),
           new Value("Hud Damage Indicator Offset (bottom)", typeof(short)),
           new Value("Hud Damage Indicator Offset (left)", typeof(short)),
           new Value("Hud Damage Indicator Offset (right)", typeof(short)),
           new Padding(32),
           new TagReference("Damage_Indicator_Bitmap", "bitm"),
           new Value("Sequence Index", typeof(short)),
           new Value("Multiplayer Sequence Index", typeof(short)),
           new Value("Damage Indicator Color (blue)", typeof(byte)),
           new Value("Damage Indicator Color (green)", typeof(byte)),
           new Value("Damage Indicator Color (red)", typeof(byte)),
           new Value("Damage Indicator Color (alpha)", typeof(byte)),
           new Padding(16),
           new Value("Not Much Time Left Default Color (blue)", typeof(byte)),
           new Value("Not Much Time Left Default Color (green)", typeof(byte)),
           new Value("Not Much Time Left Default Color (red)", typeof(byte)),
           new Value("Not Much Time Left Default Color (alpha)", typeof(byte)),
           new Value("Not Much Time Left Flash Color (blue)", typeof(byte)),
           new Value("Not Much Time Left Flash (green)", typeof(byte)),
           new Value("Not Much Time Left Flash (red)", typeof(byte)),
           new Value("Not Much Time Left Flash (alpha)", typeof(byte)),
           new Value("Not Much Time Left Flash Period", typeof(float)),
           new Value("Not Much Time Left Flash Delay", typeof(float)),
           new Value("Number of Flashes", typeof(short)),
           new Flags("Not Much Time Left Flash Flags", new string[] { "Reverse_Default/Flashing_Colors" }, 16),
           new Value("Not Much Time Left Flash Length", typeof(float)),
           new Padding(8),
           new Value("Time Out Default Color (alpha)", typeof(byte)),
           new Value("Time Out Default Color (red)", typeof(byte)),
           new Value("Time Out Default Color (green)", typeof(byte)),
           new Value("Time Out Default Color (blue)", typeof(byte)),
           new Value("Time Out Flashing Color (alpha)", typeof(byte)),
           new Value("Time Out Flashing Color (red)", typeof(byte)),
           new Value("Time Out Flashing Color (green)", typeof(byte)),
           new Value("Time Out Flashing Color (blue)", typeof(byte)),
           new Value("Time Out Flash Period", typeof(float)),
           new Value("Time Out Flash Delay", typeof(float)),
           new Value("Number of Flashes", typeof(short)),
           new Flags("Time Out Flash Flags", new string[] { "Reverse_Default/Flashing_Colors" }, 16),
           new Value("Time Out Flash Length", typeof(float)),
           new Value("Disabled Time Out Default Color (alpha)", typeof(byte)),
           new Value("Disabled Time Out Default Color (red)", typeof(byte)),
           new Value("Disabled Time Out Default Color (green)", typeof(byte)),
           new Value("Disabled Time Out Default Color (blue)", typeof(byte)),
           new Padding(44),
           new TagReference("Carnage_Report_Bitmap", "bitm"),
           new Value("Loading Begin Text", typeof(short)),
           new Value("Loading End Text", typeof(short)),
           new Value("Checkpoint Begin Text", typeof(short)),
           new Value("checkpoint End Text", typeof(short)),
           new TagReference("Checkpoint_Sound", "snd!"),
           new Padding(96),
           new TagReference("Hud_text", "****"),
           new TagBlock("Dashlights", 28, -1, new IMetaNode[] { 
               new TagReference("Bitmap", "****"),
               new TagReference("Shader", "****"),
               new Value("Sequence Index", typeof(short)),
               new Flags("Time Out Flash Flags", new string[] { "Don't_scale_when_pulsing" }, 16),
               new TagReference("Sound", "****"),
           }),
           new TagBlock("Waypoint Arrows", 36, -1, new IMetaNode[] { 
               new TagReference("Bitmap", "****"),
               new TagReference("Shader", "****"),
               new Value("Sequence Index", typeof(float)),
               new Value("Smallest Size", typeof(float)),
               new Value("Smallest Distance", typeof(float)),
               new TagReference("Border_Bitmap", "****"),
           }),
           new TagBlock("WayPoints", 24, -1, new IMetaNode[] { 
               new TagReference("Bitmap", "****"),
               new TagReference("Sahder", "****"),
               new Value("Onscreen Sequence Index", typeof(short)),
               new Value("Occluded Sequence Index", typeof(short)),
               new Value("Offscreen Sequence Index", typeof(short)),
               new Value("Unused", typeof(short)),
           }),
           new TagBlock("Hud sounds", 24, -1, new IMetaNode[] { 
               new TagReference("Chief_sound", "****"),
               new Flags("Flags", new string[] { "Shield_recharging", "Shield_damaged", "Shield_low", "Shield_empty", "Health_low", "Health_minor_damage", "Health_major_damage", "Rocket_locking", "Rocket_Locked" }, 32),
               new Value("Scale", typeof(float)),
               new TagReference("Devrush_sound", "****"),
           }),
           new TagBlock("Player Training Data", 20, -1, new IMetaNode[] { 
               new StringId("Display string"),
               new StringId("Display string2"),
               new StringId("Display string3"),
               new Value("max display time", typeof(float)),
               new Value("display count", typeof(byte)),
               new Value("disapear delay", typeof(byte)),
               new Value("redisplay delay", typeof(byte)),
               new Value("display delay (s)", typeof(byte)),
           }),
           new TagReference("Primary_Message_Sound", "****"),
           new TagReference("Secondary_Message_Sound", "****"),
           new StringId("boot griefer string"),
           new StringId("cannot boot griefer string"),
           new TagReference("Training_Shader", "****"),
           new TagReference("Human_Training_Top_Right_", "****"),
           new TagReference("Human_Training_Top_Center_", "****"),
           new TagReference("Human_Training_Top_Left_", "****"),
           new TagReference("Human_Training_center_", "****"),
           new TagReference("Elite_Training_Top_Right_", "****"),
           new TagReference("Elite_Training_Top_Center_", "****"),
           new TagReference("Elite_Training_Top_Left_", "****"),
           new TagReference("Elite_Training_Center_", "****"),
           });
       }
    }
}
